The road to my first web development job

The road to my first web development job

What I learned about myself, and about the state of the job market in 2023

Now that the contract is signed, I can announce publicly that I just got my first job as a web developer! This is a goal I've been working towards over the last two years, and to say that I'm relieved to have made it this far would be an understatement.

Compared to many people, my path was incredibly smooth. I've been working in tech for a few years and was able to get some software development experience in my last job, so I didn't face the same hurdles as a new grad. In terms of education, my background is in physics, which might not be as relevant to this career as computer science but is still not bad. And due to some, ahem, 'unconventional' living circumstances (I've been living in a van for the last three and a half years) I was able to save enough money to quit my last job and travel while working on portfolio projects for the last ten months.

Here's a timeline of the steps I took to secure my recent offer:

ActionsPeriodExamples
Online tutorials and training courses (while working)July '21 - May '22Django, SQL, Docker & Kubernetes courses on Udemy etc.
Portfolio projects (while travelling in Asia)May '22 - Jan '23Completed one project with Django and one with Flask & React
Job search (travelling in Asia & returning to France)Jan '23 - Mar '23Applied to 50 - 60 jobs on various platforms

I also spent countless hours during this time reading articles, watching videos and browsing forums about all aspects of software development, from best practices in architecture and design to demonstrations of new libraries or frameworks.

As for why I decided to go down this path (pursuing web development rather than sticking with my previous job), there were two main reasons:

  1. My interest in the technology and the products one can build with it. Web development is a dynamic sector, with new frameworks and tools coming out all the time and a breadth of applications limited only by our collective imagination.

  2. My desire for flexibility concerning remote work and location. I was previously working in a much more conservative, slowly-evolving sector and the opportunities for remote work were very limited, which would have meant staying tied to a major city. Since I love the outdoors and especially the mountains, this gave me the push I needed to up sticks and dedicate myself to the pursuit of a remote job.

I've always been an avid learner, so finding the motivation to stick with the training courses and then to keep building my own projects was easy. I certainly don't regret the choices I made during this time, and the fact I got to fulfil another lifelong goal and spend time backpacking in Asia made it even better.

Actually getting a job on the other hand was hard going and often demotivating. While I never considered giving up on my search, I was convinced at times that I would have to compromise and accept a less desirable job while continuing to work towards my long-term goal. From my time spent perusing r/recruitinghell on Reddit I know that 50 - 60 applications over two and a half months won't seem like much to some people; I think it was more the uncertainty and the knowledge that it could take much longer which sapped my motivation. Especially at the beginning of my search, in January and early February, I received a lot of rejections and almost no calls. The only thing which encouraged me throughout that period was interviewing with an interesting company where one of my former colleagues works; he got me a first interview, and from there things went well all the way to the final round with the CEO. Unfortunately, they ended up going with another candidate, but the hope kept me going for quite a while!

Things changed around the end of February, corresponding to the end of the half-term holidays in France. Recruiters seemed to kick into gear at that point, and I got dozens of calls and e-mails every week. I also changed strategy around that time, dropping LinkedIn applications completely and focusing more on start-ups and scale-ups advertising on welcometothejungle.com. I found these smaller companies to be much more responsive, and they tended to align better with my interests and preferences anyway.

Having never been through a proper technical test before starting my job search, that was the part of the process I was most worried about...and I was right to be worried. It turns out that while I quite like the kind of test which involves a take-home project with a follow-up interview to discuss my design choices and understanding of the code, I absolutely hate live coding in front of an interviewer. The stress gets to me and I end up making stupid mistakes and nonsensical choices. The worse it goes, the more embarrassed and stressed I get and down it all comes in a vicious spiral of bad code and incoherent explanations. Timed Leetcode-style tests are somewhere in the middle: less stressful than live coding, but still enough to give me sweaty palms and deep anxiety.

I don't think there's any argument which will ever convince me that live coding exercises are a good interview technique. As I said, I have some software development experience in a professional setting from my last job and I know that that's just not how coding works. While there is usually time pressure in a real project, it's on the order of days rather than minutes and if you're not feeling the spark of inspiration for a particular problem at a particular time you can always work on something else while your subconscious chips away at the problem in the background. Additionally, while you're working on a solution you don't have someone else interrupting to ask why you're doing it this way or what your understanding is of that construct. You don't feel bad looking at documentation because you're worried the interviewer is judging you for your lack of knowledge. These kinds of exercises are just not representative of real day-to-day work as a software developer.

The other thing which shocked me in my job search was just how much time some companies are willing to spend asking the same kinds of questions over and over and having people interview you with whom you'll have little to no interaction while working there. A typical hiring process in 2023 looks something like this:

  1. Initial call with the hiring manager/tech lead to talk about your experience, interests, motivations, salary expectations and knowledge of the company (1 hour).

  2. Take home technical exercise, for example adding models and routes to an API, which typically takes 3 - 6 hours once you include project setup time and ironing out dependency issues.

  3. Review of the exercise with the tech lead and one or more of the other developers (in one case I had the whole development team, five people, on the other end of the line!). This lasts 1 - 2 hours.

  4. Interview with two or more project managers, product owners, heads of business units and other managers. They'll ask a lot of the same questions the hiring manager asked in the first call, but they're especially looking for 'cultural fit', though I've still not figured out exactly what that means. Another 1 - 2 hours.

  5. Interview with the CEO, who will often ask almost identical questions to the managers in step 4, though this often takes the form of a fairly casual conversation lasting about 1 hour.

This takes a lot of your time, of course, but it's crazy when you realise that the company is doing this with multiple candidates in parallel (even until the final round, where there might be 3 or 4 candidates left). Unless it's a small startup, how much contact are you actually going to have with the CEO? And why do they need multiple developers in the technical interview and multiple managers to evaluate the cultural fit?

One tip I would give to anyone looking for a tech job in today's market is to focus your efforts on recently-posted jobs (less than 3 days old) and to ignore any companies which repeatedly post the same or very similar ads. Those companies are not actually hiring: they're part of a large number of companies which post job ads either to give investors and competitors the impression that they're growing, or to get department managers desperate for new staff off their backs without spending any money, or to build a stockpile of CVs for when they might potentially maybe possibly one day open a new position. The worst culprits for this are larger companies which post on Indeed and LinkedIn: I wasted a lot of time early on applying for jobs for which I would have been an excellent fit, only to get a rejection and then see the same ad posted again and again, week after week.

Finally, remember that staffing/consulting agencies tend to move quite quickly (they probably won't put you through 4 rounds of hour-plus interviews and a technical test). If you're prioritising direct hire with a company (as I was), save these agencies until you get desperate otherwise you might find yourself tempted to take one of their (less attractive) offers while you could have bagged a much more interesting offer by just holding on a bit longer. There are thousands of these companies out there, and the turnover of their recruiters is insane, so don't be afraid to brush them off since there will always be plenty more of them blowing up your inbox.

So there you have it, my take on hunting for a web development job in 2023. I'm starting work today (17 April 2023) as a back-end developer working with Django REST Framework for a company based in Paris (but with a very flexible remote work policy). This experience should give me plenty of inspiration for new posts, so stay tuned!