Useful tools, scientific problems and a bit of after-hours tinkering.
Here's a closer look at some of the things I've been working on. I'll
make this page prettier at some point, I promise.
AstraZeneca · Scientific software
RNAopt
RNAopt is a bespoke, in-house tool for optimising mRNA sequences for
expression across different therapeutic modalities. My work has
spanned both the application scientists use and the optimisation
behind it.
The problem
Sequence optimisation involves competing objectives. At AstraZeneca
we developed an algorithm that combines approaches in a
multi-objective landscape. Scientists need a way to explore those
trade-offs and run computationally expensive optimisation as part of
their everyday workflows. Exploring all possible sequences is
computationally infeasible, necessitating efficient optimisation
strategies.
My contribution
I built the RNAopt web application, providing scientists with an
intuitive interface to run our sequence optimisation algorithm
themselves. I extended RNAopt with batch processing and a REST API,
allowing submissions to be decoupled from the web interface. I also
developed an algorithm combining RNAopt's optimised secondary
structure with outputs from a leading published tool, exploring a
three-dimensional Pareto frontier of optimal sequences.
Outcome
The combined approach demonstrated improved expression. The work was
runner-up in the AZ R&D awards, with a patent pending. Until
published, I must refrain from saying more. If I did, I would have
to kill you.
/s It'd be too hard anyway, let alone the moral implications...
Full-stack development
Bioinformatics
REST API
Multi-objective optimisation
Personal project · Ongoing
Home lab
My home lab is an Ubuntu Server setup running self-hosted
applications with Docker Compose. It's a practical extension of the
tinkering that got me into programming in the first place, and a
place to try new stuff out.
What's in place
A Wiki.js knowledge base runs on PostgreSQL (otherwise I'd forget
how I did everything), with custom styling and a Cloudflare Tunnel
for access. Alongside it, a Jellyfin-based media server brings
together library management, requests and subtitles, with supporting
services configured through Compose.
The infrastructure is part of the project too: persistent storage
(saving pennies to build a NAS, will report back in 1000 years when
drive prices have reduced), container health checks and startup
dependencies, plus VPN networking through Gluetun and WireGuard for
selected services. I've added automated port synchronisation and a
Bash script to check container status, forwarded ports and whether
traffic is using the VPN.
Why it interests me
I could lie and say it's all about the learning, but the dopamine
hit of actually getting something running that is useful to people
other than just me is pretty addictive. I enjoy researching stuff,
getting that stuff deployed, understanding how that stuff runs and
keeping it all alive. Keeping the configuration and scripts in Git
makes the setup easier should I accidentally nuke everything. It's
also handy to share with friends / family who are interested in
doing something similar. Although, I should note: that's all done at
one's own risk...
What's next
I want to expand the wiki into a more useful collection of setup
notes, guides and things I've learned, then keep adding tools and
automation that make everyday tasks simpler. Eventually I'll build
that NAS, and who knows, maybe I'll invest in some GPUs and host my
own LLMs??
A retrieval-augmented generation (RAG) tool that lets colleagues
find projects and subject-matter experts at AstraZeneca using a
plain-language query.
The problem
Two main ones come to mind: a reorg happened and I was placed in a
team where I had little experience of the domain, and secondly, in a
company of 80000 people it's very hard to find subject matter
experts and overlapping projects. I wanted to build something from
scratch to learn the ropes, and make a tool that could help me find
people and projects in the company.
My contribution
I built a tool that indexes certain documents on the company
sharepoint and sticks on the semantic meaning into a vector
database. This allows colleagues to query the database in plain
language and retrieve relevant projects and experts efficiently. I
then focussed on optimising the tool to find relevant material
quicker and more reliably. Building the tool was one thing, making
it useful was a whole other challenge.
Where it led
The project came full circle and actually got me in contact with
other people in the business working on similar ideas. I now have
ongoing collaborations with them.