Welcome

I’m a senior software dev, DevOps engineer/SRE and I don’t fear databases, which probably makes me a platform engineer.

Contact

In order to contact me, email me at contact@<domain name from the address bar>. Alternatively, run base64 -d <<<"Y29udGFjdEBrYXJvbGluZXBhdWxzLmNvbQo=" in the terminal (or decode using DuckDuckGo).

Example projects

Open source

logstruct, a library bringing structured logging to the Python standard library, with a fraction of the complexity of structlog. The project comes with complete documentation, covering all features.

pytest-kafka project, averaging >200 downloads a day.

I help maintain the dramatiq project.

Check out my GitLab profile or articles on this website for more.

Proprietary

Greenfield project development e.g.:

  • RTB systems - ad targeting algorithms, including geotargeting and bloom filter indexing, AWS infrastructure design.

  • More recently, created a blog content generation system using:

    • a self-configuring CMS integration with automated website logo and colour scheme recognition informing article banner and image generation

    • an OpenAI pipeline with Pydantic structured outputs, featuring web search, result scraping and LLM fact extraction, source quality grading, article outline generation, article section generation, vector-based semantic search for similar content, banner generation, and image generation, followed by final article assembly

    • management and reporting APIs, user-friendly diagnostics of CMS errors

Modernisation and sanitisation of a number of backend systems:

  • Migrated from an unreliable transaction management pattern to SQLAlchemy sessions by developing custom intermediate layers enabling switching between old and new transaction behaviours based on configuration. This allowed safe step-by-step service migration with full backward compatibility, easy reversal of changes, and minimal impediment of ongoing development.

  • Performed a number of project-wide high impact database and dataflow migrations with no downtime and backward compatibility at every step.

  • Improved developer experience by speeding up test database setup with the use of template databases, ensuring external resource cleanup (Redis, Motoserver), and removing prod dependencies from testing.

  • Performance profiling, PostgreSQL query optimisation including thoughtful denormalisation and advanced indexing patterns. Promoted the use of bulk upserts in data ingestion, which improved performance and helped simplify the architecture.

  • Lead DevOps IaC efforts. Provided a CI/CD pipeline allowing teams to quickly deploy feature branches onto a Kubernetes cluster (EKS) in order to speed up and parallelise ongoing product integrations.


Attribution-NonCommercial-ShareAlike 4.0 International

All content of this website is licenced under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International licence.