Crisp AB Födelseår: 1969 I branschen sedan: 1993 Roller: Systemutvecklare, Scrum Master Utbildning: Filosofie Magister i Datalogi (Uppsala Universitet) Senior utvecklare och Scrum Master magnus.axelqvist@crisp.se +46 708 33 63 28 Sammanfattning Magnus har 19 års erfarenhet som systemutvecklare, med tyngdpunkt på Java, men även praktisk erfarenhet av språk såsom Erlang, C++ och Prolog. De senaste 6 åren har Magnus intresserat sig för test-driven systemutveckling i synnerhet och agil systemutveckling i allmänhet och har ofta haft rollen som Scrum Master parallellt med utvecklarrollen. Som Scrum Master är Magnus uppskattad både för sin kreativitet och positiva inställning som bidrar till god stämning inom teamet. Han jobbar kontinuerligt med att förbättra hur teamet arbetar, allt för att korta ledtiderna och därmed få snabbare återkoppling från produktägare. Vidare är Magnus speciellt intresserad av testautomatisering samt Continuous Integration/Delivery (CI/CD). Som systemutvecklare har Magnus lång erfarenhet och har arbetat i flertal plattformar och språk, där tyngdpunkten de senare åren har varit JEE och Linux. Projekt Paxport AB, apr 2012 sep 2012, systemutvecklare, Scrum Master Projekt: Utveckling av företagets nästa generation webbshop/plattform för försäljning av extratjänster till charterresenärer. Syftet med projektet var att ersätta de ca 20 webbshopparna med endast en, mer modern, webbshop som kan konfigureras per kund med avseende på utseende och funktionalitet. Roll: Förutom utvecklare och Scrum Master i teamet, tog Magnus tillsammans med produktägaren fram user stories för en första version (eng. Minimum Viable Product, MVP) samt en roadmap för de features som den slutgiltiga produkten ska stödja. Teknik: Wicket, JBoss, Java EE, PostgresSQL, JQuery, CSS, HTML, Maven, Eclipse, Hudson, Subversion, Trac, Fitnesse, WebDriver Metod: Scrum, agil estimering & planering, testdriven utveckling, CI
Paxport AB, jan 2012 apr 2012, systemutvecklare, Scrum Master Projekt: Utveckling av en webbapplikation för utskick av personliga nyhetsbrev till befintliga charterresenärer. Syftet med projektet var att ytterligare öka försäljning av extratjänster genom att informera resenärerna, i god tid innan avgång, vilka extraprodukter som finns att tillgå. Kundinformationen hämtas från befinligt egenutvecklat system (se tidigare projekt). Utskicken sker med hälp av en (REST-baserad) webbtjänst från en tredjepartsleverantör. Roll: Utvecklare samt Scrum Master i teamet. Magnus tog även fram, tillsammans med produktägaren, user stories för första versionen (MVP) samt för den slutgiltiga produkten. Teknik: Vaadin, PostgresSQL, Maven, Eclipse, Hudson, Java EE, Subversion, REST, Balsamiq, Trac, Fitnesse, Selenium Metod: Scrum, agil estimering & planering, testdriven utveckling, CI Paxport AB, sep 2011 dec 2011, systemutvecklare Projekt: Kontinuerlig förbättring en backoffice applikation. Syftet med projektet är att minimera onödigt manuellt arbete för användarna av systemet, vilket innefattar ändringar i klient- och serverdelen av systemet. Då detta även innebär ändringar av vitala delar av systemet, läggs stor vikt på acceptans- och regressionstester med hjälp av Fitnesse. Roll: Utvecklare. Teknik: Java Swing, JBoss, Java EE, PostgresSQL, Maven, Eclipse, Hudson, Subversion, Trac, Fitnesse Metod: Kanban, agil estimering & planering, testdriven utveckling, CI Paxport AB, mar 2008 sep 2011, systemutvecklare, Scrum Master Projekt: Utveckling av ett backoffice samt kundanpassade webbapplikationer för försäljning av extratjänster för charterreseärer. Utöver enklare tjänster såsom extra baggage, innefattade uppgiften att samla in säkerhetsinformation för USA-resenärer samt incheckning av passagerare (eng. Internet Check-in). Webbapplikationerna baserades på ramverket Wicket och server-lagret på JBoss/EJB3/JPA. Backoffice utvecklas i Java Swing/Web Start. Systemet byggdes löpande vid varje incheckning med hjälp av Hudson/Maven 2. Under denna tid experimenterade teamen en del med Scrum och införde några Kanban-regler såsom begränsning av antalet pågående arbetsuppgifter samt att sprintens innehåll kunde ändras löpande. Roll: Magnus var både utvecklare och Scrum Master i ett av teamen. Teknik: Java Swing, JBoss, Java EE, PostgresSQL, Maven, Eclipse, Hudson, Subversion, Trac Metod: Scrum/Kanban, agil estimering & planering, testdriven utveckling, CI
Visionael AB, sep 2007 feb 2008, systemutvecklare, Scrum Master Projekt: Medlem samt Scrummaster i ett mindre team som vidareutvecklade ett system för att automatisera driftsättning av VPN i större nät. I samband med detta ersattes byggverktyget från ant till Maven. Roll: Utvecklare, Scrum Master Teknik: Java EE, Glassfish, Oracle, Maven, Eclipse, Subversion Metod: Scrum, agil estimering & planering, testdriven utveckling, CI Aftonbladet Nya Medier AB, maj 2007 aug 2007, systemutvecklare Projekt: Arkitekt och utvecklare av den webbapplikation som användes i "Mustaschkampen". Mustaschkampen var en kampanj i samarbete mellan Aftonbladet och Cancerfonden. Svenska folket hade möjlighet att dagligen uppdatera bilden (via MMS) på sin mustasch samt att rösta på andras mustascher (via SMS). Webbapplikationen baserades sig på JSP/Sevlet-utveckling och använde Hibernate/MySQL för att persistera användarinformation samt röster. Utvecklingen skedde i sann Scrum och TDD-anda, där HttpUnit användes för automatiska webb-tester. Applikationen byggdes med Maven 2. Roll: Arkitekt, utvecklare Teknik: JSP/Servlet, Hibernate, MySQL, HttpUnit, Maven, Eclipse, Resin Metod: agil estimering & planering, testdriven utveckling Compound Systems AB, okt 2006 apr 2007, systemutvecklare Projekt: Medlem i ett team som utvecklade ett system för bokning av bland annat flygstolar och specialbagage. Systemet var byggt i java, där servertjänsterna exponerades via EJB3. Systemet inkluderade både tunn och rik klient. Magnus implementerade en EJB3-tjänst för generering av rapporter samt ett bakgrundsjobb som synkroniserade informationen mellan två system. Det äldre systemet var baserat på SQL Server och exponerade informationen via en webbtjänst. Det nya systemet använde PostgreSQL som databashanterare samt JPA som ORM-lösning. Systemet driftsattes i JBoss med SUSE som plattform. Roll: Utvecklare Teknik: JBoss, EJB3, Jasper Reports, SQL Server, PostgresSQL, JPA, Eclipse, CVS Metod: iterativ och testdriven utveckling Trafik i Mälardalen (TiM), sep 2006, systemutvecklare Projekt: Utvecklare av ett system i Java för uppdatering av prisinformation för länsöverskridande månadskort som presenteras på Internet (www.timinfo.se). Arbetet innefattade inläsning av prisinformation från centrala system samt generering av HTML-sidor som användes av befintlig ASP applikation. Roll: Utvecklare Teknik: FreeMarker, Java, Subversion, Maven, Eclipse Metod: XP, iterativ och testdriven utveckling
Extenda, jan 2004 sep 2006, arkitekt, systemutvecklare Projekt 1: Arkitekt och utvecklare av en övervakningsprodukt baserat på öppna (de facto) standarder såsom log4j och JMX. Produkten stödjer deklarativ specificering av händelser i XML, ett API för instrumentering av J2SE/J2EE-applikationer, distribution av händelser med hjälp av JMS, fjärrstyrning av applikationer via RMI, persistent lagring av händelser, samt statistik. Övervakningskonsolen var Swing-baserad. Produkten driftsattes i applikationsservern JBoss Application Server, där tjänsterna exponerades via EJB. Databashanteraren som användes var MySQL med Hibernate som ORM-verktyg. Arkitekturen var komponentbaserad, där det egenutvecklade komponentramverket hade likheter med det idag populära ramverket Spring Framework. Utvecklingen skedde i Eclipse integrerat med versionshanteringssystemet Perforce. Projekt 2: Deltog i arbetet med att analysera och förbättra prestandan av en JEE-baserad backoffice-produkt. Speciellt var det fokus på att förbättra implementationen av persistensmekanismen som var baserad på Hibernate och MySQL. Prestandaanalyserna utfördes med hjälp av JProfiler. Senare delen av perioden deltog Magnus som utvecklare i det team som ansvarade för att kvalitetsäkra denna produkt. Roll: Arkitekt, utvecklare Teknik: JBoss, JXM, JMS, JEE, Swing, MySQL, Perforce, Hibernate, JProfiler Metod: iterativ och inkrementell systemutveckling Logic, jun 2004, arkitekt, systemutvecklare Projekt: Utveckling av en MIDP-baserad bluetooth applikation för telefonen SonyEricsson P900. Applikationen lät användaren dynamiskt kontakta andra användare via bluetooth och därefter utbyta textmeddelanden. Roll: Arkitekt, utvecklare Teknik: Eclipse, MIDP Metod: iterativ och inkrementell systemutveckling Befattningar Crisp AB, 2004 -, konsult Appmind Software AB, 2002 2004, arkitekt, utvecklare Tekniskt kundansvarig för Appminds viktigaste kund, OM Technology. Inte sällan innebar det kundanpassningar av produkten. Bland annat utvecklade Magnus ett XML-verktyg åt OM Technology för att effektivisera visualiseringen av stora, komplexa system i HP Service Navigator. För att reducera den initiala kostnaden för Appminds kunder, utvecklade han också Appminds egna övervakningskonsol i Java/Swing. Positionerade produkten gentemot nya teknologier, såsom log4j, Java Util Logging, JMX/J2EE Management, Web Services, och JCA. Ansvarig för AppMinds Java-API, byggmiljön på UNIX, samt att produktens källkod var skriven med hänsyn till både Windows- och UNIX-miljö. Ansvarig för att ta fram arkitekturplan i relation till produktplaneringen och kommunicera denna inom bolaget och till externa partners och kunder. Stöd för systemingenjörerna i arbetet med lösningsarkitektur för kundprojekt.
Twobyfour Software AB, 1998 2002, arkitekt, konsult, utvecklare Deltog i utvecklingen av produkten AMT (Application Management Tool) som senare utmynnade i produkten AppMind. Som konsult arbetade Magnus främst åt Ericsson med att utveckla en så kallad mediaserver som ansvarade för att koppla samtal mellan det publika telefonnätet (PSTN) och H.323- klienter (eng. CTI server). Som konsult kom Magnus också i kontakt med finanssektorn via ABN-AMRO Software, där han utvecklade ett antal program för att hämta börsinformation från bland annat Oslo Börs. Symsoft AB, 1994 1998, konsult Implementerade en VoIP gateway som ingick i produkten PhoneDoubler. Produkten gav slutanvändarna tillgång till det publika telefonnätet under pågående datatrafik via modem. Ansvarade för design och utveckling av en CTI (Call Telephony Integration) server som var en central del i en Call-Center produkt. I detta arbete ingick också design av ett skriptspråk för att specificera IVR-baserade telefonitjänster samt tillhörande tolk för detta skript. Servern implementerades i Erlang. Ansvarade för att anpassa Objectory till utveckling av IN (Intelligenta Nätverk) -tjänster. Var med i utvecklingen av en SCP (Service Control Point) baserad på standardprodukter (Java, ObjectStore, Solaris). Utvecklade vidare ett antal IN-tjänster på denna plattform, bland annat VPN (Virtual Private Network). Utvecklade en Motif-applikation som var en del i ett större dokumenthanteringssystem. Scandface AB, 1993 1994, arkitekt, utvecklare Som förlängning examensarbetet -93, utvecklade Magnus ett verktyg i Windows för att öka kvalitén och produktiviten hos manuella översättare av EU-direktiv. Verktyget implementerades i C++ samt Prolog. Utbildning & kurser Filosofie Magister i Datalogi (Datavetenskapliga linjen, Uppsala Universitet) Test-Driven Development & Refactoring Techniques Crisp/Michael Feathers Test-Driven Development Crisp/Ron Jeffries & Chet Hendrickson Certifierad Scrum Master, Citerus Unified Process, Precipio Developing J2EE Compliant Applications, SUN Java Application Programming, SUN Win32, ComputerGarden Windows NT 3.5 with C, ComputerGarden Advanced C++, Enea Data
Teknisk kompetens Java/JEE JMX, JMS, RMI, EJB3, JAXP, JNI, JAX-RS/Jersey, Vaadin, Wicket, Webwork 2, Struts 2, Servlet/JSP, Swing, MIDP, Java APIs for Bluetooth (JSR 82), JBoss, Glassfish, JPA/Hibernate, Spring Framework Webb och XML HTTP, REST, XML, HTML, CSS Datorspråk Java, C/C++, Erlang, SQL, Prolog Metoder/Processer Lean & Agil mjukvaruutveckling, Scrum, XP, TDD, CI,