When starting a new project, my mind always gravitates towards my favorite programming language and database.

“For those who only know a hammer, everything looks like a nail.”

After 15+ years in the industry, with significant experience in Ruby and PostgreSQL, these tools feel like home to me. I’ve also worked extensively with JavaScript, Java, JRuby, Bash, and more. While I acknowledge that Ruby isn’t the best language for everything, and PostgreSQL isn’t the best database for every use case, I love them both dearly.

My journey began as a backend developer, and over time, I transitioned into developer relations at a company dedicated to serving the PostgreSQL ecosystem. We innovate by creating new extensions that cater to different workloads and the diverse needs of developers already using PostgreSQL.

The PostgreSQL Legacy

I like to compare PostgreSQL to fuel vehicles. While electric vehicles (EVs) represent the future, they aren’t necessarily the best option for every situation. Availability of charging stations and mechanics is a concern, especially where I live in Brazil. Similarly, PostgreSQL might not be perfect for every scenario, but it’s widely supported, and I can easily find a DBA or hosting provider for it.

Balancing my love for PostgreSQL with practical work needs involves considering the project, team, future, and costs of building, maintaining, and staffing. High productivity comes from familiarity with the tools you use, but learning something new has its own costs, especially the cognitive load.

The Value of Sticking with What You Know

Every language and ecosystem develops a community and tools that make it comfortable for its users. I’m comfortable with Ruby and PostgreSQL, but the broader question is: Do you really need to learn a new language or database for every project or every year?

With nearly two decades of experience, I still find value in learning new things. However, building a stable platform is equally important. Chasing the latest shiny thing each year can prevent you from establishing a solid foundation.

Adoption vs. Community Commitment

I’m not here to convince you to stick with my favorite choices. Instead, I advocate for adopting a language and serving your community. The Ruby and PostgreSQL communities have been incredibly rewarding for me. Building deep relationships in open source requires real long-term commitment, not just occasional contributions.

Creating new libraries or languages is exciting, but maintenance is crucial. If you’re not committed to maintaining what you create, it’s better to use existing solutions. This mindset is particularly important when you’re building something intended to last for years.

Practicality and Productivity

On the early years of my career, I constantly sought out the newest languages, databases, and frameworks. I read books and experimented with new technologies. While this was valuable, it’s not sustainable in the long term, especially when maintaining professional projects.

Choosing a minimal set of tools that work for you can lead to a more sane and productive life as a developer. You don’t need to learn everything; you just need to learn what you need to build what you need. Avoiding burnout and frustration from trying to stay on top of every trend is crucial.


At the end of the day, it’s about finding a balance between learning and stability. Embrace new things, but also value the tools and communities that have proven reliable and productive for you. For me, that’s Ruby and PostgreSQL. Find what works for you, and build something meaningful with it.

Share → Twitter Facebook Linkedin

Hello there, my name is Jônatas Davi Paganini and this is my personal blog.
I'm developer advocate at Timescale and I also have a few open source projects on github.

Check my talks or connect with me via linkedin / twitter / github / instagram / facebook / strava / meetup.