Gå til innhold

Produktutvikling på tvers av hele teknologistakken

Fem år med levering av kundevendte produkter, tjenester på tjenersiden, datasystemer, migreringer i drift og infrastrukturen som kreves for å kjøre dem.

Tidslinje

  1. Covent

    Senior frontendutvikler → teamleder

    I dag

    Begynte hos Covent, tidligere Dispo Genius, som senior frontendutvikler og gikk videre til teamleder. Jeg har ansvar for arkitekturen i klientdelen, leverer tjenersystemer, fastsetter tekniske standarder og veileder tre ingeniører.

    • Foreslo Covent MCP og ledet det fra idé til produksjon. Go-tjenesten leverte 23 verktøy med bare lesetilgang, OAuth 2.0 og PKCE, tilgang bundet til leietakeren, kredittgrenser, strukturert loggføring, PostgreSQL-basert tilstand, analyse og dokumentasjon. Jeg bygde leveranseløpet på EC2 med overføring av Docker-imaget, kontroll av at databasen var klar, sikkerhetskopier, migreringer, trinnvise helsekontroller, tilbakerulling og Slack-rapportering.

    • Utformet og leverte Covent Spotlight, et søkesystem inspirert av Mac Spotlight, og skilte det deretter ut som den delte arbeidsområdepakken @covent/spotlight, som Inbox og Prospecting tok i bruk. Systemet koordinerer lokale og tjenerbaserte kilder, avbryting, paginering, tastaturnavigasjon og bevaring av tilstand. Prospecting bruker Fuse.js til fuzzy matching. En kunde kalte opplevelsen banebrytende.

    • Reduserte JavaScript ved første innlasting på seks ruter ved å utsette tunge konteksttilbydere, SDK-baserte grensesnitt, inaktive faner, dialogbokser og kode som bare brukes på én rute. Rutepakkene i produksjonsbygget ble redusert med 26–40 %, blant annet fra 482 til 295 kB for onboarding og fra 808 til 487 kB for annonsekampanjer. Covents administrerende direktør (CEO) kalte det en stor forbedring.

    • Jeg leder og veileder et team på tre, har kodeansvar for klientdelen, gjennomgår produkt- og arkitekturarbeid, fastsetter tekniske standarder og arbeider fortsatt aktivt i kodebasen.

    • Hadde ansvar for Covents overgang fra den eldre CRA-klientdelen til en plattform bygget direkte i Next.js og React. Opprettholdt V1/V2-broen for navigasjon og autentisering mens begge var i drift, og fjernet deretter iframe-en og det eldre API-laget ved den endelige overgangen.

    • Erstattet forhåndsberegnet meldingsgenerering med flere agenter med en behovsstyrt flyt. I det dokumenterte tilfellet reduserte dette antall modellanrop med 96 % og månedskostnaden fra rundt $9 000 til rundt $700.

    • Bygget Prospecting Insights-API-et med Django og PostgreSQL fra ende til ende, inkludert aggregerings- og vindusspørringer, prishistogrammer, rangering av toppinvestorer, kanoniske hurtigbuffernøkler, tester og en typesikker integrasjon i klientdelen.

    • Bygget om Investor Prospecting rundt direkte eiendoms-API-er, Mapbox WebGL-lag, steds-, punkt- og polygonsøk, avgrenset klienttilstand, avbryting av utdaterte forespørsler og en FIFO-akkumulator med plass til 10 000 eiendommer.

    • Bygget en sanntidsinnboks med virtualiserte samtaler, WebSocket-tilkobling som opprettes på nytt, optimistisk sending av SMS og e-post, nye forsøk og tilbakerulling, vedlegg, oversettelse, maler, planlegging, URL-ruting og bevart rulleposisjon.

    • Utformet og leverte Auth 2.0 med XState-flyter, vedvarende Zustand-identitet, serialisert tokenfornyelse, OTP, Google- og GHL-SSO, valg av lokasjon, synkronisering mellom faner og gjenoppretting etter omdirigering.

    • Erstattet på egen hånd Vercel Flags med LaunchDarkly i både servergjengitte og klientgjengitte flater, med feilsikker evaluering, identitetssynkronisering, reaktive abonnementer, reserveverdier og regresjonstester.

    • Bygget regelstyrt utrulling med Vercel og GitHub Actions, rapportering for utgivelser og tilbakerullinger, observabilitet med Sentry og kvalitetsporter med E2E, Lighthouse og Unlighthouse.

    • React
    • TypeScript
    • Next.js
    • Go
    • Django
    • PostgreSQL
    • XState
    • Zustand
    • LaunchDarkly
    • WebSockets
    • AWS EC2
    • Sentry
  2. Metal

    Fullstackingeniør

    Hadde ende-til-ende-ansvar for dataoperasjoner, kommunikasjon, varig lagring av utkast, opplæring i klientutvikling og plattformverktøy i en KI-basert oppstartsbedrift for kapitalinnhenting støttet av Y Combinator og Andreessen Horowitz.

    • Leverte en versjonskontrollert DataOps Portal på 20 dager, med støtte for gjengivelse av vilkårlige tabeller, øyeblikksbilder, overstyringer på feltnivå og relasjonsdata fra lagdelte kilder.

    • Bygget et flernivåsystem for notatutkast fra ende til ende på både klient- og tjenersiden, med Redis-persistens og localStorage som reserve.

    • Jobbet med Networks and Communications Hub, leverte Communications Module innen fristen og dokumenterte arbeidet i en teknisk retrospektiv.

    • Ledet Frontend 101-økter for utviklere på tjenersiden om nettlesergjengivelse, DOM og CSSOM, de interne mekanismene i React og utviklingen av HTML, CSS og Next.js.

    • Bygget et globalt, URL-styrt innstillingssystem med Nuqs og bidro til grunnlaget for Vitest, Playwright, LaunchDarkly og Mixpanel.

    • React
    • TypeScript
    • Next.js
    • Redis
    • Nuqs
    • Vitest
    • Playwright
    • LaunchDarkly
    • Mixpanel
    • NestJS
  3. Bleed AI

    Programvareingeniør

    Jobbet med et KI-produkt i tidlig fase, leveranser til byråkunder og mine første tjenester på tjenersiden i produksjon.

    • Bygget UpAutomate, et produkt som koblet brukere med Upwork-oppdrag ved hjelp av LLM-basert poengsetting, nestede filtre og OpenAI-API-er. Det nådde 150 prøvebrukere.

    • Leverte React- og Next.js-applikasjoner for byråkunder.

    • Bygget FastAPI-tjenester og distribuerte containerbaserte arbeidslaster på GCP med Docker.

    • React
    • Next.js
    • FastAPI
    • Docker
    • Google Cloud
    • OpenAI
    • Python
  4. TimeXperts / Workforce Software

    Assosiert programvareingeniør → programvareingeniør

    Jobbet integrert hos Workforce Software gjennom TimeXperts og leverte tids- og oppmøteløsninger for Canon, Ornge og National Gypsum.

    • Refaktorerte tids- og oppmøteløsninger for Canon, Ornge og National Gypsum og bidro til mer enn $100 000 i inntekter fra de tre bedriftskundene.

    • Bygget en intern Jira Comment Generator med Next.js som reduserte tiden for å opprette kommentarer med 30 %.

    • Gikk fra assosiert programvareingeniør til programvareingeniør i løpet av omtrent tre måneder.

    • React
    • TypeScript
    • JavaScript
    • Next.js
    • HTML
    • CSS
  5. ZUE

    Junior programvareingeniør

    Jobbet i ZUE, et selskap for utkontraktering av forretningsprosesser med røtter i helsedrift.

    • Bygget et rapporteringsdashbord for kunder som gjorde drifts- og helsedata enklere å undersøke.

    • Bygget et oppmøte- og administrasjonssystem koblet til selskapets fingeravtrykksbaserte stemplingsmaskin.

    • Brukte Python til å rense og normalisere helse-, leverings- og budrapporter fra flere kilder før de ble hentet inn i Power BI. Dette erstattet gjentakende klargjøring av regneark.

    • React
    • MUI
    • Bootstrap
    • HTML
    • CSS
    • Python
    • Pandas
  6. Selvstendig kundearbeid

    Frilans programvareingeniør

    Seks måneder med profesjonelt kundearbeid med vekt på kryptovalutaprodukter og fullstackleveranser.

    • Bygget en fullstack kryptovalutalommebok med visualiseringer av beholdning, pris og historikk samt flyter for kjøp, salg, overføring og transaksjoner ved hjelp av React, Ionic, Redux, Express og MongoDB.

    • Bygget en betalt læringsplattform for en kunde med Flask og SQLAlchemy, med lærer- og studentkontoer, klasserom, oppgaver, vektede vurderinger, gjentatte forsøk, gjennomganger og resultatlister.

    • React
    • Express
    • MongoDB
    • Flask
    • SQLAlchemy

Selvstendige prosjekter

Systemer jeg initierte og bygget ende til ende, inkludert Covent-produkter som nå brukes i produksjon og private Go-prosjekter.

Idé til produksjon hos Covent

Covent MCP

Et Covent-system jeg foreslo og eide fra idé til produksjon. Go-tjenesten leverte 23 verktøy med lesetilgang, OAuth 2.0 og PKCE, leietakeravgrenset tilgang, rammer for kredittbruk, strukturert logging, tilstand i PostgreSQL, analyse og dokumentert utrulling til EC2.

  • Go
  • MCP
  • OAuth 2.0
  • PostgreSQL
  • AWS EC2
Idé til produksjon hos Covent

Covent Spotlight

En gjenbrukbar søkepakke i stil med Mac Spotlight som jeg utformet og tok fra idé til produksjon hos Covent. Den private arbeidsområdepakken setter sammen lokale kilder og kilder på tjenersiden, støtter paginering som kan avbrytes og tastaturnavigering, og bruker Fuse.js til fuzzy matching i Prospecting. Den brukes internt i dag, og en fremtidig npm-utgivelse er planlagt.

  • React
  • TypeScript
  • Fuse.js
  • Async APIs
  • AbortSignal
Idé til produksjon hos Covent

Covent Codex

Et selvoppdaterende Go CLI-verktøy som fordeler versjonerte Codex-instruksjoner, ferdigheter og arbeidsflyter mellom kodelagre uten å legge dem i produktkoden. Det bevarer personlig innhold i AGENTS.md gjennom administrerte blokker, oppdager lokale endringer med SHA-256-kontrollsummer, viser fargede linjeforskjeller før synkronisering, følger flere mål-kodelagre og leverer macOS-utgivelser med verifiserte kontrollsummer.

  • Go
  • CLI
  • SHA-256
  • GitHub Actions
Privat prosjekt

Daftar

Et privat karriereverktøy i Go som organiserer prosjekter, milepæler og yrkesopplysninger som typede data og servergjengitte kontrollpaneler.

  • Go
  • net/http
  • html/template
  • Typed JSON
Pågår

Khana

En privat ernæringsmåler som registrerer kalorier per uke, anslår gjennomsnittlig fettreduksjon ut fra TDEE og viser ordnede diagrammer, servergjengitte rapporter og logger. Under utvikling.

  • Go
  • net/http
  • html/template
  • JSON
  • go-chart
Pågår

Nethergate

Et Minecraft-oppstartsverktøy under utvikling som finner Mojang-utgivelser, strømmer nedlastingen av tjeneren, beregner SHA-1 og avviser filer med feil kontrollsum.

  • Go
  • HTTP streaming
  • SHA-1
  • Mojang API

Tidligere systemer og samarbeidsprosjekter

Produksjonssystemene, studieprosjektene og samarbeidsprosjektene som ga meg et grunnlag innen utvikling på tjenersiden, algoritmer, skrivebordsprogramvare og anvendt maskinlæring.

Jeg begynte å programmere da jeg var 11 år, med Turbo C og C. I 2017 brukte jeg Visual Basic til å bygge en kalkulator som anslo materialmengder og samlet byggekostnad ut fra husets mål og lokale materialpriser. Dette tidlige arbeidet utviklet seg til systemene nedenfor.

Produksjonsprosjekt

Truck Fleet Management

Bygget et flåtesporingssystem med rollebasert administrasjon av virksomheter og lastebiler, siste posisjon på kart og posisjonshistorikk. Den tilhørende artikkelen forklarer hvordan gjentatte kall til sporings-API-et ble flyttet til en planlagt NestJS-mikrotjeneste.

  • React
  • TypeScript
  • NestJS
  • MongoDB
  • Google Maps
Samarbeidsprosjekt

Dynamic Programmer

Medutviklet et Electron-program for skrivebordet som viser ti problemer innen dynamisk programmering med interaktive inndata og beregnede løsninger.

  • Electron
  • JavaScript
  • HTML
  • CSS
Studieprosjekt

Visualized Pathfinding GUI

Bygget et interaktivt visualiseringsverktøy for A* med Python og Pygame, brukerdefinerte hindringer, Manhattan-heuristikk og animert rekonstruksjon av ruten.

  • Python
  • Pygame
  • Tkinter
  • A*
Samarbeidsprosjekt

Sentiment Analysis

Medutviklet en Bi-LSTM-klassifikator for følelser i tekst, fordelt på seks kategorier, med rapportert nøyaktighet på 88,9 % for rundt 22 000 merkede kommentarer.

  • Python
  • TensorFlow
  • Keras
  • Bi-LSTM
  • GloVe