John Mikael Lindbakk

Senior backend developer | Tech lead

Senior backend developer and tech lead who builds robust, maintainable software. Cares about architecture that can evolve, teams that can sustain a pace, and code the next person can actually read. More than 13 years across healthcare, banking and insurance, and since 2023 as a consultant. Does open source and public speaking.

Work

Senior Consultant

– Present
Oslo, Norway

Consulting as a senior backend developer, architect and tech lead in client teams, across logistics, finance, public health and telecom.

  • Architect on a greenfield logistics platform: a modular monolith built with Domain-Driven Design, event sourcing and event-driven integration, delivered by up to three teams

  • Team lead and tech lead for the core credit-card systems at a large Nordic IT services company, where I set the test strategy, introduced contract testing and took part in the PCI audit

  • Architect for a public health institute's move to a new Azure and Kubernetes platform

  • Brought in at the end of a critical telecom infrastructure project, after its two original developers had left, to do a security audit, fix the remaining bugs and bring it to the finish line

  • Developer on a restaurant ordering platform, building integrations with point-of-sale systems

  • Mentored developers, gave internal talks and held technical interviews

Tech Lead

–
Oslo, Norway

Improved how the developers worked: architecture, test strategy, CI/CD and coaching.

  • Tech lead across several teams, responsible for architecture, coaching and how the developers worked day to day

  • Owned the test strategy and the CI/CD pipelines, including the move from TeamCity to GitHub Actions

  • Introduced practices that stuck: post-incident reviews, Architecture Decision Records, self-updating dependencies and DORA metrics

  • Built an initialiser that generates production-ready services, which became the foundation of every new application

  • Replaced authorisation logic scattered across codebases with central policies and audit logging

  • Led a project that geolocated more than 90% of the insured buildings in the UK, and built the reinsurance application used for risk analysis

  • Took part in most major technology decisions during my time there

Senior Consultant

–
Oslo, Norway

Maintained and created core solutions for major Nordic banks.

  • Built and maintained core backend systems for multiple banks: reporting, integrations and a generic changelog

  • Created automated integration testing that cut a week-long manual test of a bank's core systems to 15 minutes, and improved CI/CD pipelines

  • Authored developer guidelines for a cleaner and more maintainable codebase

  • Team lead for the team responsible for our PCI compliant systems

  • Project architect for new banks joining the platform, responsible for the technical side from sale to delivery

  • Worked closely with partners in India

System Developer → Senior System Developer

–
Seljord, Norway

Made electronic health record systems for the privatized healthcare sector in Norway. Started as a system developer and was eventually promoted to team lead.

  • Responsible for the development of the core product, an electronic health record system

  • Team lead: estimated, planned and followed up projects, and gathered requirements from customers

  • Built integrations with payment terminals, accounting systems and video chat, and a system for migrating customers between vendors

  • Worked closely with the business by planning and implementing new features

  • Worked closely with an outsourcing team in Vietnam, and lived there for a few months to do it

Education

Aberystwyth University

Bachelor of science in Computer Science
–
Courses
  • CS38010 - Space Robotics

  • CS36410 - Intelligent Robotics

  • CS38110 - Open Source Development Issues

  • CS31310 - Agile Methodologies

Projects

Gaseto

– Present

A Gleam implementation of PASETO (Platform-Agnostic SEcurity TOkens), a safer alternative to JWT. Supports v3 and v4 local and public tokens, is verified against the official test vectors, and comes with gaseto_http for using it over HTTP.

  • gleam
  • library
  • security

No Meat Proxy

A simple website showcasing how to (not) use AI when working with other people.

Surtoget

A public tool that exposes systemic delay patterns in the Norwegian rail network through open data — because the official statistics don't tell the full story.

  • gleam
  • erlang/otp
  • open data

Brunost

A programming language built for Norwegian speakers — using Nynorsk keywords (forKvart, prøv, gjevTilbake) so code reads naturally in the language you think in. Built in Zig, it compiles to native binaries and WebAssembly.

  • zig
  • wasm
  • language design

Bygg

Getting started with Gleam is easy. Getting something production ready is less so, regardless of the language. Bygg aims to help developers getting started by generating projects with sensible defaults already configured and ready to go.

  • gleam

HTTP Mock Server for Gleam

A WireMock-style HTTP mock server for Gleam integration tests. Start a real HTTP server in your test, tell it what to respond to, make requests against it, and verify what was called — on both Erlang and JavaScript targets.

  • gleam
  • library
  • testing

toUUID

– Present

A small library that creates human-readable and deterministic UUIDs for testing purposes.

  • Java
  • Kotlin
  • Testing

Gleam and BEAM: Looking beyond the JVM

Speaker at JavaZone
– Present
talk

On exploring a different language on a different VM: how Gleam brings a statically-typed, functional, immutable language with no exceptions to the BEAM, where every process is tiny, isolated, communicates via messaging, and embraces "let it crash".

My advice to CompSci graduates

Speaker at Aberystwyth University
– Present
talk

Here I shared advice for graduates touching on AI, automated testing, legacy code, and the importance of understanding practical implementations of theory and concepts.

Riding the Sour Train: Building surtoget.no with Gleam

Speaker at Gleam Gathering
– Present
talk

A two-part talk: first on how technical skills can help shed light on real-world societal problems — using surtoget.no as a case study — then on driving correctness through the type system.

Thinking Architecturally

Speaker at bspoke
– Present
talk

A talk all about thinking about architecture in terms of dependencies, and how these dependencies connect, but also how the size and complexity of the codebase impacts architecture.

Certificates

Confluent Certified Developer for Apache Kafka

Issued by Confluent

OWASP course

Issued by OWASP

Skills

Developer

  • Kotlin/Java
  • C# .NET
  • Gleam and Erlang/OTP
  • Python
  • SQL of various kinds and MongoDB
  • Microservices and modular monoliths
  • Kafka and Azure Service Bus
  • Architecture and Domain-Driven Design
  • Contract first
  • gRPC

DevOps

  • GitHub Actions
  • TeamCity
  • Jenkins
  • Docker
  • Kubernetes
  • Helm and GitOps
  • Azure DevOps
  • Datadog, Grafana and OpenTelemetry
  • Solution design

Security

  • OWASP
  • OAuth 2.0
  • Open Policy Agent
  • PASETO

Testing

  • Testcontainers
  • System tests
  • Mockserver
  • Contract testing
  • Narrow & Wide integration tests
  • Spock/Junit/Mockito/Nunit/etc

AI-assisted development

  • Claude Code
  • Codex
  • Gemini CLI

Languages

English

Fluent

Norwegian

Native speaker

Interests

Stuff I like in general

  • Dungeon & Dragons
  • Headphones (Good audio)
  • My dog
  • Discworld
  • Whiskey

Shows I like

  • Battlestar Galactica
  • Firefly
  • Red Dwarf
  • Doctor Who

Developer books I recommend

  • Clean Series
  • Pragmatic Programmer
  • The Phoenix Project/The Unicorn Project
  • The Art of Unit Testing
  • The Software Craftsman
  • Working effectively with legacy code