Erlend Hamberg

Erlend Hamberg

Oslo, Norway
Hire Erlend
Scroll To View More
Erlend Hamberg

Erlend Hamberg

Oslo, Norway
Member since May 11, 2015
Erlend has a large range of experience in software development, having worked on projects from kernel driver development to web apps. He is most proficient on the back-end side of things and knows how important the behind-the-scenes foundation is for a good product. He has industry experience with C, C++, Haskell, and Erlang and is not at all afraid of learning new technologies or languages that may be well-suited for a problem domain.
Erlend is now available for hire
  • Haskell, 7 years
  • Erlang, 2 years
  • Swift, 1 year
Oslo, Norway
Preferred Environment
Unix, Vim, git, a REPL and QuickCheck test suite.
The most amazing...
...piece of software I've built is a distributed chat server with probabilistic synchronization of states between nodes.
  • Software Engineer
    2014 - PRESENT
    • Worked on the back-end of the music marketing web app,, whose campaigns are seen by hundreds of thousands of end users.
    • Implemented a payment and subscriptions system using Braintree as the service provider.
    • Wrote microservices in Erlang and Haskell using REST and WebSocket RPC for inter-service communication.
    • Co-wrote an efficient, scalable chat system whose synchronization algorithm was presented at the Commercial Users of Functional Programming conference (CUPF) in 2014.
    • Integrated logging and error reporting to our systems using services such as Rollbar.
    Technologies: Erlang, Haskell, PostgreSQL
  • Software Engineer
    Telenor Comoyo
    2013 - 2014
    • Worked on moving payment in-house as a PCI-DSS compliant service provider.
    • Maintained and improved the payment and subscriptions system.
    • Led a team of interns in creating a proof-of-concept mobile banking app for the Malaysian market.
    Technologies: Java, Python
  • R&D Intern
    Galois Inc.
    2013 - 2013
    • Worked on the Ivory language (
    • Helped develop features for a Haskell EDSL for building high-assurance, embedded software for microcontrollers.
    • Developed a run-time verification library for ensuring that a given set of temporal logic invariants held.
    • Wrote a GCC compiler plugin that allowed variables in C code to be instrumented and monitored at run-time.
    Technologies: Haskell, DSLs, Formal methods, GCC
  • Engineer
    2011 - 2013
    • Developed Linux drivers for the Mali-400 series GPUs.
    • Worked with customers such as Samsung to resolve issues with new and existing hardware products.
    • Added support for new kernel features as they were adopted by Android and Tizen.
    • Did QA work in preparation of releases of our drivers to customers.
    • Worked on confirming and analyzing bug reports from QA testing from customers and reports from customers' end users.
    Technologies: Linux, C
  • Talk: What's wrong with Java's type system? (Other amazing things)

    Talk given at JavaZone 2015 about type system features: What are the actual shortcomings of Java's type system, and how does it compare to languages with more advanced type systems such as Scala, F#, OCaml and Haskell? How can these languages get type safety – often without having to use any type declarations at all?

  • iOS/Apple Watch app: How Much? (Development)

    Smart currency converter for iPhone and Apple Watch that knows which country you are in without requiring a data connection by doing reverse geocoding on an embedded encoding of world borders.

    All parts are written in Swift except for the reverse geocoder that is written in C.

  • 9m Unicode URL shortener (Development)

    URL shortener web-app utilizing the full unicode spectrum of characters to create short links. Back-end written in Haskell using Scotty for the HTTP layer and Persistent for storage.

  • SimpleEA (Development)

    Haskell library for creating evolutionary algorithms, e.g. for optimization or search problems. Has comprehensive documentation including a tutorial.

  • Talk: Probabilistic Synchronization of States Between Independent Nodes (Other amazing things)

    Talk given at CUFP 2014 about weak, eventual consistency: In a distributed system with nodes that receive broadcast events and that each have an up-to-date history, a problem arises when a node is restarted: Did it lose any events while it was down? If so, we need to get this history from another node that hopefully is synchronized in order to reply to future requests with the correct history.

  • Languages
    Haskell, C, Swift, Erlang (OTP), C++, Embedded C, ML, Erlang, Python, OCaml, Java, Idris, F#
  • Tools
    Git, Vim, Ansible, LaTeX
  • Platforms
    Linux, Mac OS X, iOS, Embedded
  • Paradigms
    Functional programming
  • Storage
  • Misc
    Embedded systems
  • Frameworks
  • Libraries/APIs
  • Master of Science degree in Computer Science
    NTNU - Trondheim, Norway
    2006 - 2011
I really like this profile
Share it with others