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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.