Skip to content
AAHire me
AvailableOpen to new opportunities

I ship software from commit to cluster.

Ayo Alaka, DevOps Engineer & Full-Stack Developer. I build and ship production systems end to end — Spring Boot services, React and Next.js interfaces, and the pipelines, containers and clusters that run them.

  • Kubernetes
  • Docker
  • GitHub Actions
  • Spring Boot
  • Java 25
  • Spring AI
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • PostgreSQL
  • Terraform
  • Linux
  • Prometheus

What I do

Three disciplines, one delivery mindset.

I own features end to end — the API, the interface, and the pipeline and cluster that put them in front of users.

01 · devops

DevOps & Cloud

Automating the path from commit to production, and keeping it observable once it's there.

commit
test
build
publish
deploy

✓ push to main → image tagged by SHA → rolled out to ns/portfolio

  • Docker
  • Kubernetes
  • GitHub Actions
  • CI/CD
  • Linux
  • Nginx
  • [AWS / GCP / Azure]
  • [Terraform]
  • [Prometheus · Grafana]
  • Bash

[N]+

years shipping software

[N]

production services owned

[N]%

[deploy-time / cost / uptime] improvement

02 · backend

Java & Spring Boot

Well-tested, secure REST services with clear contracts, built on modern Java and Spring.

ContactController.java
@PostMapping("/api/contact")@ResponseStatus(HttpStatus.ACCEPTED)public void contact(@Valid ContactRequest req,                    HttpServletRequest http) {  rateLimiter.check("contact", http.getRemoteAddr(), limit);  contactService.send(req);}
  • Java 25
  • Spring Boot 4
  • Spring Security
  • Spring AI
  • REST APIs
  • Bean Validation
  • JUnit 5 · Mockito
  • Maven
  • [PostgreSQL]
  • [Kafka]

03 · frontend

React, TypeScript & Next.js

Fast, accessible, type-safe front ends using the App Router, server components and modern CSS.

app/api/chat/route.ts
export async function POST(req: Request) {  // one image, any environment  return proxyToApi(req, "/api/chat");}

SSG

Pre-rendered

Strict

TypeScript

Runtime

API config

  • React 19
  • TypeScript
  • Next.js 16
  • Tailwind CSS
  • Server Components
  • Accessibility
  • Web performance
  • [Testing Library · Playwright]

Experience

Where I've delivered.

[Replace with 2–3 sentences: how many years you've been building software, the kinds of systems and teams you've worked on, and what you're looking for next.]

I care about the boring things that make software dependable: reproducible builds, automated tests, observable services and infrastructure described as code.

  • [e.g. Certified Kubernetes Administrator (CKA)]
  • [e.g. AWS Certified Solutions Architect]
  1. [Job title]

    [2023] — Present

    [Company] · [Remote]

    • [Action + result, e.g. “Cut deployment time from 40 to 8 minutes by moving builds to GitHub Actions with layer caching.”]
    • [Action + result, ideally with a number.]
    • [Action + result.]
    • [Spring Boot]
    • [Kubernetes]
    • [React]
  2. [Previous job title]

    [2020] — [2023]

    [Company]

    • [Action + result.]
    • [Action + result.]
    • [Java]
    • [Docker]
    • [TypeScript]

Selected work

Built, shipped, and operated.

What I owned, the stack behind it, and the outcome.

Featured · you're using it now

This portfolio

A production-style monorepo: a statically rendered Next.js front end and a Spring Boot 4 API, containerised and shipped through CI to Docker Compose or Kubernetes.

  • Contact API with Bean Validation, honeypot spam filtering, per-client rate limiting and SMTP delivery
  • Résumé assistant built with Spring AI — swappable between local Ollama and OpenAI by config
  • Multi-stage, non-root Docker images; GitHub Actions runs tests, builds and publishes to GHCR
  • Kubernetes manifests with liveness/readiness probes, resource limits and an ingress
Source
  • Next.js
  • TypeScript
  • Spring Boot 4
  • Spring AI
  • Docker
  • Kubernetes
  • GitHub Actions

ingress · tls → ns/portfolio

Next.jsweb · ×2
Spring Bootapi
LLMOllama / OpenAI

probes ✓ · limits ✓ · non-root ✓ · read-only fs ✓

[Project name]

02

[One or two sentences: what problem it solves and who it's for.]

  • [What you built or owned]
  • [A measurable outcome]
  • [Spring Boot]
  • [PostgreSQL]
  • [Docker]
Source

[Project name]

03

[One or two sentences.]

  • [What you built or owned]
  • [A measurable outcome]
  • [Next.js]
  • [TypeScript]
  • [Vercel]
Live

How this site ships

The portfolio is the proof.

This site is a small production system. Every change takes the same path to the cluster you're being served from.

  1. 01

    git push

    PR checks on every change

    GitHub

  2. 02

    Verify

    mvn verify · eslint · tsc · build

    GitHub Actions

  3. 03

    Containerise

    Multi-stage, non-root, cached layers

    Docker

  4. 04

    Registry

    Immutable tags by commit SHA

    GHCR

  5. 05

    Rollout

    Probes, limits, zero-downtime

    Kubernetes

svc/web

Next.js 16 · TypeScript

  • Statically pre-rendered
  • Route Handlers proxy /api
  • Standalone, ~node:alpine

svc/api

Spring Boot 4 · Java 25

  • Validated, rate-limited contact API
  • Spring AI résumé assistant
  • Actuator health probes

llm

Ollama or OpenAI

  • Switched by AI_PROVIDER
  • Grounded only in resume.md
  • Stateless conversations

Get in touch

Questions? Ask, or say hello.

Get instant answers from my AI assistant, or send me a message directly.

Ask about Ayo

Spring AI · answers from my résumé only

online

Hi! I can answer questions about Ayo's experience, skills and projects. Try one:

Send a message

I reply within two working days.