I've worked with a lot for a long time, so my CV gets a bit long. So I'm trying to keep the "paper" version short and refer to this for more information for those who wants it.
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
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
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
Tags: Clearcase JEE JS IE Scrum
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
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
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
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
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.
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.
We worked with a group of consultants from India for some time. They were also up in Stockholm for a while.
Tags: JEE JBoss SOAP XML Accurev GWT JSP Polopoly Linux
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
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:
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
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.
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
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
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
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.
1987–1989 Bellevue Community College, Bellevue, WA, USA. Computer Science.
1985–1987 Newport High School, Bellevue, Washington USA.
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.