We checked in with Codesmith alum James Kim recently to discuss life almost a year after graduating from the Software Engineering Immersive! Learn about James’ career trajectory from mechanical engineering to software engineering, experience in the part-time program, and career as a software development engineer at Amazon ⬇️
As a mechanical engineer, I wanted to leave my job at the lab because development was super slow. There was no real end-user, except for a future project that would become helpful in a distant future. It was research, so it could have totally bombed and no one would have used what we produced or the data we got. This was all during the pandemic, and I couldn’t get a new job because a lot of places were looking for experience that I just didn’t have as a new graduate. So, it was two years of rejection from job applications and interviews. There were a lot of close moments. Ultimately, in 2021, there was a job I almost got, but a person that interned there before me got the job instead. That was the turning point for me.
There were multiple factors that led me to software engineering. My cousin, who is also a Codesmith grad, pushed me to do software engineering - but I always pushed back because I was scared of code. I didn’t like seeing all those lines of code on one screen – it kind of freaked me out. So I said, ‘no, I don't want to do it.’ After that last rejection, I took a vacation to Hawaii. That was when I realized that I needed to get a hold of myself and find another career path because mechanical engineering wasn’t working for me. Ultimately, what led me to software engineering was one of the Codesmith free lectures. I was like, ‘oh, this is kind of cool, let me give it a shot, this is not as intimidating as I thought.’
I started with CS Prep, not JavaScript for Beginners, because I had some coding experience from mechanical engineering. I had studied MATLAB and a little bit of C++. So, I thought I would start at CS Prep and see if JavaScript was for me. And if not, then it's just a good two weeks of learning. When I got to software engineering, the thing that interested me the most was problem solving. All I do is problem solve now - and that's interesting.
I came to Codesmith because it was a really hard recommendation from my cousin and, when I went to CS Prep, I felt like there was a lot of hard learning being done. It wasn't like high school, where you are given the answer. For me, the hard learning was the key point that I took away, and the fact that I would have to work my butt off to pull it off. I knew that this program would help me to steer my learning path and my learning goals at the time.
We built DenoStore. It's a GraphQL caching solution in a Deno runtime. Basically, we created this middleware-esque tool where we can store commonly called API calls. And, the thing that really makes our tool unique is it’s developer friendly. We give the control to the developer of what they want to cache and what they don't want to cache, and how long they want to cache it for.
So, if a developer knows that there's an API call that doesn't change often, they can just cache it forever. But, if there's an API that changes every day, every 30 minutes, or every month, then they can set that time for that cache to expire. That was the main intention for us – that we wanted the tool to be easy to use, but also very developer friendly so that the developer had control over what they wanted to do with the data.
The key thing for me was giving the lectures. I learned a lot preparing for them, and I also learned a lot by going through them. As someone who's an introvert, it's hard for me to stand in front of a crowd and be very articulate in what I say. The fellowship helped me get over that. I wouldn't say I'm perfect, but I got better at it over time. I did what I could to get as much information out and come to the point where the residents understood the content. That helped my technical communication a lot.
During my job search, Amazon was reaching out to people every week because they were on a hiring spree. Once I passed the phone screen, there was an online assessment – it was two hours and covered two algos and some behavioral questions. I passed that, and then I moved on to the technical phone interview. That was about an hour, and I passed that, too. I went to the final four hour interview, which was back-to-back-to-back. And I got the offer.
There were a lot of algos, a lot of behavior questions relating to the leadership principles, which, if anyone's applying for Amazon, are very critical. And, then time for questions for the Amazon interviewers. You’ll probably have time to ask questions in every interview, so I think it's a very critical time for you to show interest in the company and show the type of person you are. Because if you don't have questions, they question you. By asking questions about the company or how you might fit in, it will help you choose the company that will fit you and also shows your interest in a career at that company.
Every day I have a stand-up meeting, and then depending on the priority of the project that I'm working on, I might have another meeting just for syncing up and getting on the same page. Then it's just coding for the rest of the day. There are ad hoc calls. Sometimes something breaks, and I’ll have to jump on a call with someone to either help them fix it or to understand what the situation is. I wouldn't say every day is the same here. A lot of days are different.
Software engineering is hard. And, I will say, not one day is really easy. So, for the people who want to come in, and this might make people shy away, but don't do it because of all the TikToks or Instagram stories that you see with influencers who are also software engineers showing off their lives. And they're like, ‘oh, I only work like two hours a day.’ The reality is, that's not going to happen to most people. And, it's not easy to learn so many technologies in like three or nine months, depending on the program you go to.
Make sure you have the goal of really changing your career. Because if you have that, then going through the program is that much easier. You know why you want to leave your previous career and that motivation will keep you pushing forward until you get to your destination. It will keep you motivated so that you’re not finishing the program asking, do I want to go through the job hunting process? Especially in this time where job hunting is not so easy because of the current market. Those motivations are more critical. So, I would say stay motivated and remember why you left.
Right now, the thing that I'm most proud of is being able to earn trust from my teammates at Amazon. I have come to the point where they come to me for questions, and I'm able to answer them. For me, six months in, that's something I feel really good about – to be able to be a helpful team member and answer questions and contribute to projects in a big way, and be able to be relied on for these bigger, critical tasks. So, it's not a huge thing, but I am proud of that aspect of being able to be trusted by my teammates.