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.
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
Driftslokalet
Vægskærmene hos Lollands.net
Skærm 01Områder og byer i kolonner. Grøn viser normal drift.
Skærm 02Finmasket overblik over backbone, servere, routere og switches.
01 / 02
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.
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.
Har du en mulighed, der kunne passe? Jeg tager gerne en snak.