
When people picture software engineers, they often think of those who have always been tech-savvy, coding even as teenagers. My journey was very different. Other than for some statistics, I hadn't written a line of code until my early 20s. So how did I get here?
My story begins with an unorthodox schooling. I attended religious schools, which didn't follow the national curriculum, so I left without GCSEs or A Levels. It was only as a young adult, wanting to go to university, that I worked towards GCSEs and a Level 3 in science. Whilst doing that I worked in retail and hospitality, at different times, building a foundation of life skills.
I had a love for science, and I chose a degree in Ecology, Conservation and Environment, picturing myself doing conservation or fieldwork. The degree was interesting, but it became clear over time that the industry wasn't one I'd enjoy working in. It wasn't a single moment, more a gradual realisation. Well into the degree I started learning to code as a hobby, through online courses. What grabbed me was solving problems and building things, and I eventually fell in love with it.
At the end of my degree I went travelling, spending five months all over Southeast Asia. Somewhere along the way I bought a cheap laptop, and found Northcoders through an online search. I used it to work through their pre-course and practise for the entry exam as I travelled. I applied, and the offer came through while I was sitting on a balcony in Thailand.
When I got home I did the bootcamp, and spent the months afterwards building side projects to keep learning. The role at BearTech came through a recruiter, and they hired me for my potential rather than my credentials. I've been here since.
The work is varied. Most weeks are a mix of features and fixes, plus a growing amount of AI engineering, working mostly in Go and Python with some JavaScript. A lot of that is core product work, and the AI side lives mostly in Python: I build the orchestration around our models, using LangGraph to wire up prompts with structured outputs and versioned prompt templates. We use a mix of model types: large language models reached through third-party APIs, smaller fine-tuned models we host ourselves, and classification models handling the narrower jobs. A large part of the job is evaluating it all, which means automated output validation and human review, with the occasional A/B comparison before anything ships. The team are supportive, the flexibility is real, and while I'm mostly settled in one place these days, the option is still there when I need it.
Somewhere between the shop floor and a balcony in Thailand, I became a software engineer.