Kan vara tillgänglig
(Uppdaterat 1+ år sedan)Fullstackutvecklare med tyngd på BE.
Stockholms län, Sverige
Modersmål Svenska, English
- MySQL, DB2, Oracle, Mimer
- 20 år av Java, Spring Framework, Spring Boot, Git
- JEE f.o.m 1.0, JBoss / Wildfly, WebSphere, Glassfish, Tomcat
Kompetenser (37)
DOM
UNDERHÅLL
SERVLET
JSF
Websphere
OLIKA TEAM
DOKUMENTERA
DATABASER
JEE
EJB
Groovy
JSP
Java
JAXB
ATT SKRIVA
XML
JMS
SYSTEMUTVECKLING
DATABAS
JBoss
ARKITEKTUR
RMI
OPEN SOURCE
SYSTEMDESIGN
KODNING
Linux
SERVLETS
DOKUMENTATION
BETALNINGAR
Telecom
Excel
React
JavaScript
JQuery
POINT OF SALE
STATISTIK
OFFSHORE
Professionell bakgrund
2006-01 - Pågående
2018-01 - 2019-01
loosely translated to "Quiz Fight". The latter had a backend made in Python and was ac-
quired though the purchase of Feomedia. Mag had a lot to do, and a promised quiz game for an EU organisation were coming up. They wanted a Java backend ASAP. So they took
in Tommy and one other consultant to write a new backend in Java from scratch. We had
to do some reverse engineering and produced REST services with Spring Boot and a MySQL database. Tommy also fixed some things in a React based web client for editing
quizzes and questions. Tommy also wrote most of the REST services for this client. We
were brought in with a 6 month contract, but we were done in little over 3 months, so the total became 4 months.
Tags: Spring Boot, MySQL, Gradle, React, node.js
Time off (3 months - long vacation)
Took a long summer vacation by not making me available until after summer (August).
This was a very fitting time, and an age 50 gift to myself. The person I am, I dove into co-
ding React components for one of my Github projects during this time also.
Arbetsförmedlingen 2018-2018 (4 months)
Belonged to a team that is responsible for maintenance and development of a set of in-
ternal systems, among them Diariet, for archiving and similar systems. These are used by
employment agents for daily work, managing activities. This collects all information rela-
ted to finding work for a specific person. Strict authority hierarchy and protection for indi-
viduals with protected identity. All team members worked on both frontend and backend.
These are standard JEE-EJB/MDB applications with AngularJS+4 frontends (both avai- lable) 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, Maven
4
2017-01 - 2017-01
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 im-
plemented 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 con-
trol 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 mi-
gration.
Tags: Java8, Streams, Lambda, Scrum, JIRA, JEE, MySQL, PDF, Maven
2015-01 - 2016-01
ments 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 Co-
bol on the backend. I have developed GUI dialogs and called Cobol services to get and
update data.
Tags: Clearcase, JEE, JS, IE, Scrum
2016-01 - 2016-01
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 ser-
vices 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 ser-
vices. 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 services before them selves can be replaced by a new
service.
Tags: Scrum, JIRA, JEE, JMS, MySQL, SOAP, REST, IE, Maven
2013-01 - 2015-01
message bus. Started with packaging the components for easy installation and then con-
tinued 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.
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
5
a long time, "new" languages are not really a problem). Was senior developer and also code reviewed the final code.
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 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 con-
tribute a little to the "call home" functionality that is used for oversight and statistics.
in phase 3 where we packaged installations as Docker images.
Tags: Git, CI, Java, Ruby, Docker, Linux, RabbitMQ, SSL, MongoDB, Maven
2012-01 - 2013-01
tion. Data retrieved from Cobol system using a COBOL-based data model that is transla-
ted 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). Pro-
ject running scrum.
Tags: JEE, Glassfish, JSON, Jackson, Scrum, REST
2013-01 - 2013-01
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
2013-01 - 2013-01
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 ac-
counting. A satisfying end-customer that Tommy have great respect for and gives money
to.
Tags: JEE, JSF, JPA, Hibernate, Scrum, maven
2005-01 - 2012-01
Maintenance and development of new applications on SJ's Web platform.
Used scrum in 2 week sprints.
6
Tommy have worked in several projects within the SJ's web platform (listed in approxima- te 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 deve-
lopment 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 control-
led placement of functionality, and generic code that is reused by all the features.
Implemented payments through Paynovas web services.
Supported other project members.
7
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 ser-
vices. 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 ser-
vices. 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-plat-
form. 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 num-
ber 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, ser-
vice layer, and an external layer for communication with external systems.
Offshore
We worked with a group of consultants from India for some time. They were also up in Stockholm for a while.
Tags: JEE, JBoss, Spring Framework, SOAP, XML, Accurev, GWT, JSP, Polopoly, Linux
2005-01 - 2006-01
2005-01 - 2005-01
2002-01 - 2005-01
2004-01 - 2005-01
2003-01 - 2004-01
2000-01 - 2002-01
2001-01 - 2002-01
2000-01 - 2001-01
1998-01 - 2000-01
1999-01 - 2000-01
1998-01 - 1999-01
1997-01 - 1998-01
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 Sparc-20 servers and was
written in C, Bourne shell, awk, sed, perl, etc.
1998-01 - 1998-01
1990-01 - 1997-01
mentation. Also did some development in the Delta app that was written in REXX. Opera-
tion & Support for MHS, a distributed, "Ericsson wide" bug tracking system. Wrote a mo-
nitoring 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 pro-
jects needed.
Was a member of the platform group that established the design rules, maintained plat-
forms, did printer recommendations and other functions of APStools.
Responsible for a number of platform tools In APStools. The responsibility included de-
sign, coding, documentation, and user support.
Had root access and self managed his Sparc 5 machine with Solaris 2.5.
9
Gave a talk on Delta Tool in English in front of about 100 people representing all APSTools
users within Ericsson World.
Akademisk bakgrund
1987-01 - 1989-01
1985-01 - 1987-01