Software engineering company

Softwareyour businesscan run on.

Controgic designs, builds, and operates secure web platforms, SaaS products, and internal systems, from the first architecture decision to the system running in production.

Fig. 1. Clients, services, and data stores, exchanging requests.
Stack
  • Next.js
  • React
  • TypeScript
  • Node.js
  • Express
  • Java · Spring Boot
  • Python · FastAPI
  • PostgreSQL
  • MongoDB
  • Redis
  • Docker
  • GitHub Actions
  • AWS
  • Nginx
  • OAuth
  • JWT
  • Three.js
01Company

We build the software that businesses depend on day to day. Systems that stay understandable as they grow, are secure by construction, and are designed for the years they will spend in production.

What we build

Web platforms, SaaS products, and the internal systems that run operations, along with the APIs and integrations that connect them.

Problems we take on

Manual work that no longer scales, tools that don't share data, reporting nobody trusts, and systems that have become risky to change.

How we work

One accountable team from architecture to production. Decisions are written down, trade-offs are visible, and security is designed in from the start.

What's different

We build and run our own product. That keeps us honest about what happens after launch: support, change, failure, and growth.

02Products

Products we build and run ourselves.

Freightofy is our first product, live and in daily use. Running it is how we stay close to the work we do for clients.

Freight forwarding operations platform

Freightofy

Freight forwarding, from inquiry to invoice.

Freightofy runs the day-to-day work of a freight forwarder in one system: inquiries, bookings, vessel schedules, arrival notices, invoices, and a portal where consignees, shippers, and overseas agents follow their own shipments.

Job workflow
5 tracked stages
Partner types
4, each with portal access
Records
Branch-scoped, fully audited
One job, end to end

On arrival, an arrival notice is prepared from the shipment record with IGM, index, and VIR numbers for the consignee.

Acts
Operations
Modules
Arrival notice
Record
workflowStage = "ARRIVED"

In exploration

Product directions we're researching. These are not released software.

  • Secure Monitoring PlatformOperational visibility and intelligent alerting for critical systems.Exploring
  • AI Business AssistantContext-aware support for teams, knowledge, and daily decisions.Exploring
  • Smart Attendance PlatformFlexible workforce attendance, policies, and actionable reporting.Exploring
  • Adaptive Cybersecurity SystemA concept for risk-led monitoring and defensive automation.Exploring
03Capabilities

What we're good at.

A single team covering the full depth of a system, so nothing important falls between specialists.

All services
  1. 01Product & web applicationsCustomer-facing products and internal tools with fast, accessible interfaces and an information architecture that holds up as features are added.Next.js · React · TypeScript · Tailwind CSS
  2. 02Backend systems & APIsServices with clear contracts and explicit failure behaviour, plus integrations with the systems a business already depends on.Node.js · Java / Spring Boot · Python / FastAPI · REST
  3. 03SaaS & multi-tenant platformsTenant isolation, roles and permissions, and admin and customer portals designed in from the start rather than retrofitted.Tenancy models · RBAC · PostgreSQL · Redis
  4. 04Security engineeringIdentity, authorization, validation, encryption, and audit trails treated as architecture, with threats considered alongside requirements.OAuth · JWT · Encryption · Audit logging
  5. 05Automation & applied AIWorkflow automation and AI-assisted operations where they remove real work, with human review where mistakes are expensive.Python · LLM APIs · Vector search · Job queues
  6. 06Infrastructure & deliveryRepeatable deployments, observable services, and recovery procedures that are tested rather than assumed.Docker · GitHub Actions · AWS · Linux / Nginx
  7. 07Data & reportingData models that answer operational questions, and dashboards that people trust enough to make decisions with.SQL · Python · Reporting · Monitoring
04Selected work

Engineering, explained.

What the problem was, what we decided, what we built it with, and what it delivered.

All work
Freightofy · Controgic product

An operations platform for freight forwarders

View the product
Freightofy public site with shipment tracking, member access, and administrator login

Problem

Freight forwarding involves many parties at once: consignees, shippers, forwarders, and overseas agents, each needing different information at different times. Keeping job records, vessel schedules, documents, and invoices consistent across all of them is where delays and errors creep in.

Approach

  • Modelled the import job as one record moving through five stages, so operations, accounts, and partners all read from the same source.
  • Fixed every job to a company, department, and branch at creation, and built access on configurable role permissions.
  • Gave each audience its own surface: a staff workspace, a partner portal, and public tracking and vessel planning.

Technology

  • React · Vite
  • Node.js · Express
  • MongoDB · Mongoose
  • JWT sessions · role permissions
  • Zod validation · Helmet · rate limiting

Result

Live at freightofy.com: a five-stage job workflow, branch-scoped records with full status history and an audit log, and a portal for four kinds of partners.

05Engineering

How a system fits together.

We design systems layer by layer, with explicit boundaries between them. Choose a layer to see what it's responsible for, how it's protected, and how it behaves under load and failure.

SecurityObservability
Fig. 2. Seven layers, with security and observability running through all of them.
03 / 07

API

Gateway · contracts · rate limits

The single, controlled entrance to application logic.

Responsibility
Route requests, validate contracts, attach request context, and standardise responses.
Security boundary
Reject malformed payloads, constrain request size, enforce rate policy, and never expose services directly.
Under load
Stateless instances scale horizontally behind a load balancer.
Under failure
Timeout budgets, circuit breakers, and bounded retries stop failures from cascading.
POST /api/v1/shipments
  1. Follow one request through every boundary it crosses.
06Philosophy

How we think about software.

  1. 01

    Complexity has to earn its place.

    Every service, dependency, and abstraction is a cost someone pays later. We add them when the problem requires it, not in anticipation.

  2. 02

    Boundaries come before features.

    Who can do what, which data belongs to whom, and what happens when a part fails are decided first. They are the hardest things to change later.

  3. 03

    Security is a design input.

    Threats are considered alongside requirements, so protection is part of the architecture rather than a layer added before launch.

  4. 04

    Production is the product.

    Software is finished when it is running, observed, and recoverable, not when the last ticket closes.

  5. 05

    Good software gets out of the way.

    People should be thinking about their work, not about our interface. Clarity is a feature we design for, test, and protect.

Have a system worth building?Let's build it.

Tell us what it needs to do, who depends on it, and what happens if it fails. You don't need a finished specification. We'll reply with concrete next steps.