Introduction
I’m a passionate and enthusiastic student and teacher of all parts of the software development lifecycle. Programming language polyglot, believing that learning a new language will teach you new things about the languages you already know.
My favourite type of questions are the ones where the answer is “it depends”.
Always hungry to learn.
Skills
Fluent in spoken and written Swedish and English.
Multiple programming languages including Java, Python, Rust, Scala, C, C++, SQL, bash, JavaScript and C#.
Low latency programming, including off-heap data structures, GC tuning, profiling and performance optimisation.
Requirement elicitation, analysis and negotiation
Design, documentation and implementation of ergonomic and efficient APIs.
Design of highly concurrent systems using up-to-date practices and libraries.
On-the-fly code generation and dynamic code loading for creation of fast and efficient programs from configuration or DSLs.
Applying well-known notations such as UML when communicating ideas on paper and whiteboards.
Deployment and operation of services running on bare metal, AWS, Kubernetes and similar
Design and implementing of all layers of highly available and scalable software stacks.
Applying and evangelising for proper software revision control, and having successfully applied it using git, Subversion, CVS and ClearCase.
Having used a variety of development processes, most recently lean and agile processes such as Scrum, Kanban and derivations thereof, with older projects having been developed under traditional waterfall-style processes.
Thorough familiarity with modern development practices such as TDD, BDD, XP and others.
Setting up and using build, continuous integration and deployment tools such as Gradle, Make, sbt, Maven, Gitlab, Jenkins, Buildbot and Travis.
Use of code quality and static analysis tools such as Coverity, Veracode, FindBugs, Sonar, Lint, the LLVM analyser and applying their findings sensibly.
Profiling and performance analysis of software and applying the results to gain the the right balance of latency, throughput and resource efficiency.
Analysing and and reverse engineering protocols and programs.
Implementing data confidentiality and integrity solutions using standardised cryptographic primitives.
Knowledge of dozens of Java frameworks and libraries including JUnit, Scalatest, JMH, ASM, OSGi, Akka (-streams), Scalaz/Cats, LMAX Disruptor, Play and Spring.
Current Employment
Ticketmaster International, Inc. 2015 —
Working as a Principal Software Engineer and InfoSec Ambassador on the International Consolidated Consumer Platform (ICCP) where I design and develop features across multiple applications and services written in different languages, depending on the need and situation. The architecture is mainly a set of micro-services integrating with older systems using either HTTP(S), Kafka or custom TCP-based protocols.
The code is mainly written in Java or Scala, always trying to strike a balance between time-to-market, long term maintainability, performance and observability.
Previous Employments
Procera Networks AB 2010 — 2015
Working as a Senior Software Engineer as
an Architect and Senior Developer of the RAN Perspectives product. Developed in Java.
an Architect and Senior Developer of the PacketLogic Subscriber Manager. Being one of the original developers on an eight person team, I focused on the production of low-latency, high throughput code and cross-product requirement analysis. Mainly developed in Java and Python under a Scrum-like process.
Purple Scout AB 2006 — 2010
Working as a Senior Software Engineer consulting for both internal and external projects as
a Developer of the PacketLogic Subscriber Manager developed for Procera Networks. As part of a four person team, we designed and implemented the product from scratch based on an initial design made by me. As part of this I did requirement elicitation, internal and external support as well as provided on-site training and support. Developed primarily using Python, C and Java under the Scrum process.
a Module Key Responsible and Developer for cellphone production software at Ericsson Mobile Platforms. My main focus was the design and implementation of secure and efficient components for initial program loading during production. The primary implementation language was C.
Optab Optronikinnovation AB 2002 — 2006
Working as a Software Engineer on a range of projects, including
a 3D laser scanner for tunnel boring quality control software where I managed the full software lifecycle. Developed in C.
a car headlight calibration and measurement control software where I managed the full software lifecycle. Developed in C++.
other minor projects using C#, Java, Delphi and various assembly dialects.