Software engineer, 4+ years. React, Next.js and Angular on the front. Django, DRF and
Node.js on the back. Real-time features over WebSockets, payment and calendar integrations,
and LLM workflows running in production.
request latency, before and after WebSocketspolling → channels
live trace — move across it to push traffic through
how I work
Requirements in, working systems out.
Most of my work starts as a business problem, not a ticket. I map it to an API,
a data model and a UI, then keep it fast and observable once real users arrive.
Build
Full-stack features end to end: REST APIs and business logic in Django and Node, typed
React and Next.js interfaces, PostgreSQL schemas, Redis caching, and third-party
integrations that have to keep working every day.
Keep it fast
Code splitting, lazy loading, memoisation and leaner data fetching on the client;
query and payload work on the server. I measure before and after, so improvements are
numbers rather than opinions.
Make it real-time
WebSocket channels for notifications and live workflow updates, so the interface reflects
the system instead of waiting for the next poll.
Ship it repeatedly
Jest and React Testing Library coverage, Docker images, GitLab CI/CD pipelines, and
deployments to GCP, Vercel and Render.
experience
Where the work happened.
Each line below is something that shipped and stayed shipped.
Software Engineer — LemonVolt
current role · full-stack
Engineered a full-stack recruitment platform with React.js, Next.js, TypeScript, Python and Django, supporting 1,000+ candidate records.
Built REST APIs, authentication, business logic and database workflows behind recruitment operations.
Integrated Stripe for payments and Google Calendar and Microsoft Outlook for scheduling, all over OAuth 2.0.
Raised application performance 35% through code splitting, lazy loading, memoisation and API and data-fetching optimisation.
Added WebSocket channels with Django Channels, cutting real-time data latency 60% across notifications and workflow updates.
Shipped generative AI features on the Claude and Grok APIs, and migrated existing AI functionality from Carebas to Grok.
Built a Chrome extension for candidate sourcing, plus GitLab CI/CD pipelines with automated testing and deployment.
Frontend Engineer — earlier role
product engineering
Developed production applications with React.js, Next.js, TypeScript, Redux Toolkit and modern JavaScript.
Built modular, reusable component libraries that cut bug rates by roughly 20% and made features faster to assemble.
Consolidated REST API calls and caching, removing about 30% of unnecessary requests.
Wrote unit and component tests with Jest and React Testing Library.
Delivered a campaign management dashboard with dynamic filtering, data visualisation and WebSocket updates, halving data refresh delays.
Received the Super Star of the Quarter award for project delivery.
projects
Four systems, four different problems.
Hover a card for the stack it runs on, or open one for the detail.
LemonVolt
recruitment SaaS · full-stack
Candidate and job management with email and calendar sync, Stripe billing, live status
updates, AI-assisted screening and automated sourcing through a browser extension.
Next.jsTypeScriptDjangoPostgreSQLClaude API
Django REST APIs, OAuth 2.0 auth and PostgreSQL schemas behind candidate, job and pipeline workflows.
Stripe subscriptions plus two-way Google Calendar and Outlook sync for interview scheduling.
Django Channels WebSockets for live pipeline and notification updates, 60% lower data latency.
Claude and Grok API screening features; migrated existing AI functionality from Carebas to Grok.
Chrome extension for sourcing, with GitLab CI/CD running tests and deploys.
Pixtara
recruitment web app · frontend
Job and candidate workflows on a reusable interface architecture, with typed state
management and a component layer shared across the product.
Next.jsTypeScriptRedux ToolkitREST APIs
Next.js app router with a typed component library reused across job and candidate modules.
Redux Toolkit slices for filters, pagination and cached list state.
REST integration layer with normalised error and loading handling.
Reach Stack Advisor
campaign dashboard · frontend
Operational dashboard with dynamic filtering, charts and WebSocket updates, so campaign
managers see changes as they happen rather than on refresh.
ReactTypeScriptWebSocketsCharts
Dynamic multi-field filtering over large campaign datasets without full refetches.
WebSocket subscriptions cutting refresh delay by roughly half.
Chart components for spend and reach, built to survive sparse and late-arriving data.
Pharma NLP — SLR
research platform · frontend
Systematic literature review tooling with event-driven progress updates for long-running
NLP jobs, built out with a tested component library.
ReactTypeScriptMaterial UIJest
Event-driven progress for long-running NLP extraction jobs.
Material UI screens for screening, tagging and exporting study records.
Jest and React Testing Library coverage across the review workflow.
skills
The stack, as a live graph.
Every tool I work with, clustered by where it sits in a system. Drag a node,
or pick a cluster to isolate it.
drag · hover
34 tools across 8 clusters. Select a cluster to isolate it.
contact
Let's build something that ships.
I'm looking for software engineer and SDE roles where I can own features end to end,
work on systems under real load, and keep learning from people who are better than me.