Principal Engineer answers “How to become so good, you are undeniable”
Breaking into software development isn’t always a smooth journey. Like many others, I had my fair share of struggles — especially when trying to get my first job.
Even when I got my first job, the feeling of being overwhelmed by lines of unfamiliar code is something most developers can relate to. To tackle this challenge and grow as a developer, I started a podcast called App Mafias, inspired by the concept of the PayPal Mafia. The goal was simple: connect with some of the best engineers in the app development field and learn from their experiences.
Recently, I had the chance to sit down with a Principal Engineer at Shell. The conversation was packed with insights, and I’m excited to share the top three takeaways with you.
The Myth of a Stable Life
One of the first questions I asked was, “How do you define a stable life?” The answer was eye-opening: Stable life is a myth.
- Success comes from a combination of hard work, time, and luck. There’s no one-size-fits-all formula for stability in life or your career.
- Facing challenges head-on is crucial. The fastest way to grow, both personally and professionally, is to push yourself through the tough times.
- The key takeaway? Don’t wait for stability to arrive. Instead, embrace the chaos and let it drive you forward.
The Power of Teaching as a Learning Tool
Is teaching others a good way to learn? Absolutely. Here’s why:
- It articulates your knowledge in a step-by-step format and forces you to understand the material truly. It’s one thing to know something; it’s another to explain it clearly to others.
- However, teaching also exposes gaps in your understanding. As soon as you try to teach, you’ll quickly realize areas where you need to deepen your knowledge.
- The best developers are those who are constantly learning, and teaching is one of the most effective ways to solidify your understanding.
Navigating Large Codebases
Large codebases can be daunting, especially for newcomers. But with the right approach, they become manageable:
- You don’t need to understand everything all at once. Focus on a small part of the codebase and get comfortable with it before moving on.
- Leverage AI tools to assist in understanding and contributing to the code incrementally. Don’t try to take huge leaps; small, consistent steps will get you there.
- Over time, the large codebase will start to make sense. However, the need for good documentation remains critical. Document your journey through the codebase like leaving breadcrumbs in a forest — it’ll help both you and others navigate the code more effectively.
Becoming a Better Developer
Finally, I asked how one could become a better developer. The advice was simple yet profound:
- Start building projects. The more you build, the more problems you encounter. And the more problems you solve, the better developer you become.
- A better developer isn’t defined by how many tutorials they’ve watched, but by how many problems they’ve faced and overcome.
- Beware of “tutorial hell.” It’s easy to get stuck in an endless loop of watching tutorials without ever putting your knowledge into practice. The real growth happens when you start building, not just watching.
- Outgrow yourself by creating, not just consuming content.
If you want to learn more. Here is the full episode:
Thank you for taking the time to read this blog. I hope you found these insights helpful. If you have any thoughts or if I’ve missed something, feel free to reach out. Keep pushing yourself, keep learning, and most importantly, keep building.
Your Captain (the Commute),
Hitesh