
Erlend Hamberg
Verified Expert in Engineering
Software Developer
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.
Portfolio
Experience
Availability
Preferred Environment
Git, Vim Text Editor, Unix
The most amazing...
...piece of software I've built is a distributed chat server with probabilistic synchronization of state between nodes.
Work Experience
Software Engineer
Soundrop
- Worked on the back-end of the music marketing web app, show.co, 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.
Software Engineer
Telenor Comoyo
- 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.
R&D Intern
Galois Inc.
- Worked on the Ivory language (http://ivorylang.org).
- 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.
Engineer
ARM
- 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.
Experience
Talk: What's wrong with Java's type system?
iOS/Apple Watch app: How Much?
http://gethowmuch.comAll parts are written in Swift except for the reverse geocoder that is written in C.
9m Unicode URL shortener
http://9m.noSimpleEA
http://hackage.haskell.org/package/SimpleEATalk: Probabilistic Synchronization of States Between Independent Nodes
https://www.youtube.com/watch?v=imjdhT6DqSsSkills
Languages
C, Haskell, Elm, C++, Swift, Erlang, ML Programming Language, Embedded C, Erlang (OTP), Domain-specific Languages (DSLs), F#, Python, Java, Idris, OCaml
Tools
Vim Text Editor, Git, GCC, LaTeX, Ansible
Platforms
Linux, MacOS, iOS, Unix
Other
Embedded Software, Embedded Systems, Formal Methods
Paradigms
Functional Programming
Storage
PostgreSQL
Frameworks
Yesod
Libraries/APIs
React
Education
Master of Science Degree in Computer Science
NTNU - Trondheim, Norway