6 superpowers of a junior developer
There’s a feeling of awe I used to get when I would talk to experienced engineers early on in my career. They just knew so much! And so fast. It’s like they had a crystal ball. Or I would go into a meeting and my heroes could make the most persuasive argument and bring everyone to our side.
I spent my early career trying to emulate those senior engineers. We all do. This blog post isn’t about that though. This blog post is about the relative advantages you have as a junior engineer. Use them. (responsibly)
- You won’t be judged for asking a “dumb” question. This is huge. It’s more powerful than you realize too. Not only will you learn things, but you can redirect the conversation to your level. Instead of talking about the intricacies of some scheduling algorithm, asking “on a high-level, how does that apply to this scenario?” reveals the assumptions that others are making about the shared knowledge in the room. Odds are you’re not the only person missing some gap in the logic. Be the person that helps out everyone in the room.
- Ask why the simple solution won’t work. This is perhaps a subset of 1. but it happens so often that I wanted to call it out by itself. Sometimes the ugly, one-off hack bandaid is the right answer, especially when the generic solution isn’t obvious. “Why can’t we just ____” is a question that doesn’t get asked enough, specifically because of people not wanting to sound dumb.
- Break things. Like, not on purpose. But you’re going to make mistakes. Big mistakes. You’re expected to. Go ask your mentor about the worst bugs they ever wrote. In the past year, I have: published our company’s source code to the internet by accident, caused every user of Textio to get in an infinite loop and DDOS our backend, and messed up even simple things like causing git to delete all of my work. So, mistakes happen. Use them to your advantage. What I mean by that is you’re not as efficient as a more experienced colleague. But, you can cheat a little bit moving a bit faster. Maybe skip testing IE11 if you have no reason to believe the codepath is browser-specific. Sometimes you’ll be right, sometimes you’ll regress something. P.S. This is exactly how to become more efficient. You learn which corners you can cut by trial-and-error. The only difference is you guess wrong less.
- Propose big ideas. This is also sage advice when you start a new job/role, regardless of your seniority. But you have a fresh perspective that is pristine. It hasn’t yet been ruined by X years working in the space. I really mean it. Ruined. So harness that perspective to offer up your crazy ideas.
- Be hungry. I originally wrote enthusiastic, but I explicitly don’t want to tie this to age or personality. I believe people have a drive that is hard to maintain over time at the same environment. We get bored/complacent. It is the rare person who hustles as much on day 1 as day 10,000. (Protip: This is the main reason why you should change your environment every so often.) If you’re more excited to work on some devops project, you’re going to get more out of it relative to someone else. Advantage: you.
- Meet people. Like the CEO. Like the engineers at your dream company. There are doors open to you that shut or at least get narrower as you write your own story. That said, have a plan about it. Think about what you want to learn or talk about beforehand. Their time is valuable, treat it as such.
Postscript: This is part 1/ of a series on insights I’ve accumulated from my experiences. I especially hope to be a part of an encouraging foundation for people with challenging backdrops or less-tread journeys. Let me know how I can do better.