My first day as a junior software engineer was one of the most mentally draining days of my life. The next three months on the job weren’t much better. I didn’t leave my house except to go to work or attend a work event. I remember thinking, What did I sign up for?

Read on to learn what your company needs to provide to avoid overwhelming situations for junior engineers and to make it easy for them to be a contributing member of your organization.

Being a junior engineer

I had been coding since I was twelve, but coding was fun. Working as a software engineer was something else. I felt like everyone else in the room was reading Shakespeare and I was trying to get through a copy of Goodnight Moon.

I was the first junior engineer that my company hired. Ticketfly – now part of Eventbrite – had a fantastic attitude about onboarding a junior hire, but it was still tough. My mentor built out an incredible Ember.js app where I had to solve small (I sure didn’t think they were small at the time) problems in JavaScript to make the tests pass. After that, I worked on a small app for fun applying the same framework the company used.

Ticketfly made a meaningful investment in my career, and also took a significant risk in hiring a new junior engineer. However, it paid off for them – and for me. I stayed with Ticketfly through two acquisitions and was promoted to senior software engineer. Also, I’m now a senior software engineer at Eventbrite.

With the lack of senior engineers available in the hiring pool, many companies are now hiring junior engineers – often hiring them right out of coding bootcamps – or creating apprenticeship programs within the company. This is a smart strategy to add talent to an engineering team, but while hiring an experienced or senior engineer adds a contributing member to your team, hiring a junior engineer is a long-term investment.

If companies rush to hire junior engineers before determining the company has the support system, resources, senior team members willing to mentor new engineers, and a realistic timeline for when a junior engineer will add value to the team – everyone suffers.

In the next sections I’ll describe some of the elements necessary for a robust junior engineering training program at your company:

Mentorship

At Eventbrite, we have outstanding support systems in place for our junior engineers. It starts at an orientation where you’re assigned a ‘buddy’ who helps you with anything from finding your way around the office to helping you set up your development environment. Eventbrite runs a mentorship program where we match mentees to a mentor based on what they want to learn. We also host weekly Code Labs where senior engineers teach a new topic each week. The Code Lab is a comfortable environment for the junior to ask questions without feeling incompetent.

Take away

Do you have a knowledgeable engineer willing to take the time to mentor and pair with the new hire? Onboarding and teaching a junior engineer is a considerable responsibility. It could take months before they’re entirely independent. It’s beneficial to determine whether you can afford to hire someone who might take months to ramp up.

Managing expectations

One of the incredible things about my current company is its focus on jumpstarting the careers of junior engineers. Eventbrite has hired more bootcamp graduates from Hackbright (an all women coding bootcamp) than any other company out there.

Some of our junior hires are the best engineers I’ve ever worked with. While each new junior hire took months to bring up to speed and train – the investment we’ve made in hiring more junior developers has paid off for Eventbrite. Most of the hires are still at the company years later, and are exceptional contributors to the codebase.

Take away

Before hiring a new junior engineer, think about your timing. Would you have time to mentor this engineer?

Pair programming

Having a culture of pair programming is a great benefit when hiring a junior engineer. One of the great things for me when I started out my career was that my mentor would pair with me when I got stuck on an issue, but he also encouraged me to go figure things out on my own. It was a great mix because I had support so I wouldn’t feel stressed, but I also was given the independence to learn and grow.

We practice driving and navigating pairing at Eventbrite. It helps to keep both members of a pair actively engaged in solving the problem. Based on my experience, it’s useful to hire several junior engineers at a time so they can pair together and support each other. It’s also helpful to the company because you can onboard and train them at the same time.

Take away

Try assigning an easy task to the junior engineer to take a stab at it first. If they run into problems, try pairing on the problem. Eventbrite buddies have regular check-ins with new hires to make sure things are running smoothly.

Training

Eventbrite hosts an incredible training session on React with our principal Front-End engineer, Ben Ilegbodu. The session walks you through building out an application in React and provides solutions in separate branches if you get stuck so that anyone can keep up with the pace. It’s incredibly welcoming and inclusive when you’re just starting out.

Most companies tailor their onboarding programs toward engineers with years of experience. This practice can be frustrating to a junior engineer. One of the great things that Eventbrite does to support junior engineers is to provide a buddy just for setting up your dev environment.

Another side of it could be online training. Eventbrite provides Udemy accounts for all employees. I’m continually taking online courses, and it’s fantastic to work at a company that supports continuing your education.

Take away

Creating a small repository with tests that your junior engineer needs to get passing can get someone onboarded quickly. Consider finding a training program if your company doesn’t have the resources to create one internally. Find an interesting conference that offers a workshop.

Wrapping up

My first company took a chance by hiring a junior engineer and I’ll always appreciate they made that commitment. While I was their first junior engineer, they had a strategy, realistic expectations, provided me with a strong support system, and invested in my learning. That’s what it takes to support a junior engineer that has a shot at becoming an asset to your team.

Do you remember your first day as an engineer? Share your funny junior engineering mistake in the comments below or reach out to me on Twitter @randallkanna.