Andrii er en freelance Senior Python- & AI-udvikler fra Rødovre

Danadresse.dk
Danadresse.dk
IT

Danadresse.dk

DAWA-kompatibelt dansk adresse-API som SaaS, bygget solo. Det officielle DAWA lukker 17. august 2026, og Danadresse er en drop-in erstatning med identiske endpoints og identiske UUID'er, så migration kun kræver et URL-skift. 4,1 mio. adresserækker i MySQL med typo-tolerant Meilisearch-søgning, 56 endpoints (autocomplete, reverse geocoding, datavask, DAGI-berigelse, IBAN/CVR/EAN-validering, bulk-vask op til 50 MB), FastAPI med async SQLAlchemy og Redis. Komplet SaaS: selvbetjent nøgleudstedelse, Stripe med forbrugsafregning, MCP-kanal til AI-agenter, dashboard, JS- og Python-SDK'er samt et WooCommerce-plugin. Auto-deploy fra GitHub på 60 sekunder, daglig driftsrapport, TTFB 229 ms — og statussiden optimeret fra 6,6 s til 0,13 s.
Soge.dk
Soge.dk
IT

Soge.dk

Dansk søgeportal, der samler fire officielle registre — Motorregisteret (12+ mio. køretøjer), CVR, adresser (DAWA) og telefonnumre — og krydslinker dem: fra nummer til virksomhed til adresse til ejerkreds. Bygget solo i Python (Flask + FastAPI, MySQL 8, Redis, nginx) med ugentlig bulk-ETL på 6,5 GB, relationsgraf over ejerskab og fælles kontaktdata, detektion af tilbagerullet speedometer, PDF-dossierer, overvågning med e-mail-alarmer, samt et kommercielt API med Stripe-abonnementer, kvoter, MCP-server til AI-agenter og WordPress-plugin. Egen deploy-pipeline, watchdog med 1,1 sekunds selvgenopretning og daglig automatisk driftsrapport. Forsiden gik fra 1 s til 15 ms, og timeouts fra 1.433/dag til 0.
nummeropslag.dk
nummeropslag.dk
IT

nummeropslag.dk

Dansk nummeropslags- og spam-tjek-platform: web + iOS + Android, bygget solo fra bunden. FastAPI (Python), MariaDB, Redis, Meilisearch, SwiftUI og Kotlin på Ubuntu/nginx. Data fra CVR (~550.000 numre med daglig import), SDFI Nummerregister, Brugeranmeldelser med vægtet trust-score. Indeholder CallKit-opkaldsidentifikation, SMS-filter, Apple Live Caller ID (PIR med homomorf kryptering), partner-API med nøgler og kvoter, admin-dashboard, tre sprog, fuld SEO og GDPR-compliance. Automatiseret deploy, fastlane-udgivelse til App Store og cron-baserede dataimports. Optimeret fra 15 s til 0,2 s på de tungeste sider.

Jeg har udviklet løsninger til danske virksomheder — først gennem praktikforløb, hvor jeg byggede konkrete værktøjer til deres daglige drift, og siden som selvstændig udvikler med egne SaaS-produkter i produktion. Den kombination betyder, at jeg både kender virkeligheden inde i en dansk virksomhed — hvor tallene skal stemme med bogholderiet, og hvor to afdelinger sidder med hver sin version af de samme data — og kan bygge den tekniske løsning hele vejen ned til drift og overvågning.

Virksomhedssystemer og forretningsdata

  • Økonomisystemer: integrationer mod e-conomic og Dinero — udtræk af bilag, kunder, fakturaer og posteringer til databaser og rapporter, samt test- og integrationsarbejde mod Billy. Målet er altid det samme: at ingen sidder og taster det samme tal to steder.
  • Rapportering og BI: Power BI-rapporter og dashboards oven på virksomhedens egne data, med datamodellering og automatisk opdatering i stedet for manuelt vedligeholdte regneark.
  • Microsoft-stakken: Azure, Microsoft 365 og Power Automate — automatiserede flows mellem systemer, godkendelser, notifikationer og planlagte kørsler.
  • At binde afdelinger sammen: salg, lager, bogholderi og support på samme datagrundlag, med integrationer i stedet for eksport til Excel og videresendte mails.
  • Interne support- og helpdesk-værktøjer til de medarbejdere, der faktisk skal bruge systemet dagligt — bygget så de kan betjenes uden oplæring.

Automatisering af manuelt arbejde

  • Post- og dokumenthåndtering: automatisk behandling af indgående post, fakturaer og PDF'er — udtræk af data, klassificering, sortering og arkivering, med AI hvor formatet varierer.
  • E-mailautomatisering: udsendelser, kvitteringer, notifikationer, påmindelser og opfølgningsflows — inklusive levering, der rent faktisk lander i indbakken (SPF, DKIM og DMARC).
  • Logistik: fragt- og forsendelsesløsninger med labels, QR-scanning, sporing af pakker og automatiske statusopdateringer til kunden.
  • Datanormalisering og migrering: oprydning i rodede datasæt — dubletter, adresser, telefonnumre, virksomhedsdata — samt migrering mellem systemer uden at miste historik.
  • Værktøjer: n8n, Make, Power Automate, Google Sheets og Google API'er, eller ren Python når flowet skal være til at vedligeholde om to år.

Betaling og identitet

MobilePay/Vipps — både betaling og login/verifikation, inklusive webhooks med signaturkontrol. Stripe i fuld dybde: abonnementer, Customer Portal, Connect, forbrugsbaseret afregning med Billing Meter, overage, dunning ved fejlet betaling og idempotente webhooks. Desuden research og opsætning af MitID-login via broker.

AI og LLM

AI-agenter der løser en opgave, ikke bare svarer pænt: en telefonagent, der besvarer rigtige indgående opkald i realtid, slår op i virksomhedens vidensbase, booker tid, opretter sagen i CRM og selv lægger på. Chatbots med adgang til egne data (RAG og vektorsøgning), automatisk klassificering og resumering af dokumenter og henvendelser, samt MCP-servere, så AI-agenter kan bruge virksomhedens API'er direkte. Jeg bygger det med guardrails mod opdigtede svar, sporbar logning og omkostningsstyring pr. samtale — de tre ting, der afgør, om en AI-løsning kan sættes i produktion eller ikke.

Stak: OpenAI API (inkl. Realtime), LangChain, Hugging Face, vektor- og hybridsøgning.

Udvikling, data og drift

  • Backend: Python — FastAPI, Flask, Django, SQLAlchemy, Alembic, Celery, asynkron I/O.
  • Databaser: MySQL/MariaDB, PostgreSQL, Redis. Design af skemaer fra bunden, indeksering og optimering af langsomme forespørgsler, ETL af store datasæt og databaser med hundredmillioner rækker i daglig drift.
  • Søgning: Meilisearch, Elasticsearch, typo-tolerant autocomplete og semantisk søgning.
  • API'er: REST med OpenAPI-dokumentation, nøglehåndtering, kvoter, rate limiting, versionering og partneradgang.
  • Frontend og web: JavaScript, server-renderet HTML, PWA, flersprogede sites (dansk, engelsk, ukrainsk), teknisk SEO og struktureret data.
  • WordPress/WooCommerce: egne plugins og Gutenberg-blokke, integrationer i checkout, samt arbejde med bookingsystemer som Amelia.
  • Mobil: apps til iOS (Swift/SwiftUI, udgivet i App Store) og Android (Kotlin, udgivet i Google Play), inkl. CallKit, notifikationer, widgets og baggrundsopgaver.
  • Dataindsamling: scraping og integration mod kilder uden API — Playwright, proxy-rotation og robuste parsere, der ikke går i stykker ved mindste layoutændring.
  • Danske registre og tjenester: CVR/Virk, DAWA og Datafordeleren, Motorregisteret, nummerplanen, samt SMS-gateways, WhatsApp Cloud API og Telegram.
  • Drift: Linux, nginx, Docker, Git og CI, automatiseret deployment, backup, watchdog og daglig automatisk driftsrapportering. Jeg overtager gerne servere, ingen tør røre.

Egne produkter — mit bedste referencemateriale

Jeg driver selv flere SaaS-produkter i produktion: et adresse-API med millioner af opslag, en søgeportal over flere officielle danske registre, en nummeropslagstjeneste med apps i App Store og Google Play, samt en AI-telefoncentral. De betjener rigtige brugere, har rigtig betaling og rigtig oppetid — og det er dér, jeg har lært det, der ikke står i dokumentationen: hvad der går i stykker efter seks måneder, og hvordan man opdager det, før kunden gør. De tal, jeg nævner i mine cases, er målt i produktion, ikke estimeret.

Sådan arbejder jeg

Jeg starter med at forstå, hvad der skal spares eller tjenes — ikke hvilken teknologi der er sjovest. Du får et konkret estimat, leverancer du løbende kan se virke, og kode plus dokumentation du ejer fuldt ud, så du aldrig er låst til mig. Jeg tager både korte, afgrænsede opgaver og længere forløb, og jeg overtager gerne projekter, andre har efterladt halvfærdige.

Skriv med en beskrivelse af problemet — så vender jeg tilbage med en vurdering af, om og hvordan det kan løses.

billede med tre freelacnere som står ved et bord
Tilmeld dig som kunde

Tilmeld dig som kunde for at kontakte Andrii

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.