Sofware Architect



I am a senior architect with 35 years of software development experience, mainly working with development tools such as parsers, evaluators, and virtual machines. The main languages for that work has been C/C++, Java, and Go (Ruby has played a role in my current position).

I participated in two start-ups. The first required me and my family to move to the US (we had the office on Manhattan) where we spent 3 years before the company ran out of funds. The second, where I was one of the founders, was a virtual company. It was more succesfull and eventually acquired in 2013 by Puppet Inc., a Portland based company focused on autmating software delivery/operation.

Both start-ups focused on building model-driven tooling based on Java and JEE which aligned well with my previous roles during the 90's, when I was an architect and designer of similar multi-layer application frameworks written in C/C++ at Abalon AB

I was employed by BEA Systems 2004-2006 (between the two start-ups), mainly working with client tools in Java and work on the JRockit JVM

My broad experience gives me a unique ability to quickly grasp the complete picture. I master the whole range of technical solutions found in large systems with complex integration scenarios, distributed transactions, message queues, and micro services

My objectives are often to run the project all the way from the initial requirements to a complete architecture and then to act as both mentor and developer. I am used to lead the architectural work and to establish a common vision in the team. I am not prestigious but can act convincingly when there is a need for it. I am an appreciated teacher able to explain even the most abstract problems in an understandable way.

I have learned to take advantage of the benefits gained by good architecture, code reuse, documentation, and quality awareness. I posses the knowledge needed to construct and sustain a development process that will live on in an ever-changing environment.

I was born in 1960 and raised in Skåne (southern part of Sweden). I moved to Stockholm in 1987 and then stayed there except for the 3 years in New York. I am married to a girl from Hälsingland. Together, we have 3 wonderful boys.


Senior Architect and Developer

May 2013-present Puppet Inc. Portlan, Oregon
  • Developing core parts of the Puppet language compiler
  • Implemented the Puppet Hiera 5 configuration data lookup system
  • Added RBAC security to the Puppet Forge repository
  • Ported the Puppet parser/evaluator from Ruby to Java and Go
  • Wrote Go implementation of Puppet Hiera Lookup
  • Created Dgo, a framwork for dynamic types in Go
  • Implemented a NATS service for Puppet Bolt Inventory

Chief Architect and Founder

October 2006-May 2013 Cloudsmith Inc. Täby Sweden
  • Chief Architect and Founder of Cloudsmith Inc. an Eclipse Silver sponsor
  • Project lead and chief architect for Buckminster, an Eclipse tools project.
  • Architect and supervisor/implementer for service, an EJB3 based web site/service based on JBoss Seam, Hibernate, PostgreSQL, and OSGi
  • Committer to the Open Source projects Buckminster, Eclipse Dash, Eclipse Spaces, and PL/Java
  • Contributor to several Eclipse projects including the Eclipse Communication Framerwork (ECF) and the Equinox Provisioning project (P2)
  • Presenter at major Eclipse events like EclipseCon and Eclipse Summit Europe
  • Member of the Eclipse Architecture Council

Senior Software Engineer

February 2004-September 2006 BEA Systems Inc Stockholm Sweden
  • Development of Oracle's Java Virtual Machine, JRockit, mainly focusing on client Java tools and Eclipse plugins
  • Architect and Developer of the Eclipse Technology Project Buckminster
  • Managing a language mapping for Java Stored Procedures, Functions and Triggers for the PostgreSQL backend, project PL/Java.

Self employed

December 2003-January 2004 Tada AB Stockholm Sweden
  • Founded Tada AB
  • Working as a subcontractor for Veratech in Stockholm helping with Veratechs Open Source offering
  • Participate in the Eclipse Web Tools Project
  • Deeply involved in launching the Frameworx Open Source Project
  • Started project PL/Java.
  • Designed and implementation fo the website.

Director of Architecture

June 2000-November 2003 The Frameworx Company New York, USA
  • Architect and supervisor/implementer of a major part of the extensive J2EE based meta-data driven framework that became the company's main product.
  • Designed parts of an Object Publishing facility that enabled transparent publishing of objects both as EJBs and Web Services.
  • Single-handedly designed and built a comprehensive OQL to SQL translator that exposes OQL as a JDBC driver.
  • Principal architect, designer, and supervisor of a OO-RDB mapping facility that is configurable using an UML-model.
  • Helped write an advanced system to ease up the build/assemble/deploy cycle of components under CM control.
  • Wrote a UI framework for advanced SAX event driven XSL transformations that replaced Cocoon.
  • Deeply involved in merging the frameworks product suite with the Eclipse environment.
  • Advocate for making the company products available as Open Source.
  • Acted as mentor and advisor in a significant part of the company's projects.

Chief Architect, Common Frameworks

Jan 1999-June 2000 Industri-Matematik AB Stockholm, Sweden
  • Made recommendations on architectural strategies to the board of directors.
  • Researched Enterprise Java Beans (EJB)-server technology. The objective was to use EJB for next generation of the framework
  • Researched Messaged Oriented Middleware (MOM). The framework had high demands on scalability and both synchronous and asynchronous Inter Process Communication.
  • Designed an XML based messaging system based on Java Messaging Service (JMS).
  • Designed a transaction coordination package that could be used in place of a commercial TM-system making it possible to deploy the same code-base on both small and very large installations.
  • I was the Architect, designer and supervisor for the implementation of a Multithreaded, Component Based, and Object Oriented Framework that now serves as the foundation for the CRM-application developed within IM.
  • Architect and implementer of a SOAP-like protocol that includes distributed garbage collection and the ability to pass object by reference.
  • Designed data-replication capabilities in the application framework using Universally Unique Identifiers, Universal Coordinated Timestamps and a globally accessible Counter service.
  • Architect and designed a Load Balancer / Dispatcher service for HTTP requests.

Senior System Architect

June 1996-Dec 1998 Astea International AB Stockholm, Sweden
  • Senior member of a research project (code name Green Shark), tasked with defining an ideal platform for an applications architecture and application development tools focusing on graphical declarative software construction using an assembly paradigm.
  • Designed and implemented a component model similar to the (at the time non-existing) Enterprise Java Beans architecture.
  • Worked as the architect behind a comprehensive C++ framework based on the Ovum 6-layer framework model. In the framework, I was the architect, designer, and implementer of services and facilities very similar to the ones specified by OMG.
  • Modified the framework to make it compliant with the OMG specifications.
  • Was Architect and designer of major parts of the versioned Meta Data Repository
  • Designed and implemented a lightweight OMG 2.0 Object Request Broker (ORB).

System Architect

Jan 1996-June 1996 Abalon AB Stockholm, Sweden
  • Responsible for the development of the Abalon Application Software framework.
  • Managed the Object Oriented analysis and design of the framework.
  • Built prototypes and implemented designs for the next generation of the Application framework using Smalltalk.
  • Designed and implemented a bi-directional COM to CORBA bridge.
  • Designed and implemented a CORBA 2.0 compliant interface repository.
  • Evaluated different Configuration Management Systems. Selected and implemented ClearCase.
  • Moved our entire development environment from Sun Solaris to Microsoft Windows NT.

Development Team Manager

June 1993-Jan 1996 Abalon AB Stockholm, Sweden
  • Managed a six people strong framework development team.
  • Performed salary and performance reviews.
  • Recruited new engineers.
  • Built and reported the R&D budget for this team.
  • Designed framework software, overall architecture as well as components.
  • Mentored and performed knowledge transfer activities with the team.
  • Managed a project that re-designed our framework as a multi-tasking operating system to be run embedded on MC68K board computers.
  • Implemented, and enforced the use of, a Configuration Control System based on SCCS.
  • Designed and implemented a bug tracking system (SPQR: System Problem and Quality Reporting).
  • Designed and implemented a shared memory version of the Virtual Machine. This version was far more efficient in both inter process communication and memory utilization.

Framework Developer

Aug 1988-June 1993 Abalon AB Stockholm, Sweden
  • Designed and implemented an object oriented framework and application development environment in C. The framework had abstractions for persistency and user interface and was largely meta data driven.
  • Wrote a portable C++ front end for C compatible to AT&T Cfront, enabling future framework development to be implemented using C++.
  • Designed and wrote training material for C, C++, Informix 4GL and SQL
  • Trainer in C, C++, Informix 4GL and SQL, both internally and externally. External customers included NCR, Swedish Defense, Swedish Nuclear Inspectorate, and Data General.
  • Translated the Informix product suite to Swedish.
  • Continued development of a windowing system for character terminals (C-Screen). The new product was renamed CB-term and was acquired by Informix Inc. for use in their development tools.
  • Integrated CB-term into Informix NewEra at Informix headquarters in Menlo Park CA.
  • Developed a Meta Data Driven Object to vendor independent RDBMS mapping, still in use for Abalon's core products. Designed and implemented back ends for Informix, Oracle and DB2.
  • Analyzed the framework garbage collector and increased performance by 100% by making the scavenging part incremental.
  • Wrote a sampling profiler for the Xip Language Virtual Machine. Presentation of statistics using graphics.
  • Analyzed the VM using gprof and the sampling profiler. Tuned the VM by removing optimizing bottleneck code and implementing method call optimization.
  • Wrote compiler for the interpretative Xip language.
  • Designed and implemented a special purpose low bandwidth communication protocol between our thin user interface client and the server.
  • Implemented a comprehensive Smalltalk like class library in C++ and the Xip language. The class library contains most of the classes found in Smalltalk.

Product and Operating System Specialist

Jan 1988-May 1988 Carl Lamm System AB Stockholm, Sweden
  • Product specialist for Unix based systems from Pyramid and Zilog

  • Assisted Zilog Inc. (Menlo Park, CA) in completing their Intelligent Communications Board offering
  • Designed advanced systems configurations and communications solutions based on Pyramid computers.
  • Also designed the communications offering for both synchronous and asynchronous communication that Carl Lamm System offered its customers.

Self employed

Sept 1987-Dec 1987 Adaxus HB Malmö, Sweden
  • ADAXUS (Advanced Development and Adaptations for Xenix and Unix Systems) HB was my own company.
  • Developed a lottery system in C for Skånes Art Association.
  • Developed C-Screen, a fully event driven window system for character based terminals. A predecessor to CB-term (see Abalon below).
  • Developed a financial system for Transportvaruhuset AB in Malmö using C-Screen and Informix SQL. This system was developed in C, using Object Oriented metaphors.


April 1986-Sept 1987 Carl Lamm System AB Malmö, Sweden
  • Systems programming in Unix on pyramid RISC systems and Zilog super microcomputers.
  • Implemented SNA-3270 communication protocol on a Zilog UNIX system.
  • Converted and re-wrote systems written in Basic into C.
  • Implemented laboratory administration systems in Informix RDBMS.
  • Installed and configured Uniplex office suite in Unix.
  • Helped Zilog Inc. engineers fix severe problems in their hardware and software for synchronous communications protocol (SNA). This consisted of writing low-level code for Zilog intelligent communication boards.
  • Contracted as a software developer to a software company, and developed financial systems in C.

System Consultant

Jan 1985-April 1986 Kommundata AB Lund, Sweden
  • Developed administrative systems for managed healthcare in COBOL for Tandem non-stop computers.
  • Worked with Unix and C using Borland Turbo-C compiler and wrote utility programs.

Service Engineer

Jan 1984-Jan 1985 Zetner AB Malmö, Sweden
  • Maintained and serviced Wordplex word processing equipment in southern Sweden.
  • Worked with CP/M 2 and dBase II.
  • Designed and implemented a CP/M 3 compliant kernel on the WordPlex word-processor machine using Z80-assembler.
  • Transferred dBase II databases in CP/M to dBase III in MS/DOS


Programming languages

I fully master C, C++, Smalltalk, and Java and have worked with several different assembler variants (Z80, 68K, Sparc, 8086). I'm fluent in scripting languages such as Perl, Python, VB, and JavaScript along with various shell scripts (bash, csh, tcsh) and Windows bat files. I am very experienced in using tools for compiler/parser technology, like YACC/Bison, Java CC, and Lex/Flex and well acquainted with markup languages such as HTML, XML, and miscellaneous helpful "languages" to dynamically construct markup (JSP, XSL transformations, Jakarta Velocity, PHP, and Eclipse JET).

Development environments

I prefer using Eclipse. I'm also well acquainted with JBuilder, Netbeans (Sun One) and MS Visual C++. I use Apache Ant for building and I'm very well acquainted with ClearCase, Subversion, CVS, and P4.


I have worked extensively with J2EE and related technologies and possess a deep knowledge of EJB, JMS, JCA, JDBC, and JMX. I have long experience of different types of inter-process communication such as CORBA, Microsoft COM and Java RMI. Good knowledge in Transaction Management Systems such as Tuxedo and CICS.  Familiar with Web Services and thus, SOAP, WSDL, and UDDI.

Application servers

More than 3 years experience with JBoss and Websphere. Some experience from BEA and JOnAS. Experienced with Tomcat and Apache and have earlier used Microsoft IIS.

User interfaces

I have developed for both non- and graphical user interfaces. Well experienced in Swing/AWT/SWT, Windows (Win32), X/Windows (Motif/Open Look), and different web-browsers (IE6, Netscape).


Extensive experience in SQL based databases. Especially Oracle, DB2, PostgreSQL, and Sybase. Some expericence with MySQL and MS-SQL Server. I'm fluent in OQL and have done extensive reading on Java Data Objects (JDO).


The main operating systems have been Unix (HPUX/Solaris/AIX/Linux) and Windows (NT/2000/XP). Early in my career I developed software for some minicomputer and mainframe operating environments. I have also designed and implemented virtual machines, real-time kernels, and hardware drivers for embedded systems.


1967-1976 Korsbackaskolan Kävlinge, Sweden

9 year grammar school and Junior High School

1977-1978 AMU Furulund, Sweden

1 year Vocational College

1979-1980 Pauliskolan Malmö, Sweden

1 year of two year college program

1981 Statens Skola för vuxna Norrköping, Sweden

Micro processor technology course

1981-1982 F10 Ängelholm, Sweden

Military Service (mandatory in Sweden). Airforce K-9 Guards

1982-1983 Scandinavian School Stockholm, Sweden

Correspondence course, Computer Technology, Computer Management, Programming

1983-1984 Sperry-Univac Stockholm, Sweden

Mapper and CTS training

1984-1985 Zetner Stockholm, Sweden

Hardware and software training, Z80 assembler, Wordplex, CP/M, dBase III

1985-1986 LärData Malmö, Sweden

Training in Unix, C programming, MS-DOS

1986-1987 Carl Lamm System Stockholm, Sweden

Training in Unix, C programming, SQL, Informix 4GL

1988 Pyramid Technology Inc. Menlo Park, CA

Training in OSx (Unix) Administration

1996 ClearCase Stockholm, Sweden

Training in ClearCase System Administration