My name is Olaf and I am a software engineer working at Sourcegraph living in
Oslo, Norway. I've authored numerous dev tools related to compilers, build tools
and IDEs for various programming languages. My email is [email protected].
I'm @olafurpg on GitHub and
Twitter.
Projects:
- scalafmt: code formatter
 - scalafix: refactoring and linting tool
 - scalameta: library to analyze source code
 - metals: language server with rich IDE features
 - metabrowse: online code browser with IDE features
 - mdoc: markdown tool for typechecked documentation
 - munit: testing library
 - metaconfig: configuration library
 - sbt-ci-release: plugin to automate releases for open source projects
 - sbt-native-image: plugin to generate GraalVM native-image binaries.
 - build-server-protocol: protocol for IDEs and build tools
 - scip-typescript: code navigation indexer for TypeScript and JavaScript
 - scip-java: code navigation indexer for Java, Scala, and Kotlin
 - scip-dotnet: code navigation indexer for C# and Visual Basic
 - scip: language-agnostic code indexing format
 - cody: AI coding assistant
 - amp: AI coding assistant
 
Downloads:
As of April 2023, projects that I've worked on get ~18m downloads per month from ~300k unique IP addresses.

Posts:
- Aug 2025. Prixeo: a Norwegian Tax Calculator
 - Nov 2024. Base model Mac Mini M4 is a great coding machine
 - Jun 2022. Announcing scip-typescript, a new TypeScript and JavaScript indexer
 - Jun 2022. Announcing SCIP, a better code indexing format than LSIF
 - Dec 2021. Precise Code Intelligence for Java, Scala, and Kotlin
 - Jan 2021. Building precise universal code search at Sourcegraph
 - Dec 2020. Becoming a software consultant in Oslo, Norway
 - Mar 2020. Dos and don'ts in open source
 - Feb 2020. MUnit is a new Scala testing library
 - Dec 2019. Scala tooling in 2019
 - Mar 2019. Joining Twitter
 - Jan 2019. Low-memory symbol indexing with bloom filters
 - Dec 2018. Fast typechecked markdown documentation with clear error messages
 - Dec 2018. Fast goto definition with low memory footprint
 - Nov 2018. Build code analyzers with Scalameta and Scalafix
 - Mar 2018. Features I want in an IDE
 - Nov 2017. What's happening with macros?
 - Oct 2017. Roadmap towards non-experimental macros
 - Sep 2017. Catch bugs with Scalafix v0.5
 - Feb 2017. Refactor with Scalafix v0.3
 - Oct 2016. Introducing Scalafix: a code migration tool for Scala
 - Oct 2016. Scalameta at Scala World
 - Jun 2016. Master's thesis done
 - May 2016. Scalafmt at flatMap(Olso)
 - Feb 2016. Three cool things you can do with Scalameta
 - Nov 2015. Slick codegen and Scala.js
 - Oct 2015. Authorization with Autowire
 - Jun 2015. Directembedding: Concealing the Deep Embedding of DSLs
 - Sep 2014. Launaskil: payroll managment for independent contractors
 - Jun 2014. Orðspor: labeling named entities with computer games
 - Dec 2013. Buddy AutoMagic - using network flow to connect students
 - Sep 2013. IceQA - Question Answering for the Icelandic language
 - Sep 2013. IceQC - Question Classification for the Icelandic language
 - Apr 2013. Permutation pattern avoidance
 
Presentations:
- 2019 Scale by the Bay Building rich IDE features beyond the Language Server Protocol
 - 2019 ScalaDays Lausanne Rich code editing for Scala in VS Code, Vim, Emacs and beyond
 - 2018 ScalaDays Berlin Six steps from zero to IDE
 - 2018 ScalaSphere SemanticDB for Scala developer tools
 - 2017 flatMap(Oslo) Move fast and refactor with Scalafix
 - 2016 flatMap(Oslo) Scalafmt - opinionated code formatter for Scala