Attracting junior engineering talent has become much easier in recent years, thanks to the introduction of bootcamps. Bootcamps typically put potential students through a rigorous selection process before they undergo an intensive period of study, which is usually around three months.
During this time, they learn the basic knowledge required to succeed as an entry level software engineer. The most popular bootcamps have built strong relationships within the industry so that graduates can be quickly employed.
This is wonderful news for engineering leaders needing entry level talent. However, leaders who focus solely on bootcamp graduates risk missing out on exceptional potential hires who have taken an alternative route.
Such developers may have taught themselves how to code, rather than learning through a bootcamp. By attracting this group, engineering leaders can become catalysts for improving diversity within software engineering as well as finding self-driven, organized and resourceful new hires.
In this article, I’ll encourage leaders to create entry level jobs in order to benefit from non-bootcamp talent, and specifically advise on how to make your existing graduate schemes open to self-taught developers, how to take a fresh look at your junior engineer roles to determine if they are open to those who are self-taught, and how to decide on the number of entry level engineers that you can take on. We will go through these with plenty of actionable steps.
My experience as a self-taught developer
Brrrrrrrrr. My iPhone alarm clock rattled in the darkness. Eyes closed, I fumbled around to quickly silence the screeching noise before waking my family. It was 5am. Time to start coding before the baby would wake for their first breastfeed of the day.
It was the winter of 2018 and I had decided to teach myself how to code. After becoming a mother, I quickly realised that my job, which involved a lot of long distance travel, was no longer going to meet my current needs. I googled ‘work from home’ and found lots of jobs for software engineers. Having no idea what this entailed, I came across several bootcamp websites boasting images of happy career changers. Maybe I could do it too?
I couldn’t access a bootcamp because the best ones were in-person and the thought of commuting, managing breastfeeding, paying for childcare whilst also paying to study meant that it just wasn’t a viable option for me. I decided to teach myself instead.
It was a rewarding and also incredibly challenging journey. Now, if anyone asks me how to become a software engineer, I never recommend it. Simply because finding a job is so much harder being self-taught than it is coming from the best bootcamps, with their industry connections and graduate network to rely on.
I was desperate for entry level jobs, which are few and far between. I applied for all of the ones I could find and received many, many rejections. Self-taught engineers are viewed as somewhat risky hires in the market currently, but I argue that the risk/reward spectrum is misrepresented and such talent presents a great opportunity for the right engineering teams. For example, a few months after getting my first engineering job, I received an invitation from Google to interview. Whilst I struggled to get my first job, shortly after becoming a paid software engineer, I was almost immediately an attractive hire.
There are lots of talented self-taught developers struggling to get their first job. Engineering leaders can benefit from this talent, who, with a little bit of investment, could become highly sought-after engineers very quickly.
Creating entry level jobs
My first piece of advice to engineering leaders is to create entry level jobs. Without these, there is little hope of self-taught developers getting their first role and you won’t benefit from this amazing group of talented engineers.
Make graduate schemes open to the self-taught
Graduate schemes are often entry level routes into software engineering. In a market that offers so few entry level job opportunities, this could be a wonderful way of transforming an existing job route into one that is accessible to those who are self-taught. Currently, many engineering graduate schemes target recent university graduates. Wouldn’t it be great if graduate jobs were open to everybody?
In order to attract self-taught engineers, graduate schemes must be mindful that these candidates may have already gained significant work experience. As part of my job search, I interviewed for a graduate scheme and felt really deflated when during the interview I was tested on my basic writing and comprehension skills. After many years working in finance and investment, I immediately felt that this graduate scheme was not designed with career changers in mind. Unfortunately, at that time, there wasn’t another entry level job route offered by that company.
The marketing for such schemes is often not reflective of the diversity present in the self-taught group. These engineers can be career changers, they may not have completed a degree, they might be carers who are going back into the workplace – there are so many different situations to consider.
I recently came across a software engineering graduate scheme at Sainsbury’s that used fantastic language, making it clear that they were seeking both graduates and those with unconventional paths into tech:
At Sainsbury’s Tech Academy we know that everyone's background and journey looks different. That's why we're not focused on where you’ve come from. We care about what you can build and how you can help us drive innovation. You may be a recent graduate or you may be completely self-taught: all you need are some key skills and a drive to change the future of retail.
Are your junior roles entry level?
While searching for a job as a self-taught developer, I found the requirements of junior engineering roles were often out of reach. Such junior roles required commercial experience and were not designed for those seeking their first engineering job.
It was frustrating trying to understand whether a junior role was entry level or not, given that we do not have a strict convention for this in the industry at present.
In your engineering team or department, are your junior roles for those with existing commercial experience or are they truly entry level? If not, would it be possible to make some of your junior roles entry level? The job titles for such roles could be differentiated from normal junior jobs and the job descriptions could make it clear that they are opportunities for those who do not yet have commercial experience.
Is your team able to support an entry level engineer?
It’s important to consider how you can create a conducive learning environment for a self-taught engineer. This will determine if you can take one on and if so, how many.
Teaching myself how to code meant that I had to become adept at managing my own learning and knowing when to reach out for help, which are key software engineering skills. Therefore, by hiring a self-taught developer, you might be hiring someone who already has the experience and character traits that lead to excellent on-the-job performance.
Nevertheless, every engineer needs adequate support in order to perform. Some developers say that a ratio of three mid-senior engineers to every one entry level engineer is appropriate. This feels right to me, judging on experience, but this ratio depends heavily on the pressure that your team is under to deliver and the teaching experience of your engineers.
Supporting a new engineer requires time and patience. In my first engineering job I pair programmed almost exclusively for the entire first quarter. This meant that I was able to get up to speed with a completely new domain. I was lucky in that I had five senior engineers on my team, so by asking for one hour from each of them everyday, I was able to get almost a full day of mentoring.
When I paired, I was always the one leading and worked exclusively on tickets that were on the backlog and would be merged into production. I was learning by doing and not siphoned off to study resources before being trusted to deliver production standard code.
Whilst this may seem like a considerable amount of pairing, it meant that by my second quarter on the job, I was able to co-lead a significant deliverable and work autonomously. After taking a lot of time from my colleagues, I was able to give back and lighten the load of the team with my contribution. Investing their time and teaching me had paid off.
To support a new starter, I would advise engineering leaders to ensure that there are at least three experienced engineers who are enthusiastic about mentoring to support a new starter. They should be allocated considerable time to pair with that person and they may require support in knowing how best to do this.
I advise engineering leaders to create entry level jobs suitable for those who are self-taught developers, rather than just those who have completed a formal course like a bootcamp. The key takeaways are:
Maximize your existing graduate schemes by making them open to engineers with alternative backgrounds rather than just recent university graduates.
- Take a fresh look at your existing junior roles and if they are not suitable for entry level developers, create a new role for engineers without existing commercial experience.
- Determine how many entry level engineers your team and department can absorb in order to set your new developers up for success.
Many self-taught developers boast an enviable set of skills, but often struggle to secure their first job. When engineering teams do support them, they quickly realise the value of their investment.