Two ways to effectively onboard onto an existing codebase

Interview with Keegan Donley, Senior Frontend Engineer at Kizen
February 22, 2022
Guest profile photo

Keegan is a full-stack developer currently working as a senior frontend engineer at Kizen. He has worked at several startups in the past, in both frontend and backend roles, and also as a freelance web developer working on a number of applications from scientific research, to nonprofits, to computer science theory. He studied computer science at Sonoma State University where he gained an affinity for hackathons and working on many side projects at once, as well as hobby electronics. If he’s not out camping and enjoying the outdoors, you’ll often find him in the garage soldering on a Raspberry Pi, or building a new web application to automate some task around the house.

EXA Newsletter

Why reinvent the wheel?

Exaltitude newsletter is packed with advice for navigating your engineering career journey successfully. Sign up to stay tuned!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

What are the best way to onboard onto an existing codebase?

I like to take an approach where I start playing with the code right away. Typically this means that I invent some fake tasks to try to complete, and in the process learn about the codebase. For example, changing the text on a button, adding a hover effect, or changing the color of certain elements. I start simple, but it gives me a chance to look through the code and find the relevant areas. Of course, it's important to read through the code and ask questions as well, but I tend to have a lot more fun if I can start playing with it right away!

It’s always important to ask questions too! An important sign of healthy work culture is that your new teammates are willing and ready to help you get up to speed. I always have a lot of questions right at the start, but the more I get my questions answered and dig into the code, the more I start to be able to answer those questions for myself!

What's one thing you wish you had known when you got started?

I wish I knew when I started coding that less isn't always more. 

As a new programmer studying computer science, I was obsessed with writing the smallest solution to every problem, focusing more on how few lines of code I could use, rather than how maintainable and readable my solution would be. Over time I learned the value of writing more verbose solutions, especially in a collaborative or team-centric environment. Working on a team of any size, it's important that someone who's not familiar with my work can read through it and understand exactly what's going on, leading to faster and more effective collaboration. Once I learned this, not only did I become a better developer, but my teamwork skills improved as well. 

What makes you excited about working in tech? 

There's a lot to be excited about! In particular, I love to build and create things - be it software, hardware, or a combination of both. Working in tech allows me to use the skills I have to create experiences for other people to enjoy and gain new knowledge that I can apply to both my personal life and my career. I love that the skills I learn through my hobbies can be applied to my work, and vice-versa. It's exciting to be always learning, as there's always something new in the tech world to study or discover. Continuous learning and growth over the course of my entire career is something I strive for daily.

What’s the biggest challenge you’ve faced in your career?

My biggest challenge so far came with the transition to working from home during the start of the COVID-19 pandemic. It was a huge adjustment, and having both my girlfriend and I working from a tiny apartment wasn't really cutting it. Thankfully, we were able to expand to a larger space and I started to develop some skills unique to working from home - like how to stay focused with lots of distractions, and learning to communicate with a team remotely rather than face-to-face. Now that I'm working on a more hybrid home/office schedule, those skills are still helpful and necessary. If communication broke down every time I was out of the office, it would be detrimental to the team and my own progress.

How do manage your work-life balance?

I love to code, which sometimes translates into spending way too much time working. To counteract that, I try to take frequent breaks and entertain our dogs throughout the day when I'm working from home, as well as keep focused on non-tech hobbies. I've taken up a habit of hitting the gym and riding the Peloton right around 5 or 6 in the evening to cap off the workday, and I enjoy hiking, camping, and spending time outdoors on the weekend. My girlfriend and I have enjoyed numerous camping trips with our dogs, far from cell phone coverage and the distractions of everyday life. It's always nice to disconnect and come back refreshed for the new week.

Read more from Keegan on his blog.

Exaltitude newsletter is packed with advice for navigating your engineering career journey successfully. Sign up to stay tuned!

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Read the latest...

Copyright @Exaltitude