Featured Projects
Selected freelance engagements across finance, telecom, healthcare, defence and maritime—spanning both greenfield delivery and modernization. I typically join as a senior freelancer to reduce risk, accelerate delivery (including responsible AI use), and ship production‑grade backend systems.
| 2023 – 2025 |
Integration of TV streaming services and provisioning of network connections, Norlys. Role: Senior Java developer (freelance). Tech keywords: Java MicroProfile, Quarkus, OpenShift, Jaeger, Helm. On a cross‑functional team I built and integrated services for provisioning TV streaming and network connections for 1M+ customers. I also supported migrating customers from multiple legacy billing systems to a single corporate platform. |
|
![]() |
2020 – 2023 |
Corporate risk management, Jyske Bank A/S. Role: Java consultant and mentor (freelance). Tech keywords: Java MicroProfile, Quarkus, OpenShift, Jaeger, Helm. I developed and maintained a Java EE backend application for corporate financial risk management. I then led the migration to Quarkus and OpenShift, including delivery hardening and mentoring. |
![]() |
2019 |
eHealth, Systematic. Role: Lead developer (freelance). Tech keywords: Java SE, Spring Boot, HL7 FHIR, HAPI FHIR, REST, Swagger, Docker, Kubernetes, Helm, Istio. I led development of critical parts of the Danish eHealth platform—a national backend used for telemedicine/home treatment (e.g. lung diseases, complicated pregnancies, and diabetes). I led a distributed team across Denmark and Ukraine delivering REST and HL7 FHIR services based on Java, OpenAPI and Spring Boot. |
![]() |
2018 |
Near-miss detection, Danish Maritime Authority. Role: Architect and programmer (freelance). Tech keywords: Java SE, Spring Boot, JTS topology suite, WKT, REST, OpenAPI, AIS, GPS, NMEA, applied mathematics. As application architect and domain specialist, I supported greenfield development of an onboard service that collects and analyses positional data from own ship (GPS) and surrounding ships (AIS). The application detects near‑miss situations (another ship entering an ellipse‑shaped safety zone ahead of own ship) and makes incidents available to other onboard systems for post‑trip analysis and evaluation performed by navigators and other bridge personnel. The service was prepared for distribution via the international Maritime Connectivity Platform (MCP). |
![]() |
2018 |
Navigational warnings in S-124 format, Danish Maritime Authority. Role: Programmer (freelance). Tech keywords: Java EE (CDI, JAX-RS, JAXB, JPA), JBoss, REST, OpenAPI, XML, GeoJSON, WKT. I upgraded an existing Java/JBoss-based system for editing and promulgation of navigational warnings. The main task was to create a REST service to distribute warnings in a format compliant with the IHO S‑124 standard. The service is part of the Maritime Connectivity Platform (MCP) and is used by ships at sea. |
![]() |
2018 |
Electronic deed registration (Danish: eTinglysning), Bankdata. Role: Programmer (freelance). Tech keywords: Java EE (CDI, JAX-RS, JAXB, JPA, JMS), JDOM2, XML-DSig, Apache Camel, JBoss, OpenAPI. I implemented major parts of JMS- and REST-based integration points between Bankdata's internal systems and the public electronic deed register, which uses a complex SOAP‑over‑MQ protocol. APIs exposed towards other internal systems were documented using OpenAPI. |
![]() |
2017 |
Antenna selection algorithm, Undisclosed client. Role: Programmer (freelance). Tech keywords: Node.js, JavaScript, PostGIS. As a remote freelancer I delivered a turnkey Node.js microservice that selects the optimum antenna for coast‑to‑ship communication, given a geographical description of each antenna's coverage area. |
![]() |
2017 |
Core Credit API, Bankdata. Role: System architect and team lead (freelance). Tech keywords: Java EE (CDI, JAX-RS, JPA), Hibernate, JBoss, Swagger. I laid the architecture, served as team lead and implemented major parts of the Core Credit API—an important REST-based API used by multiple internal systems to access information about private customers and their financial situation. The Core Credit API was delivered as multiple microservices. |
![]() |
2015 – 2016 |
Private credit granting system, Bankdata. Role: System architect and team lead (freelance). Tech keywords: Java EE (CDI, JPA, JSF, JAX-RS), JBoss, Swagger. I led a team delivering a new credit granting system for private customers used in 14 Danish banks. The work included REST/SOAP integrations with internal and external data providers and close collaboration with business stakeholders to translate requirements into efficient, low-touch business processes. |
![]() |
2015 |
Big data back-end for AIS messages, Danish Maritime Authority. Role: Architect and programmer (freelance). Keywords: Java EE, Cassandra, Big Data. I implemented a message archive based on Apache Cassandra to store ~2,500 AIS messages per second for five years and make this searchable using temporal and spatial query parameters. Data size: ~50–100 TB. |
![]() |
2015 |
AIS for flow management, Danish Maritime Authority. Role: Architect and analyst (freelance). Keywords: AIS Application Specific Messages, maritime flow management, MONALISA 2. I analysed the need for information exchange in maritime flow management scenarios and produced a detailed technical proposal for new AIS application‑specific messages. I also delivered a reference encoder/decoder implementation for the proposed messages. |
| 2014 |
NoSQL evaluation, Undisclosed client. Role: Architect (freelance). Keywords: Architecture reviews, NoSQL technology evaluation I performed system architecture reviews and recommended NoSQL databases and real-time messaging technologies for mission-critical systems. |
|
![]() |
2013 – 2014 |
Anomaly detection, Danish Maritime Authority. Role: Architect and programmer (freelance). Keywords: Java EE, Cassandra, MapDB, KML, Google Earth, Guava, Guice, OpenLayers. I combined maritime surveillance domain knowledge with technical skills in Java EE, databases and applied mathematics to develop anomaly detection for very large data sets representing vessels in Danish territorial waters. The software assisted surveillance operators in prioritizing which vessels among thousands to pay attention to. |
![]() |
2012 – 2013 |
eCommerce, DT Group. Role: Programmer (freelance). Keywords: Java EE, IBM Websphere, JSP, JavaScript, jQuery, Dojo. I delivered new features for the eCommerce solutions used in the multi-million kroner webshops of Silvan, Stark, Cheapy, Beier and Neumann—across web and mobile platforms and for both B2C and B2B customers. I introduced automated builds with Jenkins and functional tests with Selenium. |
![]() |
2010 – 2011 |
NemID Erhverv, Nets DanID. Role: Programmer (freelance). Keywords: Java EE, Maven, JSP, Spring MVC and Web Flow, Oracle/MySQL, Jenkins. I implemented essential parts of the self-service website for “NemID Business” (http://nemid.nu), across both frontend and backend. Programming was done in Java EE / Spring MVC / Spring Web Flow / Hibernate and JSP / JavaScript with continuous builds (Jenkins) and extensive automated testing based on Cucumber.rb. |
![]() |
2008 – 2010 2011 – 2012 |
Credit Granting for Businesses and Privates, Jyske Bank, Bankdata. Role: Programmer and business analyst (freelance). Keywords: Java EE, IBM Websphere, JSF, Spring web flow, Rapid Prototyping, web services. I analysed business processes and performed data modeling for advanced credit management for business customers. My work resulted in Axure prototypes and specifications that formed the basis for developers’ and testers’ work. The final system is used by advisors in 14 Danish banks, including Jyske Bank and Sydbank. As team leader for a team of 3–4 Java developers I implemented essential parts of a credit management system used by 1,000+ bank advisers at Jyske Bank, including SOAP/WSDL integration points against a mainframe and an advanced AJAX/Web 2.0‑based user interface. Programming was done in Java EE, Spring Web Flow, JavaScript and JSF / IceFaces. |
![]() |
2008 |
Master data management, Jyske Bank. Role: Programmer (freelance). Keywords: Java EE, IBM Websphere, IBM Infosphere Master Data Management (MDM), web services – SOA(P). I implemented essential parts of a Java EE-based Master Data Management (MDM) system for Denmark's third-largest bank. The system handled customers, names, addresses, family relationships, and relationships with other banks, based on IBM InfoSphere Master Data Management. |
![]() |
2004 – 2007 |
Database web-subsystem for VTS, VTS Great Belt (Denmark), VTMIS (Bulgaria), MSSS (Malaysia), Maritime Assistance Service (Denmark). Role: Lead software engineer (freelance). Keywords: Java EE, Tomcat, XUL, JavaScript, Linux, Postgres. Lead Java EE engineer on a web 2.0-based database for registration of ships passing under the Great Belt Bridge in Denmark. The system combined passage data with real-time weather and radar data to support operator risk assessment and reporting. |
![]() |
2004 |
AIS message pre-processing, GateHouse A/S, Royal Danish Administration of Navigation and Hydrography. Role: Software engineer (freelance). Keywords: Linux, C/C++, NMEA 0813. I implemented a software component for a land-based radio network that exchanges maritime navigation messages on the Danish Maritime Authority’s AIS network. The component pre-processed messages to remove duplicates and invalid messages. Implemented in C++ with sockets and multithreaded programming. |
![]() |
2002 – 2003 |
Integrated navigation computer, Offshore Systems Intl./Royal Danish Navy. Role: Lead software engineer (freelance). Keywords: Embedded Linux, C/C++, Matlab, NMEA 0183. Lead engineer on an embedded Linux-based system for onboard navigation of naval vessels, implementing detailed algorithmic specifications. Inputs came from multiple independent ship-borne sensors (civilian GPS, military GPS, gyro, INS, speed log, etc.). The system performed preprocessing, Kalman filtering, fault detection, and position/velocity/acceleration estimation which was forwarded to other onboard systems, including weapon systems. |
![]() |
1995 – 1996 1998 – 2003 |
RDN CCIS, Royal Danish Navy. Role: Lead software engineer and software team leader (freelance). Keywords: Solaris, C/C++, ILOG Views, Oracle. Lead engineer on a nationwide coastal radar system used in peacetime for land-based surveillance of Danish waters, sea rescue and coastguard tasks; and in wartime, to command the Danish fleet. |









