# Kolofon

Nesten alt her er laget av andre og gitt bort. Denne siden navngir det, fordi et
konsulentselskap som ikke vil si hva det kjører på, ber om en tillit det selv
ikke har tilbudt.

Det er også det korteste ærlige svaret på «hva jobber dere egentlig med?».
Listen nedenfor er ikke en kompetansebrosjyre — den er dette nettstedets egen
stykkliste, og du kan sjekke hver linje i den fra din egen nettleser.

**Denne kopien av nettstedet er fra 18. oktober 2026, 10:29 CEST** — øyeblikket da den nyeste
siden i denne kopien sist ble endret. Hvert fokusert underdomene har den samme
linjen om sin egen kopi, som blir laget senere enn denne og sier det.

## Hva som når nettleseren din

Fem ting, og ingenting annet: HTML, ett stilark, tre webfonter, bilder og ett
lite skript av vårt eget.

- **HTML**, skrevet ferdig før du ba om den. Hver side er en fil på disken,
  ikke en mal som settes sammen ved hver forespørsel.
- **Én CSS-pakke**, satt sammen og merket med et fingeravtrykk ved bygging og
  levert med en [Subresource Integrity](/nb/glossary/#sri)-hash, slik at nettleseren din kan
  bekrefte at den kom fram uendret. Med i pakken følger
  [neat-annotations](https://github.com/syabro/neat-annotations) av Max Syabro
  (MIT) — de håndtegnede pilene og margnotatene, tegnet med CSS alene.
- **Skrifttypen Ubuntu**, av Dalton Maag for Canonical, under Ubuntu Font
  Licence. Levert fra vår egen maskin — en webfont fra noen andres CDN er en
  tredjepart som ser deg lese.
- **Ubuntu Mono**, den samme familiens snitt med fast bredde, under samme
  lisens og levert på samme måte. Det setter koden på disse sidene og lastes
  bare på sidene som har kode.
- **Skrifttypen Shantell Sans**, basert på kunstneren Shantell Martins
  håndskrift med tusj, av
  [Arrow Type](https://github.com/arrowtype/shantell-sans) / Stephen Nixon,
  under SIL Open Font License. Den skriver margnotatene, leveres på samme måte
  og lastes bare på sidene som har et.
- **Bilder i WebP og PNG**, skalert ved bygging. Veggene disse sidene er bygd
  på, er fotografier. To er fra [Unsplash](https://unsplash.com/license):
  [Tim Mossholder](https://unsplash.com/@timmossholder) fotograferte den mørke
  pussen, [Joe Woods](https://unsplash.com/@woods) den hvite mursteinen. Tre til
  er **John Snows**, tatt med en Galaxy S22 Ultra og gitt til dette nettstedet:
  den lyse pussen, den malte mursteinen og den flislagte veggen. Det lyse temaet
  bærer én av sine fire vegger, trukket mens siden bygges, så nettstedet kles på
  nytt hver gang det publiseres. Lisensen krever ingen kreditering; en side som
  navngir designeren av en skrifttype, burde ikke trenge å bli bedt om det.
  Merket, tannhjulet, maskoten i hver positur du vil møte den i, portrettet og
  de to overlappende fotografiene av vårt eget kontor i København på siden Om
  oss er våre, fotografert eller tegnet her og fjernet for metadata før de ble
  lagt inn i repoet.
- **Ett lånt ikonsett.** Bildene av hva et stykke arbeid var laget av
  — ett ved siden av hvert resultat i hver liste, en rad av dem under hver
  gjennomgang, ett bak hvert tall og hver tjeneste på forsiden — og alle andre
  ikoner dette nettstedet tegner: merkene på begge menyene og bak hver side,
  kontaktlinjen, nettverkene, språkvelgeren, pilene og vinkeltegnene. Alle
  sammen kommer fra
  [Font Awesome Free](https://fontawesome.com/) 7.3.1 fra Fonticons, under
  [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/): 267 tegninger i alt,
  oppbevart i dette repoet og levert fra denne verten som alt annet.
  36 er ikke tegninger av en idé, men teknologienes egne
  merker — PostgreSQL, Linux, Docker, Go, Swift, Rust og resten — som navngir
  hva en jobb faktisk ble bygd på. Et merke brukes der oppføringen støtter det,
  og et enkelt bilde der den ikke gjør det: databasearbeidet kjører også på MS
  SQL og BigQuery, så det beholder en tegning av en database i stedet for én
  leverandørs logo, og arbeid som ble bygd for å komme bort fra noe, bærer aldri
  merket til det. Et varemerke står for eieren sin, så et nøyaktig lånt merke er
  bedre enn et som er tegnet om for å passe til settet vårt, og der det ikke
  finnes noe merke å låne, bruker vi et enkelt bilde i stedet for å finne opp
  et. Identiteten er vår egen hele veien: merket vårt, tannhjulet, maskoten,
  portrettet og fotografiene. Krediteringen står på denne siden og ikke i
  filene, fordi byggingen minifiserer HTML-en og fjerner kommentaren hvert ikon
  har krediteringen sin i.

Ett skript kjører på dette nettstedet: vårt eget, omtrent en kilobyte, på sidene
som har en liste — arbeidet, emnene, tjenestene, sakene og nettstedskartet — der
det filtrerer listen mens du skriver. Det snakker ikke med noen og husker
ingenting. Ingen informasjonskapsler settes. Ingenting hentes fra et annet
selskaps server — ingen analyse, ingen skrifter, ingen innebygd video, ingen
samtykkebanner, fordi det ikke er noe å samtykke til. Åpne nettverkspanelet i
nettleseren din og tell vertene: det er én.

## Hvordan sidene lages

- **[Hugo](https://gohugo.io/)** — den statiske nettstedsgeneratoren, skrevet
  i Go. Maler, taksonomier, hvert språk og feedene er dens verk.
- **Markdown og Go-maler** for de håndskrevne sidene og layoutene.
- **[SQLite](https://sqlite.org/)** — porteføljen skrives ikke her. Den
  ligger i en flerspråklig CV-database og eksporteres til dette nettstedet av et
  Python-skript, så et faktum skrives én gang og vises overalt der det hører
  hjemme.
- **[Python](https://www.python.org/)** for det eksportskriptet, og for å
  generere ikonsettet med **[ImageMagick](https://imagemagick.org/)** fra én
  enkelt tegning av merket.

## Hvordan det bevises

Det finnes ingen ekstern byggetjeneste; kvalitetskontrollen kjører på maskinen
nettstedet skrives på, og hver diagnose er en feil, ikke en advarsel.

- **[vnu](https://validator.github.io/validator/)** validerer HTML-en,
  **[Stylelint](https://stylelint.io/)** CSS-en.
- **[axe-core](https://github.com/dequelabs/axe-core)** tester 39
  representative sider — én per mal, på hvert språk — mot [WCAG 2.2](/nb/glossary/#wcag)
  A og AA, i begge fargeskjemaene, og den er en del av kontrollen, ikke noe ved
  siden av den. Nettstedet bygger 2 253 sider; en maskin finner omtrent en
  tredjedel av det WCAG krever, og det er derfor redegjørelsen nedenfor går
  kriterium for kriterium i stedet for å gi en samlet karakter.
- **[Puppeteer](https://pptr.dev/)** styrer en hodeløs Chromium for
  kontrollene en validator ikke kan gjøre: målt kontrast, fokusrekkefølge,
  størrelse på klikkflater, linjelengde, overløp i visningsområdet,
  sideinndeling ved utskrift og en visuell regresjonstest piksel for piksel via
  **[pixelmatch](https://github.com/mapbox/pixelmatch)**. Disse kjøres ved behov
  og ikke ved hver commit — de tar omtrent tjue minutter — så kontrollen holder
  den raske halvdelen, og et menneske kjører den langsomme. Den tar også bildet
  andre nettsteder viser når en lenke hit blir delt, så kortet er denne sidens
  eget stilark og skrifttype og ikke en tegning av dem.
- **[Lighthouse](https://developer.chrome.com/docs/lighthouse/)** holder
  ytelsesbudsjettene; **[lychee](https://lychee.cli.rs/)** sjekker at hver lenke
  fortsatt fører fram.
- **[Prettier](https://prettier.io/)**,
  **[markdownlint](https://github.com/DavidAnson/markdownlint)**,
  **[ESLint](https://eslint.org/)**,
  **[Ruff](https://docs.astral.sh/ruff/)**,
  **[basedpyright](https://docs.basedpyright.com/)**,
  **[yamllint](https://www.yamllint.com/)**,
  **[ShellCheck](https://www.shellcheck.net/)** og
  **[codespell](https://github.com/codespell-project/codespell)** holder
  kildekoden ærlig; **[gitleaks](https://gitleaks.io/)** sørger for at ingen
  hemmelighet noen gang havner i en commit.
- **[Task](https://taskfile.dev/)** kjører alt sammen under ett navn per jobb,
  og **[pre-commit](https://pre-commit.com/)** kjører halvdelen som virker på
  filnivå, på nytt ved hver commit, så kontrollen ikke er noe noen må huske på.

## Hvor det kjører

Én liten maskin gjør alt sammen: en server med én kjerne hos
**[DigitalOcean](https://www.digitalocean.com/)**, med 512 MB minne og en disk
på 10 GB, som står i **Toronto i Canada** og svarer på **165.227.39.206**. Den
adressen er det DNS allerede gir til alle som spør, så å skrive den her sparer
deg for oppslaget i stedet for å fortelle deg noe nytt. Hva maskinen registrerer
mens den svarer, står på [personvernsiden](/nb/privacy/).

- **[Debian](https://www.debian.org/)** er operativsystemet.
- **[Caddy](https://caddyserver.com/)** svarer på hver webforespørsel og
  fornyer HTTPS-sertifikatet selv, fra
  **[Let's Encrypt](https://letsencrypt.org/)**.
- **[Agate](https://github.com/mbrubeck/agate)**,
  **[Gophernicus](https://github.com/gophernicus/gophernicus)** og
  **[Tor](https://www.torproject.org/)** svarer på de tre andre: dette nettstedet
  er også en Gemini-kapsel på `gemini://engineer.company`, et Gopher-hull på
  `gopher://engineer.company` og en onion-tjeneste på
  `http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/`. Alle
  fire leser den samme mappen med filer, så én produksjonssetting oppdaterer
  alle fire, og ingen av dem kan komme i utakt med de andre. Onion-adressen er
  den eneste inngangsdøren vi kunne legge til uten å åpne en port: tor kobler
  seg ut til introduksjonspunkter, så maskinens åpne porter forblir nøyaktig som
  de var. Nettstedet sender også et `Onion-Location`-hodefelt, så Tor Browser
  tilbyr den uten å bli spurt. Den begynner med `engineer` fordi vi brukte
  CPU-timene på å gjøre den lesbar — en bekvemmelighet, ikke et bevis. Det samme
  prefikset er tilgjengelig for alle som vil bruke de samme timene, så
  sammenlign hele adressen og ikke bare begynnelsen av den.
- **[Ansible](https://www.ansible.com/)** beskriver den serveren som kode,
  slik at den kan bygges opp på nytt i stedet for å huskes.
- **[Soft Serve](https://github.com/charmbracelet/soft-serve)** er
  git-serveren bak Git Hub på
  [git.engineer.company](https://git.engineer.company/). Dette nettstedets egen
  kildekode ligger der.
- **[restic](https://restic.net/)** tar sikkerhetskopiene bort fra maskinen.
- **[Cloudflare](https://www.cloudflare.com/)** svarer på DNS — og bare
  DNS. Nettstedet går med vilje ikke gjennom deres proxy: åpenhet er verdt mer
  for oss enn beskyttelsen, og en proxy ville satt enda et selskap mellom deg og
  oss.
- E-post går via **[Apple iCloud](https://www.icloud.com/)**, og det er derfor
  adressen på kontaktsiden når fram til en postkasse og ikke en
  markedsføringsplattform.

## Hvor ellers det svarer

Alt ovenfor beskriver ett nettsted, og det holder til på engineer.company. Det
samme arbeidet leveres også på en fokusert adresse for hvert fagfelt: den som
kommer til en av dem, får se det fagfeltet først og selskapets egne sider
uendret, og hver av de sidene navngir kopien på engineer.company som originalen.

- **[data.engineer.company](https://data.engineer.company/)** — databaser
  og pipelinene som fyller dem.
- **[platform.engineer.company](https://platform.engineer.company/)**
  — skyinfrastruktur og maskineriet som setter den i drift.
- **[software.engineer.company](https://software.engineer.company/)**
  — programvare bygd for å bli vedlikeholdt, ikke bare levert.
- **[advisory.engineer.company](https://advisory.engineer.company/)**
  — rådgivning, arkitektur og teknisk ledelse.
- **[brand.engineer.company](https://brand.engineer.company/)** — merkevare-
  og markedsføringsarbeid.
- **[support.engineer.company](https://support.engineer.company/)** —
  maskinene, nettverkene og brukerstøtten et kontor går på.
- **[ditte.engineer.company](https://ditte.engineer.company/)** —
  gründerens egne sider, som også svarer på
  [daryna.engineer.company](https://daryna.engineer.company/).

Og **[git.engineer.company](https://git.engineer.company/)** er inngangsdøren
til git-serveren nevnt ovenfor: repoene er private og nås over SSH, så den siden
er alt nettet får se.

Nettstedet finnes også i sin helhet på **[norsk](/nb/)** — det er disse sidene
du leser nå — og på **[svensk](/sv/)** og **[ukrainsk](/uk/)**: hver side
indeksert og navngitt i nettstedskartene ved siden av sine danske og engelske
tvillinger. Stripen i topplinjen tilbyr ingen av de tre, så lesere av den
engelske og den danske utgaven kommer hit via en lenke fra sin egen utgave av
denne siden.

## Standarder det følger

- **[WCAG 2.2](https://www.w3.org/TR/WCAG22/) nivå AA**, voktet i stedet for
  bare påstått — med ett kriterium navngitt som unntak i stedet for å bli glattet
  over. Etikettene som vises når du holder pekeren over eller fokuserer et
  merke, kan ikke lukkes med en tast, fordi lukking krever et skript, og dette
  nettstedet kjører bare ett skript. 1.4.13 er oppfylt bortsett fra den
  halvdelen, og det står skrevet her i stedet for å bli liggende til noen
  oppdager det.
- **[schema.org](https://schema.org/)** for strukturerte data, som bare
  merker opp det som er sant og synlig på siden.
- **[Web App Manifest](https://www.w3.org/TR/appmanifest/)**, slik at
  nettstedet kan [installeres som en app](/nb/install/).
- **[RSS](/nb/index.xml)**, **[Atom](/nb/atom.xml)** og **[JSON Feed](/nb/feed.json)**,
  alle tre med hele teksten. To XML-feeder i stedet for én, fordi noen
  feedlesere bare tar imot ett av de to formatene, og hvilket det er, varierer.
- **[RFC 9309](https://www.rfc-editor.org/rfc/rfc9309)**
  [`robots.txt`](/robots.txt), som tillater alt, for søkeroboter og KI-systemer
  likt — teksten her finnes for å bli lest, og den navngir
  [nettstedskartet](/sitemap.xml) begge to følger. Det finnes også en
  [lesbar oversikt](/nb/sitemap/) over de samme sidene, for den som heller vil
  bla i den enn å parse den.
- **[RFC 9116](https://www.rfc-editor.org/rfc/rfc9116)**
  [`security.txt`](/.well-known/security.txt), pluss
  [`humans.txt`](/humans.txt), [`llms.txt`](/llms.txt),
  [`agents.txt`](/agents.txt) og [`ai.txt`](/ai.txt) for maskinene som kommer og
  spør — og [`ads.txt`](/ads.txt), som ikke autoriserer noen, fordi det ikke er
  noen annonser her å selge.
- **[Gemini](https://geminiprotocol.net/docs/specification.gmi)**,
  **[RFC 1436](https://www.rfc-editor.org/rfc/rfc1436) Gopher** og
  **[Tors onion-tjenester](https://community.torproject.org/onion-services/)**:
  de samme sidene, levert over alle tre på `gemini://engineer.company`,
  `gopher://engineer.company` og
  `http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/`, fra
  den samme mappen med filer som denne siden kommer fra — én produksjonssetting
  oppdaterer alle fire. Gemini og Gopher vil hver ha sin egen klient i stedet
  for en nettleser; onion-adressen vil ha en Tor-klient, og Tor Browser er den
  vanlige. Gopher har ikke noe krypteringslag i det hele tatt, så hvilken side
  du leser, går i klartekst; Gemini krypterer det, men nettverket du leser fra,
  ser fortsatt hvilken adresse du ba om. Over onion ser det ingen av delene: av
  de fire er det bare der det stemmer. Selve adressen er tjenestens offentlige
  nøkkel, så kretsen er autentisert og kryptert før et eneste ord HTTP er sagt —
  `http://` er riktig og ikke slurvete, og et sertifikat ville bare bevise et
  navn adressen allerede beviser med aritmetikk.

## Sjekk det selv

Alt ovenfor er en påstand, og delen lenger opp om hvordan det bevises, navngir
verktøyene vi kjører mot vår egen maskin — og da retter vi våre egne prøver.
Dette er de samme spørsmålene, stilt av folk som aldri har hørt om oss. Hver
lenke kjører en direkte test mot denne siden, eller mot adressen til den siden
du er på; ingen av dem tar oss på ordet for noe, og ingen av dem er våre.

- **[W3C Markup Validator](https://validator.w3.org/nu/?doc=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  tolker HTML-en på denne siden mot den levende standarden. Det er den samme
  motoren som `vnu` ovenfor, kjørt av W3C og ikke av oss.
- **[W3C CSS Validator](https://jigsaw.w3.org/css-validator/validator?uri=https%3A%2F%2Fengineer.company%2Fnb%2F&profile=css3svg&lang=nb)**
  leser stilarket denne siden har på seg. Regn med at den rapporterer feil, og
  les dem før du tror på dem: per august 2026 validerer den mot en profil som
  stopper før `system-ui`, `@property`, `clamp()` i en `font-size` og
  scrollstyrte animasjoner — alle fire finnes i nettleserne, og alle fire brukes
  her. Mot /terms/ rapporterte den 176 innvendinger, og 175 var av akkurat den
  sorten. Den ene som ikke var det, hadde fanget en reell feil: en `rotate: 0deg`
  i hviletilstand mister enheten sin i minifiseringen, `rotate: 0` er ikke en
  vinkel, og nettleseren forkaster hele linjen — så en animasjon ble levert uten
  rotasjonen den var skrevet med. [Stylelint](https://stylelint.io/) kan ikke se
  det, fordi den leser stilarket vi skriver, og minifisereren skriver det om på
  veien til deg. Stylelint er fortsatt autoriteten vi holder kildekoden opp mot,
  og en egen kontroll leser nå det som faktisk ble levert.
- **[W3C Feed Validator](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fengineer.company%2Fnb%2Fatom.xml)**
  sjekker Atom-feeden, og
  [den samme tjenesten](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fengineer.company%2Fnb%2Findex.xml)
  sjekker RSS-feeden. Den advarer om at de fleste oppføringene har samme
  endringsdato, og den advarselen er riktig: datoene kommer fra git-historikken,
  og de fleste av disse sidene ble faktisk skrevet i de samme få commitene. Vi
  viser heller en advarsel enn å finne på en dato.
- **[JSON Feed Validator](https://validator.jsonfeed.org/?url=https%3A%2F%2Fengineer.company%2Fnb%2Ffeed.json)**
  sjekker den tredje feeden, som W3C-tjenesten ikke dekker — den er eldre enn
  formatet.
- **[PWABuilder](https://www.pwabuilder.com/reportcard?site=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  leser manifestet og resten av det som gjør nettstedet
  [installerbart](/nb/install/), fra Microsofts maskiner i stedet for våre.
- **[W3C Internationalization Checker](https://validator.w3.org/i18n-checker/check?uri=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  leser språk- og tegnkodingsdeklarasjonene som gjør hver språkversjon av dette
  nettstedet lesbar for den rette leseren.
- **[Schema Markup Validator](https://validator.schema.org/#url=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  leser de strukturerte dataene, og
  **[Googles Rich Results Test](https://search.google.com/test/rich-results?url=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  sier hva en søkemotor gjør med dem.
- **[PageSpeed Insights](https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fengineer.company%2Fnb%2F)**
  kjører Lighthouse fra Googles maskiner i stedet for våre — ytelse,
  tilgjengelighet, beste praksis og SEO, med data fra virkelig bruk der nok folk
  har vært innom.
- **[Mozilla HTTP Observatory](https://developer.mozilla.org/en-US/observatory/analyze?host=engineer.company)**
  gir sikkerhetshodene en karakter, og
  **[Qualys SSL Labs](https://www.ssllabs.com/ssltest/analyze.html?d=engineer.company)**
  gir HTTPS-konfigurasjonen bak dem en karakter.
- **[Security Headers](https://securityheaders.com/?q=https%3A%2F%2Fengineer.company%2F&followRedirects=on)**
  er en annen vurdering av det første av de to, fra noen helt andre.

Det ingen av dem kan sjekke, er påstanden om universell utforming, og det sier vi
heller selv enn å la et grønt merke antyde noe annet. **Ikke noe automatisk
verktøy finner mer enn omtrent en tredjedel av bruddene på WCAG** — resten er
vurderinger av om en overskrift beskriver avsnittet sitt, eller om en alt-tekst
sier det nyttige, og dem kan ingen maskin gjøre. Kontrollene ovenfor er et
minimum, ikke et bevis. Hvis du bruker skjermleser her og noe blir lest feil,
[si fra til oss](/nb/contact/) — det er den rapporten vi ikke kan generere.

## Takk

Hvert prosjekt ovenfor vedlikeholdes av folk som ikke måtte dele noe av det.
Bygger du også på denne teknologistakken, er det der pengene og feilrapportene
dine gjør mest nytte.

Og hvis denne stakken ser ut som ingeniørarbeid etter din smak,
[ta vår i bruk](/nb/contact/) *(vi setter sammen det samme for kunder)*.

<https://ditte.engineer.company/nb/credits/>
