Day in the Life: Aaron Robb, Codecademy Senior Software Engineer

Aaaand we’re back with another episode of a Day in the Life! This month, we’re featuring Aaron Robb, who is a senior software engineer at Codecademy. He’s a self-taught developer and has taken a lot of winding roads to get where he is today, but he shows up no worse for the wear! He’s got some short & sweet advice for y’all so be sure to read on until the end! Cheers.

Meet Aaron! :cowboy_hat_face:

Tell us a little about yourself.

I’m a front end engineer who primarily works on Codecademy’s design system Gamut. I have run into more CSS bugs than anyone should have to in a natural lifetime.

How did you end up working for Codecademy?

I think it’s a similar story for most people at Codecademy, I had used it earlier in my career. When I first started out it was one of the only sites around for learning to code, and maybe the only one that had a learning environment. It was probably the first thing I used to learn basic concepts, and over time I ran out of content and was learning on the job a bit more. You know, a classic story. Fast forward a handful of years and I’m in the market for a new job, and lo’ and behold. Codecademy was hiring. I jumped at the chance to help others on a similar journey to mine, and be around people who wanted to do the same.

Did you always want to be a Senior Software Engineer?

Nope, I first wanted to be a pilot then, after that dream came back to earth, a historian, but I left that in the past. To be honest, I never thought I had any technical aptitude, even after a few years of programming professionally. I kept waiting for the day a real engineer would show up and out me as a fraud. Still do sometimes.

What are the best aspects about working as a Senior Software Engineer?

The most rewarding aspect for me is mentorship. I struggled a lot when I was starting out, and learned a lot of lessons the hard way. I always am happy if I can help someone else avoid mistakes I made.

Unfortunately it’s not as easy as just saying “don’t do what I did”. Mentorship is hard, really hard. Despite my desire to be helpful, I would be the opposite. I couldn’t communicate clearly, and I would get frustrated in general, and then frustrated with myself. That frustration would rub off on those around me and spiral from there. I spent a ton of time learning how to be patient and empathetic towards others and myself. Eventually it became something I felt great doing. Not because I find myself particularly good at it, but because I feel like I am the best version of myself while doing it.

What are the worst aspects about working as a Senior Software Engineer?

The amount of time you spend writing code is less and less. If you are a hands-on learner this can be difficult. With less time to practice new patterns or try out ideas it can feel like you are stagnating, but that’s not necessarily true. I try to set aside time to have fun with coding to stay fresh.

If you could make one piece of fictional tech reality, what would it be?

Lightweight Augmented Reality - but without a ridiculous wearable. I think we’ll see a complete paradigm shift in user interfaces in everything as we are no longer dependent on hardware.

Do you have any advice for the learners?

Imposter syndrome will never go away, so make friends with it, make it useful. Do not give up.

If you could make one brand new course what would it be?

Functional Programming (FP) with JS. FP is central to today’s FE stack. React, Redux, etc are all built on the concepts of immutability + pure functions. Even if they aren’t relevant to your work, understanding them makes you a better programmer.

FP is also very impractical sometimes, and I find myself refactoring for hours just so I can make my code read like a book (written by Dr. Seuss and completely unperformant).

What does a typical day look like for you?

Meetings start after 11 most days so I have a few hours in the morning to code. Usually I try to work on something that would be hard to make progress on in short stints, like a tough bug or a longer project. After that it’s off to stand up, followed by ad hoc meetings or pair programming sessions throughout the day. Usually the main part of my day is making sure other engineers are unblocked, by helping them work through a problem or fixing a bug that may have come up.