Chris has a really interesting journey into being one of our Technical Leads here at Redgate. What started as a potential career in biology ended up with the role Chris performs now in software development. Hear from him below…
How I moved from biology to software engineering
I’m now a technical lead at Redgate — but I started out as a biologist.
I’d been interested in computers and programming for a long time, but it had only ever been dabbling for me. My main focus throughout my teens and early 20s was science. To be honest, I was put off studying computing by IT lessons at school (which, at the time, were more about how to do a mail merge in Microsoft Word than the basics of software development), and although I taught myself some programming basics and made a few side projects in a variety of languages, I was sure that I was going to be a scientist.
For a while, I was focused on physics, but ultimately when I went to university I studied biology. I was actually given the option of doing ¼ computer science in my first year, but I rejected it because it would reduce the time I had to focus on biology. I enjoyed my undergraduate degree, so I naturally continued with the same path and started a PhD in biology (bench science with test tubes and pipettes, nothing computational).
Doing lab work was somewhat different day-to-day than learning about biology, though, and it didn’t turn out to be something that I really enjoyed. I started to look for opportunities to do more computational work instead. I wrote a few scripts to help another student, did a little computer analysis of my own data using R, and tried some C# in my free time to help out a community I was part of. My first C# application was terrible (all of the classes were in a single file called Classes.cs and they had some horrible naming). But it helped people keep track of forum threads that they cared about, and real people used it, which was really motivating. Creating something that people found useful was a great feeling (and a distraction from my negative results in the lab).
I enjoyed programming more than lab work, but I was sure that my lack of formal experience meant that I wouldn’t be able to change careers without retraining. It was actually a chance encounter in the pub with another PhD student’s husband who owned a software company which changed my mind about that. I spoke to him about my side projects, and he told me that they demonstrated my interest in programming, and that I should just apply to companies despite my lack of Computer Science education. I decided to give it a try.
Redgate was the second company I applied to, and to my surprise, they offered me a job as a junior software engineer. I was excited to start, but I was worried that my new coworkers would discover that I didn’t actually know what I was doing. Because, mostly, I didn’t. I certainly didn’t know anything about good coding practices, source control, build systems, or very much about how software development is done.
Fortunately, my first few months and and years at Redgate ended up being a great learning experience, and I was introduced to all of these concepts and far more. Many of my colleagues came from different backgrounds, and while my biology knowledge hasn’t been directly useful, the presentation and research skills I’d developed certainly have been. And I did enjoy programming more than lab work, so I stuck around — and so seven years later, I’m currently a technical lead working on one of Redgate’s newer products.
It’s certainly important to develop a good core understanding of the basics of software development, but if you’re interested and motivated then there are a number of paths to do that, not necessarily involving formal education — and even if you do have a relevant degree, a complete understanding certainly requires real-world experience in a supportive environment too. And as the software industry is constantly changing, and the ability to learn quickly is really more valuable than any more specific knowledge you might have starting out.
So if you’re interested in breaking into software but don’t have a Computer Science degree, don’t assume that going back to school is the only option. If you’re keen, the Internet puts a wealth of learning materials at your fingertips. And working on personal projects is a great way both to develop experience and show your commitment to a future employer. Great projects tend to be ones which solve a real problem that you or others around you have, which is much more motivating than working on toy applications, but don’t try to do too much at once. Starting is always much easier than finishing, but you won’t learn as much if you start ambitious projects that you can’t complete — and it’s much more satisfying to have something that works. You can always build on it later.
Once you have a few projects to talk about, you just might find that you’re more employable than you think.