Profil
Richard är en av världens mest erfarna Erlangutvecklare. Han har programmerat Erlang sedan 1994 som mastersstudent, som doktorand i High Performance Erlang- forskningsgruppen vid Uppsala universitet, och som senior utvecklare på Klarna som en av de tidigast anställda utvecklarna.
Richard har bidragit till många delar av Erlangs standardbibliotek, kompilator, runtimesystem, och till språket i sig, och han är medförfattare till boken ” Erlang and OTP in Action”. Han har skrivit flera kända open source-verktyg, framför allt testramverket EUnit och dokumentationsverktyget EDoc som används av de flesta Erlangprogrammerare.
Han var en av de tidigaste programmerarna på Klarna, och arbetade där under 11 år, framför allt med att hantera tillväxten från ett tiotal utvecklare till över hundra, och hundra gånger mer kod, samtidigt som systemet höll tillgänglighet dygnet runt och uppdaterades dagligen.
Richard har presenterat sitt arbete på många akademiska konferenser och workshops samt fått utmärkelse som ”Erlang User of the Year” som del av HiPE- forskningsgruppen. Han har undervisat på Uppsala universitetet inom distribuerad programmering och kompilatorteknik.
Han hade en viktig roll i utvecklingen av Simics DML (Device Modelling Language), numera Wind River Simics DML. Han har även arbetat med C-kompilatorer för både ARM och RFID-chip, skrivit flyttalsbibliotek i assembler, och har lång erfarenhet av assemblerprogrammering för 8- och 16-bitars microprocessorer.
Specialiserad inom
- Kompilatorer
- Domänspecifika Språk
- Virtuella Maskiner
- Parsers
- Tillståndsmaskiner
- Statisk Analys
- Refaktorering
- Modernisering av Legacykod
- Versionskontroll
- Byggsystem
Exempelprojekt
December 2022 - April 2023
Molninfrastruktur, Happi Hacking AB
Byggde om HappiHackings företagsmolnlösning med Infrastructure as Code.
Verktyg: AWS, Docker, Terraform, Ansible, bash, Make, git
May – December 2021
Frontendutvecklare/Webdesigner, Happi Hacking AB
Byggde om HappiHackings företagssajt från grunden med moderna tekniker for webutveckling och design.
Verktyg: Eleventy, Nunjucks, JavaScript, CSS/SASS, SVG, HTML
March – April 2021
Javautvecklare, Stor tysk Telekom-operatör
Utvecklade en prototyp av en OAuth-manager för att ansluta tredjepartstjänster till social plattform. Detta ingick i ett större pågående projekt som kunden driver för att utveckla tjänster för styrning av hemmet för sina slutanvändare.
Verktyg: Java, Spring Boot, OAuth
2020 - 2021
Rådgivare och kompilatorutvecklare, WhatsApp
Prototyputveckling av en strikt typad dialekt av Erlang.
Verktyg: Erlang, Scala
Tidigare engagemang
2019 - 2022
Grundande Medlem, Erlang Ecosystem Foundation
2013 - 2019
Grundande Medlem, Erlang Industrial User Group
2008 – 2019
Senior utvecklare och arkitekt, Klarna AB
- Utvecklade ett domänspecifikt språk som var grunden i kreditbedömningssystemet.
- Skapade ett system av hierarkiska tillståndsmaskiner för att specificera tidsbaserade händelser på fakturor.
- Utvecklade ett system för heuristisk matchning av addresser.
- Omstrukturerade systemet för att göra det möjligt för många teams att arbeta med koden samtidigt.
- Gjorde om byggsystemet för snabbare och parallelliserade byggen.
- Ledde övergången till paketbaserad kod-deployment.
- Drev adoptionen av LevelDB som databasbakända.
- Förbättrade Erlangs kodladdning.
- Hanterade övergången från Subversion till Git.
- Hanterade frågor om öppen källkod.
- Kontaktperson för Erlang Community.
- Företagsrepresentant i Erlang Industrial User Group och grundande medlem av Erlang Ecosystem Foundation.
Verktyg: Erlang, Git, Make, Bash, C, LevelDB, Svn
2006 – 2008
Kompilatorutvecklare, IAR Systems
- Arbetade med kodgenerering och flyttalsbibliotek för RFID-chip.
- Ledde övergången till moderna arbetssätt för versionshantering och issue tracking, verktyg för utvecklare, och automatiserade byggen och backuper.
Verktyg: C, C++, Ruby, Visual Studio, Subversion, Jira, CMake
2004 - 2005
Utvecklare, Virtutech
Vidareutveckling och produktifiering av Simics DML (Device Modeling Language), en domänspecifik utökning av C för modellering av hårdvarukomponenter. Virtutech köptes senare upp av WindRiver/Intel.
Verktyg: Python, C
1998 - 2004
Doktorand, Uppsala Universitet
- Partialevaluering och inlining av Erlang-program.
- Abstraktion av syntaxträd och transformationer på källkodsnivå.
- Design och specifikation av Core Erlang.
- Dataflödesanalys, kontrollflödesanalys, och typanalys på Core Erlang.
- Undervisning i distribuerad programmering, kompilatorteknik, och objektorienterad programmering i Java.
Verktyg: Erlang, C, Perl, LaTeX
Öppen källkod
- EUnit, ett unit-testing framework för Erlang.
- EDoc, ett Javadoc-liknande dokumentationssystem för Erlang.
- Syntax Tools, abstraktionslager för metaprogrammering med Erlang-syntaxträd.
- Speccylator (1993-1997), en Z80/ZX Spectrum-emulator skriven för Amiga/MC680x0.
Presentationer
- The art of the live upgrade - 10 yrs of evolving a live system, Code BEAM SF 2019
- Secrets of the Erlang Beam compiler, Erlang & Elixir Factory SF 2017
- Erlang Metaprogramming Made Easy, Erlang Factory SF Bay Area 2012
Publikationer
- Erlang and OTP in Action
- (Logan, Merritt, Carlsson)
- Erlang's Exception Handling Revisited
- (Carlsson, Gustavsson, Nyblom) ACM Erlang Workshop '04, Snowbird, Utah, Sep. 2004.
- Message Analysis for Concurrent Programs Using Message Passing
- (Carlsson, Sagonas, Wilhelmsson) ACM Transactions on Programming Languages and Systems, Volume 28, Issue 4, pp 715–746. (Extended version of the SAS'03 paper.)
- Message Analysis for Concurrent Languages
- (Carlsson, Sagonas, Wilhelmsson) In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694.
- Parameterized Modules in Erlang
- (Carlsson) ACM Erlang Workshop '03, Uppsala, Sweden, Aug. 2003.
- Hierarchical Module Namespaces in Erlang
- (Carlsson) ACM Erlang Workshop '02, Pittsburgh, USA, Oct. 2002.
- An Introduction to Core Erlang
- (Carlsson) PLI'01 Erlang Workshop, Firenze, Italy, Sep. 2001.
- Core Erlang 1.0.3 Language Specification
- Extending Erlang with structured module packages
- (Carlsson) Technical Report no. 2000-001 from the Department of Information Technology, Uppsala University, Jan. 2000.
- Towards a Deadlock Analysis for Erlang Programs
- (Carlsson) Uppsala Master's Theses in Computing Science 108, Apr. 1997.
Utbildning (urval)
1998 – 2004
Doktorand i datavetenskap, Uppsala Universitet
1990 – 1997
Magisterexamen, Matematisk-Naturvetenskaplig linje, Uppsala Universitet