How to onboard well as a software developer by knowing and nailing the expectation of your role
Recently, Microsoft surveyed 30,000 workers in 31 countries about work, and according to the survey results, 41% of workers globally are thinking about quitting their current jobs. It doesn't require a genius to figure out that tech companies are going to be the ones most impacted by this as the tech industry is one of the fastest-growing industries amidst the global pandemic. So if you are a software developer, you will likely be joining a new company in the next 12–18 months.
---
Changing to a new job can be quite stressful - but it's also a good thing. It puts you outside of your comfort zone and stretches you. It makes you see and think about things that you wouldn't normally think twice about at your previous job - such as making a commit to the company's repo, seeing your work live on production, joining your team stand up, and asking someone to review your pull request. When you are too comfortable at your workplace and you have gotten used to the process and tools, you tend to take things for granted and operate on an auto-pilot mode. Changing your environment, be it a new team within the same company or a new job altogether at a different company, makes you become more aware of yourself and what you do day to day as a developer.
Besides generic new hire questions like What time should you start work? How friendly should you be in your first week?, this article aims to provide answers to all the software development-related questions that you, as a new developer, wanted to ask your fellow developers or your development manager but were too afraid to.
---
I am referring to the questions like:
When should you add your code to the company repo?
When should you expect to see your work live on production?
When should you share your view on a particular design pattern?
As an engineering manager who has hired and onboarded many developers and tech leads, let me share with you some of the most commonly thought of (and sometimes asked) questions and my answers for them. I hope they will help you as you, as a new developer in a new job, make the best first impression and at the same time, let everyone know the real you and what you've got to offer.
I will be providing two answers to each question: one for startups and small companies and one for medium to large enterprises. This is because, from my experience as a technology leader with almost 20 years working in the tech industry with startups to Fortune 500 tech companies, I know that the size of the company and the environment play a large role in expectation. Also, note that my answers are just guidelines as there may be some nuances that you might encounter. Regardless, I hope they are helpful in giving you a perspective on what you need to aim for as a newly hired software engineer at a company.
Part I: It's All About the Code
When should you set up your development instance on your machine?
Small startup: On the first day
Large enterprise: Within the first two weeks
When should you make your first commit?
Small startup: Within the first three days
Large enterprise: In the first two weeks
When should you expect to see your work live on production?
Small startup: Within the first ten days
Large enterprise: It depends. The next release cycle after your first month.
When should you learn about best practices and coding standards?
Small startup: Within the first week
Large enterprise: Within the first two weeks
When should you understand the architecture of the system(s) that you'll be contributing code to?
Small startup: In the first week
Large enterprise: In the first month
When should you be independently picking up and completing a task from your team's backlog?
Small startup: Within your first sprint.
Large enterprise: Within the first month.
Regardless of whether you're a junior software developer or a senior one, your tech lead or engineering manager should have some tasks that you should be able to pick up independently based on your seniority level. Make sure you communicate this with them.
When should you start contributing to story estimation?
Small startup: After your first sprint*.
Large enterprise: After two sprints*.
*One sprint=Two weeks.
Part II: It's About the Process
When should you start being an on-call person for your team's services (especially if the company practices YBIYRI)?
Small startup: Within the first month.
Large enterprise: After you've shadowed an on-call rotation. Usually after a few months.
When should you put your hands up to drive a team activity, e.g., running a retro?
Small startup: After you've seen how it's done at least two times.
Large enterprise: Same as above.
When should you be comfortable being an Approver for someone else's Pull Request?
Small startup: Within 15 days
Large enterprise: Within 60 days
When should you know about the build and release process?
Small startup: Within the first week
Large enterprise: Within the three weeks
Part III: It's About the Big Picture
When should you start being an active participant in various guilds and charters, e.g., Frontend Guild, Technical Architecture Guild, etc.
Small startup: In one month
Large enterprise: In three months
When should you start contributing to technical discussions?
Small startup: In three months
Large enterprise: In six months
When should you learn about the product (as an end user) especially its features and capabilities?
Small startup: Within the first three days
Large enterprise: Within the first seven days
When should you have good knowledge of operational aspects of the engineering?
Small startup: Within the first 20 days
Large enterprise: Within the first 60 days
When should you start talking about your career aspirations with your manager?
Small startup: Within 30 days
Large enterprise: Within 90 days
Keep Your Own Onboarding Checklist
Your manager may provide you with an onboarding document, but it's also important to keep your own to make sure you're keeping track of your own progress and are meeting the minimum expectation for a software developer role in your first few weeks.
Apart from coding and technical tasks, you should also add the following important items to your checklist:
- Join necessary Slack, Microsoft Team, or any other communication channels
- Ask to be included on necessary mailing lists and calendar invites
- Set up a regular 1:1 with your manager
- Learn about social groups and make connections with fellow employees
- Find out about the expectation of your role and what success looks like from the point of view of your manager
Here is a checklist to help you find your feet in your first 30 days as a software developer at a new company.
⬜️ Dev instance set up
⬜️ First commit made
⬜️ Code live in production
⬜️ Drove a team activity
⬜ ️Actively contributed to estimation
⬜ ️Have been on-call
⬜ ️Independently completed a task from the backlog
⬜ ️Shared your career aspirations with manager
⬜ ️Approved a Pull Request
⬜ ️Understood build and release process
⬜ ️Participated in a Guild
⬜ ️Contributed to a technical discussion
⬜ ️Understood the architecture of the system(s)
⬜ ️Learned about the product
⬜ ️Learned about best practices and coding standards
⬜ ️Gained operational knowledge
--------
⬜ ️Joined important communication channels
⬜ ️Included on necessary mailing lists and calendar invites ️
⬜ ️Set up a regular 1:1 with manager
⬜ ️Made social connections with likeminded groups
⬜ ️Understood the expectation of your role
Make a Great First Impression
We all know this: First impression matters. Your first impression with your engineering manager and fellow developers starts the moment you join the company, and that impression lasts for a long time, sometimes for the duration of the entire time you're with the company. So set the bar high by knowing what is expected from you as a software developer and keeping track of your progress.
---
Career Guide for Software Developers
If you enjoy this article, you might like to check out my ebook for software developers - Career Guide for Software Developers.
The technology industry is one of the fastest-growing industries today. The future of work has arrived for developers. I know for a fact that it is different than work we know previously and thus requires different mindsets and skills from developers to be effective in their role. Check out the ebook and apply the strategies and tactics in your professional life to have a successful career as a software developer.