# Kolofon

Nästan allt här har gjorts av andra och getts bort. Den här sidan namnger det,
eftersom ett konsultbolag som inte vill säga vad det kör ber om ett förtroende
som det inte självt har erbjudit.

Det är också det kortaste ärliga svaret på ”vad arbetar ni egentligen med”.
Listan nedan är ingen broschyr över vad vi kan — det är den här webbplatsens
egen stycklista, och du kan kontrollera varje rad i den från din egen
webbläsare.

**Den här kopian av webbplatsen är från 18 oktober 2026, 10:29 CEST** — det ögonblick då den
nyaste sidan i den här kopian senast ändrades. Varje fokuserad underdomän bär
samma rad om sin egen kopia, som görs senare än den här och säger det.

## Vad som når din webbläsare

Fem saker, och inget annat: HTML, en stilmall, tre webbtypsnitt, bilder och ett
litet eget skript.

- **HTML**, färdigskriven innan du bad om den. Varje sida
  är en fil på disk, inte en mall som sätts ihop vid varje förfrågan.
- **Ett CSS-paket**, sammanfogat och försett med ett
  fingeravtryck när webbplatsen byggs, och levererat med en
  [Subresource Integrity](/sv/glossary/#sri)-hash, så att din webbläsare kan
  kontrollera att det kom fram oförändrat. I paketet följer
  [neat-annotations](https://github.com/syabro/neat-annotations) av Max Syabro
  (MIT) med — de handritade pilarna och marginalanteckningarna, ritade enbart i
  CSS.
- **Typsnittet Ubuntu**, av Dalton Maag för
  Canonical, under Ubuntu Font Licence. Det levereras från vår egen maskin — ett
  webbtypsnitt från någon annans CDN är en tredje part som ser dig läsa.
- **Ubuntu Mono**, samma familjs variant med fast
  teckenbredd, under samma licens och levererat på samma sätt. Det sätter koden
  på de här sidorna och laddas bara på de sidor som har någon.
- **Typsnittet Shantell Sans**, byggt på
  konstnären Shantell Martins handstil med tuschpenna, av
  [Arrow Type](https://github.com/arrowtype/shantell-sans) / Stephen Nixon,
  under SIL Open Font License. Det skriver marginalanteckningarna, levereras på
  samma sätt och laddas bara på de sidor som har en.
- **WebP- och PNG-bilder**, skalade när webbplatsen
  byggs. Väggarna som de här sidorna är byggda på är fotografier. Två kommer från
  [Unsplash](https://unsplash.com/license):
  [Tim Mossholder](https://unsplash.com/@timmossholder) fotograferade den mörka
  putsen, [Joe Woods](https://unsplash.com/@woods) det vita teglet. Tre till är
  **John Snows**, tagna med en Galaxy S22 Ultra och givna till den här
  webbplatsen: den ljusa putsen, det målade teglet och den kaklade väggen. Det
  ljusa temat bär en av sina fyra väggar, lottad medan sidan byggs, så att
  webbplatsen kläs på nytt varje gång den publiceras. Licensen kräver inget
  erkännande; en sida som namnger ett typsnitts formgivare borde inte behöva bli
  ombedd. Märket, kugghjulet, maskoten i varje pose du kommer att möta den i,
  porträttet och de två överlappande fotografierna av vårt eget kontor i
  Köpenhamn på sidan Om oss är våra, tagna eller ritade här och rensade på sin
  metadata innan de checkades in.
- **En lånad ikonuppsättning.** Bilderna av vad ett
  arbete gjordes av — en bredvid varje resultat i varje lista, en rad av dem
  under varje recension, en bakom varje siffra och varje tjänst på startsidan —
  och varje annan ikon som den här webbplatsen ritar: märkena i båda menyerna och
  bakom varje sida, kontaktraden, nätverken, språkväxlaren, pilarna och
  vinkelpilarna. Alla kommer från
  [Font Awesome Free](https://fontawesome.com/) 7.3.1 av
  Fonticons, under
  [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/):
  267 teckningar totalt, som finns i det här repot och
  levereras från den här värden som allt annat. 36 av dem
  är inte teckningar av en idé utan teknikernas egna märken — PostgreSQL, Linux,
  Docker, Go, Swift, Rust och resten — som namnger det som ett jobb faktiskt
  byggdes på. Ett märke används där underlaget stöder det och en enkel bild där
  det inte gör det: databasarbetet körs också på MS SQL och BigQuery, så det
  behåller en teckning av en databas i stället för en enskild leverantörs
  logotyp, och arbete som byggdes för att komma bort från något bär aldrig den
  sakens märke. Ett varumärke står för sin ägare, så ett exakt lånat märke är
  bättre än ett som ritats om för att passa vår uppsättning, och där det inte
  finns något märke att låna använder vi en enkel bild i stället för att hitta
  på ett. Själva identiteten är vår rakt igenom: märket, kugghjulet, maskoten,
  porträttet och fotografierna. Erkännandet står på den här sidan och inte i
  filerna, eftersom bygget minifierar sin HTML och tar bort kommentaren som
  varje ikon levereras med sitt erkännande i.

Ett skript körs på den här webbplatsen: vårt eget, ungefär en kilobyte, på de
sidor som har en lista — arbetet, ämnena, erbjudandena, fallen och
[webbplatskartan](/sv/sitemap/) — där det filtrerar listan medan du skriver. Det
pratar inte med någon och minns ingenting. Inga kakor sätts. Ingenting hämtas
från ett annat företags server — ingen analys, inga typsnitt, ingen inbäddad
video, ingen samtyckesruta, eftersom det inte finns något att samtycka till.
Öppna webbläsarens nätverkspanel och räkna värdarna: det finns en.

## Hur sidorna görs

- **[Hugo](https://gohugo.io/)** — den statiska
  webbplatsgeneratorn, skriven i Go. Mallar, taxonomier, varje språk och flödena
  är dess verk.
- **Markdown och Go-mallar** för de handskrivna sidorna
  och layouterna.
- **[SQLite](https://sqlite.org/)** — portföljen skrivs
  inte här. Den finns i en flerspråkig cv-databas och exporteras in i den här
  webbplatsen av ett Python-skript, så att ett faktum skrivs en gång och dyker
  upp överallt där det hör hemma.
- **[Python](https://www.python.org/)** för den
  exporten, och för att generera ikonuppsättningen med
  **[ImageMagick](https://imagemagick.org/)** ur en enda teckning av märket.

## Hur det bevisas

Det finns ingen extern byggtjänst; kvalitetsspärren körs på den maskin som
webbplatsen skrivs på, och varje diagnos är ett fel snarare än en varning.

- **[vnu](https://validator.github.io/validator/)**
  validerar HTML-koden, **[Stylelint](https://stylelint.io/)** CSS-koden.
- **[axe-core](https://github.com/dequelabs/axe-core)**
  granskar 39 representativa sidor — en per mall, på varje språk — mot
  [WCAG 2.2](/sv/glossary/#wcag) A och AA, i båda färgschemana, och den ingår i
  spärren, inte bredvid den. Webbplatsen bygger 2 253 sidor; en maskin hittar
  ungefär en tredjedel av det som WCAG kräver, och det är därför redovisningen
  nedan görs kriterium för kriterium i stället för som ett samlat godkänt.
- **[Puppeteer](https://pptr.dev/)** styr headless
  Chromium för de kontroller som en validator inte kan göra: uppmätt kontrast,
  fokusordning, målstorlek, radlängd, överflöd utanför visningsytan,
  sidbrytningar vid utskrift och en visuell regressionsjämförelse pixel för
  pixel via **[pixelmatch](https://github.com/mapbox/pixelmatch)**. De körs vid
  behov snarare än vid varje incheckning — de tar ungefär tjugo minuter — så
  spärren håller den snabba halvan och en människa kör den långsamma. Den tar
  också bilden som andra webbplatser visar när en länk hit delas, så att det
  kortet är den här sidans egen stilmall och eget typsnitt snarare än en
  teckning av dem.
- **[Lighthouse](https://developer.chrome.com/docs/lighthouse/)** håller
  prestandabudgetarna; **[lychee](https://lychee.cli.rs/)** kontrollerar att
  varje länk fortfarande leder någonstans.
- **[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/)** och
  **[codespell](https://github.com/codespell-project/codespell)** håller
  källkoden ärlig; **[gitleaks](https://gitleaks.io/)** ser till att ingen
  hemlighet någonsin checkas in.
- **[Task](https://taskfile.dev/)** kör alltihop under ett
  namn per jobb, och **[pre-commit](https://pre-commit.com/)** kör den halva som
  gäller enskilda filer igen vid varje incheckning, så att spärren inte är något
  som någon behöver komma ihåg.

## Var det körs

En liten maskin gör allt: en
**[DigitalOcean](https://www.digitalocean.com/)**-server med en kärna, 512 MB
minne och en disk på 10 GB, som står i **Toronto i Kanada** och svarar på
**165.227.39.206**. Den adressen lämnar DNS redan ut till vem som helst som
frågar, så att skriva den här sparar dig uppslaget snarare än berättar något
nytt. Vad maskinen registrerar medan den svarar står på
[integritetssidan](/sv/privacy/).

- **[Debian](https://www.debian.org/)** är
  operativsystemet.
- **[Caddy](https://caddyserver.com/)** besvarar varje
  webbförfrågan och förnyar HTTPS-certifikatet själv, från
  **[Let's Encrypt](https://letsencrypt.org/)**.
- **[Agate](https://github.com/mbrubeck/agate)**,
  **[Gophernicus](https://github.com/gophernicus/gophernicus)** och
  **[Tor](https://www.torproject.org/)** besvarar de tre andra: den här
  webbplatsen är också en Gemini-kapsel på `gemini://engineer.company`, ett
  Gopher-hål på `gopher://engineer.company` och en onion-tjänst på
  `http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/`. Alla
  fyra läser samma mapp med filer, så en driftsättning uppdaterar alla fyra och
  ingen av dem kan glida isär från de andra. Onion-tjänsten är den enda
  ytterdörr vi kunde lägga till utan att öppna en port: tor kopplar upp sig
  utåt mot introduktionspunkter, så maskinens öppna portar förblir exakt som de
  var. Webbplatsen skickar också ett `Onion-Location`-huvudfält, så att Tor
  Browser erbjuder den utan att bli ombedd. Den börjar med `engineer` eftersom
  vi lade CPU-timmarna på att göra den läsbar — en bekvämlighet, inte ett bevis.
  Samma prefix kan vem som helst få som är villig att lägga samma timmar, så
  jämför hela adressen och inte bara början av den.
- **[Ansible](https://www.ansible.com/)** beskriver den
  servern som kod, så att den kan byggas upp på nytt i stället för att kommas
  ihåg.
- **[Soft Serve](https://github.com/charmbracelet/soft-serve)** är git-servern
  bakom Git Hub på [git.engineer.company](https://git.engineer.company/). Den här
  webbplatsens egen källkod finns där.
- **[restic](https://restic.net/)** flyttar
  säkerhetskopiorna bort från maskinen.
- **[Cloudflare](https://www.cloudflare.com/)**
  besvarar DNS — och bara DNS. Webbplatsen går medvetet inte via deras proxy:
  öppenhet är värd mer för oss än skyddet, och en proxy skulle ställa ytterligare
  ett företag mellan dig och oss.
- E-posten ligger hos
  **[Apple iCloud](https://www.icloud.com/)**, och därför når adressen på
  kontaktsidan en brevlåda och inte en marknadsföringsplattform.

## Var det annars svarar

Allt ovan beskriver en webbplats, och den finns på engineer.company. Samma
arbete levereras också på en fokuserad adress för varje fackområde: den som
kommer till en av dem får se det fackområdet först och företagets egna sidor
oförändrade, och var och en av de sidorna anger kopian på engineer.company som
originalet.

- **[data.engineer.company](https://data.engineer.company/)**
  — databaser och de pipelines som fyller dem.
- **[platform.engineer.company](https://platform.engineer.company/)**
  — molninfrastruktur och maskineriet som driftsätter den.
- **[software.engineer.company](https://software.engineer.company/)**
  — mjukvara byggd för att underhållas, inte bara levereras.
- **[advisory.engineer.company](https://advisory.engineer.company/)**
  — rådgivning, arkitektur och tekniskt ledarskap.
- **[brand.engineer.company](https://brand.engineer.company/)** — varumärkes-
  och marknadsföringsarbete.
- **[support.engineer.company](https://support.engineer.company/)** — de
  maskiner, nätverk och den helpdesk som ett kontor går på.
- **[ditte.engineer.company](https://ditte.engineer.company/)** — grundarens
  egna sidor, som också svarar på
  [daryna.engineer.company](https://daryna.engineer.company/).

Och **[git.engineer.company](https://git.engineer.company/)** är ytterdörren
till git-servern som nämns ovan: repona är privata och nås över SSH, så den
sidan är allt som webben får se.

Webbplatsen finns också i sin helhet på **[svenska](/sv/)** — det är de här
sidorna du läser nu — och på **[norska](/nb/)** och **[ukrainska](/uk/)**: varje
sida indexerad och namngiven i webbplatskartorna bredvid sina danska och
engelska tvillingar. Språkraden i toppfältet erbjuder ingen av de tre, så läsare
av den engelska och den danska versionen kommer hit via en länk från sin egen
version av den här sidan.

## Standarder det följer

- **[WCAG 2.2](https://www.w3.org/TR/WCAG22/) nivå AA**,
  bevakad snarare än påstådd — med ett kriterium namngivet som undantag i stället
  för att slätas över. Etiketterna som visas när du hovrar över eller fokuserar
  ett märke kan inte stängas med en tangent, eftersom det kräver ett skript och
  den här webbplatsen kör bara ett skript. 1.4.13 är uppfyllt utom för den
  halvan, och det står här i stället för att lämnas åt någon att upptäcka.
- **[schema.org](https://schema.org/)**-strukturerad
  data, som bara märker upp det som är sant och synligt på sidan.
- **[Web App Manifest](https://www.w3.org/TR/appmanifest/)**, så att
  webbplatsen kan [installeras som app](/sv/install/).
- **[RSS](/sv/index.xml)**, **[Atom](/sv/atom.xml)** och
  **[JSON Feed](/sv/feed.json)**, alla tre med hela texten. Två XML-flöden i
  stället för ett, eftersom vissa läsare bara tar emot det ena av de två och man
  inte kan lita på att det är ett visst av dem.
- **[RFC 9309](https://www.rfc-editor.org/rfc/rfc9309)**
  [`robots.txt`](/robots.txt), som tillåter allt, för sökrobotar och AI-system
  lika — texterna här finns till för att läsas, och den anger den
  [webbplatskarta](/sitemap.xml) som båda följer. Det finns en
  [läsbar förteckning](/sv/sitemap/) över samma sidor, för den som hellre
  bläddrar i den än tolkar den maskinellt.
- **[RFC 9116](https://www.rfc-editor.org/rfc/rfc9116)**
  [`security.txt`](/.well-known/security.txt), samt
  [`humans.txt`](/humans.txt), [`llms.txt`](/llms.txt),
  [`agents.txt`](/agents.txt) och [`ai.txt`](/ai.txt) för maskinerna som kommer
  och frågar — och [`ads.txt`](/ads.txt), som inte auktoriserar någon, eftersom
  det inte finns några annonser här att sälja.
- **[Gemini](https://geminiprotocol.net/docs/specification.gmi)**,
  **[RFC 1436](https://www.rfc-editor.org/rfc/rfc1436) Gopher** och
  **[Tors onion-tjänster](https://community.torproject.org/onion-services/)**:
  samma sidor, levererade över alla tre på `gemini://engineer.company`,
  `gopher://engineer.company` och
  `http://engineer2ezpeji52ipphljcflzyhetvy5r6tnqubtq45nzlxxv6rsqd.onion/`, ur
  samma mapp med filer som den här sidan kommer från — en driftsättning
  uppdaterar alla fyra. Gemini och Gopher vill ha var sin egen klient snarare än
  en webbläsare; onion-adressen vill ha en Tor-klient, och Tor Browser är den
  vanliga. Gopher har inget krypteringslager alls, så det bär vilken sida du
  läser i klartext; Gemini krypterar det, men nätverket du läser från ser ändå
  vilken adress du bad om. Över onion-tjänsten ser det ingetdera: av de fyra
  gäller det bara där. Själva adressen är tjänstens publika nyckel, så kretsen
  är autentiserad och krypterad innan ett ord HTTP har sagts — `http://` är
  korrekt snarare än slarvigt, och ett certifikat skulle bara bevisa ett namn
  som adressen redan bevisar med aritmetik.

## Kontrollera det själv

Allt ovan är ett påstående, och avsnittet längre upp om hur det bevisas namnger
verktygen vi kör mot vår egen maskin — vilket är att rätta våra egna prov. Det
här är samma frågor, ställda av folk som aldrig har hört talas om oss. Varje
länk kör ett test i realtid mot den här sidan, eller mot adressfältet på den
sida du står på; ingen av dem tar vårt ord för något, och ingen av dem är vår.

- **[W3C Markup Validator](https://validator.w3.org/nu/?doc=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  tolkar den här sidans HTML mot den levande standarden. Det är samma motor som
  `vnu` ovan, körd av W3C i stället för av oss.
- **[W3C CSS Validator](https://jigsaw.w3.org/css-validator/validator?uri=https%3A%2F%2Fengineer.company%2Fsv%2F&profile=css3svg&lang=sv)**
  läser stilmallen som den här sidan bär. Räkna med att den rapporterar fel, och
  läs dem innan du tror på dem: i augusti 2026 validerar den mot en profil som
  stannar före `system-ui`, `@property`, `clamp()` i en `font-size` och
  scrolldrivna animationer — alla fyra finns i webbläsarna, och alla fyra
  används här. Mot /terms/ rapporterade den 176 anmärkningar, och 175 var av
  exakt det slaget. Den som inte var det hade hittat en verklig defekt: ett
  `rotate: 0deg` i viloläge förlorar sin enhet i minifieraren, `rotate: 0` är
  ingen vinkel, och webbläsaren kastar hela raden — så en animation levererades
  utan den rotation den skrevs med. [Stylelint](https://stylelint.io/) kan inte
  se det, eftersom den läser stilmallen vi skriver och minifieraren skriver om
  den på vägen till dig. Stylelint är fortfarande den auktoritet vi håller
  källkoden till, och en egen kontroll läser nu det som faktiskt levererades.
- **[W3C Feed Validator](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fengineer.company%2Fsv%2Fatom.xml)**
  kontrollerar Atom-flödet, och
  [samma tjänst](https://validator.w3.org/feed/check.cgi?url=https%3A%2F%2Fengineer.company%2Fsv%2Findex.xml)
  kontrollerar RSS-flödet. Den varnar för att de flesta poster har samma
  ändringsdatum, och den varningen stämmer: datumen kommer från git-historiken,
  och de flesta av de här sidorna skrevs verkligen i samma fåtal incheckningar.
  Vi visar hellre en varning än hittar på ett datum.
- **[JSON Feed Validator](https://validator.jsonfeed.org/?url=https%3A%2F%2Fengineer.company%2Fsv%2Ffeed.json)**
  kontrollerar det tredje flödet, som W3C:s tjänst inte täcker — den är äldre
  än formatet.
- **[PWABuilder](https://www.pwabuilder.com/reportcard?site=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  läser manifestet och resten av det som gör webbplatsen
  [installerbar](/sv/install/), från Microsofts maskiner i stället för våra.
- **[W3C Internationalization Checker](https://validator.w3.org/i18n-checker/check?uri=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  läser de deklarationer av språk och teckenkodning som gör varje språkversion
  av den här webbplatsen läsbar för rätt läsare.
- **[Schema Markup Validator](https://validator.schema.org/#url=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  läser den strukturerade datan, och
  **[Googles Rich Results Test](https://search.google.com/test/rich-results?url=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  säger vad en sökmotor gör med den.
- **[PageSpeed Insights](https://pagespeed.web.dev/analysis?url=https%3A%2F%2Fengineer.company%2Fsv%2F)**
  kör Lighthouse från Googles maskiner i stället för våra — prestanda,
  tillgänglighet, bästa praxis och SEO, med verkliga data där tillräckligt
  många har besökt sidan.
- **[Mozilla HTTP Observatory](https://developer.mozilla.org/en-US/observatory/analyze?host=engineer.company)**
  betygsätter säkerhetshuvudfälten, och
  **[Qualys SSL Labs](https://www.ssllabs.com/ssltest/analyze.html?d=engineer.company)**
  betygsätter HTTPS-konfigurationen bakom dem.
- **[Security Headers](https://securityheaders.com/?q=https%3A%2F%2Fengineer.company%2F&followRedirects=on)**
  är ett andra utlåtande om det första av dem, från någon helt annan.

Det ingen av dem kan kontrollera är tillgänglighetspåståendet, och det säger vi
hellre än låter en grön bock antyda något annat. **Inget automatiskt verktyg
hittar mer än ungefär en tredjedel av WCAG-felen** — resten är bedömningar av om
en rubrik beskriver sitt avsnitt eller om en alt-text säger det som är till
nytta, och en maskin kan inte göra dem. Granskningarna ovan är golvet, inte
beviset. Om du använder en skärmläsare här och något läses upp fel,
[säg det till oss](/sv/contact/) — det är den rapport vi inte kan generera.

## Tack

Varje projekt ovan underhålls av människor som inte behövde dela med sig av något
av det. Om du också bygger på den här stacken är det där dina pengar och dina
buggrapporter gör mest nytta.

Och om den här stacken låter som din sorts ingenjörsarbete,
[sätt vår i arbete](/sv/contact/) *(vi sätter ihop detsamma åt kunder)*.

<https://brand.engineer.company/sv/credits/>
