# DevOps

> Utvalt arbete från Engineer ApS som visar DevOps — resultaten som bevisar det.

- [Utvecklade och lanserade företagets första dashboard för observerbarhet, med realtidsinsikt i systemens prestanda och datavisualisering på den stora tv:n på kontoret.](https://engineer.company/sv/portfolio/developed-and-launched-the-company-s-first-observability-9/)
- [Utformade, driftsatte och underhöll 10 PostgreSQL- och MS SQL‑servrar på VPS:er med Ubuntu Linux och säkerställde optimal serverprestanda och tillförlitlighet.](https://engineer.company/sv/portfolio/designed-deployed-and-maintained-10-postgresql-and-ms-13/)
- [Stärkte datasäkerheten genom att införa 1 000 RBAC‑regler för utvecklare, applikationsinstanser, PostgreSQL, MS SQL och andra Linux‑servrar, vilket förhindrade obehörig åtkomst; dokumenterade reglerna som automatisering i Ansible.](https://engineer.company/sv/portfolio/enhanced-data-security-by-implementing-1-000-rbac-14/)
- [Automatiserade driftsättningen av en GIS‑applikation som SaaS, databearbetningen och rapporteringssystemet med GitHub Actions CI/CD, Python, Bash och SQL.](https://engineer.company/sv/portfolio/automated-gis-saas-application-deployment-data-processing-and-16/)
- [Automatiserade leveransen av 20 GIS‑datapipelines och ETL‑processer för applikationsdata, vilket effektiviserade infrastrukturautomatiseringen och rapporteringen.](https://engineer.company/sv/portfolio/automated-delivery-of-20-gis-data-pipelines-and-17/)
- [Automatiserade 100 kritiska säkerhetskopior av data med Barman, Google Cloud, Bash och Python och säkerställde dataintegriteten i samtliga databaser.](https://engineer.company/sv/portfolio/automated-100-critical-data-backups-using-barman-google-18/)
- [Driftsatte och underhöll 20 containeriserade Docker‑applikationer, felsökte med Podman och Kubernetes och förvaltade R‑baserade appar på Google Cloud och AWS.](https://engineer.company/sv/portfolio/deployed-and-maintained-20-docker-containerized-applications-troubleshooting-19/)
- [Förvaltade 30 VPS‑instanser med Ubuntu Linux, införde strategier för katastrofåterställning och säkerställde optimala nätverkskonfigurationer.](https://engineer.company/sv/portfolio/managed-30-ubuntu-linux-vps-instances-implementing-disaster-20/)
- [Minskade driftriskerna genom att införa en dashboard för övervakning med Grafana och Prometheus, vilket förbättrade systemets tillförlitlighet.](https://engineer.company/sv/portfolio/mitigated-operational-risks-by-implementing-a-monitoring-dashboard-22/)
- [Ledde mjukvaruutvecklingen av en GIS‑kartapplikation, ökade intäkterna 10 gånger och positionerade produkten som en primär datatillgång.](https://engineer.company/sv/portfolio/led-the-software-development-of-a-gis-map-24/)
- [Automatiserade skapandet av SSL/TLS‑certifikat för 100 Docker‑applikationer och säkerställde säkra anslutningar på alla värdar med Ubuntu Linux.](https://engineer.company/sv/portfolio/automated-ssl-tls-certificate-creation-for-100-docker-41/)
- [Effektiviserade CI/CD‑processerna och sparade 4 000 timmar genom att införa automatisering i pipelines för mjukvaruutveckling.](https://engineer.company/sv/portfolio/streamlined-ci-cd-processes-saving-4-000-hours-42/)
- [Effektiviserade processerna för dataanalys och mjukvaruutveckling och sparade 4 000 timmar genom att införa CI/CD‑arbetssätt med GitHub, GitLab, Bash och Python.](https://engineer.company/sv/portfolio/streamlined-data-analysis-and-software-development-processes-saving-43/)
- [Gjorde budgetkostnaderna 10 gånger lägre utan någon förlust i produktivitet för en internationell kund genom att tänka om hela infrastrukturen, ta bort onödiga tjänster och flytta från AWS‑molnet.](https://engineer.company/sv/portfolio/optimized-budget-costs-10-times-with-zero-loss-56/)
- [Genererade API‑kontraktet utåt från databasen — OpenAPI, en typad TypeScript‑klient på 44 076 rader, 61 mock‑hanterare och de gränser som gränssnittet upprätthåller — med en spärr i varje led som fäller vid avvikelse.](https://engineer.company/sv/portfolio/built-a-request-schema-validation-contract-with-automated-61/)
- [Provisionerade Azure‑infrastruktur som kod med Bicep — Container Apps, PostgreSQL Flexible Server, Front Door/WAF och nätverk — i utvecklings-, staging- och produktionsmiljöerna.](https://engineer.company/sv/portfolio/provisioned-azure-infrastructure-as-code-with-bicep-container-68/)
- [Byggde CI/CD‑pipelines i GitHub Actions med en distroless‑image för frontenden i produktion och uppflyttning mellan flera miljöer.](https://engineer.company/sv/portfolio/built-github-actions-ci-cd-pipelines-with-a-69/)
- [Skrev 578 automationsmål i go‑task som täcker utvecklingslägena native, Docker och HTTPS samt lintning, testning, databas och driftsättning.](https://engineer.company/sv/portfolio/authored-578-go-task-automation-targets-70/)
- [Ansvarade för plattformens driftsättningar till Azure från början till slut och hanterade releaser i utvecklings-, staging- och produktionsmiljöerna.](https://engineer.company/sv/portfolio/owned-end-to-end-deployments-of-the-platform-71/)
- [Konfigurerade lagringstiden för databasens säkerhetskopior som infrastruktur som kod, granskade sedan återställningsförmågan och dokumenterade rutinen för återläsning — och pekade ut de återstående luckorna i stället för att låta dem upptäckas under en incident.](https://engineer.company/sv/portfolio/configured-database-backup-retention-as-infrastructure-as-code-72/)
- [Satte kvalitetsribban vid noll varningar i sex språk — Go, TypeScript, SQL, Python, Shell och Markdown — upprätthållen av pre‑commit‑hookar.](https://engineer.company/sv/portfolio/set-a-zero-warnings-quality-bar-across-six-79/)
- [Fattade plattformens grundläggande beslut under veckorna efter att repot öppnades i november 2025 — skiktningen, dataåtkomst med databasen först och ribban med noll varningar — och de håller fortfarande nio månader senare.](https://engineer.company/sv/portfolio/set-the-platform-s-founding-decisions-in-november-2025-80/)
- [Utformade och byggde, som en av de första anställda, hela kärninfrastrukturen och de stödjande processerna från noll för en SaaS‑startup inom grön energi och lade grunden för snabb tillväxt.](https://engineer.company/sv/portfolio/as-one-of-the-first-hires-designed-and-86/)
- [Automatiserade teamets samarbete, lösenordshantering samt uppgifts- och tidshantering och byggde ett halvautomatiskt system för att visa upp projekt, vilket höjde teamets produktivitet.](https://engineer.company/sv/portfolio/automated-team-collaboration-password-management-task-and-time-89/)
- [Byggde en skiktad automatiserad testsvit — 981 Go‑tester, 543 specifikationer för frontend och webbläsare, 494 beteendetester i SQL — med mutationstestning, egenskapsbaserade tester och en tillgänglighetsgrind.](https://engineer.company/sv/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/)
- [Byggde repots kontrollmotor — 268 registrerade commit‑kontroller, 277 lintregler och 15 egna ESLint‑regler — plus 146 tester av själva kontrollerna, så att det är bygget som håller standarden, inte granskningen.](https://engineer.company/sv/portfolio/built-the-repository-s-guard-engine-of-268-checks-95/)
- [Byggde egen felövervakning och OpenTelemetry‑spårning i stället för att köpa dem — sanering av nyttolaster, upptäckt av toppar och regressioner, symbolisering och ett syntetiskt hjärtslag — bakom 11 operatörsvyer.](https://engineer.company/sv/portfolio/built-first-party-error-monitoring-and-tracing-98/)
- [Höll schemat korrekt genom 1 022 migreringar med en CI‑grind som bygger databasen på båda sätten — en ny installation, och en installation plus varje migrering — och fäller när de två skiljer sig åt.](https://engineer.company/sv/portfolio/kept-the-schema-honest-across-1022-migrations-99/)
- [Etablerade ett kontinuerligt säkerhetsprogram — kodskanning, DAST, kontroller av beroenden och sårbarheter, generering av SBOM, skanning efter hemligheter och SHA‑låsta actions — vid sidan av 21 skriftliga säkerhetsgranskningar.](https://engineer.company/sv/portfolio/established-a-continuous-security-programme-104/)
- [Byggde företagets egen infrastruktur som 19 Ansible‑playbooks och 34 roller på 12 065 rader YAML, som konvergerar en värd i drift mot ett deklarerat tillstånd, där varje play är idempotent.](https://engineer.company/sv/portfolio/built-the-companys-infrastructure-as-code-108/)
- [Fick check mode att tala sanning i hela plattformen efter att ha hittat sex sonder som fattade beslut utifrån ett värde som värddatorn aldrig gav, eftersom command‑modulen i Ansible rapporterar framgång under --check medan den hoppar över kommandot helt.](https://engineer.company/sv/portfolio/made-ansible-check-mode-tell-the-truth-116/)
- [Lade till en play för förhandskontroll som kör samma kod som konvergeringen mot operatörens lokala hemligheter på ungefär en sekund, efter att en halvt tillämpad produktionskörning kraschade vid sin nionde uppgift med swapinställningarna redan skrivna till värden i drift.](https://engineer.company/sv/portfolio/added-a-preflight-play-for-secrets-117/)
- [Driftsatte företagets egen git‑forge på Soft Serve, privat som standard, utan webbpanel och med SSH‑porten bunden till loopback bakom en hoppserver, och gjorde landningssidan framför den till en byggartefakt från huvudwebbplatsen i stället för en manuellt underhållen kopia.](https://engineer.company/sv/portfolio/deployed-the-companys-own-git-forge-121/)
- [Driftsatte en containermiljö på Podman och Quadlet under systemd i stället för Docker, eftersom Docker publicerar containerportar ovanför värdbrandväggens egna regler — och gav driftsättningarna en oprivilegierad användare med ett enda fast kommando i stället för root.](https://engineer.company/sv/portfolio/deployed-a-container-plane-on-podman-and-quadlet-122/)
- [Byggde en commit‑grind med 22 linters på en rad var plus fem som förtjänar ett eget stycke, utan varningsnivå och utan tillåtna inline‑undantag, som täcker HTML, CSS, JavaScript, Python, YAML, Markdown, shell, länkar, stavning, hemligheter och typografi.](https://engineer.company/sv/portfolio/built-a-22-linter-commit-gate-127/)
- [Kortade webbplatsens webbläsarstyrda kvalitetsgrind från 1 636 sekunder till 615 genom att schemalägga kontrollerna med den längsta först i en workerpool begränsad till fyra spår, efter att ha mätt att alfabetisk ordning kostade 320 sekunder mot 224.](https://engineer.company/sv/portfolio/cut-the-visual-quality-gate-to-ten-minutes-128/)
- [Förde in 10 242 rader JavaScript för kvalitetsgrinden under en formaterare och en linter efter att ha konstaterat att det var den största kodmassan i repot och den enda som inget läste, och åtgärdade 13 fynd utan att undertrycka något.](https://engineer.company/sv/portfolio/brought-the-quality-gate-code-under-a-linter-143/)
- [Krävde 981 testfall och minst 92 % grentäckning av generatorn, med varningar behandlade som fel, och säkerställde idempotens genom att köra hela byggpipelinen två gånger från en tom fil och kräva att den andra körningen inte ändrade något.](https://engineer.company/sv/portfolio/held-the-generator-to-964-tests-and-a-coverage-floor-145/)
- [Aktiverade varje regel i Python‑lintern på felnivå och arbetade igenom 1 815 fynd ned till noll, där vart och ett av de få undantagen har ett skriftligt skäl och två av dem backas upp av en kontroll i stället för en kommentar.](https://engineer.company/sv/portfolio/enabled-every-python-linter-rule-as-an-error-147/)
- [Upptäckte att commit‑hookarna och kvalitetsgrinden körde olika kontroller medan ett dokument lovade att de var desamma, genom att jämföra de två listorna i ett test — de fem som bara någonsin kördes för hand var just de som läste CV‑texten.](https://engineer.company/sv/portfolio/found-the-commit-hooks-and-the-gate-disagreeing-150/)
- [Repeterade CI‑hooken på forge‑sidan och hittade två fel som inte gick att se genom att läsa filen: en reservväg som lade ett argument som inte gick att lösa upp i hookens indata, och en miljövariabel från git själv som följde med grinden in i utcheckningen och gjorde 19 tester röda.](https://engineer.company/sv/portfolio/rehearsed-the-forge-side-ci-hook-151/)
- [Tog testsviten från sex tester över en gräns på sextio sekunder till 135 godkända på 8,9 sekunder genom att profilera huvudtråden och ta bort de två anrop som den befann sig i vid 3 989 av 4 017 stickprov.](https://engineer.company/sv/portfolio/took-the-test-suite-under-nine-seconds-158/)
- [Granskade licenskompatibiliteten hos 644 Rust‑crates vid varje bygge och bevisade att kontrollen slår till genom att skriva om licensen för en crate och genom att flytta den låsta kärnrevisionen utan att generera om.](https://engineer.company/sv/portfolio/audited-644-rust-crates-for-licence-compatibility-163/)
- [Lät fyra repon följa en och samma historikstandard — konventionella commits, fria från emojier, utan attributionsrader, upprätthållen av en hook för commit‑meddelanden — vid sidan av 48 instruktionsdokument som styr hur arbetet utförs.](https://engineer.company/sv/portfolio/held-five-repositories-to-one-history-standard-165/)

<https://engineer.company/sv/categories/devops/>
