Tommy Svensson CV

Född 1968 i Stockholm. Verksam inom IT-branchen sedan 1990. Har utveckling, arkitektur och teknik som inriktning.

Är en glad, trevlig och humoristisk person med ett stort intresse för IT/teknik och beskriver mig själv som professionell nörd.

Började sitt yrkesliv 1990, men Intresset för datorer och programmering sträcker sig mycket längre tillbaka än så.

Har arbetat som systemutvecklare under nästan hela sitt yrkesliv. Är en strukturerad person med en djup och bred erfarenhet av systemutveckling på Unix, Linux, Windows och Java plattformar. Erfarenheten inom systemutveckling innefattar generell applikationsprogrammering, grafiska gränssnitt (inklusive komponenter), och till stor del client/server programmering (TCP/IP, RPC, RMI, IIOP, webbtjänster, etc.). Har ofta rollen som problemlösare i projekt genom sitt tekniska kunnande.

Har sedan 1998 nästan enbart jobbat med Java och har bra koll på dom flesta open-source ramverken för Java. Har även bidragit med att antal små open-source projekt själv.

Har erfarenhet av arkitektur och jobbar ofta med arkitekturell kodning och design.

Har deltagit i JavaOne konferensen i San Francisco 3 gånger, 2000, 2001 och 2009 samt JBoss world i Boston 2012. Försöker också gå på alla JFokus konferenser i Stockholm.

Trivs bäst att arbeta med komplexa och utmanande projekt. Föredrar att arbeta i team, men kan även jobba självständigt när det behövs.

Har bott och studerat i USA under 7,5 år.

Allmän Information

Språk

Svenska | Engelska

Metoder

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

Systemutveckling

Systemarkitektur | analys | modellering | systemdesign | systemutveckling | CM

Branscher

Telecom | Fordon | Spel | Marknad | Försvar | Persontransport (Resebolag) | Myndighet

Verksamhetsområden

Stödverktyg | Felrapportering | Remote tjänster | Ekonomisystem | Speltjänster | Marknadsundersökningar | Biljettbokning | Biljettautomater | Webb | Mobilwebb | Webbtjänster

Applikationservrar

JBoss | WebSphere | GlassFish | Tomcat | Karaf

Webbservrar

Apache | NgInx

CM Verktyg

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

Teknik

Java (1-8)
    SE : AWT | Swing | TCP/IP | Trådning | Klassladdning
    JEE : RMI | JSP | JSF | Servlets | EJB | JDBC | JPA (Hibernate, OpenJPA) | XML | JAXB |
             JMS
    Kryptering( 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

Kod
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

Databaser

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

Operativsystem

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

Konsultuppdrag

Arbetsförmedlingen ( 2018 - 2018 )

Tillhör ett team som ansvarar för förvaltning och nyutveckling av ett antal interna system, bland annat Diariet för diarieföring och även liknande system som arbetsförmedlare jobbar i dagligen för pågående aktiviteter. Detta samlar all information om en specifik arbetssökande och aktiviteterna för att hitta ett jobb för denne. Strikt behörighetshierarki och skydd för personer med skyddade identiteter.

Det är standard JEE-EJB/MDB applikationer med AngularJS+4 frontends (finns båda) och Oracle databas. Körs på JBoss/Wildfly och ActiveMQ kö/meddelande hanterare. Git används för versionshantering.

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

Polismyndigheten 2017-2017 (10,5 månader)

Projektet på polisen handlade om att avveckla stordatorn genom att skriva en ny applikation för hantering av ordningsböter. Tommy kom in senare i projektet för att ersätta en person som slutade. Han implementerade migrering från gamla systemet till det nya (handlade om att kopiera och konvertera data mellan databaser via JEE entiteter). Tommy gjorde även om hela brevhanteringen pga originalet som tagits fram var inte tillräckligt bra. Brev genereras som PDF dokument med OpenPDF. Endast grund API:et för att skapa PDF objekt användes för att ha full kontroll över sidan och desutom göra det enkelt att bya PDF ramverket om man vill. Utöver det fixade Tommy ett antal JIRA ”issues” och var med om en lyckad release och migrering.

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

Polismyndigheten 2016 - 2016 (11 månander)

Jobbade med avveckling av stordator system som ersatts av Java tjänster. Jobbade med:

Tillhörde en grupp med 4 konsulter och 8 anställda som ansvarade för olika register typ system.

Taggar: Scrum JIRA JEE JMS MySQL SOAP REST IE

Svenska Handelsbanken AB 2015 - 2016 (6 månader)

Jobbade med en intern kontorsapplikation för att registrera ny information som är krav från FI. Kontorsapplikationerna är webb applikationer med HMTL/JavaScript i klienten, Java (servlet/JSP) högst upp på servern, och Cobol som backend. Jag har utvecklat GUI dialoger och anropat Cobol tjänster för att hämta och skriva data. Projektet kör scrum.

Taggar: Clearcase JEE JS IE Scrum

Ericsson AB - 2013 - 2015 (2 år)

Kom in i ett pågående projekt. Projektet tog fram en relativt avancerad CI lösning för maximal testautomatisering baserat på kända ”open source” produkter som knyts ihop med en meddelandebuss (RabbitMQ). Började med att paketera det för enkel installation och sedan med att sätta upp en test där man kör produkten på sig själv och automatiskt installerar och testar sig själv. Koden är i huvudsak gjord i Java och byggs med maven.

Fortsatte med ett annat projekt att göra CI lösningen paketerad och beställningsbar för leverans som en intern moln applikation. Installations- och administrationsfunktioner utvecklades helt i Ruby (något jag aldrig kodat i förut, men har man utvecklat mjukvara under lång tid så är "nya" språk inget problem). Var senior utvecklare och granskade även slutliga koden.

Fortsatte i fas 2 av projektet och utvecklade ”native SSL” stöd i CI systemet som i första version körde stunnel. Detta handlade mest om SSL uppkoppling till RabbitMQ och SSL i Nettosphere webserver. Även klient certifikat används för att validera klienter. Sitter med i arkitekt gruppen som representant för ”deployment” sidan och tar lite jobb från deras backlog som är relevant för ”deployment”, som SSL stödet. Bidrar även lite till ”call home” funktionalitet som används för övervakning och statistik.

Fortsatte även i fas 3 där vi adderade stöd för ElasticSearch och började packetera installationer som Docker "images" där jag bygger Docker images både för ett MongoDB kluster och ElasticSearch kluster.

Taggar: Git CI Java Ruby Docker Linux RabbitMQ SSL MongoDB

Bisnode AB - 2013 - 2013 (3 mån)

Kom in för att ersätta en person som slutade i ett projekt för att ta fram en web-applikation åt Läkare Utan Gränser som hanterar gåvor och givare och ekonomiska uppgifter. Applikationen stödjer även processer för att uppmuntra givare att ge mera. Ett rent JEE projekt med JSF/Prime Faces som GUI och EJB3/JPA (Hibernate) för databas access. Projektet kör scrum. Alla jobbar över hela applikationen, GUI och server. Tommy har bland annat exporterat KU65 data till skatteverket och SIE4 fil för bokföring. En rolig slutkund som Tommy har stor respekt för och själv ger pengar till.

Taggar: JEE JSF JPA Hibernate Scrum

Svenska handelsbanken AB - 2013 - 2013 (3 månader)

Ett Java projekt som producerar ekonomiska rapporter från grund data i en databas. Datat måste processas innan det kan presenteras i form av Excel dokument (med hjälp av POI).

Taggar: Java POI

Svenska handelsbanken AB - 2012 - 2013 (1 år)

Jobbade i ett projekt för att förbättre bankwebben för privatkunder. Jobbade med JSON Java server resurser av REST typ för SPI baserad JEE webapplikation. Data hämtas från Cobol system med en Cobol baserad data modell som översätts till en engelskbaserad model i JSON format upp till klienten som får sitt data ”serverat på ett silverfat!” (d.v.s tjänster plockar ut enbart och exakt det som ska visas). Projektet körde scrum.

Taggar: JEE Glassfish JSON Jackson Scrum REST

SJ AB - 2005 - 2012 (7,5 år)

Förvaltning och nyutveckling av applikationer på SJ’s Webbplattform, både backend och webklienter.

Körde scrum med 2 veckors sprintar.

Har arbetat i ett flertal projekt inom SJ:s webbplattform (listat i ungefärlig tidsordning, färskast överst) där jag har haft flera roller. Han har fördelat min tid mellan utveckling, arkitektur och CM-arbete.

Uppdaterade automatwebbtjänsterna att använda nya SOA tjänster mot bokningsystemet istället för ett gammalt Java API.

Var webteam ansvarig för ett större projekt att splitta alla SJs webbar i 2 fristående delar som inte längre påverkar varandra. Satt med alla centrala kunskaper som krävdes för att göra detta och fick stödja både EDB (drift) och Logica (förvaltning) för att få ihop detta.

Utförde en test av Varnish (webb cache) på sj.se ihop med en annan leverantör som jobbade med Varnish.

Implementerade pendlarkort (10 biljlett, månadskort) som rabattyper i automat webbtjänsterna.

Implementerade hela dagens tidtabell i webbtjänsterna för automaterna. Detta inenbär att man hämtar tidtabellen för hela dagen endast en gång per dag och sparar i cache. Detta minskar belastningen på underliggande bokningsystem.

Diverse buggrättningar för automat webbtjänsterna.

Adderade Danska som språk för webbarna och webbtjänsterna. Detta kräver lite mera än bara CM publiceringar.

Förbättring av tester för automat webbtjänster.

Ansvarig för ”Prio i översikten” som gick ut på att resenärer ska få möjlighet att ange sina priokortnummer på översiktssidan, innan man betalar, för att kunna tjäna poäng på resan ifall man missat att göra det på första sidan. Hade en resurs till i mitt team.

Jobbade med en större intern refaktorisering och städning för att underlätta kommande uppgifter.

Paketering av väldigt komplex utvecklingsmiljö för att snabbare kunna ta in och få igång nya resurser vid behov.

Jobbade med gemensamma tjänster och biljettautomat webbtjänsterna för "pendlarprodukt" projektet.

Gjorde anpassning till ny struktur för att lägga upp nya upplevelser på intranätet.

Gjorde allmän buggrättning i www.sj.se, intranätet, etxtranätet, mobil.sj.se.

Implementerade ”fraud screening” i www.sj.se för kreditkort via Paynovas webbtjänster (av REST typ).

Implementerade biljettutskrifter för Commeobokare i www.sj.se via en utskriftsapplet som matades med XML från en webbtjänst.

Implementerade kampanjkodhantering i www.sj.se.

Var andra person in till förvaltningen av www.sj.se.

mobil.sj.se

Tog fram det mesta av arkitekturen med Polopoly publicerbart innehåll, publiceringsstyrd placering av funktionalitet, och generisk kod som återanvänds av alla funktioner.

Implementerade ”Sök beställning” och ”Avboka”.

Implementerade betalningar via Paynovas webbtjänster.

Gav support till andra projektmedlemmar.

Biljettautomater

Tog fram arkitekturen för att exponera www.sj.se’s underliggande tjänster som SOAP webbtjänster. Arbetade nästan uteslutet med de arkitekturella delarna av koden och gav support till andra utvecklare i projektet.

Skötte CM och ”mergning” för projektet.

Var den enda seniora utvecklaren i projektet och hade därmed ansvaret för att koden blev så bra som möjligt.

Byggde ett testramverk baserad på JUnit för att underlätta att skriva SOAP klient tester för alla tjänster. Detta laddade testdata från JSON filer där en subdel av en JSON fil kunde referera en annan JSON fil.

Implementerade KRP (Kund Relations Programmet) funktionalitet för biljettautomaternas webbtjänstelager.

WebSphere -> JBoss projektet

Var med och tog fram ny JBoss-baserad plattform för SJ's webbplattform som vi kallade sj-platform. All platformsspecifik konfiguration lyftes ut till denna platform.

Den kod som tagits emot från annan leverantör hade alldeles för många lager vilket gjorde att alla ändringar tog mycket tid. Tommys jobb var att minska antalet lager och även göra om alla EJB:er till Spring JDBC DAO:er. Detta jobb gjorde han samtidigt som ny funktionalitet utvecklades parallellt. I slutet fanns det bara ett webb/GUI-lager, ett tjänstelager, och ett externlager för kommunikation mot externa system.

Taggar: JEE JBoss SOAP XML Accurev GWT JSP Polopoly Linux

IT-Soldat - 2005 - 2005

Utvecklade en funktion för att ta emot information i XML format från soldat-PC:n, plocka ut informationen och mata den via tjänsteanrop till den centrala informationshanteraren med en java-tjänst som pluggade in i IT-Soldats tjänstearkitektur. Projektet tog fram en exempel prototyp inte en färdig att använda produkt!

Taggar: Java XML

Försvarsmakten - 2004 - 2005

Deltog i ett projekt att utveckla ett webb-baserat ekonomisystem gjort i JEE helt på IBMs plattform med WebSphere och DB2 på AIX.

Förutom arkitekturen och stöd till andra utvecklare så jobbade Tommy även med funktionalitet att importera dagligt data från andra system till systemet och bygga ett gränssnitt för att lägga upp och konfigurera sådana jobb. Tommy byggde även en DAO lösning som hämtade och skrev data via lagrade procedurer i DB2, och gjorde ett exempel flöde från högst upp hela vägen ner till databas och dokumenterade det för andra utvecklare att jobba efter. Han löste även hanteringen med användarcertifikat i applikationen (efter att IBMs "främste expert" hade misslyckats lösa det i WebSphere).

Taggar: JEE WAS SQL "Stored Procedures" AIX

SAS AB - 2003 - 2004

Kom in mot slutet för att stödja ett projekt med kodgranskning, tekniskt stöd till projektledaren (Java/JEE), och lösa ett problem med Mercury Loadrunner (prestandatester på systemet). Jobbet var att fixa de genererade Loadrunner skripten så att de blev tillräckligt dynamiska för att kunna köras flera gånger. Var även med och körde lasttesterna hos kunden i Köpenhamn.

Taggar: JEE LoadRunner

ATG AB - 2001 - 2002

Kodansvarig för tjänstesidan av internet spel (C++) . Var med och implementerade nya spelformer såsom V3 och V65. Designade och implementerade även en loggservice (skriven i Java) för att samla loggar från alla servrar.

Taggar: C++

Anoto AB - 2000-2001

Tommys uppgift i detta projekt var att underhålla och förbättra en penn-emulator. Penn-emulatorn var skriven i java och lät användaren med hjälp av ett Swing GUI använda musen för att rita på ett simulerat papper. Emulatorn kommunicerade sedan med servern på precis samma sätt som en riktig Anoto penna.

Taggar: Java Swing

Freedoo AB - 1999 - 2000

Ansvarade i detta projekt för EJB och applikationslagret ihop med en annan person. Var även administratör av de 2 Linux utvecklingsservrar som användes samt projektets Linuxexpert.

Tommy höll även ett föredrag om detta projekt och dess design på en Mimer konferens i London.

Freedoo gjorde marknadsundersökningar på webben och vände sig till studenter som fick ersättning för att deltaga.

Taggar: JEE EJB Mimer Linux

Mercedes-Benz Svenska AB - 1998 - 1999

Arbetet inkluderade server, klient, och GUI (skrev ett antal AWT & Swing komponenter). Föreslog och implementerade en arkitekturändring som kraftigt ökade prestanda genom att göra en ändring i Sapphire/Web (applikationsservern - källkod medföljde!).

Detta var ett projekt där man utvecklade ett webb-baserat (Applets!) ordersystem skrivet i 99.9% Java. Avsikten var att ersätta ett stordatorsystem. Här lärde sig Tommy att aldrig någonsin använda Applets som bas komponent i en webapplikation igen.

Taggar: Java AWT Swing

Anställningar

(För detaljer om alla konsultanställningar, se projekt ovan.)

Natusoft AB - 2006 -

Konsult inom systemutveckling i eget enmansföretag.

Guide Konsult Stockholm AB - 2005-2006

Konsult inom systemutveckling.

Modul1 AB - 2002 - 2005

Konsult inom systemutveckling.

Modul1 förvärvade Askus IT-konsultverksamhet.

Askus AB - 2000 - 2002

Konsult inom systemutveckling.

Concis och Askus KW sammanslogs.

Concis AB - 1998 - 2000

Konsult inom systemutveckling.

Concis var en utbrytare från Enator. Stor del av Enator bolaget jag jobbade på gick dit och jag hängde på.

Enator Systemutveckling AB - 1998 - 1998

Konsult inom systemutveckling.

Linewise Telecom AB - 1997 - 1998

TCP/IP talsvars-servrar både under NT och under SunOS 5. Under NT använde man nästan uteslutande Microsoft SQL server. För de servrar som gick under SunOS 5 skrev Tommy egna enkla filbaserade träddatabaser.

Webbprojekt: De sidor som Tommy utvecklade och sedan lämnade över till kund var uteslutande gjorda på NT med IIs/ASP och Microsoft SQL Server 6.5. De som driftsattes på bolagets egna servrar gick under SunOS 5 på Sparc20 servrar och var skrivna i C,Bournce shell, awk, sed, perl, etc.

Ericsson AB (EXT & UAB) - 1990 - 1997

Drift & Support av Delta, ett distribuerat dokumentlagringsystem för projektdokumentation. Jag gjorde även viss utveckling i Deltaapplikationen som var skriven i REXX.

Drift av MHS, ett distribuerat, "Ericsson brett" felrapportering system. Skrev ett övervakningssystem för både MHS och Deltaservrar.

Både Delta och MHS gick på VM/CMS stordatorsystem.

Arbetade även som internkonsult mot andra projekt för att ta fram små verktyg som projekten behövde.

Var medlem i plattformsgruppen som fastställde designregler, underhöll plattformar, gjorde skrivarrekommendationer samt andra funktioner för APStools.

Ansvarig för ett antal plattformverktyg I APStools. Ansvaret inkluderade design, kodning, dokumentation, och användarsupport. (Inkluderade ansvaret för att verktygen fungerade och att användarna var nöjda.)

Hade root-behörighet och administrerade själv sin Sparc 5 maskin med Solaris 2.5.

Höll ett föredrag om DeltaTool på Engelska framför cirka 100 personer som representerande alla APSTools-användare inom Ericssonvärlden.

Utbildning

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

1985-1987 Newport High School, Bellevue, Washington USA. (årskurs 10,11,12. motsvarar gymnasium).

Vidareutbildning

2006 Tuning JBoss, Redpill.

1995 X and Motif programmering.

1994 C++ Avancerad.

1992 LAN - grundkurs, Datakommunikation - grundkurs, TCP/IP och TCP/IP programmering.

1991 Avancerad REXX i VM-miljö.

1990 CMS REXX programmering workshop.

Annat

1997 Föredragshållare (på Engelska) på intern Ericsson APSTools konferens med APSTools användare från hela Ericssonvärlden.

2000 Föredragshållare (på Engelska) på Mimer konferens i London.

Open Source

Har utvecklat en del open source verktyg: http://github.com/tombensve/

Kontakt

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