|
Jag har jobbat med mjukvaruutveckling sedan 1992, som systemarkitekt, programmerare och mentor. För att uppnå korta utvecklingstider och stabila produkter så fokuserar jag på mjukvarukvalitet. I mina uppgifter i projekten ingår att dela med mig av kunskap, samt att förbättra utvecklingsprocessen. Därför lägger jag fortlöpande ner mycket tid på att fördjupa mig i objektorientering (design, analys, test, Java etc) och processer (RUP, XP, TDD, Scrum etc). Jag har expertkunskap i språken Java och C++. Jag har varit systemarkitekt i stora Java Enterprise-projekt och har stor kunskap om EJB, Servlets och JSP. Särskilt fokus lägger jag på IBM WebSphere, BEA WebLogic, JBoss och Oracle. Min Master of Science in Computer Science omfattar ca 200 poäng på KTH/SU (1987-1992) och jag är Sun Certified Programmer for Java och Sun Certified Developer for Java.
System Architect
De senaste åren har jag varit systemarkitekt i flera projekt. Som arkitekt tar jag fram övergripande tekniska lösningar för systemet. Jag väljer plattformar för både utvecklings-, test- och produktionsmiljön. Det är jag som ansvarar för Software Architecture Description (SAD). Arkitekturen ska inte bara vara dokumenterad utan även förmedlad på ett lättbegripligt sätt till alla i projektet. En bred kunskap om den nyaste tekniken och de bästa verktygen är central. Det gäller allt ifrån kompilatorer, applikationsservrar och kommunikationsprotokoll till operativsystem, databaser och verktyg för Configuration Management (CM). För att vara en bra arkitekt, med kunskap om spetsteknik, så krävs det att man även programmerar.
Java
Jag började med Java redan 1996. På den tiden handlade det om Applets och AWT som gav webbsidor ett mer interaktivt beteende. Under de år som har gått sedan dess har jag jobbat i åtskilliga Java-projekt, rest på en mängd javakonferenser, läst flera dussin Java-böcker, lärt ut Java i olika former men framför allt skrivit en otrolig mängd Java-kod. Jag har fördjupat mig i Java EE, Swing, Javas XML-stöd och Javas trådhantering. Förutom att jag har gjort Ant-byggstöd för riktigt stora projekt med komplex funktionalitet, så har jag skrivit Ant-utvidgningar. Jag har designat teststrategier för JUnit i flera projekt.
Java EE, EJB, Servlets, JSP, Seam och JSF
I slutet av 1999 kom jag i kontakt med Enterprise JavaBeans (EJB). Redan ett halvår senare fick jag möjlighet att vara systemarkitekt i ett stort Java EE-projekt med Servlets, EJB och JSP. Utvecklingen för Java EE har gått fort sedan dess och det är just den här tekniken som jag har valt att koncentrera mig på under de senaste åren. Jag läser många av de JSR-specifikationer som behandlar Java EE-delar. Det har givit mig goda kunskapar i JDBC, JMS och JNDI. En annan viktig del är kopplingen från Java till stordatorer och andra ärvda system (legacy systems). Jag fokuserar framför allt på IBM WebSphere, BEA WebLogic, JBoss och Oracle, men har även arbetat med Orion, JRun och Tomcat.
Object Technology Mentor
Jag började jobba 1992 med C++. Jag hade då redan programmerat i C++, Smalltalk och Simula under studietiden på KTH. Under många år på 90-talet så jobbade jag nästan bara med C++. De senaste åren har det varit mest Java och nu har jag även kommit i kontakt med C#. Språken är dock inte lika viktiga som den objektorienterade designen. Objektorientering är den bärande delen i mina datalogikunskaper. Jag följer forskningen, driver bokcirklar och lär ut objektorientering. I flera projekt har jag haft rollen som OO-mentor för att få mindre erfarna systemutvecklare att lyfta en nivå. Jag ser Design Patterns och bokcirklar som bra pedagogiska verktyg. UML är en industristandard som jag lär ut för att dokumenterad design ska bli tydlig.
Agile-, TDD-, Scrum- och XP-coach
Jag håller kurser i både Agile, Scrum, Lean och Extreme Programming och jag har blivit inbjuden att hålla tal om Agile på stora konferenser som Agile 2008, Øredev och JFokus. Dessutom så har jag ansvarat för att utveckla processen i stora projekt. Olika processer passar för olika typer av projekt. Processen har stor inverkan på resultatet. En av mina uppgifter är att se till att alla deltagare i projektet förstår processen, att man bara gör aktiviteter och producerar artefakter som tillför något, samt att man hanterar projektets risker.
Teknik- och verktygserfarenhet
Nedan följer en lista med teknik och verktyg som jag har professionell erfarenhet av och ofta djup kunskap om:
Projekterfarenhet 1992-2013
Nedan följer en omvänt kronologisk lista med de utvecklingsprojekt som jag har deltagit i. Överst till vänster står namnet på kundföretaget, till höger om detta finns en lista med några av de teknologier och verktyg som jag använde. Sedan kommer en kort beskrivning av tillämpningen. Sist är min roll och tidpunkten för projektet angivet.
| SPP | Scrum, Agile, Lean, Kanban, Kaizen |
| I SPP:s metodlyft coachar och utbildar jag hela IT-avdelningen samt delar av verksamheten. |
| Min roll:
Scrum-coach |
(2012)
|
|
| SJ | Java, JBoss, Maven, Java EE |
| SJ hanterar många önskemål vid biljettbokningar. En automatiserad algoritm beräknar vilken plats resenären får. |
| Min roll:
Granskare |
(2011)
|
|
| Net Insight | Kaizen, Lean, Kanban, Agile, Scrum |
| Tillsammans med en kollega har jag lett införandet av Net Insights mycket ambitiösa program för att fånga upp, bereda och implementera alla typer av förbättringar. |
| Min roll:
Lean-coach |
(2010-2011)
|
|
| SF Bio | Java EE, EJB, Kanban, Swing, Scrum |
| SF:s biografer har Windows-baserade kassaapparater och Java-lösning för webben för att registrera alla köp av biljetter, godis mm. i AS400-servern |
| Min roll:
Utvecklare |
(2009-2010)
|
|
| Pragmatic Bookshelf | Pomodoro Technique |
| Min bok Pomodoro Technique Illustrated publicerades av Andy och Dave på Pragmatic Programmers LLC. Den har sedan översatts till Japanska, Kinesiska, Tyska och många andra språk. |
| Min roll:
Författare |
(2009)
|
|
| LinSoft | Extreme Programming, Refactoring, JUnit, Java |
| Jag utvecklade och höll jag kurs om metodiken i Extreme Programming på LinSoft i Linköping. Övningar och demonstrationer blandades med mer teoretisk kunskap om XP:s koppling till bland annat RUP och CMM. |
| Min roll:
Kurslärare och kursutvecklare |
(2002)
|
|
| Crisp | XSL-FO, XSL-T, XML, FOP, Java, Ant |
| En Crisp-konsults CV ska kunna genereras från en standardiserad XML-fil till snygga PDF- och HTML-dokument. |
| Min roll:
Arkitekt och utvecklare |
(2002)
|
|
| Rikspolisstyrelsen | Java, Ant, Java EE, JNDI |
| RPS definierar sin utvecklingsmiljö för hela utvecklingsavdelningen. I den ingår ett generellt Ant-system för automatisk byggning, deploy mm av Java EE-komponenter. |
| Min roll:
Utvecklare |
(2001)
|
|
| AdIntelligence | Java, JDBC, Swing, Voyager, RMI, Rational Rose, Sybase, JUnit |
| AdIntelligence utvecklar en börs för handel av annonsplatser på Internet. Köpare och säljare laddar ner en javaapplikation som kommunicerar via RMI med Applikationsservern. Objekt/relationmappning ingår. |
| Min roll:
Utvecklare |
(2000)
|
|
| Pejl | Pejl |
| Pejl är en välanvänd styrprocess som innehåller det mesta som man kan förvänta sig för att styra ett större företag eller en myndighet. En särart är tonvikten på checklistor. Företaget Pejl ger kurser för de som använder processen Pejl. |
| Min roll:
Kurslärare |
(2000)
|
|
| AMS | Java, Java EE, EJB, JDBC |
| AMS handlägger ansökningar om ekonomiskt stöd från EU till företag. Ärendena kan vara aktuella under en lång utredningstid. All information ska kunna spåras och associeras med ett ärende. Handläggarna är spridda över Sverige men delar på informationssystemet. |
| Min roll:
Arkitekt |
(2000)
|
|
| Fritidsresor | Java, Lotus Notes |
| Fritidsresor replikerar ut hotellbokningar till alla försäljningskontor runt om i världen. Ute på kontoren kan sedan säljarna se i en java-applet var och vilken typ av lediga sängar som finns att boka för olika datum. |
|
|
| Ericsson | C++, Unix/Solaris |
| Ericssons mest lönsamma avdelning är den som utvecklar ekosläckare. Den färdiga processorn ska sitta i växlar runt om i världen. Detta för att abonnenterna ska slippa höra sin egen röst i örat med en sekunds fördröjning. |
| Min roll:
Utvecklare |
(1998-1999)
|
|
| AIK | Java, C++, CGI, JavaScript, Perl, Unix/Solaris |
| AIK hade redan 1995 en fungerande e-handelslösning med intäkter över miljonen. Det dagliga nyhetsbrevet, utskickat från kansliet, har 14.000 prenumeranter. AIK säljer flest biljetter över Internet. |
| Min roll:
Arkitekt |
(1995-1999)
|
|
| RSV | Perl, Oracle, ClearCase, Unix/HP-UX |
| Rikskatteverket lagrar alla inkomna blanketter elektroniskt. Ofantliga datamängder transporteras till de långsiktiga lagringsmedierna. |
| Min roll:
Projektledare och mentor |
(1998)
|
|
| RSV | Java, C++, Bea Tuxedo, Sockets, Unix/HP-UX |
| Handläggare på Rikskatteverket kan när som helst visa valfri inlämnad deklaration på skärmen och sedan lagra den med anteckningar. Detta kräver mycket hög kapacitet i datatransporten och dessutom hög säkerhet. |
| Min roll:
Utvecklare |
(1997)
|
|
| FFV | C++, Sockets, Unix/Solaris |
| Avancerad processhantering. Unix-processer som samverkar med testprogram. |
| Min roll:
Arkitekt |
(1995)
|
|
| Ericsson | C++, Unix/Solaris |
| Ett polymorft klassbibliotek för instrumentoberoende testprogram. |
| Min roll:
Arkitekt |
(1994)
|
|
| Ericsson | C++, Unix/Solaris |
| Specialskrivna drivrutiner styr avancerade generatorer och signalanalysatorer för PDH och SDH. |
| Min roll:
Utvecklare |
(1993)
|
|
|