Kod · vetenskap · kommunikation

Ingenjör som tänker djupt, agerar snabbt och springer långt

Jag heter Erik Bergman, bor i Lund och är civilingenjör i bioteknik. På den här sajten samlar jag mina erfarenheter, skapelser och tankar.

Porträtt av Erik Bergman
På webbplatsen

Välj en sida

Här finns mitt CV och några sidor om språk, löpning, texter och hobbyprojekt.

01 · OM MIG

Jag

Om min bakgrund och vad jag arbetar med.

02 · CV

CV

Yrkeserfarenhet, kompetens och utbildning.

03 · TEXTER & MUSIK

Kreativt

Texter, musik, scen och mindre projekt.

04 · INTRESSEN

Intressen

Löpning, kartor, historia och äldre teknik.

05 · SPRÅK

Språk

Språk jag använder, studerar och bygger verktyg för.

06 · KONTAKT

Kontakt

E-post och ämnen jag gärna diskuterar.

Programmeringsprojekt

Några av mina GitHub-projekt

Här är ett urval av mina personliga programmeringsprojekt. Klicka på ett projekt för att läsa om problemet och lösningen. Fler projekt finns under Intressen eller Språk.

01 · GitHubVilka svenska tätorter är backigast?Problem & lösning
Problemet

Under en lunchrast påstod någon att Lund var ”Sveriges backigaste stad”. Detta tyckte jag lät som en möjlighet men ville ha ett sätt att bevisa det.

Lösningen

Jag samlade in rasterdata från Lantmäteriet samt koordinater för tätorternas yttre gränser, och skapade ett poängsystem som förhåller hur mycket backar en stad har till hur stor den är. Svaret blev att bland städer med fler än 50 000 invånare är det Jönköping som tar hem priset som Sveriges backigaste stad.

GitHub ↗

02 · GitHubYouTube Translation PlaybackProblem & lösning
Problemet

Jag ville få ut mer av den tid jag la på att lyssna på Youtube och undrade om jag kunde kombinera det med min språkinlärning.

Lösningen

Nu för tiden har många videor på Youtube finessen att videor kan dubbas med syntetiska röster. Jag skapade ett Firefoxtillägg som i Youtubevideor hoppar fram och tillbaka mellan två valda språk, så att jag kunde lyssna på varje replik först på engelska och sedan på polska. Jag har använt appen många timmar.

GitHub ↗

03 · GitHubBildspel från Magiska MålarlådanProblem & lösning
Problemet

Jag fick av min farmor en gammal iMac G3 (en sån där blå bubbla) innehållande en rad bildspel som jag och mina kusiner skapade i datorspelet Disneys Magiska Målarlåda från 1996. Jag funderade på om det fanns ett sätt att lätt arkivera dessa gamla bildspel.

Lösningen

Jag kartlade det odokumenterade binärformatet och byggde en deterministisk konverterare som läser bildordning, visningstid, övergångar och musikval direkt ur originalfilerna. Programmet återskapar de lagrade bilderna, hämtar ljudet ur spelets arkiv och exporterar varje bildspel som en modern MP4-fil med H.264-video och AAC-ljud. På så sätt kan 81 gamla bildspel arkiveras och spelas upp på vanliga enheter.

GitHub ↗

04 · GitHubPolish Vocabulary ExtractorProblem & lösning
Problemet

Jag behövde ett sätt att öva upp mitt ämnesspecifika ordförråd i polska för att bättre förstå särskilda texter.

Lösningen

Jag skapade ett program som indexerar alla ord i en text, omvandlar dem till grundformen (t ex skulle svenska ”dagar” bli ”dag” och ”springer” bli ”springa”) och räknar sedan ut hur vanligt varje enskilt ord i denna text är i förhållande till genomsnittstexten.

GitHub ↗

05 · GitHubJobbmatchning med språkmodellProblem & lösning
Problemet

Jag var inte nöjd med Linkedins inbyggda tjänst för att notifiera mig om jobbannonser.

Lösningen

Jag skapade ett program som samlade in Linkedin-annonser. Därefter gjordes en sållning i tre lager:
1) Ett simpelt regexmönster som inkluderade och exkluderade annonser enligt en whitelist och en blacklist.
2) En grovsorterande LLM-agent via OpenAI:s API.
3) En finsorterande LLM-agent, också via OpenAI:s API.
De resulterande annonserna skickas via Github Actions och Telegramtjänsten Botfather till min telefon. Nu får jag två gånger om dagen en notifikation om hur många linkedinannonser som passar mig, varje med en LLM-genererad motivering.

GitHub ↗

06 · GitHubLanguage Identification QuizProblem & lösning
Problemet

Jag var på jakt efter ett sätt att öva min förmåga att skilja språk ifrån varann bara genom att lyssna på dem, men inget jag hittade online uppfyllde mina krav.

Lösningen

Jag skapade ett webbaserat lyssningsquiz i SvelteKit med talprov från FLEURS. Ljudklippen kvalitetssäkras, nivåutjämnas och cachelagras innan de spelas upp. Efter varje svar får användaren direkt återkoppling, medan försök och rapporter om dåliga klipp sparas i SQLite. Appen visar både total träffsäkerhet och resultat per språk och har en reproducerbar pipeline för att välja talare och bygga ut språkbanken.

GitHub ↗

07 · GitHubHur stor andel av alla människor är döda?Problem & lösning
Problemet

Det slog mig att vi som lever runt år 2026 är precis i slutet av mänsklighetens första befolkningsexplosion, vilket borde betyda att förhållandevis få människor är döda jämfört med hur många som lever. Men hur ska man bevisa eller motbevisa detta?

Lösningen

Jag samlade in olika uppskattningar av människans befolkningshistoria och konstruerade sedan olika framtidsscenarion. Exempelvis ytterligare en befolkningsexplosion, gradvis avtrappning eller en global naturkatastrof. Alla dessa passade jag till matematiska funktioner och lät sedan jämföra integralen av antalet människor som har levt med antalet som lever ett visst årtal, och lät visualisera dem i en simpel webbapp.

GitHub ↗

08 · GitHubOrden som försvannProblem & lösning
Problemet

Vid nyutgåvan av Svenska Akademiens Ordlista (SAOL) 2026 var jag nyfiken på vilka ord som hade tagits bort ur ordlistan sedan förra utgåvan.

Lösningen

Jag laddade ner data från alla utgåvor av SAOL och skapade ett program som letade upp vilka ord som hade tagits bort för var och en. Därefter jämförde jag dessa ord i pythonpaketet `wordfreq` för att se vilka av orden som försvann trots att de var i bruk.

GitHub ↗

Under arbete

Min sajt finns på ett språk!

Undersidorna finns än så länge på svenska. Engelska versioner läggs till senare.

Kontakta mig →

Erik Bergman · Lund · 2026
Code · science · communication

Backend developer with a background in biotechnology.

My name is Erik Bergman, and I primarily work with backend development in Python. This is where I collect my CV, language projects, running, writing, and other things I have built.

Portrait of Erik Bergman
On this website

Choose a page

Explore my CV and pages about languages, running, writing, and personal projects.

01 · ABOUT ME

About

My background and the work I do.

02 · CV

CV

Professional experience, skills, and education.

03 · WRITING & MUSIC

Creative

Writing, music, stage work, and smaller projects.

04 · INTERESTS

Interests

Running, maps, history, and older technology.

05 · LANGUAGES

Languages

Languages I use, study, and build tools for.

06 · CONTACT

Contact

Email and subjects I am always happy to discuss.

Programming projects

A selection from GitHub

Here is a selection of my personal programming projects. Click a project to read about the problem and solution. More projects are listed under Interests or Languages.

01 · GitHubWhich Swedish towns are the hilliest?Problem & solution
The problem

A claim that Lund was Sweden’s hilliest city needed a measurable comparison.

The solution

Combine elevation data and urban boundaries, then compare a hilliness score across Swedish towns.

GitHub ↗

02 · GitHubYouTube Translation PlaybackProblem & solution
The problem

I wanted to combine time spent listening to YouTube with language learning.

The solution

A Firefox extension plays each subtitled segment in two selected audio languages.

GitHub ↗

03 · GitHubMagic Artist SlideshowsProblem & solution
The problem

Old family slideshows were stored in an undocumented format from Disney’s Magic Artist.

The solution

Decode the original images, transitions and music, and export the slideshows as modern MP4 videos.

GitHub ↗

04 · GitHubPolish Vocabulary ExtractorProblem & solution
The problem

I needed to practise Polish vocabulary specific to the texts I wanted to read.

The solution

Extract words, reduce them to their dictionary forms and rank their frequency against general language use.

GitHub ↗

05 · GitHubJob matching with a language modelProblem & solution
The problem

LinkedIn’s job alerts did not match what I was looking for.

The solution

Collect public job listings and filter them locally, then use language models to assess the most promising matches.

GitHub ↗

06 · GitHubLanguage Identification QuizProblem & solution
The problem

I could not find a listening quiz that met my requirements for distinguishing languages.

The solution

Build a quiz with checked, volume-normalised speech samples, immediate feedback and results by language.

GitHub ↗

07 · GitHubWhat percentage of all humans are dead?Problem & solution
The problem

Has the recent population boom changed the proportion of all humans who are dead?

The solution

Compare estimates of population history and future scenarios in an interactive simulation.

GitHub ↗

08 · GitHubThe words that disappearedProblem & solution
The problem

I wanted to know which words disappeared between editions of the Swedish Academy’s word list.

The solution

Compare editions and check removed words against frequency data to see which were still in use.

GitHub ↗

In progress

The translation is growing.

The linked subpages are currently available in Swedish. English versions will be added later.

Contact me →

Erik Bergman · Lund · 2026