CV/Konsultprofil – Andreas Nilsson Kontakt- Andreas Nilsson uppgifter Mail [email protected] Telefon +46 70 733 58 18 Utbildning Kungliga Tekniska Högskolan, Stockholm Civilingenjör, informations- och kommunikationsteknik • Studieområde: Distribuerade System Kunskaper Expertisområden Testdriven utveckling Systemutveckling Systemdesign och –arkitektur Språk Java, Java SE (Swing, AWT, concurrency API, JavaMail, NIO, RMI, JDBC, JNDI, XML etc), Java EE (Web Services, EJB2.X, EJB3, JSP, servlets, JSF, JMS, JPA), Spring, WebFlow, Hibernate, Java ME (MIDP, JSR-179, JSR-82), JAXB, JNI, Junit, JMock, EasyMock, JavaCC, .NET (C#, C++/Cli, Windows Forms, ASP.NET, Windows Communication Foundation, Web Service Enhancements 3.0) C/C++ (Win32, ActiveX, WDM, Browser Extensions, Windows XP Platform SDK, Windows XP/2K DDK, ActiveSync, WinSock), JavaScript, Visual Basic, Erlang, Oz, Assembly m.fl. Design UML, design patterns Utvecklingsmetoder eXtreme Programming, testdriven utveckling, Scrum Applikations- och webservers BEA WebLogic , Jboss, Glassfish, Tomcat Mark up-språk XML, XML Schema, HTML/DHTML, SVG, WML Projektverktyg SVN, CVS, CruiseControl, JIRA, Bugzilla, Maven, ANT Databaser PostgreSQL, MySQL, Oracle 9G/10G Telekom GPS/GIS, bluetooth, mobila applikationer Protokoll SIP, SDP (Service Discovery Protocol [Bluetooth], Session Description Protocol [IP-telefoni]), SOAP, HTTP, SMTP, Garmin, NMEA, TCP, IP, UDP, ARP, Ethernet m.fl. Urval av kvalifikationer Spelbolag (namn konfidentiellt) Q3 2007 – Q1 2008 Systemutvecklare Företaget tillhandahåller en webtjänst för sportspel, poker, casino etc och var då jag tillträdde i slutskedet av utvecklingen av en ny applikation. I samband med releasen hade även utveckling av ett tillhörande back office-system påbörjats med syfte att implementera spellogik, site-administration, finans, stöd för kundsupport etc. Min uppgift i projektet var framförallt utveckling i back office systemet, men fick i ett senare skede det främsta ansvaret för utvecklingen av produkten. Utöver det fick jag även ett betydande ansvar i produkten som helhet, inte enbart back office, och genomförde arkitekturella förändringar i systemet, i syfte att förenkla såväl utvecklingsmiljö som produktionsmiljö. Tekniker: Java (SE/EE), Spring, Hibernate, EJB, JMS, Spring WebFlow, SiteMesh, Ajax, JSP, JUnit, EasyMock. Verktyg: BEA WebLogic 9.2, Oracle 10g, Intellij IDEA, Maven, JProfiler Metoder: Scrum Franson GpsGate Mobile Q4 2006 – Q1 2007 Systemutvecklare Franson Technology AB är ett Stockholms-baserat produktföretag som utvecklar GPS/GIS- samt Bluetooth-relaterad mjukvara. Franson GpsGate Mobile möjliggör positioneringstjänster såsom vehicle/buddy tracking och fleet management med hjälp av en GPRS- och bluetooth-kapabel mobiltelefon samt en bluetooth-GPS. Mitt ansvar omfattade design och implementation av produkten. Kraven på applikationen var testbarhet, utbyggbarhet samt tolerans mot volatila anslutningar. Tekniker: Java/JavaME, XML, Ant, Bluetooth, GPS. Miljöer: Java ME (SDK från Sony Ericsson, Nokia, Motorola, Sun), IntelliJ IDEA. Franson GpsGate PlugIn Pack Q3 2006 – Q4 2007 Systemutvecklare Ansvarade för utveckling av GpsGate PlugIn Pack åt Franson Technology AB, med mål att tillgängliggöra rikare positioneringstjänster i Franson GpsGate 2.0. Funktioner som implementerades inkluderar integration med Google Earth för real-time tracking, verktygsfält i Internet Explorer och Mozilla Firefox för (i) tillgång till GPS via JavaScript från en godtycklig web-sida och (ii) real-time tracking i Google Maps. Tekniker: C/C++, ActiveX, XPCOM, JavaScript, HTML/DHTML. Miljöer: Windows, Microsoft Internet Explorer, Mozilla Firefox, Franson GpsGate 2.0 Q1 2006 – Q3 2006 Systemutvecklare GPS tillhör en av de snabbast växande marknaderna som i dagsläget domineras av stora aktörer som generellt avviker från standarer och tillhandahåller proprietära och ofta hemliga protokoll. Franson GpsGate 2.0 ämnar att överkomma många av de tillkortakommanden som finns hos GPS-hårdvara och tillhörande mjukvara genom att konvertera proprietära protokoll till standardprotokoll, tillåta användning av en enskild GPS i flera applikationer samtidigt, dela GPS över ett stort antal medium etc. Jag hade en nyckelposition i utvecklingen av Franson GpsGate 2.0 och utvecklade bland annat stöd för Garmins proprietära protokoll för anslutning till Garmin-GPS, emulering av Garmin-enheter för användning av godtycklig GPS med Garmin-specifik mjukvara, filtrering av GPS-data, användning av och delning av GPS över ActiveSync (t.ex. för att använda GPS inbyggd i Pocket PC), delning av GPS över bluetooth (emulering av bluetooth-GPS). Jag portade även den slutliga applikationen till Pocket PC. Stabilitet var ett mycket stort krav på produkten, då den i dagsläget används av t.ex. NASA och liknande kunder. Produkten vann ”Best Software Award” av Pocket PC Magazine 2006 och 2007. Tekniker: C/C++, ActiveX, ActiveSync, Bluetooth (Microsoft, Widcomm), WinSock Miljöer: Windows 95/98/NT/2K/XP/Vista, Pocket PC, Windows Mobile. Förstudie GpsGate Server Q4 2005 - Q1 2006 Systemutvecklare, förstudie Utförde en förstudie gällande krav på och design av en server-produkt för hantering av användarpositioner. Syftet var att ta fram en produkt som tillät små till medelstora företag och organisationer att spåra en mängd människor, fordon etc i realtid. Förstudien innefattade en övergripande arkitektur, organisatoriska faktorer, problemställningar samt en referensimplementation. Tekniker: .NET Miljöer: Windows XP. Franson BlueTools Q3 2005 – Q4 2005 Systemutvecklare Bluetooth är en spännande men komplex teknologi för spontan och trådlös sammankoppling av enheter. Hårdvara levereras generellt med mjukvara som exponerar ett API tillgängligt via C/C++. Syftet med BlueTools är att exponera ett intuitivt gränssnitt mot bluetooth oberoende av den underliggande bluetooth-stacken. Gränssnittet är tillgängligt via .NET (C#, Visual Basic .NET) och C/C++. Mitt ansvar omfattade design och implementation av produkten, och jag implementerade stöd för Microsofts bluetooth-stack, Widcomms bluetooth-stack, gränssnitt via .NET samt ett tunt Java-lager för testning av interoperabilitet. Tekniker: C/C++, Java, JNI, .NET (C#), Win32, WinSock, Widcomm bluetooth SDK, Windows XP Platform SDK. Miljöer: Windows 95/98/NT/2K/XP/Vista, Pocket PC, Windows Mobile 2003/2005. CoordTrans 2.0 Q2 2005 – Q3 2005 Systemutvecklare Hantering av geografisk information är generellt knutet till ett specifikt (lokalt) koordinatsystem för att få en så god representation som möjligt av en position inom ett geografiskt område. CoordTrans 2.0 används för att transformera koordinater mellan en stor mängd koordinatsystem. Jag utvecklade produkten från den existerande kodbasen tillgängligt från CoordTrans 1.0. Funktioner som implementerades inkluderade lagring och hantering av koordinatsystem, en databas med tusentals koordinatsystem, en regular expressionimplementation för tolkning av koordinater i filer samt formatering av koordinater till filer etc. Tekniker: C/C++, Visual Basic, SQL, ActiveX, GIS. Miljöer: Windows 95/98/NT/2K/XP/Vista. Systemutvecklare Franson GpsGate 1.1/2.0 tillhandahåller möjligheten att samtidigt använda en GPS i flera applikationer. Nyckeln i detta är virtuella serieportar, som applikationer ansluter till som vanliga serieportar. Jag utvecklade en drivrutin för virtuella serieportar specifikt för Windows 95/98/ME. Tekniker: C, Virtual Device Driver Miljöer: Windows 95/98/ME Franson GpsGate 1.1 Q1 2005 – Q2 2005 Franson GpsTools Q1 2005 Systemutvecklare Franson GpsTools tillhandahåller möjligheter för utvecklare att på ett enkelt sätt använda sig av GPS/GIS i sina applikationer. Detta innefattar t.ex. uppkoppling mot GPS, uppritning av kartor, konvertering av positioner mellan olika koordinatsystem etc. Jag utvecklade stöd för överföring av data till och från Garmin-GPS:er med hjälp av Garmins proprietära protokoll. Tekniker: C/C++, C++/CLI Miljöer: Windows 95/98/ME/NT/2K/XP Franson Tracker Q4 2004 Applikationsutvecklare Franson Technology AB utvecklar GPS/GIS-relaterad mjukvara dels för slutkunder och dels för utvecklare. För utvecklare finns framförallt Franson GpsTools som underlättar t.ex. uppritning av kartor, hantering av GPS-positioner och liknande. Franson Tracker Webb-butik, Viole Q3 2002 Klient-API, milliSolutions Q2 2001 – Q4 2001 syftade till att utgöra en tillämpning av dessa utvecklingsverktyg dels som produkt till slutkund och dels som ”showcase” av Franson GpsTools. Mitt ansvar omfattade design och implementation av produkten och implementerade bland annat uppritning/inspelning av spår, bokmärkning av positioner etc. Tekniker: C# (.NET Compact Framework) Miljöer: Pocket PC Systemutvecklare Utvecklade en webb-butik åt en blomsterhandel för att möjliggöra marknadsföring och beställningar via Internet. Webb-butiken innehöll stöd för kundregistreringar, produktlistningar, produktrealisationer, ett administrations-verktyg med CMS för hantering av produkter, kunder, artiklar etc. Tekniker: EJB, JSP, Servlets Miljöer: JBoss, J2SE, J2EE Applikationsutvecklare milliSolutions utvecklar milliObjects, en plattform för förenklad utveckling av mobila, anslutna applikationer. Företaget har idag även dotterbolaget milliQuiz som levererar domänspecifik ”quiz” t.ex. till DN, Expressen, SF etc. Ansvarade för utveckling av ett klient-API samt en tillhörande tillämpning mot företagets ”e-learning”-system. Klienten omfattade rendering av grafiska komponenter, implementering av komponentbeteenden, animationer etc, snabb rendering av SVG med mera. Klient uppvisades på PC World Expo i Tokyo 2001. Tekniker: SVG Miljöer: J2SE Open Source-project JDPA Q2 2008 Portal Q4 2007 Java Declarative Programming API tillhandahåller stöd för deklarativ programmering i Java med hjälp av Java-annotationer. Utvecklare kan enkelt utveckla egna deklarationer samt utnyttja jdpa-validation för parametervalidering, gränssnittskontrakt, design by contract etc. Tekniker: Java SE, Maven 2 URL: http://jdpa.sourceforge.net Ramverket Portal integrerar enkelt Ajax i den moderna Java enterprise-stacken genom att transparent generera JavaScript-proxies mot vanliga Java-instanser (POJOs). Utöver detta erbjuder ramverket så kallad dependency injection kompatibel med JSR-250, stateless dependency injection för injicering av kontextuell information, integration med Spring, JNDI etc. Tekniker: Spring 2, Java Servlets, JavaScript, JavaCC, JUnit, JMock, JavaScript URL: http://webportal.sourceforge.net