Tell us about your career and education background. How did your path lead you to Codesmith?
My college degree is actually in math and physics because at the time I thought I wanted to go into research or a PhD program in either math or physics. I wasn't totally convinced, so I decided to take time off from being in school to evaluate that pathway.
While I was taking that time off, I started substitute teaching just to pay the bills and ended up really liking teaching. I ended up teaching high school physics for about six years. Teach for America brought me to Los Angeles, where I taught for four years at a public school.
How did you become interested in programming?
The last school I taught at wanted to pilot a computer science course and I was the only person at the school who had any inkling of experience with programming, so they asked me to teach it. I had never taken a computer science class, but in my physics degree, we learned a little bit of programming for number crunching, large physics calculations, and simulations. I remembered liking that work, so the idea of teaching that computer science course was exciting. In the process of lesson-planning, I found myself wanting to spend my free time diving more deeply into it.
That experience is what really got me interested in programming and making the career switch into being a software developer.
What made you take the next step from teaching computer science at a school to actually changing careers and becoming a software developer?
My background is in technical fields – math and physics – and I found myself missing doing technical work myself. Spending time learning about computer science in order to be able to teach that course gave me the itch to do more technical work myself. That's what initially got me thinking about making a full-time career in software development.
Why was a coding bootcamp the best way to achieve that goal?
When I first started thinking about transitioning into software development as a career, I wasn't necessarily going to go down the coding bootcamp route. I started to consider coding bootcamps because even though I was a classroom teacher myself, I actually found it really difficult to be a student in the traditional classroom. I knew that if I wanted to go into software development, it would be really helpful to have some coaching or mentorship as I learned.
I wanted a place to learn with other people who were interested in programming as well, but I also wanted the transition to be faster than going through a traditional, multi-year master's degree. I knew that even if a coding bootcamp was difficult in the moment, I would be able to get a lot out of it very quickly and be able to start my career as a software engineer in a really good place. To be perfectly frank, I guess I was a little bit impatient!
How did you find Codesmith?
Having been a teacher in the classroom myself, I was really impressed with how hard Codesmith worked to build community, both with the students who are currently studying there and with the beginners who were coming to that free workshop every week.
Did you research other coding bootcamps? What stood out about Codesmith?
I did look at a few other coding bootcamps, but to me, community building is really Codesmith’s secret sauce. They work hard to create the kind of environment where everyone wants to learn at a really high level, wants to push themselves to the limit, and is 100% there to support every other person who's going through the process. It really allows you to push yourself and learn as much as you can without fear that you might fall behind – you've got 20 other people who are there with you to support you along that journey.
Was it a competitive application and interview process to get into Codesmith?
As a former teacher, what did you think of the Codesmith teaching style? Did it work with your learning style?
There are so many things that Codesmith does right, pedagogically speaking. Most impressively, their entire focus is where it needs to be: on the students’ learning. Students work on projects that are intended to help them learn a certain topic, and these projects are large in scope and open-ended; they're typically too large to be completed within the allotted time. The ultimate example of this is the Production project, where students spend the last six weeks of the program working on large, cutting-edge software project of their choice. My team and I decided to create a library for testing WebRTC applications, and as far as we know, we were the first people in the world to do so.
Since the projects are so large and open-ended, the point is that students dig into it and work as hard as they can. It’s not about finishing the project because, in the real world, you're never finished. Instead, it’s about taking away an enduring lesson. At Codesmith, learning is the most important part of the process. Instead of telling you how to solve a tough problem, the instructors gently nudge you in the right direction. In the moment, that can be frustrating, but you're really learning the most when you struggle. It's by fighting through confusion and overcoming barriers that we become stronger as software engineers. That's really what engineers do in their day-to-day work.
This style of learning was definitely cultivated at Codesmith and it's something that they emphasize and articulate as much as possible. Going through the program helped me to articulate those principles to myself more clearly. Working in education for the past several years, I had some frustrations with aspects of the traditional educational system because I felt it was too task-oriented and focused on the solution instead of the learning itself.
How did Codesmith prepare you for the job hunt?
The job search mostly happens within the last few weeks of Codesmith, and then during the next couple of months after you graduate. Codesmith does mock interviews, whiteboarding sessions, resume writing workshops, coached us on negotiating salaries, and exercises to build our confidence as we go off into the job market and start applying for jobs. There’s also a Hiring Day where they invite companies from the Los Angeles area to do interview speed dating with the graduating class. It's not uncommon for many students to get called back for onsite interviews due to Hiring Day. After graduation day, once we’re in the actual job search, Codesmith did regular check-ins to see how we’re doing on the search.
Codesmith was always very open and receptive. If I wanted to talk one-on-one to the Codesmith staff, they were very open to that as well.
How did your first technical interviews go for you?
I thought doing technical interviews was fun. It was a little nerve-racking at the time, but I always find that once I'm actually in the middle of the interview, talking about a programming problem or some technology or something about the company, that the fear goes away and I just start enjoying the conversation.
One of the things that was interesting about interviewing with several companies in a short timeframe was getting to talk to various people working in different environments. It was good to hear about the company cultures, and really get a sense for the type of environment I wanted to work in since I was so new to the tech world.
What have you been up to since graduating? Tell us about getting your first job!
I found the Codesmith alumni community to be really helpful and supportive in the job search. Now that Codesmith has been around for about 2 years, there’s a pretty significant alumni network. We have a very active alumni Slack channel and people are pretty frequently posting jobs on that saying, "Hey, my company is looking to hire a full stack engineer. Private message me if you're interested." That’s how I ended up getting my first job at MedCircle. I went for the interview and I really enjoyed the company and the team.
MedCircle is an online health education company in LA. It's a very small startup company – less than 10 people on the whole staff.
I worked at MedCircle for about 10 months and got to build the team workflows from the ground up, which was pretty cool. About two weeks ago, I started a new job at Google in San Francisco.
Congrats! What are you now working on at Google?
My official title at Google is Web Solutions Engineer. I'm primarily working on internal software tools that the sales and marketing organization use to do their jobs better. It's pretty exciting because, at MedCircle I worked on a small, agile, flexible team. My team at Google is similarly small and flexible, but it's within the context of the Google organization, so I have access to all of these resources and incredible world-class software engineering.
How did you make the move from MedCircle to Google? What was that process like growing into your next job?
I actually interviewed with Google back in December 2016, during my first job search after I graduated from Codesmith and before I was hired by MedCircle. Evidently, if you interview and they don't hire you but still like you, then Google keeps your name on their short list. In August, I got a message from a recruiter at Google saying that they had a Web Solutions Engineer position open up and asked me if I'd be interested in applying for it.
How do you feel you've grown as a developer? Where do you feel you are in your learning experience?
No matter where I am in my career, I always want to push to learn and grow more. One of the things that Codesmith does really well, more than just emphasizing learning one particular technology stack, is that they emphasize learning how to be confident technical problem solvers and engineers. Even straight out of Codesmith, I was pretty confident in my ability to solve difficult software problems, even if I wasn't necessarily familiar with all of the technologies being used.
Now, having been in the industry for a year, it's given me a lot more depth of knowledge in the kinds of tools, best practices, and higher level problem-solving techniques that it takes to really write high-quality software that is robust, that lasts, and that does its job well.
I’m also growing in different contexts. Google is such a large company; in order to accomplish anything, I have to learn a lot about the infrastructure of the company as a whole. It’s been pretty exciting to see how software engineering can really work at a massive scale.
What's been the biggest challenge in your journey to becoming a software developer?
What’s most challenging about software engineering is also what’s most exciting: there’s basically an infinitely deep pool of things to learn. In order to really be able to perform at the highest levels, you need to be willing to put in the time and effort to keep learning, whether you're on the job or not.
I've put a lot of hours and energy into trying to improve my skills even outside of work hours. But as I said, there's always interesting problems to work on, always new technologies to learn, and always new products to imagine. Because with software, anything that you can imagine you can create as long as you're willing to stretch your imagination and embrace the possibilities.
Would you advise other bootcampers to go into a small startup first like you did?
I think it was the right decision for me, but it depends a lot on the person and on the company. What’s more important than the size of the company is really understanding the company's culture during that interview process. For me, I like having a lot of flexibility in what I work on and being able to work on different projects, so I knew that working at a small company like MedCircle would give me that. Being forced out of necessity to wear different hats really made me into a more well-rounded engineer. I’m more confident when I have to tackle problems in a variety of different domains.
For your first job after a bootcamp, choose a company that will bring out the best in you and a place where you can continue to learn at the same rate that you were learning while at bootcamp. That can really vary a lot from company to company whether it's small or big, so feel out their company culture and choose based on that.
You have a background in Math and Physics – is it true that you need to be “good at math” in order to be a great software engineer?
I took Codesmith’s Machine Learning class after I graduated, and that topic was exciting for me because machine learning does involve a lot of math. My background in math gave me a good foundation to learn more in that area.
However, you definitely don't need to have a background in math in order to be good at software engineering. In order to be a strong software engineer, you need to be a strong problem solver. Being good at math is just one possible way to acquire those problem-solving skills. My background in math has definitely helped me, but I don't think it's the only way to get the skills needed for software engineering.
When you look back at the last two years, do you think you would have been able to get to this point by self-teaching or going back to a traditional school? What kind of role did Codesmith play in your journey?
I honestly doubt that I would’ve been able to make it to where I am today this quickly if I had gone down a different path. If I had done a master’s degree, I probably would’ve gone back to school in the evenings and continued teaching full-time, which would’ve drawn out the process and not allowed me to focus all of my attention on learning as much as I could. That would have made the career transition a lot more arduous.
When you teach yourself, it's easy to end up stuck in your own bad habits because you don't know best practices and how to get to the next level. Learning within a community of other people who are passionate about software engineering means that you can all help each other. You can push your thinking to the next level and get unstuck when you hit a roadblock in your learning. You always feel like the work that you're putting in is reaping benefits, because you can see the growth day by day and week by week. That rapid growth is really what allowed me to reach my goals so soon after deciding to make the transition into software engineering.
What advice do you have for our readers who are considering a coding bootcamp like Codesmith?
Your time at a coding bootcamp is very short, so it's important to really squeeze the most out of the experience that you possibly can. It's not enough to just go to class during the day and then go home. It's really important to get to know your classmates and help each other grow. It's rare that you're surrounded by so many other people who are this passionate about the same goals.
Codesmith works so hard to build community, not only between current students but also between professionals by hosting meetups for local software developers. If you can really take advantage of that community, then that's where you'll see the most incredible growth in yourself.