Level up your software engineering skills without burnout
The pressure to constantly evolve as a software engineer is real. On the one hand, I love it. Always having something new to explore is what keeps me so engaged in this career. For me, the perpetual learning curve is a feature and not a bug.
As a teenager in the 1990s, I got hooked on computers, networks, Unix, and programming. Back then, it was all just for fun. I had no idea or thought or care in mind that it could also be lucrative. Sometimes, I still have to pinch myself. It’s wild to think that we get paid (and paid well) to do something I started out loving purely as a hobby!
But other days, it can feel exhausting. Many engineers, including myself, often struggle with the nagging question: “Am I doing enough?” Conversations with colleagues tell me this feeling seems to be widespread in our industry.
And let’s be honest, this pressure doesn’t just affect our professional lives. It often occupies our time outside work, potentially competing for moments with loved ones, our social lives, and community involvement. Balancing career growth with personal life can start to feel like walking a tightrope.
But is that the only way forward? Do we really have to sacrifice all of our evenings and weekends, whether driven by curiosity or ambition, constantly chasing the latest trends to stay relevant?
I don’t believe so. There are smarter ways to grow, ways that don’t require compromising at the expense of your overall well-being. It’s about working strategically, not endlessly, and finding the balance between career progression and a fulfilling life outside of work.
In this blog post, I’ll share with you the strategies I’ve been focusing on.
Work smarter, not harder
Make your day job work for you
Make your day job work for you by speaking up about your interests. Too often, engineers quietly hope the right opportunities will fall into their lap. But here’s the thing: your manager and colleagues aren’t mind readers! I’ve learned that being open about what excites you can unlock doors you didn’t even know existed.
Let me share how this played out in my own career. When I started as a frontend-focused engineer, I couldn’t help but be curious about what was happening on the backend. Instead of keeping that curiosity to myself, I spoke up. The result? I got to learn Go on the job and eventually transitioned to backend development with no nights or weekends required.
This pattern kept repeating for me. When I heard my team was prioritizing containers and Kubernetes, I didn’t just silently wish I could be involved. I actively raised my hand!
Your biggest barrier might not be a gap in your skill or experience, but your hesitation to ask.
Similarly, when AI caught my attention, I didn’t just read about it in private. I experimented, shared my learning journey on social media, and built connections in the field. When AI initiatives later emerged at work, guess who was naturally positioned to take them on?
The key is to align your genuine interests with your company’s direction. This way, your professional growth becomes part of your workday, not something you have to squeeze in after hours. Work smarter, not harder!
Focus on the fundamentals
When it comes to investing your learning time wisely, focus on the fundamentals that stand the test of time. While frameworks come and go, there’s a core set of knowledge that remains valuable throughout your entire career. Think of these as your professional toolkit – tools that work just as well today as they will decades from now.
For me, as an AI Engineer, these fundamentals break down into three key areas.
Computer science foundations
- Data structures and algorithms (they’re classics for a reason!)
- Operating systems and distributed systems principles
- Database concepts and system design
- Version control (Git isn’t going anywhere)
Mathematical building blocks
- Linear algebra
- Statistics and probability
- Basic calculus
- Optimization theory
Machine learning fundamentals
- Learning paradigms
- Supervised learning
- Unsupervised learning
- Reinforcement learning
- Core algorithms and methodology
- Algorithms (regression, trees, SVM)
- Optimization techniques
- Model training principles
- Practical implementation
- Feature engineering
- Model selection and evaluation
- Hyperparameter tuning
- Deep learning
- Neural network architectures
- Training methodologies
Here’s the thing: mastering these fundamentals is like learning to play scales on an instrument. It might not be as exciting as jumping straight into playing your favorite song, but it gives you the foundation to become a better musician. Likewise, these fundamentals help you pick up new technologies faster and make better architectural decisions, regardless of what the latest trend is.
I’ve found that whenever I’m learning something new, having this foundation makes everything click faster. The fundamentals are worth your while because they provide you with a skillset that will span your whole career.
Contribute to open source
Contributing to open source projects opens doors. You get to work on interesting problems of your own choosing, learn from other developers, and build public credibility.
And open source involvement isn’t limited to personal time. Many companies encourage employees to contribute to open source projects relevant to their work. You might develop an internal tool that solves a specific problem and have the chance to share it with the community.
Moreover, your day job can benefit from open source engagement. When you encounter issues with libraries or tools used in your professional projects, you have the opportunity to contribute fixes upstream.
Learn by teaching
I’ve found one of the best ways to solidify your knowledge is to teach others. This approach not only reinforces your own understanding but also benefits your visibility and personal brand.
There are numerous avenues to share your knowledge and expertise: start a blog, podcast, give a talk at a local meetup or conference, or host a “lunch and learn” session at your workplace, for example.
When you’re learning by yourself, you are n = 1, but when you teach, you’re multiplying your impact. This is how you scale up.
Moreover, teaching creates a feedback loop. As you share your knowledge, you’re going to get questions and hear perspectives you hadn’t considered, further expanding your understanding.
You don’t need to be an expert to start teaching! Sharing your learning journey, including the challenges you face and how you overcome them, can be incredibly valuable to others at similar stages in their careers.
The bottom line
Look, at the end of the day, your career is yours to shape. You don’t have to conform to anyone else’s idea of what a “good” developer looks like. Find a balance that works for you, and don’t be afraid to adjust course as your life and priorities change.
Remember, we’re in this for the long haul. It’s a marathon, not a sprint. This reminds me of something Andrew Ng said:
I think this is often not about the bursts of sustained effort and all nighters, because you can only do that a limited number of times. It’s the sustained effort over a long time. I think reading through research papers is a nice thing to do. But the power is not reading two research papers, it’s reading two research papers a week for a year, then you’ve read 100 papers and you actually learn a lot.
Take care of yourself, keep learning in ways that work for you, and trust that good things will come.