As many families prep their kids for back to school season, some parents may also be considering...
Alumni Q&A with Apple Software Engineer Jenna Davis
We sat down with Codesmith alum Jenna Davis to discuss her path to Codesmith, the software engineering job search, and the why behind her career trajectory from smaller startups to larger companies like Dollar Shave Club and Apple.
What were you doing prior to Codesmith?
Just prior to Codesmith, I was working at an advertising tech company. It was my first job out of college. In college, I was studying pre-med, so I was on a very different path. And, I got to a point where it kind of hit me that I was going to be spending the next six to eight years in school, and was like, let me take a break for a bit. My first job was in customer success, essentially just helping other companies run their ad campaigns and troubleshoot errors that were happening with their ad campaigns.
It was my first introduction to working on the web and understanding how ads were getting rendered to the websites. I immediately became super fascinated by that, so I pivoted in that role to work deeper on the tech side. I pivoted to a malware team that was working to proactively track down malicious advertisers that were coming through our platform. Through that, I became more intrigued by how the web works. So, I spent my free time outside of work learning some basic HTML and CSS, and getting into that groove. I had some friends that were working on the engineering team at that company who were really encouraging me to continue going down that path.
I wanted to meet some other people that were doing the same thing – exploring engineering in early stages like I was. So, I started going to Codesmith’s weekly meetups, and then found out from there that they do an immersive program to actually make that career transition.
Why did you choose to attend a coding immersive program? And, why Codesmith over other immersive programs?
I got to a point where I knew I wanted to make a career out of it. I was just having so much fun, and the idea that it could be a career made me think, why would I not do that? I could either do it in my free time and try to do it myself, and take maybe six months to a year to really get up to speed. Or, I could really try and get as much time in in a shorter period of time with the immersive – doing it as quickly as possible and as intensely as possible.
I think the community aspect of Codesmith is probably the biggest benefit that you get out of it – being surrounded by other people that are equally as passionate and equally as excited about making this career switch with you.
What stands out to you about your time at Codesmith?
Being able to work with other like-minded, passionate individuals. We were all there from 8 a.m. to 11 p.m. every day – just spending every day, six days a week together. That made it really fun and really intense too to be part of this community that's working towards the same goal.
How did Codesmith prepare you for a career in software engineering?
For one, definitely just having the skillset – knowing how to code, how to build websites. That is probably the number one thing. But, aside from that, I think learning how to interview for these kinds of jobs. It's such a unique interview process that I think if I had learned coding on my own and tried to do this all myself, I, for sure, would have been stuck at the interview process. At Codesmith, I learned how to get my foot in the door and try to make those connections to even get an interview. And then, succeeding in the interview, knowing how to answer questions in the way that the interviewer is looking for, how to whiteboard a problem – that stuff was all super valuable too.
Are there any tips from the hiring program that stood out to you and have been useful in your job search process?
The thing that stuck with me the most, and I still think about it every time I'm getting ready to go through interviews, is something that Will told us about how you can think of interviewing as a set of squares. Your grid might be all gray, and as you keep interviewing, you change those gray squares to green. And eventually, the more you interview, you're going to have more green squares. You're going to see more of the same problems again. You're going to get more familiar with certain questions. And, you'll just keep getting better.
I think it's important to go into it thinking that it is going to be a process. I'm not going to go into my first interview and nail it. I mean, maybe, but it's probably not going to be the case. And, that's fine. It's a process of interviewing with a bunch of different companies and getting familiar with the interview process, but also learning about different companies and seeing what fits what you're looking for. Having that mindset of it being a process of finding what the right fit is and finding the questions you're able to answer well, and not having that mindset of, if you don't get the offer, that's failure. I don't think that's the right way to look at it. It's all a learning process. That's probably the biggest thing that has stuck with me.
And, what Eric taught us with negotiating offers and how to do all of that was also a really good skill to learn throughout Codesmith as well. That's also something that has stuck with me. And, I still reach out to him for help – he's been such a great resource and help with that stuff. That's a whole separate skillset to learn and not something that I would have known to do if I had just learned how to code and learned how to interview on my own.
What was the job search process like post-Codesmith?
The first company I worked at was a really tiny startup. I think there are pros and cons to what kind of company you go into as your first company out of Codesmith. Being a small startup, I was able to manage a lot of the stack. I was wearing a lot of hats – I was working on the front-end, working on the back-end, really able to spread myself as far and wide as I wanted to. So, it was a good learning experience to get familiarity with the whole stack and how to build a product almost from scratch since it was a really young company.
Then, from there, I was looking for more of a larger company, at least to a certain extent. I actually ended up pivoting back into the ad tech world. It was still a startup, but a larger company with a more established engineering team which is what I was really looking for. I think when you are in that environment, you get to learn a lot more from more individuals. So, I definitely learned a lot during that time working at SteelHouse, now MNTN.
I've jumped around a good amount, which I think is also a really cool thing about engineering. My goal was to absorb as much information as possible. And I think that's really what I got by working at these different companies. I've really just taken the trajectory of increasing the company size as I've gone on to different companies – going from SteelHouse [MNTN] to Dollar Shave Club, which was a larger company and a larger engineering team, and then onto Apple, which obviously is a large company. But, funnily enough, my current team size is a lot smaller. But, I think having all of this experience of working on different team sizes and working on different products has really given me the skills to be successful at a large company that might have these smaller teams. So, the biggest thing throughout my career has been finding ways to learn as much as possible from as many people as possible.
Tell us about your software engineering interviewing experience?
I think every company has a different approach to the types of questions that they ask. I think there are definitely some companies that will ask you three to four LeetCode questions and see how quickly you can answer them and get the right answer. That's one approach that you can take, and I definitely spent a good amount of time studying LeetCode questions and being prepared for that. Though, I feel like I gravitated more towards companies that didn't follow that LeetCode heavy interview process. I think being prepared to answer engineering questions in person is a skill that is good for any interview. And then, being able to speak to your experience and the skills that you have is also a huge part of it, too.
I think being able to talk through your solution in an effective way is probably what shines the most in an interview – at least in the interviews that I did. It wasn’t like just LeetCode as fast as you can get to that answer. But, know how to answer the question, and also talk through it so that they can understand your thought process. As an interviewer, when I interview people, I think that's the thing that I look for the most too – how is this person thinking through this problem, rather than just how quickly can they get it done? I think technical communication is the most important thing in terms of thinking about hiring someone that you're going to be working with. You want to make sure that they're not just breezing through questions and that they’re really thinking or at least communicating how they're thinking through solving a problem. You want a team member that you can collaborate with and work through problems together. So, I think that's probably the number one thing that I look for, and also the number one thing that I tried to showcase when I interviewed too.
What are you most proud of in your career so far? And, is there a particular product or project that you've developed that you're particularly proud of?
At Dollar Shave Club, we were going through a really big redesign of our application. I led the development of our new component library that would push forward this redesign of the application. So, I felt a lot of ownership for that. I think for the entirety of Dollar Shave Club's life, they had a very specific style and a very specific look, and I felt like I played a big part in that switch over to this whole new design of their products. They did a whole redesign of all of the physical products, too. But, having that digital redesign as well was just a really fun process and a really cool experience.
How do you bring your values to bear on your team, at your company, and in your community via engineering?
Engineering is an interesting place because there are a lot of personalities. I think it's important to exude empathy and understand that everyone has their journey through engineering and everyone started somewhere, right?
I think most engineers, if not all, have those mentors that they look up to early on. And I think one thing that's been important for me is, as I'm continuing to work as an engineer, I want to be that mentor to other engineers. It's important to give back what you got. And, it's fun as well building those connections with other engineers. Being able to help them along in their careers is something that's really rewarding, too.
What advice do you have for aspiring software engineers who are trying to break into the tech industry?
The best advice I think I can give is just to not give up if it's something that you're passionate about and something you enjoy doing. I think that is step number one – make sure that you enjoy it. I know that some engineers think about getting into it just because it sounds really cool, or because historically the pay is good. I think you need to be in it for the right reasons. And then, once you've decided that this is something you actually care about and are passionate about, don't give up.
Keep interviewing. It's a long process that can take months to find a role sometimes. As much as you can, keep pushing and keep interviewing. I think there's a certain level of it being a mutual match. And, eventually, you will find that match. It'll come, it's just a matter of time. It's almost like dating – you have to find the right person. It's a very similar process. It can take time, but I think it's always worth it in the end.
What are your favorite resources to stay up to date on software engineering best practices and the industry?
The number one thing that I look to for updates is Twitter. I have a Twitter account that's just dedicated to following people in the engineering ecosystem. I think it's a good way to learn about new tech because it's more conversational. So you don't just read about the new tech, you get to walk through conversations about people who have used it and tried it, and maybe didn't like it or did like it. You get a lot more perspective. So, Twitter has been my best friend in terms of keeping up to date with newer technologies.