Casestudy: het bedrijfsbeheerportaal
Een nieuw bedrijf in 2025 had vanaf dag één werving, onboarding, contracten, tijdregistratie, verlof, facturatie en boekhouding nodig, met een budget dat het kopen van zeven producten uitsloot. We bouwden één platform voor dit alles, en we runnen het bedrijf erop.
Het probleem
Kant-en-klare HR-, tijdregistratie- en factureringstools hadden elk per maand meer gekost dan het hele budget, en geen ervan begreep de Oekraïense wetgeving voor contractors, e-handtekeningen via een lokale bank, of hoe uren van een tijdregistratietool in een klantfactuur terechtkomen. Het alternatief waren spreadsheets, die ophouden te werken in de week dat iemand op vakantie is.
Het besluit was het platform te bouwen op de stack die wij verkopen, het als een echt product te behandelen met dezelfde engineeringregels als bij klantwerk, en het de referentie te laten zijn waar onze klanten naar kunnen vragen.
Wat het doet
Werving
Vacatures gepubliceerd op jobboards, kandidaatscreening via een Telegram-bot met een vragenbibliotheek, technische en externe interviews met agendaboeking, bijhouden van de proeftijd.
Onboarding
Een begeleide flow die identiteitsdocumenten verzamelt, ze controleert met AI-diensten in de cloud, de spelling van de naam bevestigt, contactgegevens en apparatuur verzamelt en accounts opent via de identiteitsprovider.
Contracten en documenten
Dienstencontracten en NDA’s gegenereerd uit sjablonen in pdf, verstuurd voor e-handtekening en bewaard als ondertekend document. Klantovereenkomsten en statements of work volgen hetzelfde pad.
Tijd en verlof
Uren per projecttoewijzing, gesynchroniseerd vanuit externe tijdregistratietools, door de specialist te bewerken; vakantie en ziekteverlof met saldo’s en goedkeuringen per contract.
Beloning en facturatie
Maandelijkse specialistenfacturen en klantfacturen opgesteld uit dezelfde geregistreerde uren, wisselkoersen van de centrale bank, doorberekende eenmalige betalingen, een archief van ondertekende facturen.
Boekhouding en compliance
Herinneringen voor belastingaangifte en -betaling, import van bankafschriften, noodcontacten en een rechtenmodel met row-level security en verzoeken tot verhoging voor financiële data.
Meldingen
Chat- en messengerkaarten voor elke gebeurtenis waarop een persoon moet handelen, met de regel dat geen enkel bericht financiële cijfers bevat; die blijven achter de login.
Hoe het is gebouwd
Backend
.NET 10 op Azure Functions, vertical slices met CQRS via een door een source generator gegenereerde mediator, validatie aan elke grens, EF Core met versiebeheerde migraties.
Data
Azure SQL met row-level security per klant en Always Encrypted-kolommen voor persoons- en financiële data, met sleutels in een beheerde vault.
Frontend
Angular met standalone componenten, signals en zoneless change detection, een Tailwind-designsysteem en een API-client gegenereerd uit het OpenAPI-document.
Bezorging
GitHub Actions met federated credentials, Terraform voor de hele omgeving, databasewijzigingen als migraties in de pipeline uitgebracht, CodeQL en afhankelijkheidsscans.
Regels die het hebben gevormd
- Prioriteiten in een vaste volgorde: kosten, dan beveiliging, dan modern, dan performant, dan afstemming op compliance. Elk conflict wordt beslecht door de hogere rang.
- De identiteitsprovider is de bron van waarheid voor persoonsgegevens; de database is er een cache van en de enige plek voor salaris, wervingsdata en rechten.
- Gevoelige data komt nooit in een gewone kolom terecht, zelfs niet even. Versleuteling wordt op meer dan één plek gedeclareerd en bij het opstarten gevalideerd.
- Elke bugfix wordt geleverd met een test voor haar klasse, geplaatst op de breedste handhavingslaag die haar kan zien, vaak een architectuurtest in plaats van een unit test.
- Chat is een onbetrouwbaar weergaveoppervlak. Meldingen noemen de gebeurtenis en linken naar de pagina achter authenticatie; bedragen en tarieven verlaten het product nooit.
Waarom dit voor u telt
We beschrijven geen demo. Dit platform runt elke dag een echt bedrijf, wat betekent dat we lang genoeg met onze eigen architectuurbeslissingen, onze eigen migraties en onze eigen alerting hebben geleefd om te weten welke goed waren. Dat is hetzelfde oordeelsvermogen dat we in uw product meebrengen.
Wilt u zoiets voor uw bedrijf?
Beschrijf de processen die u nu op spreadsheets draait. U krijgt binnen één werkdag een schriftelijk plan, een architectuurvoorstel en een raming.