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