Engineering profile

Our technology stack

For over 15 years we've picked tools to fit the problem rather than the trend cycle. This is the full stack, with the reasoning: what we use, when and why.

15+years building software
5areas of the stack
27technologies in use

01 — Backend

Server-side development

Node.js and PHP frameworks for high-load services and enterprise systems, with headless CMS platforms where content has to be managed through an API.

Node.js + NestJS

JavaScript TypeScript REST GraphQL

Our foundation for high-load APIs and event-driven systems. NestJS brings the structure: dependency injection, clear module boundaries and a layout every engineer on the team recognises. We use it for microservices, for the layer between frontend and backend, and for real-time features over WebSocket.

PHP — CakePHP / CodeIgniter

PHP 8.x MVC ORM

A dependable stack where predictability and long-term maintenance matter more than novelty. CakePHP is our choice for new, convention-heavy business logic — the conventions are what keep the code readable years later. CodeIgniter is where we maintain and extend systems that have been running for a decade.

WordPress

CMS PHP Gutenberg REST API

Fast delivery for content sites and corporate blogs, with an ecosystem that covers most of what such a site needs. We build custom themes, custom Gutenberg blocks, and extend the WordPress API when the content has to feed another front end.

Directus

Headless CMS Node.js REST GraphQL

A content platform that runs in the cloud or on your own servers. It gives editors a usable interface and gives us a head start: authentication, registration, roles and permissions, and REST and GraphQL APIs generated straight from the SQL schema.

Strapi

Headless CMS Node.js TypeScript Plugins

Open-source content management for projects that need fine-grained permissions and genuinely complex relationships between content types. Ships with an admin interface, a permission layer and generated REST and GraphQL APIs — and lets us write server-side code inside the CMS itself, so unusual business logic does not require a separate backend service.

02 — Frontend

Interfaces and web applications

Enterprise single-page apps, server-rendered sites built for search visibility, and conventional web front ends. Which framework we reach for depends on team size, performance requirements and how complex the domain model is.

Angular

TypeScript Standalone Signals Zoneless

Our default for applications that will be maintained for years by more than one team. We work on the current version with signal-based change detection and standalone components, which cuts both bundle size and the amount of ceremony around ordinary work.

Vue.js

Composition API Pinia Vue 3 TypeScript

A progressive framework for responsive interfaces and customer account areas. Pages load quickly, interactions respond immediately, and the architecture scales as the product grows rather than needing a rewrite.

Nest.js

Node.js TypeScript Express Architecture

A progressive server framework for dependable B2B systems and microservices. Strict modular architecture keeps code isolated, which is what makes both scaling and parallel team work possible. We use it where fault tolerance is a hard requirement.

Nuxt.js

Vue SSR SSG

A high-performance meta-framework for corporate portals and web services that live or die by search visibility. Server-side rendering gives fast first paint and clean indexing, without giving up the interactivity of a single-page app.

AngularJS

Legacy code JavaScript Maintenance Migration

Maintenance and planned migration of legacy systems onto platforms that are still supported. We audit the architecture, agree a safe upgrade path and move business-critical modules across in stages, without taking the service down.

HTML / CSS

Semantics Responsive Accessibility Animation

Interfaces built on semantic, responsive markup. Correct rendering across devices and screen sizes, fast paint times, and conformance with accessibility standards rather than a checkbox exercise.

03 — Business platforms

Business platforms and automation

Automation and off-the-shelf platforms wired around how a company actually works — so the tooling adapts to the process, rather than the other way round.

Bitrix24

CRM Integration Automation On-premise Cloud

Rollout and customisation of corporate portals: configuring the sales pipeline, automating internal workflows and building the custom modules a company needs on top. We connect the system to external services through its API, and set it up either as a cloud tenant or as a self-hosted instance on your own servers.

n8n

Self-hosted Open source Automation Data residency

A workflow automation platform we can deploy inside your own infrastructure. We reach for it on projects with strict confidentiality requirements, where routing business data through a third-party cloud is not an option.

Make.com

Automation Integrations Scheduling Hosted

A hosted automation platform for wiring services together without a server to maintain. We reach for it when the integration is the whole job: collecting responses from a form, moving them between systems and triggering the next step on a schedule.

OpenAI API

AI Document parsing Classification Summarisation

Language models applied to the steps that used to need a person to read something and make a call: pulling the numbers out of an incoming document, routing a request to the right team, turning raw input into a summary short enough to act on. We will also say when a plain rule is cheaper and more reliable than a model.

Azure AI

AI Document parsing OCR Cloud

We used Azure Document Intelligence to pull structured data out of uploaded documents — text, fields and tables — so a submission could be checked against what it is supposed to contain instead of queuing for a moderator. On that platform the volume of uploads made manual review impossible.

04 — Mobile

Mobile development

Native and cross-platform apps for iOS and Android — from prototype through to App Store and Google Play release, with a full QA cycle in between.

Flutter

Dart iOS Android UI Cross-platform

Our main cross-platform tool: one codebase serving iOS and Android without giving up performance. Its component model is what lets us match a design exactly, including the interaction details that usually get lost in translation.

Kotlin Multiplatform

Kotlin iOS Android Shared logic Architecture

A layered approach: business logic and networking are written once and compiled for both platforms, while each interface is built natively for its own system. The right trade-off when the app has to feel genuinely native but the budget will not cover two full builds.

Swift

iOS SwiftUI UIKit Native

The official stack for native Apple apps. We use SwiftUI for new work and UIKit where the app has to integrate with a large existing codebase — the two coexist perfectly well in the same project.

Objective-C

iOS Legacy code Maintenance Optimisation

Maintenance, extension and optimisation of large enterprise iOS apps built on inherited code. We audit stability, fix the accumulated defects and introduce new modules in stages, without disrupting what is already running.

Kotlin / Java

Android Jetpack Compose Databases Native

Native Android development. Kotlin with Jetpack Compose for fast, modern interfaces; Java where we are supporting and integrating with established banking and enterprise systems that are not going to be rewritten.

05 — Data and infrastructure

Databases and infrastructure

The database follows the data model and the access patterns, not habit. Containerisation and version control are non-negotiable on every project — reproducible deployment depends on both.

PostgreSQL

Relational Reliability Complex data Full-text search

Our default database on most large projects. Transactional guarantees you can rely on, genuine support for nested structures and partitioning, and the maturity to sit under systems with serious security requirements.

MySQL

Relational Replication High load Tuning

Long-standing choice on platforms where it is the expected database, and perfectly capable under load. On high-traffic projects we tune indexes, configure connection pooling and set up replication to standby servers.

MongoDB

Document store Flexible schema Analytics Fast lookup

A document database for systems with genuinely irregular structure: catalogues where every product type has different attributes, event logs, and deeply nested content. Analytical queries can run without dragging down everyday reads.

Firebase / Supabase

Backend as a service Push Auth Security

Managed and self-hosted backend platforms for getting a mobile or web product in front of users quickly. Authentication, push notifications and access-controlled file storage come ready to use rather than needing to be built.

Docker

Containers Orchestration CI/CD Scaling

Containerisation is standard on every project we run: the same software behaves the same way on any server. On high-load systems we add orchestration, so resources scale automatically and deployments happen without downtime.

Git / SVN

Version control Code review Legacy code Audit

Professional version control with mandatory review before anything reaches a server. We also keep working with legacy SVN repositories at organisations where internal policy rules out a migration.

Get in touch

We'll pick the stack for your problem

Tell us about the project — we'll propose the technologies, explain why, and estimate the cost.

We reply within one business day