Management · October 2026 · Internal

From discovery
to delivery

What we found in the platform, where we take it, and how we get there without disrupting customers.

Alexander · Tech Lead

01

What we found

What we found

A working product on a heavy platform

~80operator companies in production, each with its own database
5user interfaces built on different stacks
234klines in one Python codebase, deployed as 7 services
0automated checks before a change reaches production
No service is missing. What slows us down is the engineering system around it: testing, release, protection and operations.

Source: architecture discovery, October 2026 (static review of 19 repositories, refreshed 13 October; no production access).

What we found

Six things that make change slow and risky

  • ProtectionSecurity is opt-inOpen unless someone closes it.
  • Safety netNo tests, no gatesCustomers find the bugs.
  • BranchesEnvironments driftFar from production.
  • StructureRules duplicatedPer channel, in many places.
  • OperationsSilent failuresMetrics exist; nothing alerts.
  • KnowledgeHeld by the supplierQA, devops and releases.

Delivery today

Half of what we ship is fixing what we shipped

53%of shipped tickets are fixes
22 daysmedian lead time for a feature, from start to release
  1. ChangeNo tests.
  2. Manual QAOn a drifted branch.
  3. ReleaseWeekly, no rollback.
  4. CustomerFinds the rest.

Costs

11.6M NOK a year, excl. VAT

ItemNOK/yrShare
Gture (offshore)8.70M75%
AWS1.09M9%
Google (Maps)1.01M9%
Folq (UX, 20%)0.70M6%
Terraform0.11M1%
Opportunity Maps: ~83k NOK a year per 10% moved 834k of the Maps spend can move to our own map service, once it is in production.
Owners needed ~163k NOK a year of analytics and metrics Prometheus and Grafana now traced. OpenSearch, Glue, Redshift and QuickSight: no repository, no owner.

Source: IT cost export Oct 2025 – Sep 2026, excl. VAT. Internal: contains supplier costs.

02

Where we go

Direction

Django out, one TypeScript platform in

  • Standalone apps. Each product in one monorepo, deployed on its own.
  • A thin BFF. Login and composition, no database access.
  • An API by domain. Versioned packages, released separately.
  • A small core. Tenancy, identity, access and tiers. No business logic.
Web appsFrontend monorepo
MobileDriver and passenger
Partners and AI agentsTiered API products
BFFTypeScript / Express
GatewayScopes, quotas, metering
API monorepoOrder-to-trip, finance, workforce, integrations
CoreTenant context, identity, entitlements, audit

Programme

R0–R5: each stage has a gate

StageGoalGate to move on
R0 SafetyMake change safeError tracking live, backups confirmed, CI gates on
R1 Frontend monorepoOne home for the appsv5 builds, tests and deploys from the monorepo
R2 BFFRetire Django in the UIThe old frontend serves no traffic
R3 TiersMechanism to sell modules and APIEnforced for a pilot operator and partner
R4 API by domainClean seamsEach domain has a contract, no forbidden imports
R5 PortMove each domain to TypeScriptParity in shadow mode, then switch

Compliance

Three obligations, one track of work

  • ISO 27001Required for UK operatorsISMS scope, risk assessment, supplier rules. Owned by the CISO.
  • GDPRApplies todayRegister of processing, retention and erasure, personal data out of logs, processor agreements.
  • AccessibilityWCAG AA, aiming for AAANorwegian requirements, for every product. Automated checks in the new monorepo.
R0 is certification groundwork. Access control, backups, incident handling, logging and supplier security are the same work.

Our own customers

One place for every customer, from deal to live

Today a signed customer becomes manual work. HubSpot holds the customer, Google Drive the contract, and the platform the rest.

  1. Deal wonHubSpot stays the CRM.
  2. ContractCreated in the field, signed with BankID.
  3. ProvisionTenant set up automatically, no ticket.
  4. SubscribeModules and tiers switched on per customer.
HubSpot or a separate app: the CEO decides on proposals. Either way the same flow, ending in customers who sign up and activate themselves.

03

How we get there

Ownership

Bring the platform close to home

Team · first setup Our own team in Oslo Tech Lead, two full-stack developers, one frontend developer and one UX / UI designer. Devops is shared by the team.
Leadership CTO → CISO, Tech Lead → CTO Security and ISO 27001 get an owner. The Tech Lead leads the team and the transition.
  1. Mid-NovemberWe advertise four roles.
  2. JanuaryTwo bridge contractors start.
  3. 31 JanuaryThe supplier's last day.
  4. April – MayThe new team is in place.

Initial dates, not final: they can move, for example with the supplier's notice terms or hiring.

Over time

Cheaper by March, ahead by May

Initial dates, not final: they can move. Delivery is the plan (today's team = 100), measured every quarter.

Handover gap Cumulative cost, NOK Delivery, planned (today’s team = 100) 0 2M 4M 6M 8M 0 50 100 150 Current setup · 7.5M Own team · 6.2M Current setup · 100 Own team · 135 (target) −1.3M in year 1 Nov Dec Jan Feb Mar Apr May Jun Jul Aug Sep Oct 2026 2027 Supplier ends 31 Jan

Handover

Ownership moves by readiness

  1. H0 · AccessEvery account has a company-held admin.
  2. H1 · RunbooksWritten by the supplier, tried by someone else.
  3. H2 · PairBridge contractors pair with the supplier in January.
  4. H3 · OwnThe Oslo team takes over, area by area.
  5. H4 · SteadyCompany-run operations, access reviewed.
Firstv5 modules, sales and settingsLowest concentration of knowledge.
Last, before the supplier leavesFinance, payments, devops and releasesWhere knowledge is most concentrated.

First 90 days

What happens, in order

  1. Days 1–30ConfirmSecurity checks and edge containment. Rotate credentials. Confirm backups. Error tracking and alarms. Payment baseline. Account register.
  2. Days 31–60StabilisePayment fixes. Feature flags. A local stack that works. CI gates. Runbooks written. Hiring for the Oslo team.
  3. Days 61–90Hand overEvery account and access taken over. Runbooks tried by someone else. Operations and releases to the bridge contractors.

Measures

How we will know it works

MeasureTodayDirection
Open write routes without login1350
Backup restore drillNot evidencedTested, on a schedule
Changes passing automated gatesNoneAll
Share of shipped tickets that are fixes53%Down
Feature lead time (median)22 daysDown
Payment reconciliation mismatchesUnknownKnown, then zero
Navigation on v5Not liveUp

Next

Decisions needed, answers pending

DecideOur own team: four hires, supplier ends 31 January
DecideISO 27001 date and scope
DecideTiming of CTO → CISO
Pending · CTOBackups, accounts, costs, commitments
Pending · FinanceOne-time Stripe reconciliation
Later · ProductTier catalogue, once we know what to sell

Thank you

Questions

Alexander · Tech Lead

Ferdia Management: From discovery to delivery

By Alexander Vassbotn Røyne-Helgesen

Ferdia Management: From discovery to delivery

  • 86