I recently started my first job as a Software Engineer, and I wanted to jot down some amazing advice I received. I’m sure it will be valuable for anyone who is in the same boat as me.
These are mostly taken from my personal notes, so they are in a bullet points format, like most of my other posts. Let’s dive straight into it!
1. Understand the company’s product, business & priorities
- Most important thing at the start is to understand why the company is paying you to do what you do.
- Also try to get clarity on what the goals and priorities of the company (and of your team) are right now. If you don’t know about it, ask questions.
- Don’t be afraid to ask questions. Being a new joiner is the one time when you have the official license to “not know anything”. Take advantage of that.
- Having this clarity will help you be a better engineer and you will also be able to make meaningful contribution to the growth of the company.
2. Contribute to the company’s onboarding documentation
- Being a new joiner, you have a unique perspective with a blank slate. Slowly and steadily, you will start to form context around how things work.
- The most meaningful impact you can have at the very start is to contribute to and improve the company’s onboarding docs, the READMEs of repos, etc.
- Ideally, READMEs & docs of a project / product should be very clear about the following points
- what that project is, why it is needed
- what features it has
- how to set it up locally (on different operating systems)
- a list of code conventions to be followed, required plugins to be installed
- explanation about the overall architecture of the codebase
- a section for frequently asked questions
- If you see any READMEs / docs that lack any of the points, you are anyway going to need to know about it, so when you know about it, just make a PR and add it.
- This way, it will be easier for the next person who joins the org. It will also be easier for people in other teams to get context easily.
3. Set your machine up for success
- As a software engineer, you will be working on your machine for most part of the day.
- You need to set it up in ways which make you the most productive. Install the right tools, set up easy to use aliases on your terminal that make your workflow faster. This way, you will save time and energy on repetitive tasks.
- Depending on your role, find and install tools that make your life easier. For example, if you have a frontend focused role, make sure you install Chrome extensions like Visbug, developer tools for React, Redux, etc. Also, try to spend time to learn the tools that can make your work easier.
- Install the IDE that works for you. If you are a beginner, I will encourage you to try out different IDEs yourself and then decide what you like the most. Spend time learning essential keyboard shortcuts and tricks, it will be worth it :)
4. Get clarity on what is expected from you
- If you are not sure what exactly is expected of you, make sure you ask it to your manager. Take some time and think about what they say.
- Ask followup questions to make sure that you have a complete mental model of what the definition of “success” is for you as a team member and as an employee. Plan it out and make sure to execute it well.
- If you have the time, energy, and motivation, go a step further and think about how you can go beyond what is expected of you.
5. Be Social
- Reach out to other employees, ask them not just about their work, but also about what they did before, their hobbies, interests, etc. Making friends goes a long way!
- Set up 1-1s with the people who you look up to, and ask them for advice, or any questions you might have. Long time ago, they were also at a similar place where you are, and you can benefit a lot from their learnings. Make the most of it!
- If you want to learn something new other than your expertise in your current role, reach out to the people who are currently working in that team, and try to get context from them.
6. Ask for feedback
- No one cares more about your career than you. Be proactive in asking the right people for feedback.
- Take the feedback that they give seriously, note it down, and plan on how to act on it.
- This blog post by David Golden is a good take on this topic.
7. Strive to become a product engineer
- This point is very similar to point #1, but important nonetheless. Understand the product you are building, spend time in researching competitors, and try to contribute to product related discussions.
- “Engineers are hired to create business value, not to program things”. - Patrick McKenzie
That’s all for now, I will be updating this post if I come across more gems of advice. I hope this was helpful, see you in the next one! ✨