DotNetNerd.dk - because I love development

Projects

Dansk Industri - Agreement Portal

Screenshot DI were building a new agreement portal, and they reached out to me for assistance with the backend development. I gladly accepted the opportunity to collaborate with them again after some time apart. The project proved to be a challenge, as the team had undergone changes due to various team members taking leave. Additionally, they were working with a new platform and numerous unfamiliar technologies. Despite these hurdles, we successfully completed the backend development and integrated it with other systems within the organization.

Azure Web Apps, Azure Vault, Azure SQL, EntraId, Devops, Docker, Open Telemetry, Unit Testing, .NET and C#

Senior Developer

Kommune Kredit - Loan Portal

Screenshot Kommune Kredit were starting on a new project and needed help lifting the team and with their Azure setup. So I took on a role where I helped develop their new loan portal, while doing talks and workshops on .NET, Azure, architecture and testing.

Azure Web Apps, Azure Vault, Azure Storage, EntraId, Devops, Unit Testing, OData, .NET and C#

Senior Developer

Vækstfonden - Frida

Screenshot I went to help a team that was building a new solution for managing guarantees and get it ready for launch. My central responsibility was migration and ensuring data quality, but I also ended up implementing a number of features and integrations to PBS, SKAT and other internal systems including CRM.

Azure Vault, Azure DevOps, SQL server, Oracle, Dynamics CRM, Angular, TypeScript, .NET and C#

Senior Developer

Pension Danmark - advisor

Screenshot I was asked to rejoin Pension Danmark at a new team that was tasked with evolving and maintaining the Advisor solution that I helped build the first time I was at Pension Danmark. Besides features and bugfixes we spent some time improving processes and quality assurance.

Azure Web Apps, Azure Vault, Azure DevOps, VueJS, TypeScript, .NET and C#

Senior Developer

Mercell - Invoice Analysis

Screenshot The domain of tenders sounded like an interesting challenge, so I joined a team at Mercell to work on their Invoice Analysis solution. The company was in the middle of a big transition, due to having bought a number of smaller companies over the course of the last couple of years. So it was very much a process of building culture, teams and processes, with the main focus in terms of code being on making the solution stable and more performant.

AWS, SQL Server, Elastic Search, Kibana, Octopus deploy, Github (Actions), TeamCity, PRTG, Angular, .NET and C#

Senior Developer

Pension Danmark - pension.dk and advisor

Screenshot I felt like working on a very "hands on" project, and found that with Pension Danmark. They were doing a huge platform lift, with lots of integrations, to both internal and external systems as well as several web solutions build to support their processes and collaboration with other companies. I started on the pension.dk project, building their public facing site, and then moved to the advisor portal. Both projects were very integration heavy, based on REST services and clients generated from swagger specifications.

Azure Web Apps, Azure Vault, Azure DevOps, VueJS, TypeScript, .NET and C#

Senior Developer

Novo Nordisk

I joined Novo Nordisk to help start their first commercially focused light house, and be part of the process from day one of defining the product, building the technical platform and recruiting developers. The product we worked on was a Patient Support Solution that should help people using a new obesity drug that is comming out the year after. The key feature of the system was a profiling engine based on assessing patients risks for dropping out, and using that to show them the right content and offer 3rd party services that could help them stay motivated. The solution was designed to take regional differences into account, so we could toggle features, handle localization and legal requirements.

Azure Devops, ASP.NET Core, VueJS, TypeScript, Azure App Service, Azure Storage, Azure Vault, Azure CosmosDB and Git

Tech Lead

Dansk Industri

Screenshot A couple of years had gone by, since last time, when DI asked me to come and help across three of their .NET projects on Azure. Beyond building a range of new features especially around authorization, user statistics and enterprise search, they needed automated backup of their data, moving a project from VSTS to Git and their DevOps setup was due some improvements to make it faster and more stable.

ASP.NET Core, React, TypeScript, Gulp, Azure App Service, Azure Storage, Azure CosmosDB, Azure Cognitive Search and Git

Architect and developer

Novo Nordisk / Trifork eHealth

Continuing my collaboration with Trifork eHealth, I was shortly involved with two projects they were working on for Novo Nordisk. On one project I helped set up a Go lang based web API running in Docker, that they needed to expose a logic engine that was already built, but originally suited for running as part of a mobile app. On the other project, I was involved with the core design decisions and some initial code reviews.

Go lang, Docker and C#

Tech lead

Coloplast / Trifork eHealth - Olympus

Screenshot After the CliniHub project implementation was done, I went on to work on a project that Trifork eHealth was doing for Coloplast called Olympus. This was an IoT project, where they needed a backend for storing IoT data, and a "cockpit" application, for showing and navigating graphs of the collected data. This was built on Azure, with a completely scriptet backend setup, utilizing Azure Webapps, Azure Functions and CosmosDB.

Azure Functions, Azure CosmosDB, Azure Webapps and Javascript

Tech lead

Lundbeck / Trifork eHealth - CliniHub

Screenshot Trifork eHealth hired me as tech lead for a young team who was building a platform for running clinical trials at Lundbeck. The project was also a first venture into building GxP complaint software on Azure PaaS, which was in itself becoming a stand alone product. This led to a close collaboration with Microsoft, who had some high-level guidelines on how to be GxP compliant, but also had interest in building a real concrete Azure GxP setup. Delivering software in a highly regulated industry and adhering to GxP requirements was a different challenge, but it was really giving to write software directly targeted at improving life for people with mental illness. From a technical perspective it was interesting to implement a serverless setup written in Javascript/TypeScript and utilizing cutting edge technoligies like Azure SignalR Service to deliver real time notifications.

TypeScript, Azure Functions, Azure SignalR Service, Azure CosmosDB, Azure Storage, Azure Vault, Azure DevOps, VueJS and Webpack

Tech lead

Patent- og varemærkestyrelsen - phonetic search and easyflow

Screenshot PVS was in the process of moving to a new case management platform. I joined their team to help them move and automate the integration between the new platform and their phonetic search database. The phonetic search was done using a 30 year old piece of software called Skriptor, so we needed to contain the database and wrap it in modern technologies in order to ease the lives of their IT department going forward. I also ended up being tasked with assisting in the migration process from an old Oracle based system, to Easyflow which is based on SQL Server.

ASP.NET, TypeScript, SQL Server, Entity Framework, Elastic Search, Kibana, Redis, Hangfire, Visual Studio Team Services, Octopus deploy, Visual Studio Team Services and Oracle

Developer

COOP / Cloudeon - monitoring dashboard

Screenshot Cloudeon hired me to help with a monitoring dashboard for COOP, where I worked on integrations for Azure, Dynatrace and Scom metrics that utilizes Prometheus for monitoring and Grafana for displaying graphs.

ASP.NET, Azure metrics, Dynatrace, Scom, Prometheus and Grafana

Developer

Dansk Industri - self service

Screenshot I joined the portal team consisting of experienced Sharepoint developers at DI to help them build a new modern self service platform called "dit DI" and move away from Sharepoint. The task was to introduce current web development technology and practices, including a rich frontend, REST services and a new and automated workflow on Azure. The conceptual design was delivered by the digital bureau sort/hvid, but aside from that we build everything from the ground up. Part of my task was to assist in the hiering process, so they could get a full-time developer to continue development afterwards, which we were successful in doing. Besides building the self service solution I implemented the architecture for their new "DI Basic API" services, which will contain integrations to external systems, and services that are shared between teams in the organisation.

ASP.NET MVC, ASP.NET WebAPI, Swashbuckle, TypeScript, Gulp, Azure App Service, Azure Storage, Azure Resource Management Templates, Azure DocumentDB, Visual Studio Team Services and HTML5

Architect and developer

DR - video on demand

Screenshot DR (Danish Radio) hired me to work on their video on demand team, who were moving to a new architecture, and building new user interfaces for two of their subsystems. I helped them with a number of integrations to internal systems, and I worked on lifting the quality, including performance, correctness, readability and on reducing accidental complexity. The solution manages assets for flow and online television, making sure the material is transcoded and distributed in time, while providing an overview for the teams who work with it on a daily basis. Utilizing continuous delivery, we managed to finish in half the time they had initially estimated, and we delivered a much faster, simpler and more modern solution.

ASP.NET MVC, TypeScript, MongoDB, NHibernate, SQL Server and HTML5

Developer, designer and software quality assurance

Zizzi.dk

Screenshot I joined the team at Ball Group, who was having a new ecommerce solution built by my former employer Hesehus (Hedal:Kruse:Brohus), on the recommendation of Lars Hedal. I helped for 2 months as a consultant, to ensure the quality and performance of the the shop, and I also assisted in project management. As part of that, I took up the talks with Raptor, another system I was involved with previously, and helped get the integration points in place. I also helped with testing, and by conducting usability testing with some of their best customers. For many of the people involved in the project, it was their first time being involved in this kind of project, and in working with ecommerce in general. This gave me the opportunity to talk about important focus areas, and explain what to expect in the different fases while going live.

ASP.NET MVC, JavaScript, HTML5 and SQL Server

Ecommerce, development, integration and UX consultant

Nordea

The BI team at Nordea hired me through Climber to help with the implementation of a couple of components for their QlikView based Business Intelligence solution. They needed components for displaying dynamic menus and controlling page state for a better user experience when navigating their solutions. I implemented the components using plain JavaScript, and bundled them as extentions for QlikView, which allowed for easy reuse.

JavaScript and QlikView

Developer and consultant

Raptor

Screenshot Raptor was going through a busy period, so I helped them implement the reference design for their new website, and then I moved on to work on their script API's including proper documentation. First, I updated the tracking script to use TypeScript, and added functionality to handle click tracking. After that, I implemented a feature that allows customers to get complete markup for their products. The feature allows them to use the backend to configure how they present their products and the script needed to generate and wire up the generated HTML.

ASP.NET MVC, Entity Framework, Azure and TypeScript

Developer and architect

Visiolink prototype

Screenshot Visiolink contacted us because they wanted to build a system that would allow them to provide dashboards to their customers, with a range of KPI's pulled from google analytics, Podio and their own applications. To convince them that we can do that I put together an architecture, that allows showing any number of configurable dashboards, with completely configurable widgets that change in real-time on the clients when data or configuration are modified.

ASP.NET MVC, AngularJS, Firebase and Azure

Lead developer, architect and technical project manager

Troodon

Screenshot Management wanted a mobile website, where they can follow some KPI's for the company, including how estimates and actual performance stacks up. Therefore, in collaboration with the manager for internal systems I build a small mobile application, which uses stored procedures in order for him to make changes himself later on.

ASP.NET MVC, Dapper, Azure, HTML5, AngularJS and High Charts

Developer

Trade demo and architecture

Screenshot As we were looking to focus on trading companies, I built a demo of how we can show actionable analytics data on graphs and tables, that are updates in real-time. We build the solution so the model is persisted in Firebase and used both for displaying graphs, and made editable so the demo is configurable to suit different customers.

ASP.NET MVC, Dapper, Azure, HTML5 and AngularJS

Lead developer, architect and technical project manager

Bech Bruun prototype and architecture

Screenshot To help along the sales process I built a prototype that shows off some of the features that was on the wishlist at Bech Bruun for a new HR system. This includes architecture that uses the Azure servicebus as well as HTML5 based validation, file upload via drag and drop. We used RavenDB for storage in order to provide advanced search capabilities.

HTML5, AngularJS, ASP.NET MVC, RavenDB and Azure

Lead developer, architect and technical project manager

trollbeadsuniverse.com

Screenshot Back on the trollbeads team, I got to work on a complete graphical redesign of trollbeads universe, along with faceted search and implementation of e-commerce. We went over the entire site and implemented a responsive design based on markup delivered by trollbeads. With that in place, we augmented the site with faceted search filters to make it easier for customers to navigate their product catalog. We also build e-commerce as a per country feature switch, utilizing the existing commerce platform from their B2C site.

Umbraco, ASP.NET Webforms, SQL Server, Commerce Server, AngularJS and RavenDB

Developer

bolia.com - FY13

Screenshot Once again, it was time for a redesign, so I was part of designing and implementing an ambitious new box design with extensible search capabilities. It ended up as a complete rewrite that changed the sites entire structure and enabled them to add configurable searches at any level.

RavenDB, Umbraco, ASP.NET Webforms, SQL Server, Razor and JQuery

Lead developer

bikersbest.dk

Screenshot B2B webshop for Egedesø cykler, who quickly needed a new site, with a better user experience and advanced search. We built the first version of the site and launched in effectively two sprints, by utilizing continuous delivery. The larger parts of the system consist of the product import, faceted search and checkout flow. It is the first site I have taken part in building that uses uCommerce, which is a sister company, who we share offices with.

Umbraco, ASP.NET Webforms, SQL Server, uCommerce, PetaPoco and Solr

Developer

m.bd.dk

Screenshot Mobile site for Brødrene Dahl, who wanted to have a subset of their functionality available in a mobile friendly format. Part of the challenge was to build the site in Umbraco and build on a common architecture for all of Saint Gobains solutions, while utilizing functionality from the original site, which we based on Sitecore. We also wanted to avoid duplication when we later moved the solution into the new Umbraco base. To support a nice frontend experience I introduced Nancy, to provide data for the fat client - making it possible to drive the process through integration tests. We built faceted search using Adobes Search and Promote as the only re-implemented feature.

Umbraco, ASP.NET Webforms, SQL Server, Nancy, Compass and Search & Promote

Lead developer and architect

trollbeads.com

Screenshot I started on the team that works for Trollbeads, which was our biggest customer at the time, to work on their four sites B2C, B2B, Universe and Forms. We built all their sites using a domain driven design architecture and with a strong focus on test-driven development. It is a custom er whose web presence is important so we implemented a range of different modules, ranging from handling of legal forms to online events for their customers.

Umbraco, Linq to SQL, Enterprise Library, StoryQ and JQuery

Developer

bolia.com - Outlet

Screenshot In order for Bolia to have their Outlet available online we built module helps users find products by using fast asynchronous filtering. To support this and get good performance, we moved data for Outlet products into a document database, which is fast at doing queries based on dynamic filtering. To provide a nice user experience the productgallery updates asynchronously, whenever any of the parameters are adjusted

Umbraco, ASP.NET Webforms, SQL Server, MongoDB and KnockoutJS

Lead developer, architect and technical project manager

bolia.com - FY12

Screenshot Since my last stint on the Bolia website the original site was moved to Umbraco from Sharepoint. After the move, Bolia had some ideas for improving the design and incorporating some of the elements from the inspirational site. Along with the design improvements, they wanted some basic integration with their blog, social media like facebook and twitter as well as services to support their IPhone app.

Umbraco, ASP.NET Webforms, SQL Server, Razor and JQuery

Lead developer and technical project manager

bd.dk (Brødrene Dahl) - bdCalc and Rainwater

Screenshot Two modules for bd.dk targeted at specific kinds of customers. The first module called bdCalc lets customers create documents that contain their own products as well as some bought through Brødrene Dahl. Based on such a working document it is possible to generate an offer as a PDF based on both types of orderlines. The second module is for products in the water and drain category, where interest areas can be defined for targeting new customers that are imported into the system.

Sitecore, ASP.NET Webforms, NHibernate, SQL server and Commerce Server

Lead developer

Smartguy - reception

Screenshot I implemented an extension to the existing administration module that handles reception of articles. This includes importing information from around 400 suppliers with each their own format. Therefore, the challenge was to import all data, and make the import into Navision configurable through mappings.

Silverlight, WCF and SQL server

Consultant and developer

Smartguy - smartPDA

Screenshot Implementation of new features as well as making bug fixes, performance improvements and cleaning up the code in a PDA application for inventory. This included a complete rewrite of the data access to make it more robust as well as implementation of new features to improve the general overview and to handles articles that are out of stock.

.NET Compact Framework and SQL server

Consultant and developer

bd.dk (Brødrene Dahl) - campaigns

Screenshot Developed a campaign module with banner carrusels, campagnepages and changes to the existing site with prices and highlighting of articles that are part of a campaign. The campaigns target users through the projects that they have access to, where the data is pulled from Movex. We enrich the data with images and text in Sitecore. Integration between Sitecore and Movex required that we introduced replication of data to ensure performance, which we managed to solve nicely.

Sitecore, ASP.NET Webforms, NHibernate, SQL server and Commerce Server

Lead developer and technical project manager

bd.dk (Brødrene Dahl)

Screenshot I took over the site bd.dk to look at how we could improve performance and to develop a new phoner module into the existing domain driven design architecture. We improved performance on the server- and clientside - and rewrote a few features to use Ajax to load content "live" from Movex asyncronously. The phoner module consists of import and export of contact information. The import is used to create temporary users - which could then be completed to become fully-fledged users during conversations with the potential customer.

Sitecore, ASP.NET Webforms and SQL server

Lead developer and technical project manager

design.bolia.com

Screenshot Inspiration site for Bolia, with a modern design and integration to social media as well as to the existing bolia.com site. Includes design and configuration of trend walls, rooms, blog and product collections. The administration in Umbraco handles cropping images and extensive configuration of the sites design and content.

Umbraco, JQuery and XSLT

Technical architect, lead developer and project manager

nemlig.com (Intervare)

Screenshot New player on the online grocery market in Denmark. I implemented the sites campaign system as well as a big part of the design. I also had a hand in the product lists, product pages and shopping basket. Technically the solution utilized test-driven development and domain driven design. The goal for Intervare was to deliver groceries with a shorter deliverytime than the competing supermarkets while keeping prices down. The solution later went on to win the danish award "E-handelsprisen 2011" and came in 3rd in "European E-commerce Awards 2011".

Umbraco, ASP.NET Webforms, NHibernate and SQL server

Lead developer and architect

EDIPAM / EDI Partner Manager

Screenshot Layer on top of Biztalk, that provides better options for administration and logging based on needs that we see with a number of our customers. We designed the system with extensibility in mind, so it is possible to add integration to different generic systems, starting with Microsoft CRM. We implemented logging directly into Biztalk, which will provide our customers with a better overview of what is going on inside Biztalk.

Biztalk, Microsoft CRM, ASP.NET and SQL server

Technical architect and developer

online.payday.dk

Screenshot Payday is a payroll system, which was the first project I started on at Vertica. The core part of the system handles registrations, calculation of pay, statistical reporting and salary transactions through PBS and we built it using a domain driven design architecture with a strong focus on testability and continuous integration. The customers business idea was to handling payrolls for all kinds of companies, so the domain is very complex, which required that we build the system to handle changing requirements. En handle this we built the engine around Excel spreadsheets functioning as a DSL for configuring the rules for calculations and managing different kinds of salaries. Later on we implemented modules for questionnaires, file handling and communication with the companies and employees. After establishing itself, the project was moved to Azure, redesigned and a range of modules were added including modules for working with budgets and new and improved workscheduling. As part of this process, I restructured the solution to better support continuous delivery.

ASP.NET MVC, NHibernate, SQL server, Azure Websites and Azure Cache

Architect, technical project manager and lead developer

dymak.dk

Screenshot System for handling workflows between cases and projects, with projects becoming concrete products that we display on the website. I had the Role: as tech lead and handled contact with the customer as well as design. The solution involves handling time zones as well as extensive user management.

ASP.NET, JQuery, JavaScript and SQL server

Technical architect and lead developer

phj.dk (P. Henning Jensen)

Screenshot My first project as a teamlead, which consists of dataimport, an administration system and a simple webshop. Our partners at e-mergency designed the site, so we could focus on the implementation and draw inspiration from them as we needed to improve in reguards to design. The solution makes use of CSS and JQuery to separate styling from content.

ASP.NET, JQuery, JavaScript and SQL server

Technical architect and lead developer

Spear (ASSA ABOLY)

Screenshot A project for ASSA ABOLY, which covers the companies in Scandinavia. The idea is to roll out the system in all 145 companies around the world that make up ASSA ABLOY. The system has an advanced administration module, which allows the companies to share data. The system also includeded several custom modules for each company, one being a complex price administration module and another automatic generation of product variants. On top of this custom catalog generation was implemented for each company, and generic web services were made to provide the basis for their webshops.

ASP.NET, JQuery, JavaScript and SQL server

Developer

Sonocat (Sonepar)

Screenshot My first project at Hedal:Kruse:Brohus, which was for Sonepar Nordic, and which was the largest project Hedal:Kruse:Brohus had ever taken on at the time. The system consists of an administration module and advanced catalog generation. During development we made a number of components that were later to become part of our standard product. One of these were a technically interesting solution to configuration of catalogue generation, based on a hierarical product stricture with a number of filtering options.

ASP.NET, JQuery, JavaScript and SQL server

Developer

XForm survey 1.0

Screenshot On top of the statisticsmodule for "eBlanket" we developed a survey module, so forms can be used as questionnaires. We us the statistics module to display these results. The module itself handles administration of surveys, and management of data and collection of results, which we pass to the statistics module.

ASP.NET, JQuery, JavaScript and SQL server

Developer

XForm statistics 1.0

Screenshot I was involved in developing a statistics module for our existing form administration system. The idea was to generate diagrams based on data collected using forms in our system. I developed the user interface and supporting functions, on top of an existing data layer. I also implemented web services so the system is accessible externally.

ASP.NET, JQuery, JavaScript and SQL server

Developer

Ariadne 2.0 for Modulex

Screenshot My first ever project in my first job as a developer, which was at a company called Dansk Web Bureau, which was they later renamed to inCaptiva. The system was for managing screens that should work as signs for Modulex.dk - who provided a wall of monitors. The system is quite extensive, but it generates signs that are shown on monitors at conference centers and hotels. The system also keeps track of reservations of rooms so the signs can direct the way and show maps of events.

ASP.NET, JQuery, JavaScript and SQL server

Developer

The reasonable man adapts himself to the world;
the unreasonable one persists in trying to adapt the world to himself.
Therefore all progress depends on the unreasonable man. - George Bernard Shaw