Portfolio
I build tools and frameworks that make software easier to structure, maintain, and evolve. These are some of the projects I’ve developed in my own time, often by extracting recurring patterns from real-world software development.
Quilla Backend Kit
Quilla Backend Kit is a TypeScript toolkit for building production backend services without committing to a full application framework.
It provides composable foundations for domain-driven design, persistence, messaging, HTTP services, security, observability, and application lifecycle management. The toolkit is designed around explicit domain logic, strong architectural boundaries, and a clear separation between interfaces and infrastructure adapters.
Quilla Backend Kit is particularly suited to multi-tenant, event-driven, or DDD-aligned Node.js services whose developers want to retain control over their architecture.
The project is open source, MIT-licensed, and currently pre-1.0.
View Quilla Backend Kit on GitHub →
Quilla Frontend Kit
Quilla Frontend Kit is a collection of TypeScript packages for building frontend applications that consume production APIs.
It includes framework-agnostic tools for HTTP communication, authentication, structured errors, token refresh, pagination, and optimistic concurrency. Framework-specific integrations, such as the React Query adapter, are kept separate so teams can adopt only the pieces they need.
The frontend and backend kits share compatible API conventions while remaining independent. This keeps the architecture consistent across the stack without creating a runtime dependency between them.
The project is open source and currently pre-1.0.
View Quilla Frontend Kit on GitHub →
CANDO-Test
I created CANDO-Test, a framework for bringing clarity, structure, and reusability to UI test automation.
The framework is organised around five building blocks: Components, Assessments, Network Mocks, Data Variant Creators, and Page Objects. Together, they provide a layered architecture for creating test systems that remain understandable and maintainable as an application grows.
CANDO-Test is intentionally tool-independent. Its principles can be applied with Playwright, Selenium, Cypress, or another UI automation tool. More than a collection of code, it offers a way to think about reliable and modular test design.
I’ve written a series of articles explaining the framework, beginning with Introducing CANDO-Test.
oas-to-joi
oas-to-joi is a JavaScript library that generates Joi validation schemas from an OpenAPI Specification.
It helps keep runtime validation aligned with an API’s documented design while reducing the need to maintain equivalent schemas by hand. The result is less duplicated work and a clearer connection between an API contract and its implementation.

