Junior. Associate. IC1. The “weren’t you an intern?” person. Whether you’re fresh out of college or just changing career tracks, being the “new kid” can be challenging.
Engineering managers are not always great at helping new engineers navigate their early careers, and some might be downright dismissive. This creates an unnecessarily steep ladder to growing and can profoundly affect the mental health of new engineers.
I have seen my fair share of bright associates floundering and losing enthusiasm for their jobs. I have also seen many grow to their full potential and become respected professionals. Let’s go over a few things you can do to succeed as an associate engineer.
The most important task you have as an associate software engineer is to learn. This might sound strange because, as benevolent as your company might be, they are paying you and expect to get some value back. Most companies would love to hire only professional and senior engineers. Still, since that is physically impossible, they invest in folks like you with the expectation that you will rapidly grow and become productive.
You should have a solid foundation. This means having a working knowledge of your team’s programming language; understanding common design patterns, data structures, and algorithms; and familiarity with some standard tools and frameworks. Essentially, you should not be completely lost when sitting down in front of your computer and staring at your code editor.
You will have to tackle smaller tasks, usually limited to single functions or secondary mechanisms, with ample supervision from more senior colleagues. Even if those might not be game-changing features, your colleagues and manager will still expect you to produce solid, on spec, working software aligned with the team’s practices.
Finally, everyone will expect you to ask lots of thoughtful questions. Learn what problems your team is solving, who your customers are, how your team fits into the business, and why your software works and looks the way it does. Your ownership and impact potential may be limited compared to your experienced counterparts, but it also means that you have added layers of safety to make mistakes and learn from them.
Be humble, check your ego at the door, and understand before starting a revolution. The first step to performing is learning, which is difficult if you think you’re already awesome. Learn how your codebase works, how your team does things, and master that before bringing in that fancy new framework you just read about online.
Connect with your team and make friends. Your skills are not the only thing that matters. Professional software development is a team sport, and you depend on lots of people to succeed. Those you have a rapport with will help you faster when you inevitably have questions (or break something).
Connect with your manager and turn them into an advocate. Good managers are responsible for the support, development, and promotion of their people. If you build a good relationship with them, they will be your strongest cheerleader. Learn what they care about and how you can help. Take their feedback and guidance seriously.
Keep it simple, execute and earn the respect of your team. Don’t worry about the visibility of your work or if you’re just tackling the simpler tasks others don’t want to. Focus on getting things done. This will help you build a reputation for reliability and earn the respect of your colleagues. You will be rewarded with more exciting assignments when others can trust you not to delete the production database.
Ask for help when you need it. Don’t bother others with tons of questions that are one Google query away, but don’t spend three days on a single problem that is one question away either. Nobody expects you to be a hero or know everything, but they expect you to learn and grow fast.
Accept coaching and supervision, even if it might seem unnecessary. Your peers and manager may be more hands-on than you’d like. This can be annoying, but remember that they are trying to help (and prevent you from deleting the production database). You will progressively gain more freedom and latitude as you show results.
Ask for feedback and act on it. Not all feedback will be thoughtful, helpful, or objective, but at least some will be valuable. The best people to get feedback from at this stage are your manager and your more experienced teammates, particularly those who helped you with tasks. Identify concrete examples and situations you want feedback on, ask clarifying questions, understand its substance, and don’t be confrontational or defensive. Take action, even if you don’t fully agree with it, test the results and iterate.
Finally, accept that you will fail. When you fail to deliver a project on time or someone needs to rewrite your code because of a critical bug, take it in stride and focus on learning from it. These episodes might seem crushing, but that is only because your career is still short. Don’t dismiss the failure, but don’t dwell on it either.
Promotions usually follow from mastering your current role and performing at or close to the next level consistently for at least a few quarters. Generally speaking, your manager will look for the following signals:
A journey of a thousand miles begins with a single step.
Being a new engineer can be challenging and frustrating, but it can also be an incredibly gratifying experience if you know how to do it. Be patient, be humble, work hard, get things done, make friends and, above all else, learn a lot. This is the beginning of a fantastic journey that will shape your life, and being an associate is but the first step.