Jelastic has selected Vlad Mihalcea as one of August’s most interesting developers. He is a passionate software architect interested in designing optimal technical solutions. He has always been attracted to concurrency challenges, multi-threading processing tasks or online transaction processing.
Whenever he employs a certain framework, it becomes part of his current project, meaning he has the responsibility of knowing its source code. Vlad believes that if you want to master a certain framework you have to do more than reading the reference documentation. He appreciates the true value of both SQL and NoSQL solutions, ORM solutions like Hibernate and advanced querying frameworks, such as JOOQ.
Tell us about yourself.
Do you think you are interesting? If yes, why?
I think my passion makes me an interesting developer. I am autodidact and everything I know about software I learned through book reading, blog posts and Internet articles. I graduated “Electronics and Telecommunications” so I have never had the chance of studying “Computer Science” like a regular developer would do. My teachers were Martin Fowler, Erich Gamma, Kent Beck or Bruce Eckel to name a few. Teaching is my way of learning, and that’s why I like to blog about various software related topics I value.
Can you tell us a little about your first development project? Is it still available today?
My first commercial project I worked on was an Electronic Parts Catalogue for a well-known American Car Manufacturer. We started developing it in 2005 and we released it in 2006. The project was a blast, being sold to many car dealerships, way beyond any optimistic expectations. Even nowadays, the project is still relevant and new features are being developing as we speak.
Preferred coding language?
Java is my number one programming language choice.
Java’s strength comes from its ecosystem, abundant in active open-source frameworks. There’s a framework for almost anything you can possibly think of, meaning you will spend your client’s money on delivering business value, rather than on building custom low-level frameworks. It’s because of Java that we now have the wonderful JVM, making it possible for functional-programming languages like Scala to coexist with any other Java code base.
Any groups or opensource projects that you are part of?
I am the author of Flexy-Pool, an empirical connection pooling sizing utility. My favourite open source projects are: Spring, Hiberante, JOOQ, PostgreSQL and MongoDB to name a few. I keep on following their progress and try to write about them on every occasion.
Tell us about your creation Flexy-Pool
My developing team and I were about to launch a large real-estate platform and didn’t know how to size the connection pools optimally. The system was being built out of many applications (e.g. web front-ends, web services, data import batch processors, business schedulers) and it was mandatory that we needed to do connection provisioning. The product owners were stressed with business features and they didn’t want to invest in developing a tool for this purpose. After I searched for a possible framework I might use, I realized there wasn’t anything I could possibly make use of. So in the true Open Source spirit I decided to spend my spare time to write an open source framework that can monitor the database connection usage patterns and even adjust the size in case of any unforeseen traffic spikes. That’s how Flexy-Pool was born and I’m proud others found it as useful as I previously thought it would be.
You also teach a free Hibernate master class course. Can you elaborate on that?
When it comes to database access patterns I believe there’s no one size that fits all. Hibernate is a very solid ORM framework and when used properly it can reduce dead-lock contention thanks to its transaction write behind support. The “lost update” is a very common multi-web-request problem, and it can happen even when SERIALIZABLE is being used. The optimistic concurrency support Hibernate offers is a scalable solution mitigating this issue. Hibernate is anything but easy and I want Hibernate to be part of others’ projects success stories. That’s the goal of my online Hibernate master class.
Who do you think is the most interesting developer in the world (excluding yourself) and why?
I think Lukas Eder is one of the most interesting developers I’ve ever met. He’s the author of the JOOQ framework, making advanced SQL querying features (e.g. window functions, PIVOT, common table expressions) a commodity for any java developer. Just reading the JOOQ reference documentation and you’ll instantly become a better SQL developer. Even if JOOQ might be competing with Hibernate on certain use cases, he has been cool about re-tweeting my Hibernate related posts to his JOOQ followers. He’s a DZone MVB and constantly writes about latest Java achievements and SQL lesser-known features.
If you happen to use Jelastic, can you tell us what you like about it or share any apps or projects created with Jelastic?
Even if I haven’t yet used Jeleastic, I am a big fan of cloud computing solutions. As an architect, I have to design optimal technical solutions that are both cost-effective and meeting the project technical requirements.
The cloud computing solutions can cut costs for both start-up projects or even large enterprise systems. On one of our latest projects, we ported one ancient project from a high-cost dedicated server infrastructure to a cost effective horizontally scaled solution. So there’s much business value in could computing and every architect should be aware of it.
And just for fun…
Choose one of the following:
Laptop or desktop?
Desktop at the office, laptop at home.
Think before you talk or talk before you think?
Professionally I think before I talk, with friends and family is the other way around.
Finish this sentence:
… brings back humanity to an otherwise technical-centric domain. Open source is what other fields should get inspired from. The software community’s open source involvement sets our domain apart from many other fields that are only innovating behind closed doors.