FEMI ADESINA/devops

Femi AdesinaHi, I'm Femi.

I build the cloud and back ends behind web products.

I've built APIs, data pipelines and the infrastructure under them since 2018: AWS and Azure, Terraform, Docker and Kubernetes, CI/CD, and Node.js and Python on PostgreSQL. Most recently that's serverless migrations and scheduled AWS Lambda jobs written in Terraform. You get infrastructure as code, pipelines with tests as gates, and handover notes.

Tell me about your projectSee the work

Reporting endpoints cut from about 8 seconds to under 500 ms

Remote, from Nottingham, UK

Good fit for

  • Moving workloads to AWS or Azure, with the infrastructure in Terraform
  • CI/CD pipelines with tests and quality gates
  • APIs, queues and data pipelines behind an existing product
  • Serverless jobs and event-driven processing on AWS
  • Slow endpoints and database queries

Email is the quickest way to reach me

Email me

What I work with

The tools I reach for on most projects.

Cloud
  • AWS
  • Lambda
  • ECS / Fargate
  • SQS / SNS
  • Azure
Infrastructure
  • Terraform
  • Docker
  • Kubernetes
  • Helm
Back end
  • Node.js
  • Python
  • FastAPI
  • PostgreSQL
  • DynamoDB
  • Redis
Ship & watch
  • GitHub Actions
  • GitLab CI
  • CloudWatch
  • Datadog

What people say

“… I have had so much positive feedback from friends and family on how great the site looks, and have also sold four books already this week direct from the website. …”

Yemi Adesina, CEO, yemiadesina.com (opens in new tab)
Read it all

“Just thought I'd share something with you about my website. I have had so much positive feedback from friends and family on how great the site looks, and have also sold four books already this week direct from the website. Thanks for making it look so professional!”

Certified

AWS Solutions Architect – Associate

Certified since 2019. Working towards the AWS Security Specialty and Solutions Architect – Professional.

What I've worked on

Recent work: infrastructure, back ends and pipelines. Two are live.

League of Building's home page: 'Know your damage before you lock in', with the combo simulator below it showing a damage total.The champions list on a phone: all 173 champions as cards, two to a row.

A live product I helped on

League of Building

League of Legends players guess at builds, because the numbers are scattered across patch notes and item pages. League of Building does the maths for them on the current patch. I helped out with some of its back-end work.

Read how it runs

The problem

The numbers players need change every patch. The product is only useful if each new patch's data lands quickly and lands right.

Where I helped

Some of the back-end work. The back end is an API on AWS with its own database, Google sign-in so players can save and share builds, and a job that picks up each new patch and checks its data before it goes live.

How it stays right

Over 800 automated tests run before each release, and each new patch's data goes through the same checks before it reaches players.

What I did

  • Helped out with some of the back-end work
  • Releases go out only after the automated tests pass

Role & stack

Helped with back-end work

  • AWS
  • PostgreSQL
  • TypeScript
  • Next.js

Outcome

Live, on patch 16.20

Over 800 automated tests run before each release.

Try it at lobb.devhttps://lobb.dev (opens in new tab)
Documint's pipeline: a request goes to an SQS queue, then to a Lambda that streams the pages, then to S3 as a PDF of 100+ pages.The same pipeline as four steps, top to bottom: request, SQS queue, Lambda, S3.

Document generation service

Documint

Documint generates large PDFs, 100+ pages each. Built on the client, they ran out of memory and timed out. I moved the work into a serverless pipeline on AWS that streams each document straight to storage.

Read how I built it

The problem

Long documents were put together on the client. Memory ran out and long jobs timed out, so the biggest documents were the least reliable.

What I built

A serverless pipeline on AWS. Requests wait on an SQS queue, so peaks don't overwhelm it, and Lambda functions transform the data and stream each PDF straight to S3. It scales out without servers to look after.

How I made sure it held

Error handling and retries on every step, least-privilege IAM, and the whole thing deployed from code with the Serverless Framework and Terraform.

What I did

  • Designed the pipeline: a queue, streaming Lambdas and S3
  • Moved the heavy work off the client and into memory-safe functions
  • Added retries and error handling so long jobs finish
  • Deployed it with the Serverless Framework and Terraform, least-privilege IAM

Role & stack

Back-end and cloud engineer

  • Node.js
  • AWS Lambda
  • SQS
  • S3
  • Terraform

Outcome

About 90% less memory

Long documents stopped failing once the work moved into streaming Lambdas.

Case study onlyNo public link.
Gumbo's About page: 'Helping people cook more and waste less', beside a tray of roasted pears with a chat bubble asking for ideas for pears and walnuts.The same page on a phone, with the search box in the header.

No longer live, screenshots only

Gumbo

Food goes to waste when people can't think what to cook with it. Gumbo let them type in what's already in the cupboard and find recipes that use it. I helped out with some of its back-end work.

Read how it worked

The problem

Most recipe sites start with the dish. Gumbo started with the fridge, so search had to answer quickly and forgive whatever people typed.

Where I helped

Some of the back-end work, fitted into the team's existing codebase rather than rewritten.

Where it is now

The product has since closed. These screens are rendered from its code with the back end switched off.

More screens

What I did

  • Helped out with some of the back-end work
  • Fitted the work into the team's existing codebase

Role & stack

Helped with back-end work

  • TypeScript
  • Next.js

Outcome

Shipped to production in October 2024

People could search by ingredient and save recipes.

No longer liveThe product has closed; these are screenshots.
Yemi Adesina's author site: his name set large on dark green, 'Author portfolio, 34 books', with buttons to browse on Amazon or explore the books, and an email sign-up.The same page on a phone, with the buttons stacked and a full-width Subscribe button.

Author site, 2026

Yemi Adesina — author site

Yemi Adesina writes on African history, geopolitics and farming, and his 34 books were spread across different stores. The site gives them one home he runs himself. I helped out with some of the back-end work behind it.

Read how it runs

The problem

34 books spread across stores, a small budget, and an owner who had to be able to run the site himself.

Where I helped

Some of the back-end work. The back end runs on AWS: the book data, a mailing list readers confirm by email, and the simple admin area he uses to add books himself.

More screens

What I did

  • Helped out with some of the back-end work
  • Hosted on AWS, on a small budget

Role & stack

Helped with back-end work

  • AWS
  • TypeScript
  • Next.js

Outcome

One home for 34 books

Readers buy direct, and he adds new books himself.

See it at yemiadesina.comhttps://yemiadesina.com (opens in new tab)
OmniStats' Today screen in design: the day's four matches across the top, graded lines as cards, and an open read of 'Match under 9.5 corners' with the verdict, the reasons it could land and the main reason against.Explore on a phone: player cards with shots, fouls and booking lines for Torino v Udinese.

Pre-launch

OmniStats

Football stats are easy to find and hard to read. OmniStats grades each line on the day's card against the evidence behind it. I helped out with some of its back-end work.

Read what's planned

Where it's at

It runs every day on real fixtures, and its picks are being checked against results before anything goes public. The back end is TypeScript/Node.js and Python on a PostgreSQL schema indexed for fast reads, with DynamoDB where flexible event storage was cheaper, Redis caching, and queue-backed jobs that retry and degrade gracefully. It's deployed with Terraform and automated CI/CD. There's no launch date yet. The screens here are the signed-off designs, not the version running today.

More screens

What I did

  • Helped out with some of the back-end work

Role & stack

Helped with back-end work

  • Node.js
  • Python
  • PostgreSQL
  • DynamoDB
  • Redis
  • Terraform

Outcome

Pre-launch

It runs every day on real fixtures while its picks are checked against results.

Not public yetAsk me for a preview.

Tell me what you're running.

A few lines is plenty: what you have, what you need and when.

New build, migration or an existing system that needs to be steadier. You get infrastructure as code, tests and short handover notes either way.

Rather email? I'm at femi@omnixenon.com.

CV and references on request.

A few lines is fine. Mention your timeline, your cloud and any data rules.

Your details are used only to reply to you.

Back to top