Blogg
Notater fra arbeidet med programvare.
Tre slash-kommandoer som tjener inn plassen sin
De fleste Claude Code-funksjoner forblir ubrukt — folk forlater aldri chat. /review, /security-review, og /init betaler for seg selv på dag én, men hver har en feilbruk som gjør dem til teater. Verktøyet er gratis; vanen er kostnaden.
#claude-code#ai#developer-tools#practiceIkke godta slop på første pass
AI-ens oppsummering av hva den gjorde er ikke det samme som hva den gjorde. Oppsummeringen føles som artefakten. Diffen er artefakten — og den eneste reviewen som holder seks måneder senere er den gjort mot diffen, ikke oppsummeringen.
#claude-code#ai#developer-tools#practiceVerifiser før du anbefaler: når AI-en siterer, så grepper du
Den farligste AI-outputen er ikke feil — den er utdatert. Claude siterer selvsikkert et flag fjernet forrige kvartal, en omdøpt funksjon, en sti som ikke finnes lenger. Behandle hvert navngitt symbol som en hypotese. Grep før du handler.
#claude-code#ai#developer-tools#practicePlanlegg før kode: fellen med "bare skriv det"
Claude skriver kode fra hvilken som helst vag prompt — som regel i feil form, og du merker det først 300 linjer inn. Fiksen er én setning: planlegg først. Verdien er ikke planen; det er uenigheten den overflater mens den ennå er gratis.
#claude-code#ai#prompting#developer-tools#practiceNegativ-rom-prompten
Du ber Claude om en én-linjes fiks og får en refaktor, tre nye tester, en omdøpt fil og en forklarende kommentar. Fiksen er å scope med negativer — navngi banen assistenten ikke skal gå inn i, så holder resten av prompten seg kort.
#claude-code#ai#prompting#developer-toolsCLAUDE.md-en som faktisk endrer atferd
De fleste CLAUDE.md-filer beskriver prosjektet. Stack, mapper, build-kommandoer — ting Claude kan utlede med to ls-kall. Filene som faktisk endrer atferd har tre regeltyper: negative, hendelses-rotfestet, smak-med-en-grunn.
#claude-code#ai#prompting#developer-toolsBuggen som levde i gapet mellom to tjenester
To tjenester regnet 'sold' på to forskjellige måter. Admin fikk en 409 Conflict som ikke ga mening fra noen av sidene. Buggen var ikke i noen av tjenestene — den var i gapet mellom dem, og en kontrakttest stopper den neste.
#microservices#debugging#distributed-systems#war-storyHvorfor vi sendte EntityManager som parameter
En stock-drift-bug som ingen klarte å reprodusere lokalt. Fiksen var én signaturendring — slutt å injecte EntityManager i NestJS-singletons, send den per request i stedet.
#nestjs#typescript#concurrency#dependency-injection#war-storyHiring managers leser byggvalgene dine, ikke «Om»-siden
Hver tekniske beslutning i furevikstrand.cloud var også et hiring-signal — tre-lags degradering, et selv-hostet dashboard, en delt kodevei. Ingenting av det vises på en CV; alt av det vises i repoet og på det live nettstedet.
#hiring#careeradvice#portfolio#softwareengineeringJeg bygde mitt eget dashboard for å se hva besøkende spør chatten om
/admin er en server-rendret, basic-auth-gated Next.js-side som leser chat-events fra MySQL — 13 paneler for trafikk og chat, inkludert en miss-kø som gjør oppdagede hull til leverte svar på rundt 30 sekunder.
#admin#analytics#selfhosted#privacy#mysql#nextjsEn AI-chat som ikke ryker når API-nøkkelen går tom
Tre lag med graceful degradation — Claude, Ollama og en ren TypeScript-nøkkelordmatcher — holder chatten i gang selv om API-saldoen treffer null eller LLM-serveren faller ut.
#chat#claude#ollama#typescript#nextjs