# Teknologier

Et verktøy er et middel. Det en kunde kjøper, er skjønnet som velger det
riktige, og disiplinen til å drifte det godt — men du spurte hva vi jobber med,
så her er det, og hver linje er underbygd av arbeid i
[porteføljen](/nb/portfolio/).

## Språk og kjøremiljøer

**Python** til dataarbeid, automatisering og tjenester. **Go** der én statisk
binærfil og lite overhead betyr noe. **TypeScript** og moderne JavaScript i
weblaget. **SQL** som et fullverdig språk og ikke noe en ORM genererer — det er
der det meste av ytelsesarbeidet vi blir hentet inn for, ligger. **Bash** til
limet, skrevet for å bli lest.

## Data

**PostgreSQL** er standardvalget, og vi kommer langt med det før vi strekker oss
etter noe annet — partisjonering, replikering, utvidelser og
spørringsplanleggeren. Vi drifter også **MS SQL Server**, **BigQuery**,
**SQLite** og **Redis**, og GIS-verktøyene oppå: **PostGIS**, **QGIS**, **GDAL**
og **ArcGIS**. Pipelines bygges slik at de kan kjøres på nytt og er idempotente,
fordi spørsmålet etter en hendelse alltid er «kan vi kjøre den på nytt».

## Sky og infrastruktur

**Google Cloud** og **AWS**, med **Azure** der kunden allerede holder til.
**Linux** under alt sammen — Debian og Ubuntu. **Docker** og **Kubernetes** for
de arbeidslastene som fortjener dem, og vanlige systemd-enheter for dem som ikke
gjør det. **Ansible** og **Terraform** beskriver maskinene, slik at et miljø er
et dokument og ikke et arkeologisk prosjekt. **Caddy** og **nginx** i front.

## Drift i produksjon

**Prometheus** og **Grafana** til metrikker, strukturert logging til resten, og
varsler som går på symptomer en bruker ville merket, og ikke på hvert rykk i en
graf. CI-jobber som bygger, tester, skanner og produksjonssetter uten et
menneske i løkken. Sikkerhetskopier som tas, og gjenopprettinger som testes.

## Weblaget

Statisk først der det passer, fordi en side som er en fil, er en side som ikke
kan falle over ende: **Hugo** bygger dette nettstedet. **Django** og **PHP** der
det er en applikasjon å levere. Semantisk HTML, håndskrevet CSS og universell
utforming behandlet som et krav og ikke som et revisjonsfunn.

## Slik velger vi

Kjedelig teknologi valgt med vilje slår ny teknologi valgt av refleks. Vi velger
etter problemet, etter hva teamet ditt kan drifte etter at vi har gått, og etter
hvordan tingen svikter, ikke hvordan den tar seg ut i en demo. Når det riktige
svaret er stakken du allerede har, sier vi det — og når det ikke er det, sier vi
det også, med begrunnelsen skrevet ned.

Dette nettstedet er sitt eget gjennomarbeidede eksempel:
[kolofonen](/nb/credits/) navngir all teknologien bak det, helt ned til
skrifttypen og verktøyet for sikkerhetskopiering.

Vil du heller ha en leverandør med meninger enn en med en preferanseliste, så
[fortell oss hva du bygger](/nb/contact/) *(og vi argumenterer for dem)*.

<https://data.engineer.company/nb/tech-stack/>
