DevOps
44 resultater
- Utviklet og lanserte selskapets første dashbord for observerbarhet, med sanntidsinnsikt i systemytelsen og datavisualisering på den store TV‑skjermen på kontoret.
- Designet, satte i produksjon og vedlikeholdt 10 PostgreSQL- og MS SQL‑servere på Ubuntu Linux‑VPS‑er, og sikret optimal serverytelse og pålitelighet.
- Styrket datasikkerheten ved å innføre 1 000 RBAC‑regler for utviklere, applikasjonsinstanser, PostgreSQL, MS SQL og andre Linux‑servere, og forhindret uautorisert tilgang; dokumentert med Ansible‑automatisering.
- Automatiserte produksjonssettingen, databehandlingen og rapporteringssystemet for en GIS SaaS‑applikasjon med GitHub Actions CI/CD, Python, Bash og SQL.
- Automatiserte leveransen av 20 GIS‑datapipelines og ETL‑prosesser for applikasjonsdata, og effektiviserte infrastrukturautomatisering og rapportering.
- Automatiserte 100 kritiske sikkerhetskopier av data med Barman, Google Cloud, Bash og Python, og sikret dataintegriteten på tvers av databasene.
- Satte i produksjon og vedlikeholdt 20 containeriserte Docker‑applikasjoner, feilsøkte med Podman og Kubernetes og administrerte R‑baserte applikasjoner på Google Cloud og AWS.
- Administrerte 30 Ubuntu Linux‑VPS‑instanser, innførte strategier for katastrofegjenoppretting og sikret optimale nettverkskonfigurasjoner.
- Reduserte driftsrisikoen ved å innføre et overvåkingsdashbord med Grafana og Prometheus, og forbedret systemets pålitelighet.
- Ledet programvareutviklingen av en GIS‑kartapplikasjon, økte inntektene 10 ganger og posisjonerte produktet som en primær dataressurs.
- Automatiserte opprettelsen av SSL/TLS‑sertifikater for 100 Docker‑applikasjoner og sikret trygge forbindelser på tvers av Ubuntu Linux‑verter.
- Effektiviserte CI/CD‑prosessene og sparte 4 000 timer ved å innføre automatisering i pipelines for programvareutvikling.
- Effektiviserte prosessene for dataanalyse og programvareutvikling og sparte 4 000 timer ved å innføre CI/CD‑praksis med GitHub, GitLab, Bash og Python.
- Reduserte budsjettkostnadene 10 ganger uten tap av produktivitet for en internasjonal kunde ved å tenke nytt om hele infrastrukturen, fjerne unødvendige tjenester og flytte ut av AWS‑skyen.
- Genererte API‑kontrakten fra databasen og utover — OpenAPI, en typet TypeScript‑klient på 44 076 linjer, 61 mock‑handlere og grensene brukergrensesnittet håndhever — med en kontroll i hvert ledd som feiler ved avvik.
- Klargjorde Azure‑infrastruktur som kode med Bicep — Container Apps, PostgreSQL Flexible Server, Front Door/WAF og nettverk — i utviklings-, staging- og produksjonsmiljøene.
- Bygde CI/CD‑pipelines i GitHub Actions med et distroless‑produksjonsimage for frontend og promotering gjennom flere miljøer.
- Skrev 578 go‑task‑automatiseringsmål som dekker native-, Docker- og HTTPS‑utviklingsmoduser, linting, testing, database og produksjonssetting.
- Hadde ansvaret for produksjonssettingen av plattformen til Azure fra ende til annen, og styrte utgivelser gjennom utviklings-, staging- og produksjonsmiljøene.
- Konfigurerte lagringstiden for databasens sikkerhetskopier som infrastruktur som kode, gjennomgikk deretter gjenopprettingsberedskapen og dokumenterte fremgangsmåten for gjenoppretting — og navnga de gjenværende hullene i stedet for å la dem bli oppdaget under en hendelse.
- Satte en kvalitetsstandard med null advarsler for seks språk — Go, TypeScript, SQL, Python, Shell og Markdown — håndhevet av pre‑commit‑hooks.
- Tok plattformens grunnleggende beslutninger i ukene etter at repoet ble opprettet i november 2025 — lagdelingen, datatilgang med databasen først og kravet om null advarsler — og de står seg fortsatt ni måneder senere.
- Designet og bygde, som en av de første ansatte, hele kjerneinfrastrukturen og de tilhørende prosessene fra bunnen av for en SaaS‑oppstartsbedrift innen grønn energi, og la grunnlaget for rask vekst.
- Automatiserte samarbeid i teamet, passordhåndtering, oppgave- og tidsstyring, og bygde et halvautomatisk system for å vise frem prosjekter, noe som økte teamets produktivitet.
- Bygde en lagdelt automatisert testsuite — 981 Go‑tester, 543 spesifikasjoner for frontend og nettleser, 494 atferdstester i SQL — med mutasjonstesting, egenskapsbaserte tester og en kvalitetsport for universell utforming.
- Bygde repoets kontrollmotor — 268 registrerte commit‑kontroller, 277 lint‑regler og 15 egne ESLint‑regler — pluss 146 tester av selve kontrollene, slik at det er bygget, ikke gjennomgangen, som holder standarden.
- Bygde egen feilovervåking og OpenTelemetry‑sporing i stedet for å kjøpe dem — rensing av nyttelast, oppdagelse av topper og regresjoner, symbolisering og et syntetisk hjerteslag — bak 11 operatørvisninger.
- Holdt skjemaet ærlig gjennom 1 022 migreringer med en CI‑port som bygger databasen begge veier — en ny installasjon, og en installasjon pluss alle migreringer — og feiler når de to ikke stemmer overens.
- Etablerte et kontinuerlig sikkerhetsprogram — kodeskanning, DAST, kontroll av avhengigheter og sårbarheter, SBOM‑generering, skanning etter hemmeligheter og SHA‑låste actions — sammen med 21 skriftlige sikkerhetsrevisjoner.
- Bygde selskapets egen infrastruktur som 19 Ansible‑playbooks og 34 roller på 12 065 linjer YAML, som konvergerer en vert i drift mot en deklarert tilstand der hver play er idempotent.
- Fikk check‑modus til å fortelle sannheten på tvers av hele plattformen etter å ha funnet seks sonder som avgjorde ut fra en verdi verten aldri hadde gitt, fordi Ansibles command‑modul melder suksess under --check og samtidig hopper helt over kommandoen.
- La til en preflight‑play som kjører den samme koden som konvergeringen mot operatørens lokale hemmeligheter på omtrent ett sekund, etter at en halvveis gjennomført produksjonskjøring stoppet på den niende oppgaven med swap‑innstillingene allerede skrevet til verten i drift.
- Satte selskapets egen git‑forge på Soft Serve i produksjon, privat som standard, uten webpanel og med SSH‑porten bundet til loopback bak en hoppvert, og gjorde landingssiden foran den til en byggeartefakt fra hovednettstedet i stedet for en kopi som vedlikeholdes for hånd.
- Satte et containerlag på Podman og Quadlet under systemd i produksjon i stedet for Docker, fordi Docker publiserer containerporter over vertsbrannmurens egne regler — og ga produksjonssettinger en uprivilegert bruker med én fast kommando i stedet for root.
- Bygde en commit‑port med 22 enlinjes lintere pluss fem som fortjener et avsnitt, uten advarselsnivå og uten tillatte undertrykkinger i koden, som dekker HTML, CSS, JavaScript, Python, YAML, Markdown, shell, lenker, staving, hemmeligheter og typografi.
- Kuttet nettstedets nettleserdrevne kvalitetsport fra 1 636 sekunder til 615 ved å kjøre kontrollene med de lengste først gjennom en worker‑pool begrenset til fire baner, etter å ha målt at alfabetisk rekkefølge kostet 320 sekunder mot 224.
- Satte 10 242 linjer JavaScript i kvalitetsporten under en formaterer og en linter etter å ha slått fast at det var den største kodemengden i repoet og den eneste ingenting leste, og rettet 13 funn uten å undertrykke noen.
- Holdt generatoren til 981 testtilfeller med et minstekrav på 92 % grendekning og advarsler behandlet som feil, og verifiserte idempotens ved å kjøre hele byggepipelinen to ganger fra en tom fil og kreve at den andre kjøringen ikke endret noe.
- Slo på alle reglene i Python‑linteren på feilnivå og arbeidet seg gjennom 1 815 funn ned til null, med en skriftlig begrunnelse for hvert av de få unntakene og to av dem sikret av en kontroll i stedet for en kommentar.
- Fant ut at commit‑hookene og kvalitetsporten kjørte ulike kontroller mens et dokument lovet at de var de samme, ved å sammenligne de to listene i en test — de fem som bare noen gang ble kjørt manuelt, var de som leste CV‑teksten.
- Prøvekjørte CI‑hooken på forge‑siden og fant to feil som ikke kunne oppdages ved å lese filen: en reserveløsning som la et uoppløselig argument på hookens inndata, og gits egen miljøvariabel som fulgte kvalitetsporten inn i utsjekkingen og gjorde 19 tester røde.
- Tok testsuiten fra seks tester over en grense på seksti sekunder til 135 beståtte på 8,9 sekunder ved å profilere hovedtråden og fjerne de to kallene den satt fast i under 3 989 av 4 017 prøver.
- Reviderte 644 Rust‑crates for lisenskompatibilitet ved hvert bygg, og beviste at kontrollen slår ut ved å skrive om lisensen til én crate og ved å flytte den låste kjernerevisjonen uten å regenerere.
- Holdt fire repoer til én historikkstandard — konvensjonell, uten emojier og uten attribusjonslinjer, håndhevet av en hook for commit‑meldinger — sammen med 48 instruksjonsdokumenter som styrer hvordan arbeidet gjøres.
Er dette arbeidet du trenger gjort, er neste skritt en samtale.
Fortell oss problemet, så sier vi ærlig fra om vi er de rette folkene.
Dette arbeidet er en del av det vi tilbyr som DevOps og CI/CD‑automatisering, Teknisk ledelse og rådgivning, Infrastruktur som kode, Sikkerhet og tilgangsstyring, Skyinfrastruktur og migrering, Systemadministrasjon, Backend- og API‑utvikling og Pålitelighet og overvåking.
Holder du på med noe som krever dette? Ta kontakt.