We Are CallRail: How and why one of our engineers launched a software developer apprenticeship

Megan Tiu is a Senior Software Engineer at CallRail. We sat down with her to talk about her latest internal venture: a developer apprenticeship program targeted at finding and mentoring talent, giving opportunities to junior developers who want to advance their careers, and implementing an unbiased approach to hiring in tech.

Let’s talk a little bit about your background. How did you get into tech? What inspired you to pursue engineering as a career path?

Sr. Software Engineer Megan Tiu launched CallRail's Jr. Developer Apprenticeship in 2017

Before working in software engineering, I was a cook. A few previous jobs in that industry included mass prep in Turner Field’s kitchen, and running a university cafeteria. During that period, I was also in school full-time, completing a degree in Film and TV from Georgia State University.

Growing up, I didn’t really know software engineering was something you could do. I took an intro to computer science course as an elective in college and realized I really liked it and was actually pretty good at it. I discovered there were real careers in this field I could enjoy that would allow me to make a good living. I stopped cooking and went to a coding bootcamp. Once I was in the program, I knew this was definitely for me.

Do you have any mentors who have helped shape your journey in tech or who have influenced your approach to your work?

I’ve been very involved in the Atlanta development community, which influenced my decision to create the developer apprenticeship program at CallRail. The people I’ve met through various meetups and groups have been so influential for me as to how I perceive this industry.

As a woman in tech, there can be other challenges associated with this job, so it’s been very nice to have a support structure of people who have been going through the same things. I’ve had the strategy of getting micromentoring from others, instead of sticking with one specific mentor. For example, if I know a certain person knows a lot about management, I’ll go to them to get advice on how best to solve leadership challenges.

My entry into tech was kind of jarring, in that I went from coding bootcamp to a full-time job that was very demanding. I was on a team of only two developers making multiple production applications. It was extremely difficult to operate at a level of independence that was far above my actual experience while performing at such a fast pace. I learned the hard way that this wasn’t the best path for a junior developer, and my senior peers helped reinforce that better options were out there. That experience has influenced the program I created –– I’ve been trying to make a better way for new developers to advance in their careers.

You’ve been passionate about mentoring and educating others in the tech world for a while now. Can you share how your involvement with local programs like Rails Girls ATL brings further purpose to your work?

I’ve been one of the co-organizers of Rails Girls ATL for a couple of years. That has been so rewarding because I get a very specific outlet to help other women and marginalized people enter tech. I’ve taught workshops and tutorials on basic programming concepts. Being able to teach and help grow others is an extremely rewarding thing for me. That’s why I love our apprenticeship program –– I get a similar outlet at work and I get to give people paid positions to start great careers off on the right foot.

Be sure to also check out our Women in Tech feature on CallRail UX Designer Ni Ha.

The junior software developer apprenticeship program at CallRail that launched in 2017 was your brainchild. What inspired you to create this program?

Through being involved in the development community I’ve met a lot of junior developers and people coming out of bootcamp programs that found it difficult to get started in the industry. There are so few junior developer positions available now. People want to hire senior engineers who are ready to go day one, but, of course, there are no senior engineers without growing up the juniors. Seeing the need for junior positions in Atlanta was what drove me to start the apprenticeship program here.

How did you go about choosing from the applicants who wanted to be a part of this program? What criteria did you use to determine fit?

We had a three-stage interview process. In the first stage, people filled out an application that had questions to gauge how they thought about problems as well as their level of interest. These included things like a difficult programming problem you’ve had and how you overcame it or asking them to describe their favorite part of development. Then we entirely anonymized the applications. We only looked at the answers submitted and evaluated the people as a list of their answers. That was really effective in judging their responses without bias.

From there, we chose a percentage of applicants to complete a code challenge. They submitted through GitHub, but we had a script that totally anonymized them for evaluation. At that stage, we measured how comfortable the candidates were with Ruby and how they broke down the problem we gave them.

For the final stage, we selected the best of the code challenges and gave those people a final interview, either in-office or over Skype. That was the first time we were able to associate a name and a face with their submissions.

During the final interview, we evaluated them with a technical portion of the interview and a culture fit segment. We talked through their code challenge submission and were able to ask them questions about their work. From there, we hired two fantastic apprentices. We’re really proud of not only the quality of candidates we got, but also of how they’ve done since being here.

Talk a little about the program structure. What were apprentices required to work on, did they move from team to team, and were they given evaluations at any point in time?

There are two phases of the program. In the first phase, they are doing learning sessions on things like object-oriented programming and how our system works. They’re given a series of tasks to help them ramp up, starting with a CSS change and moving up to doing features on their own. In that stage, I, as their mentor, is working with them one-on-one or even the three of us as a group. They pair-program with each other as part of that first stage to get the experience of talking through problems with another developer and thinking out loud, which is a difficult skill to develop.

The second phase is a team rotation. The apprentices are able to get experience with different approaches to working, types of projects, and leadership styles. They get a dedicated mentor, who was myself in this last round. We did one-on-one’s on a weekly basis so I could answer questions. As part of our engineering structure here at CallRail, we have role sheets we give to them going over the outline we expect from our Junior Software Engineers, and they are required to have checked those boxes to be able to be hired on with us at the end of the program.

What was your ultimate goal with launching this program?

Ultimately, the biggest goal for me personally was to create more opportunities for more people that need them. CallRail is a fantastic company that I genuinely love to work for and we have the resources and experienced developers who are ready to help other people grow. This is a great way to not only give more senior developers that outlet, but to help junior people successfully enter the industry.

Additionally, another goal of the program is to give apprentices an idea of what kind of work they like best. Perhaps they’ll end up leaning more towards the front-end or back-end of the tech stack. That applies here at CallRail and to their careers as a whole.

It’s about not just growing CallRail, but growing a great community of developers.

How do you evaluate the success of an apprenticeship program?

None of our team had run an apprenticeship program before launching this project last year. While doing research to inform the program’s structure, I was able to speak with a lot of people who had the experience, but none of us knew exactly what to expect with our specific model. We did know ideally in the end we wanted to hire apprentices as full-time engineers, and we did. So overall, we counted this first round a success. But we also observed lots of things that will help us run it better next time.

Feedback has been a constant part of this process. After the interviews, I met with all of our reviewers to find out how the process went for them and what we could change to make it better. That’s also what we did at the end of the program. I met with the team leads as well as with the apprentices themselves to see what we could improve. In the next round, we’ll have much more defined goals going in–– for ourselves, and for the apprentices.

How does a program like this contribute to the evolution of the tech industry as a whole?

As a woman of color in tech, people often ask me how to bring more diversity into their teams. Apprenticeships are usually the answer I give, even before I was able to start one.

There is an overwhelming number of junior engineers who are women and people of color. In order to have more diverse teams and create better overall culture, you need to give people opportunities to start. This is why we felt it so important to anonymize our entire interview process. We were able to remove as much bias from the review process as possible, truly leveling the playing ground and giving everyone an equal shot. We did end up hiring apprentices belonging to marginalized groups and because of our anonymous interview process, we knew that they were absolutely the best candidates we had.

Further, I think if more companies do apprenticeships, they will not only help their companies, but the development community as a whole. Our apprenticeship is very focused on learning and growth, which is something I’m proud of. I think there are stereotypes that the development world is cold and hostile. But it doesn’t have to be, and that’s changing a lot. Providing more growth opportunities and focusing more on including everyone, instead of just the “best” will help grow engineering as a whole.

What have you learned personally from championing for and overseeing this program?

I’ve learned a lot about how to be a leader. Running this program, I’ve collaborated with people reviewing applications, team leads, product owners, but especially the apprentices. I’ve gotten so much firsthand experience with helping other people on a deeper one-on-one level. Before, more of my experience had been with shorter-term mentorship. This was eye-opening in terms of how I can shift my own behavior and how I can change the way I think about different problems to better serve the people that need my help.

Will there be a second round of this program in 2018? If so, how and when can people apply?

Yes! We will be conducting a second round that we’ll be accepting applications for in May, with the goal of concluding the program around November. If you’re interested in applying, keep up with our blog for an announcement when the application process begins.

In the mean time, if you are looking to join a tech company full of entrepreneurial employees who see the big picture and understand the problems we solve, we’re hiring. Drop us a note!