Projects

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??

  • Ubuntu Server
  • Docker Compose
  • Wiki.js
  • PostgreSQL
  • Bash
  • Self-hosting
View on GitHub

AstraZeneca · Applied AI

Finding expertise with AI

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.

  • RAG
  • Large language models
  • Knowledge discovery
Back to home