4 Ways to Make the Most of Your First Job as a Software Engineer
You’ve landed your first job, so now what?
It’s your first day at your fancy new job as a software engineer and you feel just as lost as you were the first day of freshman year during university. After what seemed like an eternity of non-compiling class projects, prove-this-theorem-filled finals, and exhausting day-long technical interviews — you have finally made it.
But now what? How do you make the most of this first job to elevate your career trajectory for years to come?
Here are a few suggestions that will hopefully keep you on track:
1. Make friends.
Everyone at your first job is your initial professional network. Make an effort to develop these relationships whether by greeting coworkers in the kitchen, going out to lunch, or partaking in a friendly match of foosball. At the very least, add them on LinkedIn. How ever you do it, it’s in your best interest to do so.
You may move companies or start your own and you’ll want to have a network of talent that you’ve personally worked with. On the flip-side, you may find yourself looking for other opportunities and having a network to reach out to and be referred by is always helpful.
2. Be cognizant of domain expertise vs. technical expertise.
This second point is all about knowing whether or not you want to be a subject-matter expert or a technical expert. Be aware that certain teams and certain projects may push you towards being one or the other. I’m not going to try to make the case for one or the other — rather, I just want to point out that you should be aware if the team you’re on and the work you’re doing is increasing more of your domain knowledge or your technical knowledge. As long as it aligns with your goals, you’re good to go.
For example, if you work in advertising technology make sure you’re aware if you work is making you an expert in the business of ad tech (RTB, ad exchanges, SSP vs DSP, impressions, etc.) or if your work is equipping you with the knowledge and experience to build highly scalable and distributed systems (a la high-frequency trading systems not unlike a real-time bidding system) that can be generalized to any business or domain.
In the case that you are interested in reading others voice their opinion on this matter, check out this post on StackExchange.
3. Focus on breadth over depth.
If you’re fortunate enough to be given the choice to try something new and you’re interested in doing so, do it. I believe that the initial part of your career is the best time to dabble.
Interested in learning how to build robust RESTful APIs after working exclusively on your company’s in-house distributed cache? Do you want to move on from building ETL jobs and try out front-end development for the first time? Have you sparked a new interest in trying out DevOps even though you always thought you’d be a mobile developer?
Yes? Well, then do it. Your first job is the perfect time to figure out what you do and don’t enjoy. It’s this diversification of your technical toolset that exposes you to different types of challenges, allowing you to identify which challenges you will enjoy trying to solve from here on out.
4. Emulate the best and brightest.
From the moment you first walk through the door, do your best to identify the top-tier technical talent at your company. Pay attention to the one’s asking insightful question during standup meetings, actively participating during code reviews, and constantly working on the high-profile projects. These are likely the individuals you’ll be wanting to model yourself after.
Once you do identify these engineers, learn as much as you can from them. Ask them questions, request code reviews, or volunteer to work with them on any upcoming projects. I even like to check out their latest commits just to see examples of elegantly written and well documented code. After all, this is your first job and you’ll want to establish sound technical skills and habits before it’s too late.