# DevOps og CI/CD‑automatisering

> Utvalgt arbeid som viser denne tjenesten.

- [Automatiserte produksjonssettingen, databehandlingen og rapporteringssystemet for en GIS SaaS‑applikasjon med GitHub Actions CI/CD, Python, Bash og SQL.](https://software.engineer.company/nb/portfolio/automated-gis-saas-application-deployment-data-processing-and-16/)
- [Automatiserte leveransen av 20 GIS‑datapipelines og ETL‑prosesser for applikasjonsdata, og effektiviserte infrastrukturautomatisering og rapportering.](https://software.engineer.company/nb/portfolio/automated-delivery-of-20-gis-data-pipelines-and-17/)
- [Fornyet interne prosesser og sparte 8 000 timer ved å forbedre programvarearkitekturen, systemene og effektiviteten i planleggingen.](https://software.engineer.company/nb/portfolio/overhauled-internal-processes-saving-8-000-hours-by-38/)
- [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.](https://software.engineer.company/nb/portfolio/optimized-budget-costs-10-times-with-zero-loss-56/)
- [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.](https://software.engineer.company/nb/portfolio/built-a-request-schema-validation-contract-with-automated-61/)
- [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.](https://software.engineer.company/nb/portfolio/as-one-of-the-first-hires-designed-and-86/)
- [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.](https://software.engineer.company/nb/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/)
- [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.](https://software.engineer.company/nb/portfolio/built-first-party-error-monitoring-and-tracing-98/)
- [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.](https://software.engineer.company/nb/portfolio/deployed-the-companys-own-git-forge-121/)
- [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.](https://software.engineer.company/nb/portfolio/cut-the-visual-quality-gate-to-ten-minutes-128/)
- [Speilet hele nettstedet som 777 Gemini‑dokumenter og 777 Gopher‑dokumenter fra det samme publiserte treet, med null byte endret i HTML‑en.](https://software.engineer.company/nb/portfolio/mirrored-the-site-to-gemini-and-gopher-137/)
- [Rettet et sitemap der 172 av 176 URL‑er delte ett endringstidspunkt, ved å hente datoen fra git‑historikken etter å ha slått fast at eksporten skriver om hver fil ved hver kjøring.](https://software.engineer.company/nb/portfolio/fixed-a-sitemap-with-one-shared-timestamp-140/)
- [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.](https://software.engineer.company/nb/portfolio/brought-the-quality-gate-code-under-a-linter-143/)
- [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.](https://software.engineer.company/nb/portfolio/held-the-generator-to-964-tests-and-a-coverage-floor-145/)
- [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.](https://software.engineer.company/nb/portfolio/enabled-every-python-linter-rule-as-an-error-147/)
- [Skrev en parser som leser den faktiske C‑headeren på 7 308 linjer og verifiserer hvert kallsted, hver enum‑konstant og at hver klasse som eier en peker, er final, etter at en håndskrevet plassholder‑header lot kall til tre fjernede funksjoner kompilere, lenke og krasje.](https://software.engineer.company/nb/portfolio/wrote-a-parser-that-verifies-every-ffi-call-site-157/)
- [Tok i bruk den halvdelen av meldingskjernen applikasjonen aldri hadde brukt — overføring av sikkerhetskopier, forsvinnende meldinger, redigering og ny sending av meldinger, verifiserte invitasjoner, proxyer og krypteringspolicy — og kjørte hver test mot det ekte biblioteket uten mocks.](https://software.engineer.company/nb/portfolio/reached-the-unused-half-of-the-messaging-core-161/)

<https://software.engineer.company/nb/services/devops-cicd/>
