Building backend systems that are scalable, secure, observable, and designed to solve real engineering problems.
|
|
const micheal = {
role: "Backend Software Engineer",
location: "United Kingdom",
specialisesIn: [
"Distributed Systems",
"Backend Architecture",
"Developer Tooling",
"Privacy Engineering",
"API Design",
"Real-Time Systems"
],
currentlyBuilding: [
"Backend Forge",
"LedgerFlow",
"ArcHive",
"GridWise",
"TransitIQ",
"Privacy Verification Platform"
],
mission:
"Design production-grade backend systems that remain scalable, maintainable and observable as they grow."
};const engineeringPrinciples = [
"Design for maintainability before cleverness.",
"Every important action deserves an audit trail.",
"Security should be designed into the architecture.",
"Measure performance instead of assuming it.",
"Developer experience is a feature.",
"Build software that engineers enjoy maintaining."
];- Backend Architecture
- Distributed Systems
- Event-Driven Processing
- REST API Design
- Authentication & Authorization
- Privacy Engineering
- Audit Logging
- Real-Time Communication
- Developer Tooling
- Performance Engineering
Rather than building isolated applications, I enjoy solving engineering problems through scalable backend systems, developer tooling, distributed architectures and real-world infrastructure.
A production-ready backend scaffolding CLI for Node.js developers.
Backend Forge was built to eliminate repetitive backend setup by generating production-ready project structures with modern engineering practices built in from day one.
- Interactive CLI experience
- Automatic project scaffolding
- Express.js & TypeScript support
- JWT Authentication
- MongoDB & PostgreSQL templates
- Redis integration
- BullMQ worker support
- Docker & Docker Compose configuration
- Socket.IO support
- Environment configuration generation
- Production-ready folder architecture
Starting every backend project from scratch often involves recreating the same boilerplate before solving the real problem. Backend Forge automates that process while encouraging clean architecture and scalable project structures.
Impact
- π¦ Published on npm
- π Used by developers through
npx - β Continually evolving with new backend capabilities
Core Stack
Node.js β’ TypeScript β’ Commander.js β’ Express β’ MongoDB β’ Redis β’ BullMQ
Event-driven financial reconciliation platform.
LedgerFlow explores how financial transactions can be processed asynchronously using distributed workers while maintaining consistency, auditability and reliability.
- Event-driven processing
- Redis queues with BullMQ
- Background workers
- Idempotent transaction handling
- Financial reconciliation engine
- Audit trail generation
- Historical queue metrics
- CSV import pipeline
- API key authentication
- Dashboard analytics
I wanted to better understand how payment systems process work asynchronously while remaining fault tolerant and observable.
Engineering Outcome
- Processed over 5,000 simulated reconciliation events
- Zero request failures during load testing
- Queue-based processing with worker isolation
Core Stack
Node.js β’ TypeScript β’ PostgreSQL β’ Redis β’ BullMQ β’ Prisma
Repository Intelligence & Engineering Memory Platform.
ArcHive analyses software repositories to build engineering intelligence, architectural memory and historical project insights.
- GitHub OAuth
- Repository ingestion
- Architecture fingerprinting
- Repository DNA generation
- Timeline generation
- Engineering capability analysis
- Background processing
- Repository event history
- Redis workers
- Dashboard analytics
Modern repositories contain valuable engineering knowledge that often disappears over time. ArcHive captures that knowledge and makes it searchable.
Core Stack
Fastify β’ TypeScript β’ PostgreSQL β’ Redis β’ BullMQ
Real-time energy monitoring platform.
GridWise collects, analyses and visualises energy consumption across households and organisations.
- Live telemetry
- Redis caching
- Real-time WebSocket updates
- Role-based access control
- Energy optimisation engine
- Analytics dashboard
- Threshold alerts
- Device simulation
Core Stack
Node.js β’ MongoDB β’ Redis β’ Socket.IO
Delay-aware public transport intelligence platform.
TransitIQ predicts transport delays and generates more efficient routes using real-time transport information.
- Route optimisation
- Delay prediction
- Dijkstra routing
- Redis caching
- Live transport updates
- Analytics engine
- Real-time notifications
Core Stack
Node.js β’ MongoDB β’ Redis β’ Socket.IO
Privacy-preserving digital verification platform for public services.
Developed as my MSc Software Engineering research project, this platform demonstrates how public services can verify eligibility without exposing unnecessary personal information.
- JWT authentication
- Role-Based Access Control
- Consent lifecycle management
- Fine-grained attribute verification
- Minimal disclosure responses
- Audit logging
- Dashboard analytics
- Swagger/OpenAPI documentation
- Automated API testing
- Security evaluation
- Performance benchmarking
The platform was evaluated using multiple complementary techniques.
- Postman
- Jest
- Supertest
- 20 automated integration tests
- OWASP ZAP
- RBAC verification
- Authentication validation
- Protected endpoint assessment
- Apache JMeter
- Authentication benchmarking
- Dashboard load testing
- Verification workflow benchmarking
Many verification systems disclose more personal information than necessary. This project explores how attribute-scoped verification and explicit user consent can improve privacy while maintaining trust.
Core Stack
Node.js β’ Express β’ TypeScript β’ PostgreSQL β’ Prisma β’ JWT β’ Swagger β’ Jest β’ OWASP ZAP β’ Apache JMeter
The technologies below are organised by the role they play throughout the software engineering lifecycle rather than simply listing programming languages or frameworks.
Experience
- REST API architecture
- Authentication systems
- Role-Based Access Control
- Event-driven systems
- Real-time communication
- Repository intelligence
- Background workers
- Privacy-preserving verification platforms
Experience
- Relational database modelling
- Document databases
- ORM design with Prisma
- Redis caching
- Queue storage
- Query optimisation
- Database migrations
Experience
- Queue processing
- Worker architecture
- Background jobs
- Retry strategies
- Asynchronous processing
- Event pipelines
- Financial reconciliation workflows
Experience
- JWT authentication
- Role-Based Access Control
- Consent management
- Audit trails
- API hardening
- OWASP security evaluation
- Minimal disclosure architectures
Experience
- Automated integration testing
- Functional API testing
- API documentation
- Security testing
- Performance benchmarking
- Regression testing
Experience
- Dockerised applications
- Multi-container development
- Git workflows
- GitHub Actions
- Package publishing
- Environment management
Experience
- Dashboard development
- Data visualisation
- Responsive interfaces
- Frontend API integration
- Developer experience improvements
I enjoy building software that solves engineering problems rather than simply demonstrating technologies. The projects below represent practical systems designed to explore scalability, distributed processing, developer experience, privacy engineering and real-world backend architecture.
Production-ready backend scaffolding CLI
Backend Forge automates the creation of modern backend applications by generating production-ready project structures with authentication, databases, queues, Docker configuration and developer tooling already integrated.
- Designed and implemented a modular CLI architecture
- Automated backend project scaffolding
- Reduced repetitive project setup
- Supports multiple backend technologies
- Encourages consistent project structure
- Published as an npm package
Highlights
- π¦ Published on npm
- π Used through
npx - π Continuously evolving with new templates and features
Event-driven financial reconciliation platform
LedgerFlow explores asynchronous financial transaction processing using distributed workers, Redis queues and audit logging.
- Designed asynchronous reconciliation workflows
- Implemented Redis-backed worker architecture
- Built idempotent processing pipeline
- Added queue monitoring and analytics
- Implemented historical processing metrics
- Built financial audit logging
Highlights
- βοΈ Processed over 5,000 simulated reconciliation events
- π Zero request failures during load testing
- π Queue-based processing with BullMQ workers
Repository Intelligence Platform
ArcHive analyses software repositories to generate engineering intelligence, repository DNA, architecture evolution and engineering insights.
- GitHub OAuth integration
- Repository ingestion pipeline
- Repository fingerprinting
- Engineering capability analysis
- Repository timeline generation
- Background processing using Redis workers
- Architecture memory generation
- Repository intelligence dashboards
Real-time Energy Monitoring Platform
GridWise demonstrates real-time energy monitoring using WebSockets, caching and analytics.
- Live telemetry pipeline
- Redis caching
- Real-time updates
- Role-Based Access Control
- Analytics engine
- Alert generation
- Energy optimisation workflows
Transport Intelligence Platform
TransitIQ explores delay prediction and route optimisation for public transport systems.
- Delay prediction engine
- Route optimisation
- Real-time transport updates
- Analytics dashboard
- Dijkstra routing implementation
- Redis caching
- Live event processing
Privacy-preserving public service verification platform
Developed as part of my MSc Software Engineering research, this platform demonstrates how citizens can verify eligibility without exposing unnecessary personal information.
- JWT Authentication
- Role-Based Access Control
- Consent lifecycle management
- Fine-grained attribute verification
- Minimal disclosure responses
- Audit logging
- Administrative dashboards
- Swagger / OpenAPI documentation
- Automated integration testing
- Security evaluation
- Performance benchmarking
The platform was evaluated using multiple engineering techniques:
- β Functional API testing using Postman
- β Automated integration testing with Jest & Supertest
- β Security evaluation using OWASP ZAP
- β API performance benchmarking using Apache JMeter
|
6+ Production-style backend platforms |
20+ Integration tests using Jest & Supertest |
Multiple Contributions across established open-source projects |
|
Swagger / OpenAPI |
OWASP ZAP RBAC JWT |
Apache JMeter Load Testing API Benchmarking |
- π¦ Published a backend scaffolding CLI on npm
- βοΈ Built multiple production-style backend systems
- π§ Designed distributed worker architectures using BullMQ and Redis
- π Implemented asynchronous processing pipelines
- π Built secure authentication and RBAC systems
- π‘ Evaluated backend security using OWASP ZAP
- π§ͺ Implemented automated API integration testing with Jest and Supertest
- π Benchmarked backend APIs using Apache JMeter
- π Documented REST APIs with Swagger / OpenAPI
- π Contributed to multiple open-source engineering projects
I enjoy contributing to developer tools and engineering ecosystems by investigating issues, proposing fixes, reviewing behaviour, and contributing code where possible.
My open-source contributions span developer tooling, AI frameworks, backend infrastructure and runtime ecosystems.
|
6+ Established Open Source Projects |
Multiple Submitted Contributions |
Multiple Bug Analysis & Debugging |
Engineering Discussions Code Reviews Accepted Feedback |
Focus
AI developer tooling and SDK ecosystem.
Contribution
- Open-source engineering contribution
- Merged into the ecosystem
- Improved developer tooling
Status
β Merged
Focus
Developer infrastructure and local execution.
Contribution
- Investigated worker execution behaviour on WSL2
- Worked with maintainers
- Accepted engineering feedback
Status
β Accepted Feedback
Focus
Recommendation systems.
Contribution
- Engineering contribution
- Repository investigation
- Contributor workflow
Status
π Active
Focus
JavaScript runtime ecosystem.
Contribution
- Core ecosystem investigation
- Coverage improvements
- Runtime analysis
Status
π Active
Focus
API developer tooling.
Contribution
- Bug investigation
- Technical analysis
- Engineering discussion
Status
β Contributed
Focus
Open-source discovery.
Contribution
- Pull Request
- Repository improvements
Status
β Pull Request Submitted
const openSource = {
why: [
"Learn from production-grade codebases.",
"Contribute back to the developer community.",
"Collaborate with engineers across different ecosystems.",
"Continuously improve engineering judgement."
],
areas: [
"Developer Tooling",
"AI Ecosystem",
"Backend Infrastructure",
"Runtime Engineering",
"Open Source Collaboration"
]
};| Project | Area | Contribution | Status |
|---|---|---|---|
| Vercel AI SDK Ecosystem | AI Tooling | Engineering Contribution | β Merged |
| iii | Infrastructure | Worker Investigation | β Accepted Feedback |
| Twitter / The Algorithm | Recommendation Systems | Engineering Contribution | π Active |
| Node.js | Runtime | Coverage Investigation | π Active |
| Bruno | API Tooling | Bug Investigation | β Contributed |
| js-good-first-issues-finder | Developer Tooling | Pull Request | β Submitted |
Building software is only part of engineering. I also enjoy documenting design decisions, evaluating system behaviour, sharing engineering insights, and communicating technical ideas through research and writing.
|
MSc Software Engineering |
Architecture Backend Engineering Case Studies |
Engineering Open Source System Design |
Research Experiments Documentation |
As part of my MSc Software Engineering programme, I designed and developed a backend platform that explores privacy-preserving verification for public services.
The project focuses on enabling organisations to verify eligibility while disclosing only the minimum information required.
- Privacy Engineering
- Consent Management
- Fine-Grained Verification
- Attribute-Based Disclosure
- REST API Design
- Backend Architecture
- Security Engineering
- Performance Evaluation
The platform was evaluated using several complementary techniques.
- Functional Testing
- Automated Integration Testing
- OWASP ZAP Security Assessment
- Apache JMeter Performance Testing
I enjoy documenting engineering decisions, architectural trade-offs and lessons learned while building software.
Topics I regularly write about include:
- Backend Architecture
- Distributed Systems
- Event-Driven Processing
- Authentication & Authorization
- Queue Processing
- Redis & BullMQ
- REST API Design
- API Performance
- Privacy Engineering
- Open Source
- Building scalable backend architectures
- Designing maintainable APIs
- Distributed worker systems
- Developer tooling
- Repository intelligence
- Privacy-preserving software
- Performance engineering
- System observability
- Engineering best practices
const researchInterests = [
"Distributed Systems",
"Developer Experience",
"Privacy Engineering",
"Backend Architecture",
"Scalable APIs",
"Open Source",
"System Observability",
"Software Quality",
"Performance Engineering"
];const mindset = {
build: "Solve engineering problems.",
learn: "Understand how systems behave at scale.",
document: "Share ideas that help other engineers.",
improve: "Continuously refine architecture, tooling and engineering practices."
};Backend Foundations
β
βββ REST API Design
βββ Authentication & Authorization
βββ Database Design
βββ Production Backend Development
β
Distributed Systems
β
βββ Redis
βββ BullMQ
βββ Background Workers
βββ Queue Processing
βββ Event-Driven Architecture
β
Developer Tooling
β
βββ Published Backend Forge to npm
β
Platform Engineering
β
βββ LedgerFlow
βββ ArcHive
βββ GridWise
βββ TransitIQ
β
Research & Engineering Evaluation
β
βββ Privacy Verification Platform
βββ Swagger / OpenAPI
βββ Jest & Supertest
βββ OWASP ZAP
βββ Apache JMeter
β
Today
β
βββ Open Source
βββ Technical Writing
βββ Backend Architecture
βββ Distributed Systems
| Phase | Focus | Outcome |
|---|---|---|
| Foundations | Backend APIs, databases and authentication | Strong backend fundamentals |
| System Design | Distributed systems and event-driven architecture | Production-style backend platforms |
| Developer Experience | Backend Forge and engineering tooling | Improved developer productivity |
| Platform Engineering | LedgerFlow, ArcHive, GridWise and TransitIQ | Larger multi-service backend systems |
| Research | Privacy Verification Platform | Security, testing and performance evaluation |
| Community | Open Source & Technical Writing | Public engineering impact |
Building software for developers is different from building software for users.
Learnings:
- CLI architecture
- Template generation
- Developer experience
- Package publishing
- Long-term maintainability
Distributed systems are about coordination rather than complexity.
Learnings:
- Worker architecture
- Queue processing
- Idempotency
- Audit trails
- Financial workflows
Every repository tells a story if you know how to analyse it.
Learnings:
- Repository intelligence
- GitHub OAuth
- Background processing
- Engineering analytics
- Large-scale metadata processing
Real-time systems require careful state management.
Learnings:
- Live telemetry
- Redis caching
- WebSockets
- Analytics
- Monitoring
Good routing systems combine algorithms with live information.
Learnings:
- Dijkstra's Algorithm
- Route optimisation
- Real-time transport updates
- Delay prediction
- Caching strategies
Privacy should be designed into systems from the beginning, not added afterwards.
Learnings:
- Privacy Engineering
- Consent Management
- Fine-Grained Verification
- RBAC
- Security Testing
- Performance Engineering
- Automated Integration Testing
Current areas of interest include:
- Distributed systems
- Event-driven architectures
- Platform engineering
- Developer tooling
- Backend performance optimisation
- Software observability
- AI-assisted developer tools
- Open-source infrastructure
- Engineering intelligence
- Privacy-preserving systems
Software engineering is more than choosing frameworks or writing code. For me, it's about designing systems that remain understandable, maintainable and reliable as they evolve.
Every project I build is an opportunity to improve how I think about architecture, scalability, security and developer experience.
Rather than chasing complexity, I prefer solving practical engineering problems with simple, well-designed solutions.
const engineer = {
buildFor: [
"Scalability",
"Maintainability",
"Reliability",
"Observability",
"Security"
],
optimiseFor: [
"Developer Experience",
"Clear Architecture",
"Automation",
"Performance",
"Long-Term Maintainability"
],
avoid: [
"Unnecessary Complexity",
"Premature Optimisation",
"Hidden Business Logic",
"Fragile Architectures"
]
};Good software should be:
- Easy to understand.
- Easy to extend.
- Easy to test.
- Easy to observe.
- Easy to maintain.
When systems become difficult to understand, they eventually become difficult to trust.
That is why I care about architecture, testing, documentation and observability just as much as writing code.
Before adding a feature, I usually ask myself:
- Can another engineer understand this six months from now?
- Can this component be tested independently?
- What happens when this fails?
- Can this scale without changing the architecture?
- Can this be monitored?
- Is there enough logging to debug production issues?
- Is security considered from the beginning?
- Can this be simplified?
Over time I've developed habits that influence every project I build.
- Design APIs before implementation.
- Prefer composition over duplication.
- Document architectural decisions.
- Measure performance instead of assuming it.
- Build automated tests for critical behaviour.
- Keep business logic independent of frameworks.
- Leave systems easier to maintain than I found them.
Today I'm primarily interested in engineering problems involving:
- Distributed Systems
- Platform Engineering
- Backend Infrastructure
- Developer Tooling
- Event-Driven Architecture
- Privacy Engineering
- API Design
- System Observability
- Performance Engineering
- Open Source
I'm working towards becoming an engineer recognised for building reliable backend systems, contributing to the open-source ecosystem, and creating tools that improve how other developers build software.
I want my work to demonstrate thoughtful engineering, not just familiarity with technologies.
"Great software isn't measured by how much code it contains. It's measured by how confidently engineers can build upon it."
Over the past few years, I've intentionally built projects that explore different areas of backend engineering rather than repeatedly solving the same problem.
Each project focuses on a different engineering domain while reinforcing principles such as scalability, maintainability, security and observability.
Production-ready backend scaffolding CLI designed to accelerate backend development through automation.
Engineering Focus
- CLI Development
- Code Generation
- Project Scaffolding
- Developer Experience
- Template Engines
- Package Publishing
Event-driven financial reconciliation platform exploring asynchronous transaction processing.
Engineering Focus
- Distributed Workers
- BullMQ
- Redis
- Financial Processing
- Audit Logging
- Queue Monitoring
- Idempotency
Repository intelligence platform that analyses repositories to build architectural memory and engineering insights.
Engineering Focus
- Repository Intelligence
- GitHub OAuth
- Metadata Processing
- Background Workers
- Architecture Analysis
- Engineering Analytics
Real-time energy monitoring platform designed around live telemetry and analytics.
Engineering Focus
- Real-Time Systems
- Socket.IO
- Analytics
- Redis Caching
- Energy Monitoring
Transport routing platform exploring delay prediction and route optimisation.
Engineering Focus
- Graph Algorithms
- Route Optimisation
- Delay Prediction
- Real-Time Data
- Caching
Privacy-preserving verification platform developed during my MSc Software Engineering research.
Engineering Focus
- Privacy Engineering
- RBAC
- JWT
- Consent Management
- Audit Logging
- Minimal Disclosure
- API Documentation
- Integration Testing
- Security Evaluation
- Performance Benchmarking
Engineering
β
βββ Developer Tooling
β βββ Backend Forge
β
βββ Financial Systems
β βββ LedgerFlow
β
βββ Engineering Intelligence
β βββ ArcHive
β
βββ Energy Monitoring
β βββ GridWise
β
βββ Transport Intelligence
β βββ TransitIQ
β
βββ Privacy Engineering
β βββ Privacy Verification Platform
β
βββ Open Source
β βββ Vercel AI SDK
β βββ iii
β βββ Node.js
β βββ Bruno
β βββ Twitter / The Algorithm
β βββ js-good-first-issues-finder
β
βββ Research
β βββ MSc Software Engineering
β
βββ Technical Writing
β βββ Medium
β βββ LinkedIn
β
βββ Ongoing
βββ Backend Engineering
βββ Distributed Systems
βββ Platform Engineering
βββ Open Source
β Production-ready REST APIs
β Event-driven systems
β Queue processing
β Worker architecture
β Authentication & Authorization
β Audit Logging
β Repository Intelligence
β Privacy Engineering
β Jest
β Supertest
β Integration Testing
β Regression Testing
β Functional API Testing
β JWT Authentication
β Role-Based Access Control
β OWASP ZAP Evaluation
β Consent Management
β Minimal Disclosure
β API Hardening
β Apache JMeter
β Load Testing
β API Benchmarking
β Queue Performance
β Backend Optimisation
β Docker
β Docker Compose
β Redis
β BullMQ
β GitHub Actions
β Swagger / OpenAPI
β Package Publishing
Software engineering is one of the ways I enjoy solving problems, but what keeps me motivated is the opportunity to continuously learn, build, and contribute.
Whether it's designing backend architectures, improving developer experience, contributing to open source, or researching privacy-preserving systems, my goal is always the same:
Build software that is reliable enough for production, simple enough to understand, and useful enough to make someone else's work easier.
I believe great engineering is not about writing the most code.
It's about making the next engineer smile when they open the project.


