Revisor · Udvikler · Systemarkitekt
alt autodidakt
🔒 Denne side er langt fra færdig og benyttes ikke officielt endnu. Du har fået adgang til en snigpremiere som jeg ellers kun har delt med FOSS-miljøet — jeg håber på diskretion.
1997 — 11 år: Jeg begyndte at programmere med en bog om Visual Basic fra biblioteket. Kort efter opdagede jeg GNU/Linux — og blev forelsket i idéen om at man kan læse, ændre og dele al kode. Visual Basic kørte desværre ikke på Linux, så jeg kastede mig i stedet over Assembler, som jeg også havde kodet lidt i til DOS, og senere hoppede jeg videre til C — både med rå syscalls og med libc og andre biblioteker. Det gav mig en grundlæggende forståelse for hvordan C-programmer i dag virker under motorhjelmen. Det har formet alt hvad jeg har lavet siden.
2005 — 19 år: Stiftede Olsens IT — webløsninger, import fra Kina og USA, netværk, support. Sideløbende lærte jeg mig bogføring og regnskab fra bunden, og det viste sig at jeg var god til det. I disse år kodede jeg en del hjemmesider fra scratch — HTML, CSS, AJAX — typisk ud fra en PSD-fil fra en designer, med egen backend uden CMS. Undervejs arbejdede jeg hands-on med ticketsystemer (RT Request Tracker, osTicket), CRM (WebCRM, OnepageCRM), CMS-platforme (Joomla) og webshops (PrestaShop, Magento).
2009: Startede Olsens Revision ApS. Tog salgskursus hos Connection Management og byggede forretningen op på kold kanvas — jeg er god til at kommunikere og god til at lytte, og det virkede. Op til 200 aktive samtidige kunder og 2 ansatte på Strøget i København. Fuld service: bogføring, moms, løn, årsregnskab, rådgivning, myndighedskontakt.
Uniconta: Efter at have solgt revisionsvirksomheden og fortsat med en mindre kundeportefølje søgte jeg ind hos Uniconta A/S, imponeret over deres C#-baserede teknologi. Jeg fik dybdegående kendskab til deres arkitektur og API, og arbejdede med teknisk support og undervisning af forhandlere og revisorer. Værdifuld erfaring — men jeg indså at min drivkraft ligger i at bygge, ikke i at supportere. Jeg ville skabe noget fra bunden.
2015-2018: Seriøs Bitcoin-forhandler med god gevinst på arbitrage. Jeg troede vi var ved at løsrive os fra verdensbankernes jerngreb — det må blive en anden god gang. Jeg mødte utroligt mange mennesker og havde det rigtig sjovt. Desværre betaler jeg stadig af på dobbeltbeskatningen — Skattestyrelsen skrev i deres afgørelse: "vi skal beklage meget at vi ikke kan tillade os at lave en rimelighedsbetragtning". Man lærer af sine fejl. 🤷
I dag: Driver komplet erhvervsservice sideløbende med udvikling af SKN. Jeg kan kode både frontend og backend, men foretrækker backend — det jeg elsker er at nørde med at optimere hastigheden på funktioner, debugge i terminalen eller i developer console, og finde de sidste mikrosekunder. Det er dér jeg kan gøre den største impact.
GNU/Linux kører ikke bare på min computer — den kører også på øverste etage.
Forskellen på en rutineret og en ikke-rutineret GNU/Linux-bruger er ansigtsudtrykket
når man lander i en rescue shell. Nogen går i
panik — og i dag er det nemmere med AI. Men der er også nogen der bare monterer
dev, proc og sys som bind mounts, chrooter
ind, låser LUKS-partitionen op og fikser fstab. Det er den slags
problemer jeg synes er sjove.
21 års erfaring, ~1.000 kunder. Uniconta (.NET DLL, OData, Web API), e-conomic API. Fuld service: bogføring, moms, løn, årsregnskab. Ticketsystemer (RT, osTicket), CRM (WebCRM, OnepageCRM).
PHP, Bash, C, C#, Assembler (DOS + Linux). Google APIs (Auth, OAuth), SOAP, REST. 900+ CLI-applikationer i SKN. API-integrationer mellem regnskab, web og interne systemer.
Fejlsøgning på alle OSI-lag. Protokolniveau-forståelse: SMTP, HTTP, IRC, DNS, TLS. Erfaring fra ComX. Cloudflare Tunnels, Tailscale, VPN.
Serveradministration, self-hosted, Docker, libvirt/KVM. Krypterede diske, Cloudflare. Debian som primær distribution, men kan arbejde i alle distributioner. 29 år med Linux som primært OS — desktop, server og alt derimellem.
PrestaShop (erfaren), Magento, Joomla. Webshop-opsætning, tilpasning, integration med regnskab og lagerstyring.
Multi-agent orkestrering, RAG, automatiserede workflows. Under aktiv udvikling med store fremskridt: autokontering, AI-ekstraktion af linjer fra salgsfakturaer, kontoudtog og andre forretningsdokumenter.
Reverse engineering, penetration testing, low-level programmering. Forståelse af angrebsflader fra assembly til netværksprotokoller.
Regnskabsskolen (lagerstyring), Uniconta A/S (support + undervisning). Kan forklare komplekse systemer i enkle termer.
Internationale giganter opkøber regnskabsprogrammer og forvandler dem til cash cows — priserne stiger, udviklingen stagnerer, og brugerne bliver låst inde. Som revisor med ~1.000 kunder over 21 år sidder jeg med konsekvenserne hver dag. Som programmør besluttede jeg at gøre noget ved det.
Projektet startede som n4s — "Not For Sale" — et bevidst oprør. Navnet blev til SKN, men princippet er det samme: et regnskabssystem der ikke kan købes, lukkes ned eller tages fra sine brugere. 900+ værktøjer bygget på plain text og Unix-filosofien. AGPL-3.0, copyleft for evigt.
Plain text og Unix-filosofien giver hastighed. Du kan
genfinde en vilkårlig transaktion fra et
hvilket som helst regnskab — et år tilbage i tid — på under 5 sekunder. Direkte
i terminalen, med fuzzy-søgning, uden at åbne noget, uden at vente. Fandt du den?
Redigér. Dublér med mkentry. Komplekse flersidede poster der normalt
kræver styklister — som enhver bogholder ved er a pain in the ass — håndteres ved
simpel duplikering og tilpasning. Ingen styklister. Aldrig.
Orphan-systemet fjerner behovet for mellemkonti: en debet kan eksistere uden en kredit — og vice versa. De uparrede poster leder selv efter slægtninge, matcher beløb, datoer og konti, og skaber forbindelse automatisk. Kombineret med 20+ matching-algoritmer og AI-drevet klassificering af poster kan langt de fleste regnskabsposteringer posteres automatisk — med en præcision på 90%+. Bagved genererer systemet de nødvendige poster, herunder periodisering.
Systemet har været i pilotdrift i min revisionsvirksomhed i 4 år op til ikrafttrædelsen af den nye bogføringslov. Jeg nåede desværre ikke at blive klar til at søge om godkendelse — men i de 4 år har 4 medarbejdere arbejdet i systemet dagligt uden store problemer. Helt normale bogholdermedarbejdere, ikke programmører. Det virker, og folk kan finde ud af det.
SKN bygger på en stor mængde FOSS-software under GPL, AGPL og public domain. For at lukke SaaS-hullet helt til — så ingen kan tage koden, hoste den og sælge adgang uden at dele forbedringerne — har jeg valgt AGPL-3.0. Al kode forbliver fri, for evigt.
Det kan synes begrænsende, men der er mange velkendte og afprøvede modeller for at monetisere fri software. Konkret ser jeg fire indtægtsstrømme:
Signeringsservicen har værdi uafhængigt af godkendelse — enhver virksomhed der har brug for at bevise dataintegritet kan bruge den. Nationalt og globalt. Sikkerhedsmæssigt ville det ikke være forsvarligt for de fleste at sætte sin egen server op uden kyndig assistance, og mange vil helst bare betale et abonnement for noget der bare kører.
Koden er fri. Servicen er værdiskabende. Det er ikke en modsætning — det er en forretningsmodel.
SKN er bygget backend-first: al forretningslogik lever i kernen, og frontends er udskiftelige præsentationslag. I dag kører vi terminal (tmux + ANSI) og web (PHP). I morgen kan det være noget helt andet.
Drømmen er en fuld OpenGL-klient: hundredvis af frames per sekund, øjeblikkelig respons, cinematisk visualisering. VT100-terminalen er allerede en utroligt kraftfuld protokol — men med en dedikeret grafisk klient kan vi sprænge alle grænser. Real-time bogføring (ikke historisk), auto-import fra banker og SKAT, AI-drevet kategorisering.
SKN er samtidig et ERP-system, en vidensbase (second brain) og et komplet udviklingsmiljø der orkestrerer 5-10 AI-agenter parallelt. Multi-agent AI er ikke en feature — det er en integreret del af arbejdsflowet.
Min første oplevelse med VT100-baserede systemer var i Landbrugsministeriet, år tilbage. De fleste operatører var 60+, men de hoppede rundt i systemet som ninjaer — med en helt uhørt koncentration og effektivitet. Ingen notifikationer, ingen faner, ingen rabbit holes. Bare data ind, data ud. Ren fokus. Det billede har aldrig forladt mig, og det er præcis den oplevelse jeg bygger efter.
VT100-protokollen er fra 1978 — og den lever stadig. Ikke som et relikt, men som en af de mest holdbare abstraktioner i computing. Fordelene er enorme: universalitet (kører overalt, fra Raspberry Pi til mainframe), minimal overhead (ren tekst + escape-sekvenser, intet render-framework), og composability (pipes, redirects, multiplexing). En terminal-applikation kan nås via SSH fra den anden side af jorden med 50ms latency. Prøv det med en webapplikation.
Og protokollen kan udvides vildt: SGR giver 24-bit truecolor, Sixel renderer billeder direkte i terminalen, Kitty's grafik-protokol tilføjer GPU-acceleration, OSC-sekvenser overfører filer, sætter clipboard og embedder hyperlinks. Men det er tmux der gør det hele til et operativsystem.
Jeg vedligeholder en custom tmux-fork med udvidelser: en ekstra statuslinje der giver plads til et 3-linjers HUD (sessions i magenta, windows i cyan, kontekstuelle genveje i guld), klik-koordinater på statuslinjen for positionsbevidste kontekstmenuer, og rå event-output der muliggør keylogging — en LD_PRELOAD-baseret C-hook der fanger tastetryk til en cirkulær buffer og mapper specialtaster til Unicode-symboler (⎋ ⌫ ⇥ ⏎ ␣). Designet til tutorial-videoer hvor man kan se præcist hvad der trykkes.
Mit tabbar.bash system renderer nummererede session-tabs i statuslinjen med smart windowing: tabs centreres omkring den aktive, med ◀ og ▸ pile der viser skjulte sessioner. Hver tab viser navn, varighed og status — grøn cirkel for din aktive session, guld for andre tilsluttede klienter, og et søvnikon for ghost tabs: døde sessioner der husker deres navn og genopstår automatisk når du navigerer til dem. Dit arbejdsområde er altid der hvor du forlod det.
årsregnskab/2025/klaesvvs — hans regnskab er åbent præcist
hvor du slap, med de samme vinduer som sidst du lavede moms.
marketing/web/kontaktformular — dine online henvendelser, altid klar.
Du hopper mellem dem som en ninja med fuzzy-søgning, og hvert leaf i træet er
et unikt arbejdsområde der aldrig lukkes ned.
Sådan fungerer brain-systemet: din hjerne
sorteres i forgreninger hvor den første gren er en
prioritet fra 0 til 999 — så du fokuserer
på de vigtigste ting først og de mindre vigtige til sidst. Om man så altid følger
systemet er en anden sag, men strukturen er der. Sessioner oprettes automatisk
fra markdown-filer med namespace-tags: 999/dev/skn/ledger (kritisk)
ned til 001/personal/notes (lav). En fzf-baseret navigator viser hele
træstrukturen med mappeikoner og recent-historik. Alt persisterer: session-timere
overlever genstart, jump-historik giver undo, og du kan vælge hvilke sessioner
der skal forblive åbne som ghost tabs og hvilke der arkiveres med fuld historik.
Fordi alt er tekst, gemmes en grundig log af alt arbejde. Du kan skrue tiden tilbage for en hvilken som helst transaktion og se præcist hvad personen der lavede den så — en udførlig rapport der ligner realtid fra det øjeblik de arbejdede. Derudover er der fuld optagelse af arbejdssessioner — og det fylder ingenting, for det er tekst. Sessionerne autoklippes for at fjerne pauser, så du har en komprimeret optagelse af alle sessioner og kan afspille præcist hvad der skete, hvornår, og af hvem.
Systemet er designet til at kunne drives 100% uden mus — men også 100% med mus, helt uden tastatur, eller fra en touchskærm på en tablet. Begge input-metoder er førsteklasses borgere. Kontekstmenuer, klikbare tabs, positionsbevidste statuslinjer — alt er bygget til at fungere uanset hvordan du foretrækker at arbejde.
Resultatet er et system hvor du aldrig mister kontekst. Du tænker i arbejdsområder, ikke i vinduer. Du navigerer med 2-3 tastetryk eller et par klik — det er dit valg. Og hele infrastrukturen kører på en protokol fra 1978 — udvidet, men fundamentalt den samme. Terminalen er ikke en begrænsning. Den er en superpower.
Jeg løser problemer i krydsfeltet mellem regnskab, IT og forretningsdrift. Konkret kan jeg levere:
Alt er forankret i praktisk erfaring — ikke certifikater, men 21 år med rigtige systemer, rigtige kunder og rigtige deadlines.
Jeg er åben for alle former for samarbejde: freelance (fast pris eller timebaseret), fuldtid, partnerskab. Jeg er pragmatisk — skærer hjørner for MVP'en, mens arkitektur og sikkerhed forbliver solide.
Teknisk samarbejde: Jeg leder efter nogen der kan bidrage til færdiggørelse af vores WebGL-interface — i tæt samarbejde med mig omkring den overordnede arkitektur. Det er en mulighed for at bygge noget helt unikt fra bunden.
Investering: Jeg er også interesseret i en velgørende sjæl — en sugar mama eller sugar daddy — der kan holde pantefogeden fra døren og indsætte nogle tokens på min Claude-konto. Bare et par tusinde om dagen, så klarer vi resten. 😇
Team: Jeg har en lovende ung mand på 18 — min søn — der tæsker Claude i ninja-hastighed. Han har erfaring med Linux-terminalen, perfekt engelsk, stærk forståelse for gamification (tidligere gamer), og har lavet flotte hjemmesider til små virksomheder. Han har hjulpet mig enormt med at få skn-cli.org op og køre. Programmering er ikke hans stærkeste side endnu, men han har en lovende fremtid indenfor IT, og han er en ressource jeg kan trække på.
Outsourcing: Jeg har adgang til billig arbejdskraft — revisorer og bogholdere — i bl.a. Marokko. Tidligere har det været besværligt at outsource bogføring af datasikkerhedsmæssige årsager, men med anonymisering af regnskabsdata — bankposter, regnskabsposter, bilag — kan de lægge puslespillet uden kendskab til virksomhedens forhold eller identitet. Det åbner for skalering af bogføringsopgaver til en brøkdel af prisen.
Opgaver: Jeg tager gerne opgaver ind — regnskab, IT, systemudvikling — og bruger indtægten til at videreføre udviklingen. Effektivitet er ikke et buzzword, men daglig praksis: det hurtigste workflow, det simpleste design, det mindste overhead.
Og alle der synes at et regnskab burde lave sig selv — kom og drik en kop kaffe eller cikorie med mig. Det er præcis det vi bygger. ☕
Uanset om det drejer sig om regnskab, systemudvikling eller noget midt imellem — skriv eller ring, så tager vi en uforpligtende snak.