Tekniskt ledarskap och rådgivning
En senior ingenjör i rummet
Någon på din sida av bordet när en leverantör, en budget eller ett arkitekturbeslut behöver en andra välgrundad åsikt.
Utvalt arbete som visar den här tjänsten.
-
En infrastrukturplan för 14 avdelningar
Utformade ett gemensamt ramverk för ett forskningsinstitut som 14 avdelningar kunde använda tillsammans, där var och en behöll det som gör den annorlunda.
-
Ledde GIS‑kartappen till 10 gånger högre intäkter
Ledde utvecklingen av en GIS-kartapplikation som blev en hörnsten i plattformen och drev fram 10 gånger högre intäkter via merförsäljning och datalicenser.
-
Styrde full stack‑utvecklingen av GIS‑kartor
Ledde fullstackutvecklingen av GIS-kartor (PostgreSQL, Mapbox, React, Node.js) och levererade en integrerad, utbyggbar kärna i plattformen.
-
Sparade 4 000 timmar, tog teamet från 2 till 18
Sparade ~4 000 timmar genom att utöka och handleda ett team från 2 till 18, omforma arbetsflöden och bygga varaktig ingenjörsförmåga.
-
Skrev 50 000 ord programvarudokumentation
Skrev 50 000 ord mjukvarudokumentation i GitHub, Craft och Confluence och gjorde kunskapen varaktig, transparent och granskningsbar.
-
Ledde företagets tillväxt från 4
Ledde företagets tillväxt från 4 till 14 anställda med agila arbetssätt och skalade teamet utan att tumma på kvalitet eller sammanhållning.
-
Ledde över 30 GIS‑projekt från bygge till support
Ledde utveckling, driftsättning och support av 30+ GIS-projekt med PostgreSQL, Python, GDAL, ArcGIS, PostGIS och Mapbox genom hela livscykeln.
-
Vägledde företagets projekt genom utvecklingen
Vägledde genomförandet av många av företagets projekt med expertstöd genom de svåraste faserna i mjukvaruutvecklingen och stabiliserade leveranserna.
-
Gjorde en genomgripande översyn av de interna
Omarbetade interna processer och sparade ~8 000 timmar genom effektivare mjukvaruarkitektur, system och schemaläggning.
-
Effektiviserade CI/CD‑processerna
Effektiviserade CI/CD och sparade ~4 000 timmar med snabbare och mer tillförlitliga releaser, så att teamet kunde leverera med självförtroende.
-
Satte ribban vid noll varningar i sex språk
Satte ett kvalitetskrav på noll varningar för Go, TypeScript, SQL, Python, Shell och Markdown, upprätthållet med pre-commit-hooks.
-
Fattade plattformens tekniska grundbeslut
Lade fast plattformens grundbeslut i november 2025 — skiktningen, databascentrerad dataåtkomst och kravet på noll varningar — och de gäller än i dag.
-
Levererade analyser och regelbundna
Levererade analyser och regelbundna lägesrapporter till vd:n och omsatte tekniska mätvärden och leveransstatus i säkra beslut.
-
Byggde en testsvit för Go, SQL och webbläsare
Byggde en skiktad automatiserad testsvit — 981 Go-tester, 543 frontendspecar och 494 SQL-beteendetester — med mutations-, egenskaps- och tillgänglighetsgrindar.
-
Byggde repots kontrollmotor med 268 kontroller
Byggde en kontrollmotor med 268 registrerade commit-kontroller, 277 lintregler och 15 egna ESLint-regler, med 146 tester av själva kontrollerna.
-
Ett skyddsnät som inte längre kostar en halvtimme
Kortade de automatiska kontrollerna som vaktar varje release från 27 minuter till 10, genom att köra dem i rätt ordning och flera åt gången.
-
Drev utvecklingen som 51 skriftliga initiativ
Femtioett beslut med motiveringen bifogad, ungefär tre fjärdedelar avslutade, och de bortvalda går lika lätt att hitta som de godtagna.
-
Satte dokumentationen under en egen linter
Tjugosex dokument på sammanlagt ungefär 2 666 effektiva rader, vart och ett under en budget som inte kan växa, och varje sökväg och symbol som de nämner…
-
Lintade själva kvalitetsgrinden på 10 242 rader
Den största och mest bärande koden i repot är nu formaterad, lintad och typkontrollerad, med tretton fynd åtgärdade och noll undertryckningar.
-
Gav generatorn 964 tester och 92 % täckning
Pipelinen kan köras om mot en databas i drift utan oro, vilket är det som över huvud taget gör inkrementellt innehållsarbete möjligt.
-
Aktiverade varje lintregel på felnivå
Lintern körs med full styrka och noll fynd, och varje avvikelse är dokumenterad på den rad där den görs.
-
Skrev tester för själva kontrollerna
Varje kontrollprogram i projektet har nu ett test som bevisar att det fallerar på felaktig indata, och intervallkontrollerna läser från sanningskällan.
-
Upptäckte att hookarna och grinden var oense
Hooken och grinden kör bevisligen samma kontroller, och prosakontrollerna körs nu vid varje commit.
-
Införde strikt samtidighet i Swift 6 ovanpå C
Appen kompilerar med fullständig strikt samtidighetskontroll utan några undertryckta varningar, och händelseordningen är en strukturell egenskap snarare än en…
-
Tog testsviten ned till 8,9 sekunder
Sviten gick från sex tester över sextio sekunder — 74 sekunders väggklockstid — till 135 tester som går igenom på 8,9, vilket placerar den inom det fönster där…
-
Lät 4 repon följa en och samma historikstandard
Fyra repon delar ett historikformat och en instruktionsstruktur, båda upprätthållna av hookar snarare än av disciplin.
Är det här arbetet du behöver få gjort, är nästa steg ett samtal.
Berätta om problemet, så säger vi ärligt om vi är rätt personer.