Marius Bugge Monsen

Grumpy, Old Software Engineer

Github Linkedin

About Me

I’m a software engineer with close to 20 years of professional experience. Having worked for Trolltech, Nokia and later co-founded a company, I have been able to work in both very large and very small organisations, contributing to products that were being used by millions of people.

One of the most important things this has taught me is to be aware of how software engineering and product development fits within the larger scope of the organisation and the problems we are solving for our users.

I enjoy diving into new technologies, codebases and domains. Running a small company has taught me that being outside your comfort-zone is how you learn and grow.

I believe that culture trumps strategy, and that a team of people that trust and support each other can conquer any problem.

Work Experience

No Isolation AS

Senior Software Engineer, Devices

2020 – Present

Developing the application layer and OS for Komp devices, primarily working in Go. Maintenance and development of No Isolation Yocto Linux.

  • End-to-end implementation of video-on-demand service (Golang, C)
  • Text-to-speech capabilities (Golang, Amazon Polly)
  • Porting of OS and application stack to new hardware (Golang, Yocto Linux)
  • Cloud build of device firmware images (Gitlab CI, Docker)

As the most senior member of the team, I coached and mentored the less experienced members, and continuously drove improvements to our engineering practices and product development processes.

Cutehacks AS

Co-founder, Senior Software Engineer

2010 – 2020

Started a small software consultancy company with a friend, focusing on helping startups with product development. Being only 5 people in the company, we had to do everything ourselves; including marketing, sales, accounting, managing employees and running customer projects.

Nokia

Senior Software Engineer, Team Lead

2008 – 2010

Developing the Qt C++ application framework, leading the Qt Widgets team (consisting of up to 14 developers) with the responsibility for developing and maintaining all Qt widgets.

As a team lead, I was responsible for managing and mentoring, as well as being part of the recruitment process of new developers.

I was also leading the Qt Declarative R&D project - a precursor to the Qml declarative UI language. The framework takes a very similar approach to React.

Trolltech ASA

Software Engineer, later Senior Software Engineer

2002 – 2008

Developing the Qt C++ application framework, being the main developer of the Qt ItemViews MVC framework. This included API design, architecture, implementation and ongoing maintenance and development.

Projects

qpm.io

Package manager and dependency tracker
for the Qt C++ framework

Aug. 2015 – Present

From our experience with other development platforms, we saw a need for a Qt package manager, so we built one. Qpm is in active use, with 150 packages and thousands of downloads so far this year.

  • Backend development (Golang, PostgreSQL)
  • Command-line client development (Golang)
  • Infrastructure / Ops (Docker, DockerHub, DigitalOcean, Google Cloud Storage, CloudFlare, ElephantSQL)
  • Static website (HTML/CSS)

VIBBIO AS

Video creation SaaS

Feb. 2020

I was brought in to help because of my experience with both Docker and C/C++.

  • Dockerised video composition pipeline

reMarkable

Digital notepad and e-reader

Feb. 2017 – Dec. 2019

I was brought in as the third developer to work on the device software and associated desktop and mobile clients. In addition I helped build the development team and put in place processes.

  • Embedded, mobile and desktop client development (Qt/Qml, C++/JS)
  • Data synchronisation protocol design, prototyping and implementation
  • Recruitment (technical interviews)
  • Setting up cross-functional, vertical teams consisting of product management, design, QA and software development
  • Designing and implementing development processes (“pragmatic agile”) from scratch
  • Took initiative and executed dockerisation of the embedded development tool-chain to streamline development and testing on the device (Docker, Google Container Registry, Google Cloud Build)
  • Writing unit-tests for both new and existing code (Google Test)
  • Introducing Behaviour Driven GUI Testing to support QA (Squish, Gherkin and Python)

Conclude

Workflow builder deeply integrated with Slack

Oct. 2014 – Jan. 2017

I was one of two developers brought in to be the technical team in a new startup. We helped prototype and build the product, going through the product discovery phase, including several changes and pivots. I built the mobile clients and the initial version of the web-app. I also took over the back-end development towards the end of the project.

  • Product discovery and development
  • Natural language parsing
  • Backend development (Golang, Google AppEngine, Google Storage)
  • Frontend development (React, Webpack, Babel, Npm, ES6)
  • Introduced Pirate-metrics to the product-team

Stay.com for Android and iOS

Social travel guides SaaS and mobile app

2012 – 2014

We were two developers brought in to develop the Android mobile app, and eventually I took over the development of the iOS app. We worked in a cross-functional team with product-manager, UX-designer and developers.

  • Android mobile app (Java)
  • iOS mobile app (ObjectiveC)
  • Releases to both app stores

Education

Skills

Programming Languages

  • C/C++ expert level
  • Golang proficient
  • JavaScript proficient
  • Java proficient
  • Python working knowledge
  • Gherkin (BDT) working knowledge
  • SQL basic knowledge

Technologies and Services

  • Qt/Qml
  • React
  • iOS
  • Android
  • Netlify
  • Digital Ocean
  • Heroku
  • Google AppEngine
  • AWS EC2 and S3
  • Docker
  • DockerHub
  • Google Container Registry
  • Google Cloud Build
  • Jenkins
  • CircleCI