Here’s is the first in a series of unsolicited advice to my fellow software engineers grinding to climb the technical ladder. You may not agree with all of them, but I still invite you to reflect.
Learn in Public
Contribute to open source projects, join Kaggle competitions, be active in a programming community. Find ways to work on fun real life problems and build a portfolio along the way.
Learning in public does three things simultaneously: it builds your skills working in a complex project/problem instead of tutorial hell, it creates tangible proof of your abilities that goes way beyond a resume, and it puts you in rooms (virtual or otherwise) with people who can change your career trajectory. When you contribute to open source, you’re getting code reviews from maintainers who might work at your dream company. And unlike grinding LeetCode in private, everything you do in public compounds - a GitHub contribution from three years ago can still land in a hiring manager’s search today. The portfolio you build isn’t just code, it’s proof you can collaborate, communicate, and ship. Bonus points: You are also making the software engineering world a better place for everyone.
Here’s a personal story
I was lucky to be involved in the early days of Joomla!, when it was called mamboserver and back when documentation sucked so I spent a good chunk of my day reading and writing forum posts. I eventually wrote some tutorials, built a community in Brazil and made lifelong friends throughout the process. That catapulted me to markets way beyond the small agency in the countryside of Brazil where I was building websites at the time. Had I not done that, it would have taken me twice as long to get to Silicon Valley.
If I were a junior engineer today, I would get involved in an open source project and start writing tests or fixing bugs reported by other users. Free mentorship from top-notch engineers, hands-on experience with a popular product used at scale—it’s all there. As a hiring manager looking through 2000 resumes with the same 3 projects (Instagram clone, Spotify clone, movie recommender) versus a resume that reads “I just graduated, but here are 5 meaningful contributions to Obsidian/Hugo/Kubernetes/Chromium/Go/Python/etc."—which one do you think stands out?
Let’s all admit we (currently) suck and not be afraid to learn in public.