I'm currently working on my startup, Goodwright, as its CTO, but still enjoy working on open source stuff and other projects in what time that leaves me. Other than that, I enjoy running, walking, and making properly-labeled graphs. Here's how I got here:
I founded Goodwright in 2019 with Alex Harston. We specialise in creating software for scientists - wether that's in academic institutes, spin-out startups, or established companies. Currently our focus is on our analysis platform Flow, but we've completed a variety of projects now.
Since 2023, I have been the CTO.
Since 2021, the focus of Goodwright has been on developing our Genomics data platform - Flow. Flow, created in collaboration with Professor Jernej Ule's lab, is a tool for performing complex Bioinformatics analysis using an intuitive web interface, with the data outputs visualised, organised, and shareable.
My role here has been in creating the software itself - the backend, the frontend, its deployment, database, and backup infrastructure etc., as well as managing its deployments in different enviornments. It has made me a fundamentally different software developer.
We initially used Goodwright to develop lab websites for labs around the UK - as a side project while we completed our PhDs. We still host and maintain these - the Branco Lab here in London, the Rochefort Lab in Edinburgh, and the Hebenstreit Lab in Warwick.
After my PhD, I started working as a self-employed contractor through my company Deep Mountain Software. I use my background in structural biology and my expertise in software development to build custom software for companies in the life sciences space.
Since 2023 I've shifted the focus to Flow and Goodwright, but am still available for limited consultancy work within my areas of expertise.
I returned to London in 2016 to start a PhD in Structural, Chemical, and Computational Biology (as the programme was called). The idea was you did a year of rotations in three different labs (one from each of the three fields) and then picked a lab to do the actual three year project in.
I ended up doing my PhD in Professor Andrew Martin's lab, using machine learning to predict zinc binding in protein structures. This resulted in the creation of a dedicated resource cataloguing all known zinc binding sites - ZincBind.
I passed my Viva in 2021 (there was a Covid delay of six months), having learned a lot about machine learning, structural biology, and how to deliver a project over a long(ish) timescale.
Throughout my PhD I sought as many opportunities as time would allow to teach Python and other coding topics. I love explaining this stuff and bringing in new programmers.
This was mostly done through demonstrating work at both UCL and Birkbeck, and I also taught sessions as the Tech Officer for UCL MedTech society in 2018/19.
After I graduated I worked for a year in Professor Jamie Davies' lab as a research fellow and developer. My project was to create a tool which interfaced with their existing database of drugs and drug targets which would create a synthetic biology tool for adding 'druggability' to other proteins.
This was my first experience in professional development and carrying out a year long project to a given specification, and I really, really enjoyed the whole experience.
University of Edinburgh
I returned to University in 2011, to study Biological Sciences at the University of Edinburgh - I picked Biology purely out of interest in the subject rather than with any specific career plan in mind. I had originally planned on returning to London as soon as I could, but when it came down to choosing between an offer from Imperial and an offer from Edinburgh, I found what I mostly wanted was a completely fresh start.
I made the right choice. I loved Edinburgh (both the university and the city), was much happier studying this, and settled into it all in a way I never had as a medical student.
I ended up specialising in Biotechnology, and got a First in 2015. My dissertation was on the use of Quantum molecular modelling to improve drug binding affinity prediciton.
Towards the end of my final year at Edinburgh, I threw myseif into coding side projects in a way I hadn't really before. One of these was pyChats, a Python library for analysing your chat backups (Whatsapp, Facebook etc.) and producing a Markov Model message generator which would speak like your friends. Another was election15 - a web page which modelled different outcomes of the 2015 UK general election that happened around this time.
These projects and their writeups got some traction that I hadn't anticipated, but also were much more fulfilling to work on than either my actual degree, or the more abstract 'learning exercises' I'd done up until this point. It was the first time I really considered that maybe I could do coding as my actual job, rather than as a hobby. This was a big inflection point for me.
I was a member of Edinburgh's iGEM team in 2014.
iGEM is a worldwide Synthetic Biology competition for university teams, who form teams of ten or so students to spend a summer working on making a genetically engineered system to do something useful. The teams go to Boston in October to present their work to the world, which is exactly what we did in October.
Our project was to create synthetic communities of bacteria where each species functioned as a logic gate and which communicated through secreted chemicals. I worked in the lab, and also worked on RNA simulation.
The Student Newspaper
I've always liked writing, so writing for Edinburgh's Student Newspaper seemed like the best way to get into something outside of the course itself. I wrote for the Science section from 2013 on, and co-ran that section as its editor for most of 2014.
Having to regularly work to deadlines that work on cycles of three or five days (rather than the weeks or months I'd been used to) was a good habit to get into.
I left school intent on being a doctor. I had a place at UCL medical school in London, and started there in September 2009. I think probably deep down I knew I wanted to do it for the wrong reasons - I had been good at science, knew medicine was a high-status, high-paying career route, and that people would be proud of me. The thought of the actual day-to-day of being a doctor filled me with unease even before I started, but I mostly told myself that at some point over the next six years, I'd get to grips with it.
A few months in, it became apparent that I had made a mistake. I did not enjoy basically anything about the course, and I knew that these first two years would be the ones I was most suited to, as they were mostly pure science. I dropped out in January 2010, with no clear idea of what to do next.
I did quite enjoy London though, and while I left in May 2010 to return home, I knew I wanted to return there somehow at some point.
In the four months between dropping out of Medicine in January, and leaving London in May, there was a lot of hanging around feeling quite sorry for myself, with not much purpose - especially when it became clear that it would be eighteen months before I could start a new course.
Desperate for any kind of project that would give me a sense of working towards something, I decided to get back into coding - something I'd let slip away a little over the past year or two. I picked up a 'Guide to programming with Python' - a language I'd never heard of - and slipped back into it. By and large, I've never slipped back out since then, and Python remains the language I do most of my work in.
I ended up doing the International Baccalaureate at the end of School, which my school offered as an alternative to A-Levels. I was pretty set on going to medical school at this point (the coding was just a hobby, and one I had less time for by these last two years). It was exhausting, but really rewarding.
To this day, I have more stress dreams about the IB exams than anything I've done more recently.
Learning to Code
I also learned some Java, and some VBA around this time. An odd cocktail of languages to start out with, but I learned a huge amount from them.