- Published on
How to Onboard to a New Codebase
- Authors
- Name
- Eden Ghirmai
- @EntreEden
No matter how long you’ve been working as an engineer, working on a new codebase is going to be confusing as hell. Not only are you likely using a new language, the team has a different style than you’re used to, different frameworks, and a completely new set of tools.
So… how do you ramp up quickly?
These are the 3 ways that I personally use to ramp up to a new codebase:
- Starting with one focus area
- Pair programming
- Customizing your IDE
Now let’s get to it!
1. Starting with one focus area
If you’re starting on a new team or codebase, chances are there are 100 new things to learn about.
- Different products
- Automated testing
- APIs
- Databases
- etc
When you’re ramping up your first month just focus on one of these things. If your onboarding buddy hasn’t already set this up for you, ask them if you can spend the month working on bugs/tasks in just one focus area. Ideally something close to what the team is working on now.
It’s easy to feel the pressure of trying to master everything on the team so you don’t feel behind, but I find it way more productive to start mastering just one part of the team’s codebase.
2. Pair programming
The opinions on pair programming can be divisive, but personally I’ve found pair programming to skyrocket my success as an engineer. Usually I ask someone more experienced to code with me for around an hour while I work on a task that was assigned to me.
What I enjoy is that you have someone with you answering questions in real time instead of you having to stumble around finding outdated docs. There are likely nuanced things in the code that aren’t documented well and you save a lot of time learning these things directly from experts.
If you’re currently onboarding to a new codebase, try asking this to your mentor or someone on the team:
Hey! I just picked up TASK-1337 and was wondering if you could pair with me on it for an hour.
I don’t have any questions yet but it’d be really helpful for my onboarding if I could get feedback and ask questions in real time.
3. Customizing your IDE
I beg of you, DO NOT LEAVE THE DEFAULTS ON FOR YOUR IDE!!
There’s nothing more painful for me than watching an engineer fumble through their IDE trying to make changes, some examples:
- Struggling to go back and forth through the codebase
- Unable to search for functions quickly
- Consistently struggling with merge conflicts
Jordan Cutler from High Growth Engineer recently posted How I setup my terminal for max productivity which is a great read, I have a very similar terminal setup.
If you’re not sure where to start, I’d recommend finding a senior or staff engineer on your team and asking about their setup. You can copy theirs and modify yours as you continue to grow.
Do you have any tips on how to onboard to a new codebase? Let me know!
Thanks for reading,
Eden