# Teknikstack

Ett verktyg är ett medel. Det en kund köper är omdömet som väljer rätt verktyg
och disciplinen att driva det väl — men du frågade vad vi arbetar med, så här är
det, och varje rad backas upp av arbete i [portföljen](/sv/portfolio/).

## Språk och körmiljöer

**Python** för dataarbete, automatisering och tjänster. **Go** där en enda
statisk binär och låg overhead spelar roll. **TypeScript** och modern JavaScript
i webbskiktet. **SQL** som ett fullvärdigt språk snarare än något en ORM
genererar — det mesta av det prestandaarbete vi kallas in för finns där.
**Bash** för limmet, skrivet för att läsas.

## Data

**PostgreSQL** är standardvalet, och vi kommer långt med det innan vi sträcker
oss efter något annat — partitionering, replikering, tillägg och
frågeplaneraren. Vi driver också **MS SQL Server**, **BigQuery**, **SQLite** och
**Redis**, och den geografiska stacken ovanpå: **PostGIS**, **QGIS**, **GDAL**
och **ArcGIS**. Pipelines byggs för att kunna köras om och vara idempotenta,
eftersom frågan efter en incident alltid är ”kan vi spela upp det igen”.

## Moln och infrastruktur

**Google Cloud** och **AWS**, med **Azure** där kunden redan finns. **Linux**
under allt — Debian och Ubuntu. **Docker** och **Kubernetes** för de
arbetslaster som förtjänar dem, och vanliga systemd-enheter för dem som inte gör
det. **Ansible** och **Terraform** beskriver maskinerna, så att en miljö är ett
dokument snarare än ett arkeologiskt projekt. **Caddy** och **nginx** längst
fram.

## Att driva det i produktion

**Prometheus** och **Grafana** för mätvärden, strukturerad loggning för resten,
och larm som går på symtom en användare skulle märka snarare än på varje ryck i
en graf. CI-pipelines som bygger, testar, skannar och driftsätter utan en
människa i loopen. Säkerhetskopior som tas, och återställningar som testas.

## Webbskiktet

Statiskt först där det passar, eftersom en sida som är en fil är en sida som
inte kan falla omkull: **Hugo** bygger den här webbplatsen. **Django** och
**PHP** där det finns en applikation att leverera. Semantisk HTML, handskriven
CSS och tillgänglighet behandlad som ett krav snarare än ett granskningsfynd.

## Hur vi väljer

Tråkig teknik, vald med avsikt, slår ny teknik vald av slentrian. Vi väljer
efter problemet, efter vad ditt team kan driva när vi har gått och efter hur
saken fallerar snarare än hur den ser ut i en demo. När rätt svar är stacken du
redan har säger vi det — och när det inte är det säger vi det också, med
resonemanget nedskrivet.

Den här webbplatsen är sitt eget skolexempel: [kolofonen](/sv/credits/) namnger
varje teknik bakom den, ända ned till typsnittet och verktyget för
säkerhetskopior.

Om du hellre vill ha en leverantör med åsikter än en med en lista över
preferenser, [berätta vad du bygger](/sv/contact/) *(och vi argumenterar för dem)*.

<https://support.engineer.company/sv/tech-stack/>
