Backend developers for APIs and integrations
We build the APIs and integrations that get your systems talking to each other, and that keep working when one of them is down.
- Vipps, BankID and Altinn
- Every developer has 10+ years’ experience
- Personal data stays in the EU/EEA
We build and run systems for
What our backend developers do
From a single API to systems that connect your online shop, business systems, accounting and public-sector services.
System integration
We connect your business systems, online shop and accounting, so each piece of data is entered only once.
API development
REST and GraphQL APIs with OpenAPI documentation and versioning, for apps, partners and other systems.
Queues and webhooks
Heavy jobs and calls to other systems run in queues, and are retried automatically when something fails.
Data model and database
PostgreSQL schemas that keep the data correct and the queries fast, even as volumes grow.
Security and privacy
Access control, encryption and sensible logging from the start, following OWASP and the basic principles from NSM, the Norwegian National Security Authority.
Takeover and modernisation
We take over existing backends and replace old systems piece by piece.
Norwegian integrations we know well
Most Norwegian businesses need some of the same integrations. For several of them we have our own packages, so we can set them up quickly and safely.
Vipps MobilePayPayments, recurring charges, refunds and webhooks.
BankIDSign-in with OIDC and signing with PAdES.
Altinn 3 and MaskinportenReporting, prefilled forms and data retrieval.
Tripletex and PowerOfficeOrders and invoices straight into the accounts.
Zero downtime for critical applications
How a financial company ships new code with Kubernetes and GitOps, including database migrations, without users noticing.
Read the caseThe fear of deploying disappeared. Tuesday evenings went from on-call duty to time off.
Backend in practice
Our backend developers build APIs, integrations and data systems that are easy to run and can keep being developed for years. Backend work is rarely about one application on its own. For Norwegian businesses, much of it is getting systems to talk to each other, so the online shop updates the accounts automatically or the customer portal pulls data straight from Altinn, the government's portal for business reporting.
We use mature technology such as Laravel, Node.js, Python and PostgreSQL. We also know the payment, identity, public sector and accounting integrations that almost every Norwegian business needs. Everyone on our team has more than ten years of experience.
When do you need a backend developer?
A typical sign is staff typing the same information into two systems, or someone downloading a report every morning and entering it somewhere else. Another is a new app or partner that needs data which currently only lives in an internal system. That's when you need an API, an integration or both.
Other times the system itself is the problem. The database is slow, nobody dares touch the code, or the person who built it has left. In that case we start with a review before we write any new code.
Sometimes you don't need us at all. If your online shop and accounting system already have a ready-made connector that does what you need, it's often better and cheaper than anything we'd build, and we'll tell you so.
Integrations that cope with failures
Integrations are often what takes longest in a project, and what causes the most trouble in production. You only control one side. The other system can go down, respond slowly, change its format or limit how many calls you're allowed to make.
So we build integrations on the assumption that the other side will fail:
- Queues: calls to external systems run in queues. Users don't have to wait, and a call that fails is retried.
- Duplicate messages: if Vipps or another system sends the same webhook twice, you still only get one order.
- Rate limits: heavy synchronisations are spread out, so we stay within the limits even at month-end.
- Logging and alerts: we can see which calls fail and why, and we're alerted before users notice anything.
Vipps integration
Setting up Vipps, Norway's most widely used mobile payment app, to take payments is easy. The harder part is everything around the payment: abandoned purchases, refunds and partial captures. We build integrations with the Vipps MobilePay APIs for one-off payments and recurring charges, and they handle all of that.
Webhooks from Vipps update stock levels in real time, and every payment is matched to the right order, so the accounts reconcile down to the last krone. If a call fails, the queue tries again, so a temporary error doesn't mean a lost payment.
BankID integration
If you handle sensitive data or sign agreements digitally, we use BankID, the Norwegian electronic ID, with OIDC (OpenID Connect) for sign-in and PAdES for legally binding signatures. We know the pitfalls around session handling and privacy. We make sure the integration meets the assurance level you need, whether that's "substantial" or "high".
We have our own packages for Vipps MobilePay and BankID. The basics are in place from day one, so the time can go into what's specific to your system.
Altinn 3 and Maskinporten
Altinn 3 is the new platform for dealing with the Norwegian public sector. We help businesses automate their reporting and retrieve data through Maskinporten, the government's service for system-to-system access. The system can create forms, prefill them with data you already have and send them for signing. That saves your staff many hours of manual work.
You have to apply for access to Maskinporten and to each individual service, so we send those applications early in the project.
Tripletex, PowerOffice and accounting
The accounting system is the company's single source of truth. We connect your business systems directly to Tripletex and PowerOffice, two widely used Norwegian accounting systems, so nothing has to be entered twice. When an order is completed in your business system, the invoice is created automatically in the accounts.
Accounting system APIs limit how many calls you can make, and a lot of data arrives at once at month-end. We put heavy synchronisations in queues and spread the calls out, so the system holds up when the load is highest. If shipping is part of the same flow, we've also connected systems to Bring, PostNord and Porterbuddy.
API design
An API is a contract with everyone who uses it, whether that's a mobile app, a partner or another system. We build REST and GraphQL APIs with:
- Documentation: an OpenAPI description that always matches the code.
- Versioning: new versions can ship without breaking existing clients.
- Predictable design: the same conventions for names, error messages and pagination across the whole API.
- Access control: each client only gets access to the data it needs.
Choosing backend technology
New backend frameworks keep appearing. We let most of them pass and choose technology that's mature, widely used and still easy to hire developers for in five years.
- PHP and Laravel: for many businesses, getting started quickly matters most. Laravel has ready-made building blocks for authentication, queues, email and database work. In our experience we build secure business applications in about half the time it takes on heavier platforms. Read more about Laravel development.
- Python: when the system has to process large amounts of data, run heavy calculations or use AI, Python is the obvious choice. With FastAPI or Django we build APIs that connect your data to machine learning models.
- Node.js and TypeScript: when your team already works in TypeScript, or the service mostly moves data between systems, we use Node.js with Express or Fastify.
We also have experience with Go and .NET, and we're happy to keep working in what you already have.
PostgreSQL and the data model
Whatever the language, we prefer PostgreSQL as the database. It handles everything from ordinary tables to JSON documents and geographic data, so you don't have to run several databases side by side. Redis takes care of caching and queues, and we bring in Elasticsearch when search has to cover a lot of data.
The data model has a big effect on quality. When the database itself enforces what counts as valid data, the application code gets simpler, and that means fewer bugs and faster systems. We change the database with migrations that are tested against a copy of production data before they run.
Security and privacy by design
GDPR and the Norwegian Data Protection Authority keep raising the bar, so we build every system with privacy by design. In practice we:
- Minimise data: we don't store more than we need.
- Control access: role-based access control means a case worker can't see what only an administrator should see.
- Encrypt: data is encrypted both at rest in the database and in transit over the network.
- Log carefully: we log who does what, but not sensitive personal data, so incidents can be traced.
During development we follow the basic principles for ICT security from NSM, the Norwegian National Security Authority, and OWASP's recommendations. That way the system holds up as threats change. Personal data is stored in the EU/EEA. If you need an outside assessment, our IT security team can help with reviews and testing.
Taking over and modernising backends
Many businesses have a backend whose original developer has left. We start with a technical review of the code, database, integrations and hosting. Then we prioritise what gives you stable operation, better performance and easier development. It's often wise to pay down technical debt before building anything new.
Others have old systems the business depends on, but which are expensive to maintain and hard to change. Replacing everything at once rarely goes well. We often recommend the strangler fig pattern: we build new modules alongside the old system and move functionality across piece by piece. That might mean invoicing first, then order processing and finally the customer register. The new system gradually takes over, and in the end the old one can be switched off. The risk is much lower, the first delivery is already useful, and you don't have to wait two years for one big new system.
What affects the price?
Our hourly rate starts at NOK 1,500, and projects with a clear scope get a fixed price. The cost of backend development depends mostly on:
- The number of integrations: each external system has its own API, its own test environment and its own quirks.
- The quality of the APIs you connect to: a well-documented API is quicker to work with than one we have to explore call by call.
- The data model: lots of roles, rules and relationships mean more work.
- Data that needs migrating: moving data from an existing system takes cleaning and testing.
After a short discovery phase you get an estimate, so you know what you're getting before we start.
How we work
If we see that something can be solved more simply than the requirements suggest, we'll say so.
- Tests: automated tests for every important flow, with Pest and PHPStan in our Laravel projects, run before every deploy.
- Code review: another senior developer reads the code before it goes to production.
- Documentation: we document APIs, integrations and the hosting setup, so the system can be handed over to others.
- Deploys without downtime: new versions roll out on Kubernetes without users noticing. See how we did it for a financial company.
You won't get juniors on the project. We write code that other developers can understand and build on, because we want clients to stay with us because they're happy, not because they're stuck.
Our stack
These are the tools we use in most backend projects, layer by layer.
- ApplicationBusiness logic and APIsLaravelNode.jsTypeScriptPythonFastAPI
- Queues and integrationsJobs and external systemsRedis queuesVippsBankIDMaskinportenTripletex
- Data and searchStorage, cache and searchPostgreSQLMySQLRedisElasticsearch
- OperationsRunning and scalingDockerKubernetesAWSGCPAzure
Need help with a backend or an integration? Book a chat and we’ll give you an honest view of what’s possible.
How we work
- source of truth
Discovery
We go through your systems, data and agreements, and work out which system is the source of truth for which data.
- API contracts
Data model and contracts
We design the data model and API contracts first, and apply early for access such as Maskinporten.
- tested against the provider
One integration at a time
Each integration is tested against the provider’s test environment, and automated tests run before it goes live.
- ongoinglogging and alerts
Operations and monitoring
Logging and alerts tell us when an API or integration is struggling, before users notice.
ongoing
Frequently asked questions
Are an API and an integration the same thing?
No. An API is the way into one system. The integration is the code that uses the APIs of two or more systems to move data between them, with rules for what happens when something fails.
Which backend technologies do you use?
We mostly work with Laravel (PHP), Node.js with TypeScript and Python, and also have experience with Go and .NET. The choice depends on how the system will be run, what skills your team has, performance needs and plans for further development. For data and analysis we use Python.
Can you integrate with Vipps, BankID or Altinn?
Yes. We have experience with payments and recurring charges in Vipps MobilePay, sign-in and signing with BankID (the Norwegian national e-ID), and Altinn 3, the government’s portal for business reporting, with Maskinporten. For several of them we have our own packages.
Do you build APIs for mobile apps and partners?
Yes. We build REST and GraphQL APIs used by iOS, Android, web applications and other systems, with OpenAPI documentation, versioning and access control.
How do you handle security and privacy?
We build security in from the start: access control, logging, data minimisation and encryption. We follow OWASP and NSM’s basic principles for ICT security, and adapt the measures to the risk and the type of data.
Can you take over an existing backend or database?
Yes. We start with a technical review and prioritise what gives stable operation, better performance and easier development. Often that means paying down technical debt before building anything new.
Which database should we choose?
Usually PostgreSQL. It handles regular tables, JSON documents and geographic data. If you already run MySQL, we’re happy to keep working with it.
What does backend development cost?
Our hourly rate starts at NOK 1,500. Projects with a clear scope get a fixed price, and you get an estimate before we start.
Who owns the code?
You own the code we write for you, and it lives in your own repository if you want. We document APIs and integrations so others can keep working on them.
More specialist areas
- PHP · Laravel
Laravel development
Web applications, APIs and SaaS in Laravel 13, with queues, real time and Norwegian integrations.
- React · TypeScript
Frontend development
Interfaces that load fast, work with keyboard and screen reader and are easy to build on.
- Database to screen
Full-stack development
One team that owns the whole application, from data model and API to the interface users see.
Need help with backend or integrations?
Tell us briefly what you want to achieve, and we’ll give you an honest view of the options and the risks.