Tommy Svensson CV

Born in 1968 in Stockholm. Involved in the IT industry since 1990. Has development, architecture and technology direction.

Is a happy, friendly and humorous person with a keen interest in IT / technology and describes myself as a professional geek.

Started his professional career in 1990, but his interest in computers and programming extends much further back than that.

I have worked as a software developer for almost his entire professional life. Is a structured person with a deep and broad experience in systems on Unix, Linux, Windows and Java platforms. Experience in system-development include general application programming, graphical user interfaces (including components), and largely client / server programming (TCP / IP, RPC, RMI, IIOP, web services, etc.). He often has the role of problem-solver in projects due to his technical expertise.

Have since 1998 been working almost exclusively with Java and have a good handle on most open-source frameworks for Java. I also made some small open-source projects myself.

Has experience in architecture and often work with architectural coding and design.

Has been to the JavaOne conference in San Francisco three times, 2000, 2001 and 2009, and JBoss World in Boston 2012. I also try to attend all JFokus conferences in Stockholm.

Thrives when he get to work with complex and challenging projects. Prefer to work in teams, but can also work independently when required.

Lived and studied in the U.S. for 7.5 years.

General Information

Spoken Languages

Swedish | English

Methods

UML | RUP | SCRUM (Certified Scrum Master) | TDD
Tools : JIRA | YouTrack | PivotalTracker | Redmine | Confluence

System development

Systemarchitecture | analysis | modelling | systemdesign | system development | CM

Branches

Telecom | Vehicle | Games | Market | Defense | Person transport (Travel)

Areas worked in

Support tools | Trouble reports (issue management) | Remote services | Economy systems | Gaming services | Market research | Ticket booking | Ticket vending machines | Web | Mobile web | Web services

Application Servers

JBoss | WebSphere | GlassFish | Tomcat | Karaf

Web Servers

Apache | NgInx

CM Tools

Git | Mercurial | Accurev | ClearCase | SoureSafe | CVS | RCS

Technology

Java (1-8)
    SE : AWT | Swing | TCP/IP | Threading | Class loading
    JEE : RMI | JSP | JSF | Servlets | EJB | JDBC | JPA (Hibernate, OpenJPA) | XML | JAXB |
             JMS
    Encryption(JSSE, SSL/TLS) | OSGi | GWT | Vaadin | Spring | Struts | REST | JSON |
    Vert.x
     Maven (+plugins) | Ant (+tasks)
Groovy
JavaScript | Angular 2
CSS
Ruby
UML
C | C++ | Pascal | Visual Basic | QuickBasic
Sun RPC
sh/bash | sed | awk | perl
Docker
SQL | Stored Procedures | JDBC | ODBC
Emacs

Code
Java

https://github.com/tombensve/CodeLicenseManager
https://github.com/tombensve/SimplifiedAnnotationProcessor
https://github.com/tombensve/BasicJSONLib
https://github.com/tombensve/APS-Dev

Groovy

https://github.com/tombensve/MarkdownDoc
https://github.com/tombensve/APS-Dev

Databases

DB2 | MySQL | Derby | Mimer | Oracle | MS-SQL Server | HSQLDB | MongoDB

Operating systems

Unix : Solaris 4 & 5 | HP-UX | True64 | Interactive Unix
Linux : Red Hat | Mandriva | SuSE | Ubuntu
Mac OS X
Windows : NT | XP | 7 | 8
VM/CMS

Consulting Work (projects)

Arbetsförmedlingen ( 2018- 2018)

Belonged to a team that is responsible for maintenance and development of a set of internal systems, among them Diariet, for archiving and similar systems. These are used by employment agents for daily work, managing activities. This collects all information related to finding work for a specific person. Strict authority hierarchy and protection for individuals with protected identity. All team members worked on both frontend and backend.

These are standard JEE-EJB/MDB applications with AngularJS+4 frontends (both available) and an Oracle database. Runs on JBoss/Wildfly and uses ActiveMQ for messaging. Git is used for version handling.

Tags: Java8, JEE, Oracle, Lambda, JIRA, Confluence, AngularJS, Angular4

Polismyndigheten 2017-2017 (10,5 months)

The project at the Swedish Police was about getting rid of the mainframe by replacing an old system with a new Java/JEE application for handling penal fees like speeding tickets. Tommy came in late in the project replacing another team member who left. Tommy implemented migration code from old system to new system (this done via JEE database entities). Tommy also made a completely new version of letter handling due to the original not being good enough. Letters are generated as PDF documents using OpenPDF. Only the base, low-level PDF API were used to create PDF objects, this for easy and full control of the page, and also allows for easy replacement of PDF library to some other library. Tommy also fixed several JIRA issues and got to experience a successful release and migration.

Tags: Java8, Streams, Lambda, Scrum, JIRA, JEE, MySQL, PDF

Polismyndigheten (Swedish police authority) 2016 - 2016 (11 months)

Worked with the phasing out mainframe systems by replacing with Java services. I worked the most with register lookup from the transport Board but also switching old services to call new services. Fixed bugs found in the pilot testing of a new service. Belong to a group of 4 consultants and 8 employees responsible for different register type services. When it is not possible to change everything with a big bang, you had to adapt a few services at a time, which meant that old services where required to be updated to retrieve specific data from new serives before them selves can be replaced by a new service.

Tags: Scrum JIRA JEE JMS MySQL SOAP REST IE

Svenska Handelsbanken AB 2015-2016 (6 months)

Worked with an internal office application to register new information that are requirements for the Swedish Finance Inspection. The office applications are web applications with HTML/JavaScript in the client, Java (Servlet/JSP) highest up on the server, and Cobol on the backend. I have developed GUI dialogs and called Cobol services to get and update data.

Tags: Clearcase JEE JS IE Scrum

Ericsson AB 2013 - 2015 (2 years)

Came in to an ongoing project. The project developed a relatively advanced CI solution for maximal tes automation based on open source products that is bound together with a message bus. Started with packaging the components for easy installation and then continued with setting up a test installation running the product on itself and automatically installs and test itself. The code is mainly written in Java and is built with maven.

Continued over to another project that packaged the CI solution and made it orderable for running as internal cloud application. Installation and admin functions were developed in Ruby (which I've never coded in before, but when you have been developing software for a long time, "new" languages are not really a problem). Was senior developer and also code reviewed the final code.

Continued in phase 2 of project and developed native SSL support in the CI solution that in the first installment used stunnel. This mostly involved SSL connections to RabbitMQ and Nettosphere web server. Client certificates are also used to authenticate clients. I also sit in the architect group for the CI solution as a representative for deployment and also takes some jobs of their backlog that are relevant for deployment, like SSL support. Also contribute a little to the ”call home” functionality that is used for oversight and statistics.

Continued in phase 3 where we added support for ElasticSearch and also started packaging installations as Docker images. I'm making Docker images for a MongoDB cluster and a ElasticSearch cluster.

Tags: Git CI Java Ruby Docker Linux RabbitMQ SSL MongoDB

Bisnode AB - 2013 - 2013 (3 months)

Came in to replace a person (who left) in a project to develop a web application for MSF (Medecins San Frontieres) that handles donations and donors and financial data. The app also supports processes to encourage donors to give more. A pure JEE project with JSF / Prime Faces as GUI and EJB3/JPA (Hibernate) for database access. Project is running scrum. Everybody works across the entire application, GUI and server. Tommy have among other things exported KU65 data to the tax authorities and SIE4 file for accounting. A satisfying end-customer that Tommy have great respect for and gives money to.

Tags: JEE JSF JPA Hibernate Scrum

Svenska Handelsbanken AB - 2013 - 2013 (3 months)

A Java project that produces financial reports from basic data in a database. The data must be processed before it can be presented in the form of Excel documents (using POI).

Tags: Java POI

Svenska Handelsbanken AB - 2012 - 2013 (1 year)

Working with JSON Java server resources of REST type for an SPI based web application. Data retrieved from Cobol system using a COBOL-based data model that is translated into an English-based model in JSON format up to the client that gets its data "served on a silver platter!" (i.e. services picks out only and exactly what is to be displayed). Project running scrum.

Tags: JEE Glassfish JSON Jackson Scrum REST

SJ AB - 2005 - 2012 (7,5 years)

Maintenance and development of new applications on SJ's Web platform.

Used scrum in 2 week sprints.

Tommy have worked in several projects within the SJ's web platform (listed in approximate chronological order, freshest top) where he had multiple roles. He divided his time between development, architecture and CM work.

Updated ticket vending machine web services to use new SOA services to reservation system instead of an old Java API.

Webteam responsible for a major project to split all SJ webs in two independent parts that can no longer interact. Tommy sat with all the key skills required to do this and had to support both EDB (operation) and Logica (maintenance) to get this together.

Performed a test of Varnish (Web Cache) on sj.se.

Implemented ”whole day timetable” in TVM web services. This means that the whole timetable is only fetched once per day and then cached. This diminished the load on the underlaying systems.

Improved tests for TVM (Ticket Vending Machine) web services.

Responsible for the "Priority card in the overview" which added the opportunity to provide priority card number on the summary page, before payment to be able to earn points on the trip in case it was forgotten on the first page. Had a resource to my team.

Worked with a major internal refactoring and cleaning in order to facilitate future changes.

Packaging of a very complex development environment for quicker startup of new development resources.

Worked with shared services and ticket vending machine web services for the "commuter pass" project.

Worked with adaptations to new structure for adding travel events on the intranet.

Did general bug fixing in www.sj.se, intranet, etxtranet, mobil.sj.se.

Implemented ”fraud screening” in www.sj.se for credit cards via Paynovas web services (of REST-ish type).

Implemented ticket printouts for commeobookers in www.sj.se via a print applet that was feed with XML from a web service.

Implemented campaign code handling in www.sj.se.

Was the second person in the project when the Biltmore took over the responsibility of the code for www.sj.se.

mobil.sj.se

Designed most of the architecture with Polopoly publishable content, publishing controlled placement of functionality, and generic code that is reused by all the features.

Implemented payments through Paynovas web services.

Supported other project members.

Ticket Vending Machine

Implemented KRP (CRM) functionality for the TVM web services.

Produced the architecture to expose www.sj.se's underlying services as SOAP web services. Worked nearly exclusively with the architectural elements of the code and gave support to other developers in the project.

Handled CM and merging for the project..

Was the only senior developer in the project and had thereby an overall responsibility for the code quality.

Built a test framework based on JUnit to facilitate writing SOAP client tests for all services. This test framework also allowed for easily providing test data in JSON format which could also reference other test data JSON files.

WebSphere -> JBoss project

Worked on the new JBoss-based platform for SJ's web platform, that we called sj-platform. Extracted all the platform-specific configuration from application into this platform.

The code we had taken over from another consulting company had way too many layers which made changes time-consuming and painfull. Tommys job was to reduce the number of layers and also redo all EJBs to Spring JDBC DAO's. This job he did while new functionality was developed in parallel. In the end there were only a Web / GUI layer, service layer, and an external layer for communication with external systems.

Tags: JEE JBoss SOAP XML Accurev GWT JSP Polopoly Linux

IT-Soldier - 2005 - 2005

Tommys contribution in this project was to develop a function to receive data in XML format from soldier-PC, extract the information and feed it through service calls to the central information manager with a java service that plugged into the IT Soldier service architecture . The project produced a prototype example.

Tags: Java XML

Swedish Defense Department - 2004 - 2005

Participated in a project to develop a web-based accounting system made ​​in JEE entirely on the IBM platform with WebSphere and DB2 on AIX.

In addition to architecture and support for other developers Tommy also worked with functionality to import daily data from other systems to the system and build an interface to add and configure such jobs. He also solved the getting of information from user certificates and do a lookup in Active Directory.

Tags: JEE WAS SQL ”Stored Procedures” AIX

SAS AB - 2003 - 2004

Came in towards the end to support a project with code review, technical support to the project leader, and solve a problem with Mercury LoadRunner (Performance tests on the system). The job was to fix the generated LoadRunner scripts so that they became sufficiently dynamic to be run multiple times. Was also involved in running load tests at the customer in Copenhagen.

Tags: JEE LoadRunner

ATG AB - 2001 - 2002

Code responsible for services for internet horse racing betting (C++). I implemented new forms of gambling such as V3 and V65. Designed and implemented a log service (written in Java) to collect logs from all servers.

Tags: C++

Anoto AB - 2000-2001

Tommys task in this project was to maintain and improve a pen emulator. The pen emulator was written in java and let the user using a Swing GUI use the mouse to draw on a simulated paper. The emulator then communicated with the server in the same way as a real Anoto pen.

Tags: Java Swing

Freedoo AB - 1999 - 2000

Had responsibility for the EJB and application layer together with one other person. Was also administrator of the 2 Linux development servers used and the project's Linux expert.

Also gave a talk about the project and its design on a Mimer conference in London.

Freedoo did market research on the web and turned to students who received compensation for participating.

Tags: JEE(1.0!) EJB Mimer Linux

Mercedes-Benz Svenska AB - 1998 - 1999

The work included the server, client, and GUI (wrote a number of AWT and Swing components). Proposed and implemented an architecture change that greatly improved performance by making a change in Sapphire / Web (application server - source code was included!).

This was a project that developed a web-based (Applets!) order system written in Java 99.9%. The intention was to replace a mainframe system that did not support year 2000.

Tags: Java AWT Swing

Employments

(For consulting employments details are found under projects above).

Natusoft AB - 2006 -

Consultant within systems development in my own one man company.

Guide Konsult Stockholm AB - 2005-2006

Consultant within systems development.

Modul1 AB - 2002 - 2005

Consultant within systems development. (Modul1 bought Askus IT-consulting business).

Askus AB - 2000 - 2002

Consultant within systems development. (Concis and Askus merged).

Concis AB - 1998 - 2000

Consultant within systems development.

Enator Systemutveckling AB - 1998 - 1998

Consultant within systems development.

Linewise Telecom AB - 1997 - 1998

TCP / IP IVR services on both NT and SunOS 5. In NT Microsoft SQL server were used almost exclusively. For the Sun OS 5 based services, Tommy wrote own simple file-based tree databases.

Web Projects. The pages that Tommy developed and then handed over to the customer was entirely made on NT with IIs / ASP and Microsoft SQL Server 6.5. Those that were deployed at the company's own servers ran under SunOS 5 on Sparc20 servers and was written in C, Bournce shell, awk, sed, perl, etc.

Ericsson AB (EXT & UAB) - 1990 - 1997

Operations & Support of Delta, a distributed document storage system for project documentation. Also did some development in the Delta app that was written in REXX. Operation & Support for MHS, a distributed, "Ericsson wide" bug tracking system. Wrote a monitoring system for both MHS and Delta Servers.

Both Delta and MHS ran on VM / CMS mainframe system.

Also worked as an internal consultant to other projects to develop small tools that projects needed.

Was a member of the platform group that established the design rules, maintained platforms, did printer recommendations and other functions of APStools.

Responsible for a number of platform tools In APStools. The responsibility included design, coding, documentation, and user support.

Had root access and self managed his Sparc 5 machine with Solaris 2.5.

Gave a talk on Delta Tool in English in front of about 100 people representing all APSTools users within Ericsson World.

Education

1987-1989 Bellevue Community College, Bellevue, WA, USA. Computer Science.

1985-1987 Newport High School, Bellevue, Washington USA.

Further education

2006 Tuning JBoss, Redpill.

1995 X and Motif programming.

1994 C++ Advanced.

1992 LAN - basics, Data communication - basics, TCP/IP and TCP/IP programming.

1991 Advanced REXX in VM-environment.

1990 CMS REXX programming workshop.

Other

1997 Lecturer (in English) on the internal Ericsson APSTools conference with APSTools users from around the Ericsson world.

2000 Lecturer (in English) on Mimer conference in London.

Open Source

I have developed some open source tools: http://github.com/tombensve/

Contact

tommy@natusoft.se
www.natusoft.se
http://www.linkedin.com/pub/tommy-svensson/4a/4b0/215