Case: portalen til virksomhedsstyring
Et nyt firma i 2025 havde brug for rekruttering, onboarding, kontrakter, tidsregistrering, ferie, fakturering og regnskab fra første dag på et budget, der udelukkede at købe syv produkter. Vi byggede én platform til det hele, og vi driver firmaet på den.
Problemet
Standard-HR-værktøjer, tidsregistrering og fakturering ville hver for sig have kostet mere om måneden end hele budgettet, og ingen af dem forstod ukrainsk kontrahentlovgivning, digital signatur gennem en lokal bank eller den måde, timer løber fra en tidsregistrering ind i en kundefaktura. Alternativet var regneark, som holder op med at virke i den uge, nogen har ferie.
Beslutningen var at bygge platformen på den stack, vi sælger, behandle den som et rigtigt produkt med de samme udviklingsregler, som vi anvender i kundearbejde, og lade den være den reference, vores kunder kan spørge til.
Hvad den gør
Rekruttering
Stillinger opslået på jobportaler, kandidatscreening gennem en Telegram-bot med et spørgsmålsbibliotek, tekniske og eksterne samtaler med booking og opfølgning på prøveperiode.
Onboarding
Et guidet forløb, der indsamler identitetsdokumenter, verificerer dem med AI-tjenester i skyen, bekræfter stavningen af navnet, indsamler kontaktoplysninger og udstyr og opretter konti gennem identitetsudbyderen.
Kontrakter og dokumenter
Servicekontrakter og NDA'er genereret ud fra skabeloner til PDF, sendt til digital underskrift og gemt som den underskrevne registrering. Kundeaftaler og statements of work følger den samme vej.
Tid og fravær
Timer pr. projektopgave, synkroniseret fra eksterne tidsregistreringsværktøjer og redigerbare af specialisten; ferie og sygefravær med kvoter og godkendelser pr. kontrakt.
Aflønning og fakturering
Månedlige specialistfakturaer og kundefakturaer dannet ud fra de samme registrerede timer, valutakurser fra centralbanken, viderefakturerede engangsbetalinger og et arkiv med underskrevne fakturaer.
Regnskab og compliance
Påmindelser om skatteindberetning og betaling, import af kontoudtog, nødkontakter og en rettighedsmodel med row-level security og anmodninger om forhøjede rettigheder til finansielle data.
Notifikationer
Chat- og messengerkort for hver hændelse, en person skal handle på, med en regel om, at ingen besked nogensinde indeholder finansielle tal; dem bliver bag login.
Sådan er den bygget
Backend
.NET 10 på Azure Functions, vertical slices med CQRS gennem en source-genereret mediator, validering ved hver grænse, EF Core med versionerede migreringer.
Data
Azure SQL med row-level security pr. kunde og Always Encrypted-kolonner til personlige og finansielle data, nøgler opbevaret i en managed vault.
Frontend
Angular med standalone-komponenter, signals og zoneless change detection, et Tailwind-designsystem og en API-klient genereret fra OpenAPI-dokumentet.
Levering
GitHub Actions med federerede legitimationsoplysninger, Terraform til hele miljøet, databaseændringer leveret som migreringer i pipelinen, CodeQL og scanning af afhængigheder.
Regler, der har formet den
- Prioriteter i en fast rækkefølge: omkostninger, derefter sikkerhed, derefter modernitet, derefter performance, derefter compliance. Hver konflikt afgøres af den højere rang.
- Identitetsudbyderen er kilden til sandhed for persondata; databasen er en cache for den og det eneste hjem for løn, rekrutteringsdata og rettigheder.
- Følsomme data lander aldrig i en almindelig kolonne, ikke engang kortvarigt. Kryptering deklareres flere steder og valideres ved opstart.
- Hver fejlrettelse udkommer med en test for sin fejltype, placeret i det bredeste håndhævelseslag, der kan se den, ofte en arkitekturtest og ikke en unit test.
- Chat er en ikke-betroet visningsflade. Notifikationer nævner hændelsen og linker til siden bag autentificering; beløb og satser forlader aldrig produktet.
Hvorfor det har betydning for jer
Vi beskriver ikke en demo. Denne platform driver et rigtigt firma hver dag, hvilket betyder, at vi har levet med vores egne arkitekturbeslutninger, vores egne migreringer og vores egen alarmering længe nok til at vide, hvilke der var rigtige. Det er den samme dømmekraft, vi tager med ind i jeres produkt.
Vil I have noget lignende til jeres virksomhed?
Beskriv de processer, I kører på regneark i dag. I får en skriftlig plan, et arkitekturforslag og et estimat inden for én arbejdsdag.