Diplomingeniør i softwareteknologi · Nyborg

Softwareudvikler med erfaring ibackend, web og drift.

Med omkring 2½ års relevant brancheerfaring bygger jeg backend, websystemer og integrationer med blik for hele kæden: fra data og forretningslogik til brugerflade, fejlsøgning og stabil drift.

FokusBackend · Fullstack · Drift

Udvalgt case · Lollands.net

Overvågning og alarmer hos Lollands.net

Et samlet system til overvågning, fejlfinding og kundebeskeder hos en internetudbyder. Jeg udviklede, opsatte og idriftsatte løsningen som eneste udvikler.

Lollands.net i tal

~300netværksenheder overvåget
Siden 2019i daglig drift
Eneste udviklerfra idé til idriftsættelse
Fotograferet i drift

Fra ustabil GSM-løsning til samlet driftsplatform

Opgaven begyndte med et GSM-modul, der var svært at holde stabilt. Jeg byggede en alternativ SMS-løsning med Linux, et USB 3G-modem og gammu, plus en separat C#-klient til kundebeskeder.

Sammen med en medarbejder hos Lollands.net voksede løsningen til automatiseret ICMP- og SNMP-polling, et ASP.NET-dashboard og SMS-alarmer ved fejl.

  • Kontinuerlig dataindsamling og lagring i MySQL
  • Flere kontroller før alarm reducerer falske fejlmeldinger
  • Realtidsstatus på vægskærme opdelt efter område
SystemarkitekturC# · ASP.NET · Linux · MySQL

Mit ansvar

Kravafklaring, udvikling, opsætning, integration og løbende tilpasning i tæt dialog med de mennesker, der brugte systemet.

Tekniske rammer

Blandede Windows- og Linux-systemer, ældre netværksudstyr og SNMP-implementeringer med begrænset dokumentation. Løsningen blev bygget med det udstyr, der allerede var til rådighed, uden indkøb af ny hardware.

Status i dag

Systemet har været i produktion siden 2019 og bruges fortsat til overblik, fejlfinding og visualisering af driftsstatus.

Teknisk opbygning

Fra netværksudstyr til vægskærm og SMS

Systemet består af fire dele: polling, datalagring og alarmer, dashboard samt kundebeskeder.

01 / Polling

C#-service på Windows

  • ICMP- og SNMP-polling af netværksudstyret
  • Online/offline-status, oppetid og overførselshastigheder
  • En fuld cyklus tager typisk cirka ét minut; ping-timeouts på enheder, der er nede, er den største variabel
02 / Data & alarm

MySQL, Linux og SMS

  • Pollingresultater gemmes i en MySQL-database
  • Baggrundsservicen sender automatiske SMS-alarmer ved fejl
  • 3G USB-modem og gammu håndterer SMS på serversiden
03 / Dashboard

ASP.NET til vægskærme

  • Én side pr. område og skærm med automatisk opdatering
  • Kiosk-mode på 1080p-tv via Windows MiniPC-klienter
  • Farver viser OK, opmærksomhed, fejl og planlagt arbejde
04 / Kundedialog

Separat C# Windows-klient

  • Samlet overblik over kunder i netværket
  • Massebeskeder til udvalgte områder ved planlagt arbejde
  • Lange beskeder opdeles automatisk i flere SMS’er
DriftsoverblikProblemer kan ses med det samme.

“Sidst opdateret”, farvekoder og et layout, der kan aflæses på afstand, giver kortere reaktionstid. Teknikerne får oplysningerne samlet på én skærm i stedet for at skulle slå enhederne op enkeltvis.

UdviklingsforløbLøbende udviklet sammen med Lollands.net.

Jeg udviklede løsningen i tæt dialog med en medarbejder hos Lollands.net. Nye idéer og ændrede behov blev løbende omsat til funktioner, justeringer og nye visninger. Jeg stod samtidig for design, implementering, opsætning og drift.

Open source · SNMPSwarm v1.0 udgivet

SNMPSwarmFørste skridt mod Lollands.net v2.

Lollands.net voksede frem af konkrete behov, ét skridt ad gangen. I flere år har jeg haft lyst til at bygge overvågningssystemet igen. Denne gang kender jeg slutmålet fra starten. SNMPSwarm er første skridt mod Lollands.net v2, ikke selve overvågningssystemet.

01 / Hvorfor igen?

Fra organisk vækst til bevidst design

Det oprindelige system blev til, mens vi fandt ud af, hvad der var brug for. Nu kan jeg trække på erfaringerne fra en løsning, der har været i drift siden 2019, og begynde med krav og testmuligheder i stedet for at opdage dem undervejs.

02 / Testmiljøet først

Først skal der være noget at overvåge

Jeg har ikke længere adgang til Lollands.net-netværket, og det er svært at udvikle et overvågningssystem uden enheder, der svarer igen. Derfor byggede jeg SNMPSwarm: mit eget simulerede netværk med individuelle Docker-enheder, SNMP-svar, udfald og fjernstyring. Det giver mig noget at udvikle og teste Lollands.net v2 imod, før jeg bygger selve overvågningssystemet.

03 / Arbejdsmetoden

Agentisk udvikling, lokalt

Jeg bruger OpenCode og en lokalt kørt sprogmodel via llama.cpp. Det er et bevidst valg: Jeg vil eksperimentere på min egen hardware og selv bestemme, hvornår arbejdet offentliggøres. Modellen implementerer og tester; jeg sætter retningen, vurderer løsningerne og stiller kravene.

Første milepæl · Oktober 2026

SNMPSwarm v1.0 er færdig, testet og udgivet.

Alle 400 enheder blev verificeret med SNMP og HTTP-status. Udvalgte enheder blev desuden testet med ping, power on/off og parallelle tilstandsskift. Det er en funktionel belastningstest af simulatoren, ikke en påstand om langtidsholdbar drift.

PythonDockerSNMPLinuxOpenCodellama.cpp
Se SNMPSwarm på GitHub
400/400enheder startet
400/400SNMP og HTTP-status
8/8fulde power-tests
40 × 3parallelle power-testrunder

SNMPSwarm v1.0 er færdig og udgivet. Den er testmiljøet til det næste projekt: selve Lollands.net v2. Koden er tilgængelig som open source på GitHub. Hvis du synes, projektet lyder interessant, er du meget velkommen til at bidrage med forbedringer og nye funktioner, eller forke det og tage det i din helt egen retning.

Erfaring

Erfaring fra udvikling og drift

Jeg har arbejdet med eksisterende webprodukter hos Ordbogen, udviklet overvågningssystemet hos Lollands.net og tidligere bygget C#- og ASP.NET-værktøjer hos Morningstar.

2023

Ordbogen A/S · Odense

Softwareudvikler i praktik

Indgik i udviklingsteamets almindelige arbejde med PHP/Lumen, Vue 3 og TypeScript. I et team med en seniorudvikler var jeg med til at bygge diesgital.com ud fra en gren af Ordbogens eksisterende side. Arbejdet omfattede tilpasning til et nyt design og især omlægning til en ny datakilde med en væsentligt anderledes datastruktur. Arbejdede også med franske bøjningsregler, migrering fra Angular til Vue 3 og deltog i standups, sprintplanlægning og code review.

Vue 3TypeScriptPHPLumenScrum
2018–2019

Lollands.net · I drift siden 2019

Praktik og virksomhedsprojekt

Udviklede et overvågnings- og alarmhåndteringssystem til netværksinfrastruktur som eneste udvikler. Byggede C# backend-daemon, ASP.NET dashboard, MySQL- og SMS-integration samt stod for den praktiske idriftsættelse.

C#ASP.NETMySQLLinuxSNMP
2012–2017

Netto · Farum

Salgsassistent

Kundeservice, kassebetjening og vareopfyldning.

2009–2010

Morningstar.dk · Nyhavn

Studiejob som juniorudvikler

Arbejdede med webbaserede værktøjer til investeringsforeninger i C# og ASP.NET, i et domæne hvor korrekte data og stabilitet var afgørende.

C#ASP.NETMSSQL

Kompetencer

Teknologier og områder

Jeg har arbejdet med C# og ASP.NET, Vue 3 og TypeScript samt databaser, Linux og integrationer.

Backend

  • C#
  • ASP.NET
  • PHP / Lumen
  • REST / WebAPI
  • Java

Frontend

  • Vue 3
  • TypeScript
  • JavaScript
  • HTML
  • CSS

Data & drift

  • MySQL
  • PostgreSQL
  • MariaDB
  • MSSQL
  • Linux
  • Docker

Integration

  • SNMP
  • ICMP
  • REST / JSON / XML
  • Git
  • CI/CD
  • SMS / gammu
  • Fejlsøgning

Uddannelse

Diplomingeniør i softwareteknologi

Syddansk Universitet · 2019–2024

Uddannelsen omfattede objektorienteret programmering, databaser, webteknologier, operativsystemer, DevOps og cyber-physical systems samt arbejde på tværs af software og hardware.

2002–2004Datamatiker

Merkur Center, Nykøbing F.

1999–2002HTX

I&H-skolen, Nykøbing Falster

Løbende

Egne tekniske projekter

Linux, web, databaser, lokale AI-modeller og selvhosting

Om mig

Jeg vil vide, hvordan det hele hænger sammen

Jeg interesserer mig for systemet som helhed og ender ofte med at arbejde på tværs af kode, databaser, Linux og den hardware, det kører på. Når noget ikke virker, vil jeg gerne forstå hvorfor frem for bare at arbejde uden om problemet. Det gælder både i mit udviklingsarbejde og i egne projekter med selvhosting, lokale AI-modeller og retro-pc’er.

Selvhosting & lokal AI

Memory Based Recall

Arbejder på en Go- og Vue-applikation med en deterministisk memory engine, MySQL og lokalt hostede sprogmodeller på egen Linux-server.

Praktisk projekt

Fast dashboard på en genbrugt tablet

Har genbrugt en ældre tablet i en dock som fast informationsskærm.

Hobbyer

Retro-pc’er og ældre systemer.

Retro-pc
Ydelsesorienterede retro-pc’er

Jeg går ikke efter periodekorrekte museumsmaskiner, men efter ekstrem ydelse på ældre operativsystemer med hardware, de stadig kan bringes til at køre stabilt på.

Windows 98 SE: Pentium 4 2,8 GHz @ 3,0 GHz, 1 GB DDR, Radeon X800 XT og Sound Blaster Audigy 2 ZS med frontpanel.

Windows XP / Windows 7: Core i7-3770K, GTX 980 Ti, SSD og Sound Blaster X-Fi med frontpanel.

Arbejdet omfatter BIOS-opsætning, drivere, hardwarekompatibilitet og fejlsøgning på tværs af flere generationer af hardware og software.

Kontakt · Næste kapitel

Skal vi bygge noget sammen?

Jeg søger en rolle inden for backend, fullstack eller Linux og drift, hvor jeg kan bidrage med både udvikling, integrationer og teknisk nysgerrighed.