Thomas Hallgren

Thomas Hallgren


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 Develper

May 2013-present Puppet Inc. Portlan, Oregon

Chief Architect and Founder

October 2006-May 2013 Cloudsmith Inc. T´┐Żby Sweden

Senior Software Engineer

February 2004-September 2006 BEA Systems Inc Stockholm Sweden

Self employed

December 2003-January 2004 Tada AB Stockholm Sweden

Director of Architecture

June 2000-November 2003 The Frameworx Company New York, USA

Chief Architect, Common Frameworks

Jan 1999-June 2000 Industri-Matematik AB Stockholm, Sweden

Senior System Architect

June 1996-Dec 1998 Astea International AB Stockholm, Sweden

System Architect

Jan 1996-June 1996 Abalon AB Stockholm, Sweden

Development Team Manager

June 1993-Jan 1996 Abalon AB Stockholm, Sweden

Framework Developer

Aug 1988-June 1993 Abalon AB Stockholm, Sweden

Product and Operating System Specialist

Jan 1988-May 1988 Carl Lamm System AB Stockholm, Sweden

Self employed

Sept 1987-Dec 1987 Adaxus HB Malmö, Sweden


April 1986-Sept 1987 Carl Lamm System AB Malmö, Sweden

System Consultant

Jan 1985-April 1986 Kommundata AB Lund, Sweden

Service Engineer

Jan 1984-Jan 1985 Zetner AB Malmö, Sweden


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