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