From Code School Grad to Engineer

I have spent the last nine months transitioning from the K-12 education space to the tech world. The ride was challenging so I want to outline some of the steps I took to help me make the transition from code school graduate to engineer.

I could not have made such a sweeping life change in such a short period of time without first, my wife who never lost faith and kept me disciplined. Second, the Turing School helped me build a skill set that made me legitimately desirable for employers. Third, my Turing classmates who helped me learn and brought out the best in me. And finally, all of the friends I made along the way who took the time out of their day to email, chat on the phone, and get coffee. These folks could easily have ignored me, but that is the beauty of the tech world. People are interested in each other and this gives me great hope for the future.

Research

Researching can be especially challenging at first when you do not know a lot about the tech world or what kind of job you want to do. The only way to learn more about that is research. So the good news is that research gets easier the more you do it. 

For me, the most fruitful places to look were job boards like Indeed and AngelList as well as Built in Colorado. Primary sources are also very useful - what do companies say about themselves on their own websites? My research questions were:

  1. Which companies use technologies I am interested in or already know? 
  2. Which companies operate in a domain I am interested in or already know a lot about?
  3. Which companies appear to be hiring?

Once I find a company for which the answer to one or more of the above questions is yes, I would switch over to LinkedIn and start researching people who work at those companies. I would look at their career histories, their educational experience, their personal blogs, and their twitter accounts. This is a recursive process, so once I found one person, I would then perform the same operation on any other interesting looking company on their LinkedIn page. I spent the money to get the first tier pay account because I was going way over what the free tier quota. It was worth the investment.

I used Email Hunter to find people's work email addresses and then I'd add them to my outreach spreadsheet.

Outreach

The purpose of outreach is to meet people, learn about the work they do, learn about their company, and hopefully learn about employment opportunities. The last point is implicit in the process and I went through pains during my own outreach efforts to avoid bringing up questions of employment directly. Emailing a stranger asking for a job is a good way to get ignored. Instead, think about outreach as asking strangers for advice and to share experience.

I was not diligent about tracking outreach as a Turing student, but from January to March, when the job hunt was my primary concern, I sent 106 emails to people I did not know. That comes to about 2 or 3 emails every single day, but it is important to point out that I typically batched my outreach into chunks. So I may go a few days without doing any outreach and then do a whole lot of outreach on another day. Here is an example of a typical email:

Hello << insert person's name >>

I am new to Denver and the world of software development. I found your contact information after researching << insert company name >>. I'm interested in learning more about your work and the tech scene in Colorado in general. << Optional sentence about why specifically you are interested in this company or person >>.

I recently completed the backend engineering program at the Turing School of Software Design. Before Turing, I spent 11 years in the K12 public education space, most recently as an assistant principal in southwest Denver. I am currently doing contract work for a company called << My Awesome Contract Company Name >> where I work on a Rails application that helps << what we do >>.

Could we grab coffee or get on the phone next week?

Cheers,

Jesse

I used formMule, written by coding genius Andrew Stillman and maintained by my friends at New Visions for Public Schools, to mail merge into the above template. So my actual process was to add names to a spreadsheet as I researched companies and then once I ran out of stamina, I'd hit send and formMule would send out all my emails for me and leave me a nice timestamped paper trail (in a Google Sheet). 

As previously stated, the purpose of outreach is to meet face to face or at least have a phone conversation and thus establish some sort of relationship with the subject of your outreach. Transition as quickly as possible to in person communication by quickly suggesting times and locations for meetings so the person just has to say yes for the meeting to happen. It is important to always have a positive tone and that you promptly respond when a person gets back to you.

If you are doing this right and live in a place as awesome as Colorado, you should expect a 30% response rate to initial cold outreach. So if you send one email a week, you are likely to get between 1 and 2 responses per month. Send 10 emails in a weeks and you potentially have between 1 and 3 coffee meetings the following week.

Coffee

The purpose of getting coffee with people is to build relationships. The best way to do this is to show genuine interest in the other person's experience. You can show interest by asking questions like:

  • Are you originally from << this location >>? If not, what brought you here?
  • How did you get into tech?
  • What are you working on?
  • What are you proud of?
  • What do you like most about your company?
  • How do you decide what technologies to learn and use?
  • What advice do you have for someone in my position?

Each of these questions should lead to interesting answers that can prompt additional questions. If it were not so stressful trying to find work, the process of getting to know people and hear their stories would actually be fun. Notice what question is not on that list - Do you have a job for me? Again, that idea is implicit in the whole coffee arrangement and does not need to be stated. If you are asking the right questions and being a good person your coffee mate will gain an interest in your well-being and will either bring up employment opportunities or point you in the direction of promising leads.

Send a follow up thank you along with any additional questions or follow up that may have come from the meeting. This goes for every stage of the hiring process - always send thank you emails like:

Hello << person >>,

It was great getting a chance to talk today and learn more about x, y, and z. I'm looking forward to the next time we get to connect!

Best,

Jesse

Or as follow up from an interview:

Hello << person >>,

It was great getting a chance to talk today. I appreciate the opportunity to share some of my experience and I enjoyed learning more about the exciting work at < company name >. Thank you for your time and consideration.

Best,

Jesse

 

Formal Application Process

As you network, you will learn more about job opportunities before they make it onto job boards. I rarely submitted applications without knowing a person at the company. It was even rarer that I got a response for that kind of application. But there will come a point where you will learn about a job opportunity and have a connection with a person at that company. At that point you begin the formal application process which looks different depending on the company.

For small companies it may be as informal as declaring your interest in an email. For larger companies it might mean completing an online form. Once you have started the formal process, you will engage in some sort of application screen. In my experience the bigger the company, the more structured their screening process. On one end of the spectrum I got a take home challenge, followed by a non-technical interview and then an offer. On the other end of the spectrum I've been through multiple rounds of technical and non-technical interviews, tech challenges, and even tests.

Informational Interviews

Informational interviews should be really easy for you at this point because that's basically what you have been doing during your coffee meetings. These conversations in my experience typically happen over the phone, though they can also be in person, and last 30-45 minutes. During informational interviews the applicant is typically asked to talk about their history as well as their interest in the company.

The more coffee meetings you have had the better you will be at telling your story. Your story should be tight in the sense that every point you bring up should convey a message or idea about who you are to the interviewer. For example, in all of my informational interviews I talked about moving to Denver to start a family - I wanted the interviewers to know that family is very important to me and therefore they can count on me being reliable and hardworking. I also brought up experience I had building javascript tools for principals in the New York City school system. Again, I wanted to show that I had experience in technology and that my switch from education to technology was deliberate. 

When asked what I was looking for, or why I was interested in this company the answer was basically the same. In my job hunt I had three criteria I was looking for:

  1. I need to be in Colorado, so either a company with offices in the state or with remote work options.
  2. I need to be able to support my family.
  3. I need this job to be a good launch point for my new career. That means I'm working with interesting technologies that are in demand, I'm working with other smart people who care about the craft side of software development, and I'm working in a place that values learning.

At the end of the informational interview, you may be asked how much money you are looking to make. The best way to answer that question is to not answer that question. I typically said, 'well, I know the market for this kind of position is somewhere between x and y.'

You will also have the opportunity to ask questions about the company. Here were a few of my go to questions:

  1. What are the current technical challenges the engineering team is facing?
  2. What accomplishments are you most proud of?
  3. What brought you to the company?

Technical Challenges

If all goes well on the informational interview, you may get tasked with completing some sort of technical challenge. These range in complexity and are a great indicator of the expectations the company has for its engineering talent. I had technical challenges that were shockingly easy and I had others that were brain-bendingly difficult. The fact is you have to go all in on the tech challenge. Put yourself in the employer's shoes. If you are looking at two challenges, one that meets the specification and one that vastly exceeds the expectation by anticipating clever edge cases, demonstrating high degrees of thought, organization and attention to code quality, and accompanied by first rate documentation... well I don't think I need to say more about this point.

I was tasked with a challenge at one point that involved technologies I was not very familiar with. I could have given up and just never gotten back to the employer. Instead I went about learning the technology necessary to complete the challenge. I did not end up getting the job, but I improved a lot on that specific technology (which subsequently has helped me) and I built up my own confidence that I can learn anything I want.

Often times companies will not give any feedback on challenges, but sometimes there is formal feedback as part of the interview process. In that case, be gracious, humble, and accepting of feedback. You want to show that you are coachable, that you do not think you know everything, and that you would be a great teammate. 

In Person Interviews

In the tech world in person interviews may involve pairing on a problem and or the dreaded whiteboard interview. You have to keep in mind that if a company invites you to their office, they want to hire you. They are just looking for confirmation that you would be a great employee. Bring a notebook and a pen, a few copies of your resume (do not assume that anyone has looked at your resume, 9 out of 10 times they have not), and dress in a way that makes you feel confident and comfortable. For me that was typically one level up from what the company dress culture was like (unless otherwise instructed).

Pairing

My strategy is to be friendly, ask questions, and listen to suggestions. The objective is to demonstrate that you would be a great person to work with.

Whiteboard

Whiteboarding gets a bad reputation. Coming from education, this feels actually pretty natural to me. The thing to remember is that whatever the question is, you are not going to know the answer right away (at least I never did). The questions are typically tricky and may have multiple layers that you uncover as you dive deeper into the problem.

To be successful, be humble but also confident. It is fine to say something like "I don't know exactly how I would solve that yet, but my initial thought is that I'm going to need some sort of recursive function." It is not okay to just freeze, not say anything, and frantically write all over the whiteboard. Narrating your thoughts is a good way to approach this type of interview. For example, "I think the best place to start is by handling this first part of the problem. So I will...." It is okay to ask questions. Just take your time, be clear, and do not panic. 

I did not get any whiteboard questions that I could not have answered after twelve weeks at Turing.

Conclusion

The final point I will make is that the job search sucks until it doesn't. Rejection is hard and it will happen. But, if you stay disciplined, meaning you continue to learn and meet new people, you will find an opportunity that is right for you. Right now it appears like my big gamble has paid off. I'm starting a great job and hoping to move my family one step closer to our dreams.