Skip to content

02Expertise

The stack I work in.

Grouped by where the work happens. This is the toolbox I draw from, not a claim of equal depth in every item — each project page lists only what that project actually used.

0106 items

Frontend

  • Next.js
  • React
  • TypeScript
  • JavaScript
  • Tailwind CSS
  • React Native

0207 items

Backend & APIs

  • Node.js
  • Express.js
  • NestJS
  • PHP
  • CodeIgniter
  • Laravel
  • REST APIs

0305 items

Databases

  • PostgreSQL
  • MySQL
  • MongoDB
  • Prisma
  • Redis

0409 items

Cloud & Infrastructure

  • AWS EC2
  • AWS S3
  • Docker
  • Linux
  • Nginx
  • PM2
  • GitLab CI/CD
  • Cloudinary
  • Firebase

0502 items

Messaging & Real-Time

  • MQTT
  • RabbitMQ

0603 items

Hardware / IoT

  • Raspberry Pi
  • ESP32
  • Modbus
A clean white desk with an iMac, a keyboard and mouse, glasses, a notebook and a smartwatch.
A hand holding a phone showing a list-based mobile app interface.
Two colleagues coding side by side at their monitors, beside a window with plants.

03Engineering deep dive

From machineto dashboard.

The signature case study. A conceptual view of how an industrial telemetry platform moves a reading from the shop floor to a screen. Which components exist depends on the deployment.

Stage 01 / 08

Machine

What happens here

The equipment being monitored. Each asset needs a stable identity so every reading can be traced back to it.

Engineering considerations

  • Stable asset IDs across devices, gateways and database.
  • Know which signals matter: states, counters, temperatures, currents.

Conceptual architecture. No customer names, hostnames or measured results are published here.

05How I work

One owner,end to end.

I like to own a feature or a system from the first conversation to the pager. These are the stages I move through, and I can enter or leave at any point depending on what a team needs.

  1. Discovery

    Pin down the problem, the users and the constraints before any code. What does done look like, and who will operate it?

  2. Architecture

    Choose boundaries, data models and failure modes on paper first. Simple where possible, explicit where it matters.

  3. Implementation

    Small, reviewable increments across front end, API and data, so a feature is owned end to end rather than handed off.

  4. Testing

    Validate behaviour at the seams: API contracts, message handling, edge cases in real data.

  5. Deployment

    Containerised releases, reverse-proxy and process configuration, and CI/CD that makes shipping routine.

  6. Monitoring

    Logs, health checks and alerts so problems surface before users report them.

  7. Improvement

    Production feedback goes back into the backlog: fix, simplify, then extend.

A tidy desk with a keyboard, mouse, a notebook and pencil, a smartwatch and earbuds.

Ship it. Watch it. Improve it.

Production feedback is the part most plans skip. It is where I spend a good share of my week.