Welcome to Aasmund Eldhuset's home page! Contained herein is a summary of my career as a programmer and general geek (so this is basically an online resume, not a blog of any kind).
(Velkommen til Åsmund Eldhuset sin hjemmeside!)
Quick facts
Nationality: | Norwegian — my name is spelled Åsmund Eldhuset in Norwegian, and it's pronounced more or less like "Osmon Eld-who-set" |
Occupation: | Computer programmer |
Residence: | Oslo, Norway |
Languages: | Norwegian (mother tongue), English (fluent), French (basic) |
Year of birth: | 1985 |
Resume: | Compact PDF resume (this web page is the extended version) |
Technologies
While I consider myself to be a generalist and a full-stack developer, I am biased towards back end and lower-level technologies. I have a solid algorithms background, I am very fascinated by language theory and compilers, and I am capable of studying decompiled assembly code and heap dumps in order to trace mysterious bugs or memory leaks.
I am a proponent of using whichever tool is the most well-suited for the task at hand, and I pick up new technologies and languages very quickly. Therefore, I do not believe myself or other people to be limited to whatever one's current skillset is. However, below is an executive summary of my current skills. I consider myself highly skilled in the items in italic, while my knowledge of the other items is more varied (and listed in descending order of skill level).
Programming languages: | Kotlin 1.8, Go 1.13, Java 8, C# 5, Python 2.7, C++, C, JavaScript, Matlab, Fortran, Lisp, various assembly languages |
Database engines: | MS SQL Server, PostgreSQL, FoundationDB |
Source control: | git, Mercurial, TFS, SVN |
Selected frameworks/APIs: | React, ASP.NET MVC 5, Entity Framework 6, jQuery, NUnit, JUnit, Moq |
Teaching and public speaking
I love to teach, and I am interested in taking teaching assignments and giving presentations — please contact me if you would like me to speak or teach somewhere.
I have been a Teaching Assistant in several university courses for nearly a decade, giving weekly repetition lectures. I have also, on occasion, given the main lectures. Below is a summary of my teaching experience.
- TDT4262 Prototyping Interactive Media: Lecturer (together with two others), 2014. Letter of recommendation.
- TDT4120 Algorithms and Data Structures: Substitute lecturer (first two thirds of semester), 2013; Teaching Assistant, 2005–2008. Letter of recommendation. One of my lecture series on YouTube (in Norwegian).
- TMA4140 Discrete Mathematics: Teaching Assistant, 2007–2014. Letter of recommendation (in Norwegian). One of my lectures on YouTube (in Norwegian).
- TDT4102 Procedural and Object-Oriented Programming (C++): Teaching Assistant, 2008–2009.
- TDT4130 Procedure-Oriented Programming (Fortran): Study Assistant, 2008.
While I lived in Trondheim, I would usually give unofficial repetition lectures in these and other subjects (including physics, calculus, and programming in Java, Python, and Matlab), typically attended by hundreds of students. I have also spoken at various meetups and been a mentor in children's programming classes.
Work experience
(References are available upon request.)
Cognite AS (Norway)
Duration: | January 2022–present |
Title: | Principal Software Engineer |
Cognite envisions an industrial world powered by data and algorithms. The Cognite Data Fusion platform provides digital twins of industrial assets and integrates them with documentation, maintenance records, and live and historical sensor data — thus giving realtime insight into the operation of the assets.
Our customers have billions upon billions of historical sensor data points, and are continuously ingesting new data points into millions of time series in realtime. I work on the time series system, which enables querying of both realtime data and terabytes of historical data with low latency across multiple customers while still providing high availability and strong consistency with the ingestion of the data points.
Khan Academy, Inc (USA)
Duration: | November 2016–November 2021 |
Title: | Staff Software Engineer (since January 2021; Senior SWE 2019–2020; SWE 2016–2018) |
Khan Academy aims to provide free education to everyone in the world. Anyone can use it to either supplement their ongoing education, or to learn something new in their spare time — or even use it in place of no access to education at all. Teachers can use it either as a supplement to a traditional classroom structure (it includes homework functionality, skill tracking, and other teacher tools), or to "invert the classroom" by replacing the traditional teacher's lectures with self-paced learning via the website and letting the teacher act as a mentor/coach when students are stuck on tasks. We are also an official provider of free training for the SAT and other standardized tests.
I am currently the Tech Lead of the Content Platform team. We are making the internal tools that Khan Academy's educators use to create, curate, and translate our content. The development languages are Python, Kotlin, and JavaScript, and the site is deployed on Google App Engine.
Medallia, Inc (USA)
Duration: | October 2014–November 2016 |
Title: | Senior Software Engineer |
Medallia aims to help other companies being loved by their customers. We provide a software system for Operational Customer Experience Management, which aggregates and analyzes customer satisfaction data in real time to provide clients with insights as to what their customers think about them and how they need to improve.
I was a member of the Cloud Fabric team, which was creating Medallia's next generation architecture and infrastructure, using technologies such as Aurora, Mesos, ZooKeeper, Kafka, and Docker. I was primarily developing a deployer that runs on top of Aurora, and I also made modifications to Docker in order to support the distributed filesystem Ceph.
Prior to that, I was a member of the External Services team, which owned the integration functionality of the Medallia system. I primarily worked with our configurable data import component, performing bugfixes, performance bottleneck analysis, and developing some new features. This also involved the operational aspect of being on call 24/7 every sixth week.
In both teams, the programming language was Java 8, and the database engine was PostgreSQL 9.4.
Bekk Consulting AS (Norway)
Duration: | August 2009–September 2014 |
Title: | Senior Consultant (since January 2012; previously Consultant) |
Bekk is a Norwegian consulting company that performs software development, service design, and strategic advisory for companies and organizations in both the private and public sector. I have participated in a multitude of projects, doing full-stack web development with a focus on backend systems, primarily with C# and MS SQL Server.
Projects for Bekk (click to show)(click to hide)
Due to confidentiality agreements, the actual client names are replaced by generic terms, and the project descriptions are intentionally vague in order to avoid identification of the client. All clients are Norwegian unless otherwise indicated. Most of the listed projects have been performed in teams of sizes between 2 and 6 developers.
Client: | Government directorate |
Project: | Developing a web application where the directorate can import documents that are to be sent to public hearing. The public may then submit their opinion on the hearing documents, and the directorate may subsequently view the responses and make statics and reports on them. |
Technologies: | C# 4.0, ASP.NET MVC 5, Entity Framework 6, JavaScript, jQuery |
Duration: | February 2014–September 2014 |
Client: | Automation engineering company |
Project: | Developing a web-based control panel for an industrial automation system. The back end interprets configuration files that describe floor plans and schematics of industrial plants or buildings. The front end shows graphical representations of these together with real-time values from various sensors, and also allows the user to control the system. The application communicates with a third-party system that interacts with the hardware components. The application also executes scripts that are defined in a custom programming language. |
Technologies: | C# 4.0, Silverlight 5, NUnit, MSTest, AgUnit, SQL Server 2008, git |
Duration: | September 2012–January 2014 |
Client: | Government directorate |
Project: | A web application where anyone may alert the government about criticizable conditions at their own or others' workplace, and where the Directorate can process the complaints internally. |
Technologies: | ASP.NET MVC 3, C# 4, SQL Server 2008, NHibernate, StructureMap, ePhorte, NUnit, WatiN, Moq |
Duration: | June 2012–November 2012 |
Client: | Financial services company |
Project: | Developing the back end of a system for credit accounts for payment of utility bills. The back end integrates with a CMS, a credit rating agency, a rule engine, and a data warehouse; it also processes and generates files that describe banking transactions. |
Technologies: | C# 4, Windows Communication Foundation, MSTest, ASP.NET MVC 3, InRule, Oracle, BizTalk |
Duration: | October 2011–June 2012 |
Client: | Insurance company |
Project: | Developing a mobile-adapted HTML5 front end (atop an existing back end) for submitting simplified insurance claims. |
Technologies: | JavaScript, jQuery, HTML 5, CSS, FuncUnit, git |
Duration: | August 2011–November 2011 |
Client: | Postal service |
Project: | Mobile app for tracking packages. |
Technologies: | Windows Phone 7 |
Duration: | August 2011–September 2011 |
Client: | Automation engineering company (same as above) |
Project: | Developing Silverlight components for the control panel application of an industrial automation system. |
Technologies: | C# 4.0, Silverlight |
Duration: | July 2011–September 2011 |
Client: | Health services provider |
Project: | Developing two web services for the national health network: One that will distribute personal information from the Norwegian Register of Residence to authorized health institutions, and one that will generate and track temporary identification numbers for patients that cannot be immediately identified. |
Technologies: | C# 4.0, WCF, NServiceBus, CQRS, SQL Server 2008, Mindscape LightSpeed, NUnit, Visual Studio 2010, ReSharper, Health Level 7, Git, TeamCity |
Duration: | October 2010–July 2011 |
Client: | Government directorate |
Project: | Developing a web application for managing applications for government subsidies, allocating the subsidies, and follow-up and reporting about the payments. The system integrates with several internal and national systems, and handles the payment of 4.7 billion NOK. |
Technologies: | ASP.NET MVC 2, C# 4.0, jQuery, JavaScript, NUnit, Cucumber, Entity Framework 4, MS SQL Server 2008, SpecFlow, Git, TeamCity |
Duration: | February 2010–October 2010 |
Client: | Government directorate |
Project: | Maintaining a web application where the public may find information on wait times and patient satisfaction for various medical treatments. |
Technologies: | C# 4.0, ASP.NET, MS SQL Server, jQuery, Windows Communication Foundation |
Duration: | January 2010–February 2010 |
Client: | (Internal BEKK project) |
Project: | Developing a web application for managing the job application process. |
Technologies: | Ruby on Rails, jQuery |
Duration: | November 2009–December 2009 |
Client: | International engineering company |
Project: | Developing an internal social portal that integrates information about employees from various sources. |
Technologies: | C#, SharePoint 2007, MS SQL Server 2008, JavaScript, AD Lightweight Directory Services |
Duration: | September 2009–November 2009 |
Internships (click to show)(click to hide)
Company: | Medallia Nordic (Oslo, Norway) |
Project: | Developing a system for visualization of statistical data. |
Technologies: | Java, Adobe Flex |
Duration: | Summer of 2008 |
Company: | Microsoft (Redmond, Washington, USA) |
Project: | Developing GUI components for an educational software package. |
Technologies: | C#, Windows Presentation Foundation |
Duration: | Summer of 2007 |
Company: | Fast Search & Transfer (Oslo, Norway) |
Project: | FAST (now a Microsoft subsidiary) used to develop a search engine that companies could use to index and search their company-internal documents. During my internship, I developed a monitoring component for the search engine. |
Technologies: | Java |
Duration: | Summer of 2006 |
Company: | Skogforsk (Ås, Norway) |
Project: | Skogforsk is a Norwegian institute for forest research (it was integrated into the Norwegian Institute for Bioeconomic Research in 2015). I interned at the systems administration; my responsibilities included computer maintainance and some user support. I also wrote a small application for collecting user feedback. |
Technologies: | Windows XP, Visual Basic |
Duration: | Summers of 2002–2004 |
Education
Degree: | Master of Technology in Computer Science (Sivilingeniør i datateknikk) |
Specialization: | Complex computer systems (Komplekse datasystemer) |
University: | Norwegian University of Science and Technology (Norsk Teknisk-Naturvitenskapelige Universitet / NTNU) |
Duration: | August 2004–July 2009 |
Thesis: | "Linear programming on the Cell/BE" (ECTS grade: A) |
Grade average: | 4.3 (ECTS scale: A = 5, E = 1) |
Awards: | - Norwegian IT Student of the Year (Universum Awards), 2008 - I delivered my class' graduation speech in 2009 |
Transcript of records is available on request.
Organizations and volunteer work
I am an active participant on StackOverflow (as of November 29, 2018, I was ranked #3717 out of more than nine million members):
I have made some minor contributions to open-source software, as can be seen on my GitHub profile.
When it comes to more traditional volunteering, I am or have been involved with the following organizations (click to show)(click to hide):
Organization: | UKA |
Description: | UKA ("The WEEK") is Norway's largest culture festival. It is organized every second year by around 1500 volunteer students in Trondheim. I am a part of the Lysreklamen group, which creates a huge billboard with the festival's name (which changes every year) that is mounted atop the main entrance of the Student Society. This involves both programming (my primary responsibility), electronics, and carpentry. |
Duration: | 2011–2015 |
Organization: | Norwegian Olympiad in Informatics (Norsk informatikkolympiade / NIO) |
Description: | NIO is a national programming contest for high school students, where the winners qualify for the International Olympiad in Informatics. I competed myself in high school (best result: bronze medal (116. place out of 265 contestants) in the IOI in 2003; I was also the first Norwegian to ever achieve a perfect score on a task), and subsequently joined the staff. I have at various times been (co)responsible for task writing, grading, accounting, writing and configuring contest software, and physically organizing the on-site finals. |
Duration: | 2004–present |
Organization: | Academic Radio Club (Akademisk Radioklubb / ARK) |
Description: | ARK is a club for HAM radio operators, hobbyist electronics enthusiasts, and geeks in general. I have a Norwegian HAM radio license; my call sign is LA9BRA. |
Duration: | 2008–present |
Organization: | Abakus |
Description: | Abakus is the student union for the Computer Science and Communication Technology programmes at NTNU. I worked in the Web Committee (webkom), which developed the union's web page. Technologies: Java, Hibernate, PostgreSQL, Spring. |
Duration: | 2005–2009 |
Organization: | CyberCamp |
Description: | CyberCamp was a computer summer camp for high school students. I participated myself in 2003 and 2004, and joined the organizers afterwards. I've been (co)responsible for both planning and executing the camp, and I've been the group leader for the algorithms group. |
Duration: | 2005–2009 |
Organization: | Norwegian Guide and Scout Association (Norges Speiderforbund / NSF) |
Description: | During my time as a Scout, I got an early exposure to outdoor life and leadership. |
Duration: | 1996–2009 |
Personal interests
- Classical music — I play the piano (at a hobbyist level), and am especially fond of Chopin
- Dancing — I know Norwegian folk swing and some Lindy Hop and Boogie Woogie
- Literature
- Hiking
Contact and recruiting
My email address can be obtained by concatenating my first and last name with a dot in-between, and appending @gmail.com (sorry for the inconvenience, but plaintext email addresses on the internet are bound to get harvested by spammers — so please do not put my email address anywhere on the public internet). (I am @AasmundEldhuset on Twitter, but I'm hardly ever using it.)
I try to limit my social network connections to people I actually know. Please add me on Facebook only if you know me in person and would consider me a friend in real life. If you are a student at NTNU and are interested in my lectures (which are unfortunately rather infrequent now that I no longer live in Norway), you are welcome to follow or message my Facebook page. Please add me on LinkedIn only if you know me in person or if there is a business reason other than recruiting that we should connect. If you have a job proposition, feel free to send me a LinkedIn message or an email, but please refrain from adding me as a contact — and please explain why you think I will find the job in question more motivating than providing free education to the world at Khan Academy.