This month we’re featuring Kip, an Engineering Manager on Codecademy’s Learner Experience team. Kip has a deep curiosity in and a solid practice of creative problem-solving, which makes them a highly effective manager and programmer.
Tell us a little about yourself.
Hey! I’m Kip, and I’ve been programming since I was 8 years old. I first got into coding as a way to build video games (since I wasn’t allowed to play any), but I learned along the way that what I really love doing is building cool things with code, especially if they make people’s lives easier or more creative.
How did you end up working for Codecademy?
I’ve been a longtime user of Codecademy, and when my spouse and I decided to move to New York (where Codecademy is headquartered), I was thrilled to learn that Codecademy was looking for more engineering managers to join the team.
Did you always want to be an Engineering Manager?
Definitely not. I didn’t even know I wanted to be an engineer until I graduated high school, and even then, I thought of coding more as a hobby than as a career. It was only after I had started working full-time as an engineer that I realized that I really enjoyed it. When I was first asked to step into a management role, I was really dubious that I’d like it as much as I liked building software, but after a few months of actual management under my belt, I found it even more satisfying than being an engineer. That was around 6 years ago, and I’ve never looked back.
What are the best aspects of working as an Engineering Manager?
There are a lot of great aspects. For one thing, I’m constantly surrounded by smart and motivated people; I learn something new every day from my team and my colleagues. I also get a lot of satisfaction out of seeing the people I work with learn new things or take their skills to the next level; I think of myself as a coach for the engineers on my team. I naturally lean towards being a “jack of all trades”, which works really well for management; I never do the same things every day, so every day is an opportunity to get a little better at something new.
What are the worst aspects of working as an Engineering Manager?
I have two pain points when it comes to management: time and results.
As a manager, I spend most of my time in meetings. This is important because one of the main responsibilities of engineering management is to help the right people communicate, but it can be pretty hard on my attention span.
Results are also a lot harder to measure as a manager. When you’re an engineer, your results are pretty obvious: you sit down for a day (or a week or a month), and by the end, you have a new feature that’s available to the world. As a manager though, my job is to clear obstacles for my team, who are then doing the actual engineering work. There’s very little I can point to and say “I built that”, and that makes it hard for me to feel like I’m actually accomplishing anything.
If you could make one piece of fictional tech reality, what would it be?
I think my top wish would be for some sort of telepathic tooling. I’d love to have the ability to capture my thoughts into a code editor or a document, even when I’m not actively in front of a keyboard.
Do you have any advice for the learners?
Build things. There are two traits that are consistent across all of the successful engineers I’ve worked with: problem-solving ability and creativity. The easiest way you build up those skills in a coding context is by diving into projects that you define. The things you tackle don’t have to be huge scale (and when you’re just getting started, I’d recommend that you start small), but by adding new features, you will naturally be stretching your creative coding brain and learning how to fix the problems you create (which is a natural part of building things).
The Challenge Projects in Codecademy are a great jumping off point if you don’t have an idea of your own just yet (or if your idea is too big to tackle right away); I’d encourage deviation from the tasks we suggest to build the features you’re most interested in.
If you could make one brand new course what would it be?
“Problem Solve like a Programmer”. I’d love to work on a course that focused on the problem-solving skills you need as an engineer. There’s a big leap from “knowing how to write code” to “creating the end result you want via code”, and I think we can start to bridge that gap through Codecademy.
What does a typical day look like for you?
My days usually start at 6:00 am, with my alarm going off. Several snoozes later (usually around 6:30), I actually get up, get ready for the day, and spend some time with my spouse (who works evenings), and our dog & cat.
By the time I get into work (usually a few minutes before 8), I desperately need some caffeine, so my first task of the day is always to drink coffee. I then have 2 hours of focused time, which I usually spend on tasks that require a lot of thought. Sometimes these are engineering-related like “fix an issue with the mobile app” or “review the code change that our new engineer made”, and sometimes it’s a little more general like “understand what projects are behind and why”.
Starting at 10, I have meetings for most of the day: a mix of coordination sessions, check-ins the engineers on my team, and touch bases with other managers. These are opportunities to make sure I’m up to speed with what the team is doing, what other teams are working on and how that affects the engineers on my team, and how each individual is feeling about their current work-life. This is the way I spend most of the day until I head out around 5.
I get some breaks from meetings throughout the day; lunch is usually an opportunity for me to talk with folks across the company and hear about what’s new in their lives. And on an average day, I have an hour or two without meetings, which I use to wrap up any tasks that still need attention today. I use the small gaps between meetings to make sure I’m responding to emails and Slack messages, and that I’m keeping track of all of the tasks I need to do down the road (along with when I need to accomplish them).
When I’m home, I still work on coding projects, but they’re usually unrelated to work. I use coding as a creative outlet (as well as other outlets: I’m learning to play saxophone, for example), so I try to keep a little energy to work on the projects I care about even after a full workday.