INTRODUKTION Johan är en erfaren och mycket uppskattad mjukvaruutvecklare inom hårdvarunära mjukvara, embedded Linux samt applikationsmjukvara. Genom sin breda erfarenhet så arbetar Johan gärna i alla faser i projekt från förstudier till att lösa supportärende på färdiga produkter. Johan får ofta roller som problemlösare och arbetar också som uppskattad lagspelare i utvecklingsprojekt. Johan är van med att jobba nära hårdvaran och förstår dess samspel med mjukvaran. Kunderna uppskattar Johans öppna sätt att kommunicera och tycker att han är engagerad i deras lösning och gärna tar tag i problem som måste lösas. På sin fritid är Johan intresserad av vinprovning och matlagning. På hösten jagar Johan älg om tillfälle ges. KOMPETENSOMRÅDEN - Mjukvarukonstruktion - Embedded SW - Produktutveckling - Systemutveckling - Inbyggda och resurssnåla system - ARM Cortex - Oscilloskop - Embedded Linux METODER OCH VERKTYG Mjukvaruutvecklingsverktyg - C, C++, Java, C# - Gcc, Mingw, Visual C++ - Emacs, Eclipse, Visual Studio - Makefile, shellscript Versionshantering/bugghantering - Git, Subversion - Bugzilla, Jira, Kanban Flow, Mantis Felsökningsverktyg - JTAG, Trace - Wireshare - Oscilloskop & logikanalysator UTBILDNING - Civilingenjörsprogrammet Informationsteknologi, Uppsala universitet (1996-2001) SPRÅKKUNSKAPER - Svenska - modersmål - Engelska - mycket god - Tyska - enklare konversation Sida 1/5
ANSTÄLLNINGAR - Konsult, Egen verksamhet (2015) - Konsult, Devex Mekatronik AB (2013-2015) - Konsult, Combitech AB (2012-2013) - Konsult, Embeddedart AB (2010-2012) - Konsult, Qivalue Technologies AB (uppköpta av Enea AB) (2006-2010) - Systemutvecklare, CC Systems AB (2001-2006) EXEMPEL PÅ UPPDRAG Profoto AB 2014-2015 Uppgifter: Förstudie för nya produkter, hårdvarunära mjukvaruutveckling, felsökning och buggrättning Tekniker: Bluetooth smart, Arm Cortex, Atmel AVR, Visual studio, QT/C++ Johan genomförde en förstudie för att införa nytt trådlöst gränssnitt i blixtprodukter för att kunna koppla iphone appar till blixtgeneratorer. Tekniker som utvärderades var Bluetooth Low Energy, BLE samt Wifi. En enklare testprototyp togs fram för att verifiera resultatet. Johan utvärderade olika Arm Cortex (M0+/M4) processorer för att kunna välja processor till ett ny blixt som skulle ha en TFT matrisskärm. Felsöktning och bugrättning av en PC applikation som används av fotografer för att konfigurera blixtar. Applikationen är skriven i C++/QT och byggs för både Windows & Mac. En programmeringsfunktion för PIC processorer togs fram som integrerades i en blixt för att kunna uppdatera enheter i fält. Programmeringsfunktionen kör på en AVR. Motion Display 2014-2014 Uppgifter: Portering av kod Tekniker: Arm Cortex, Svn, Keil Johan porterade firmwarekod från en NXP Arm cortex M0 till en STM32 Arm Cortex M0+ processor. Koden optimerades för att utnyttja energisparfunktioner i processorn. Sensidose AB 2013-2014 Uppgifter: Utveckling av medicinteknisk applikation samt plattform Tekniker: Android, Java, C, Linux, U-boot, SVN, Cortex A Johan arbetade sin mjukvaruutvecklare hos Sensidose som tog fram ett läkemedel för Parkinsons sjukdom samt en elektronisk dosautomat för detta läkemedel. Johan arbetade med användargränssnittet som är en Androidapplikation skriven i Java. Enhetstest mha JUnit användes för att lättare kunna verifiera delar av koden. Johan arbetade med vidareutveckling av bootladdare U-boot, anpassning av Linuxkärna samt Sida 2/5
plattformsanpassning av Android OSet som körde på en egenutvecklad plattform baserad på TI OMAP Cortex A8. Johan dokumenterade tekniska lösningar till produktdokumentationen. Firmwareutvecklare Samsung Nanoradio Design Center 2012-2013 Uppgifter: Firmwareutveckling Tekniker: Wifi, Embedded SW, Linux, C, NPS RTOS, Norc, Make, GCC, Wireshark Johan arbetade som firmwareutvecklare hos chiptillverkare av WiFi hårdvara. Johan utvecklade firmware för ett trådlöst headset samt en generell kommunikationsmodul baserat på Wifi-direct/802.11. Johans huvudsakliga roll var att portera kod tillen resurssnålmiljö med en eget minimalt RTOS samt verifiera/testa funktionalitet. Arbete med att portera TCP/IP-stack LWIP, drivrutiner, wpa supplicant samt libupnp. Tidigare hade endast wifi-firmware exekverat på denna cpu, men nu skulle hela kommunikationsstacken läggas in. Field Application Engineer Nanoradio AB 2010-2012 Uppgifter: Vidareutveckling och support av drivrutiner för Wifi Tekniker: Linux, Android, WiFi, Wireshark, SVN, Git, Oscilloskop Johan arbetade med integration på kundplattformar, felsökning och support av WiFi drivrutiner. Företaget utvecklar WiFi hårdvara som integrerades hos kunder som utvecklade mobilplattformar. Arbetet innebar support av kunder som integrerar dessa i Android och Linuxplattformar, detta har skett både på distans från Sverige och på plats hos kunder i Asien. Drivrutinsutveckling i Linux, prestandaoptimeringar, integrationsarbete i Android, analys av felrapporter från kund. Felsökning har skett med Wireshark nätverkssniffer, logik analysator och oscilloskop. Sensidose AB 2008-2008 Uppgifter: Mjukvaruutveckling, felsökning av hårdvara, board bring up samt BSP Tekniker: Linux, C, Openembedded/angstrom, GTK+, SVN, U-boot, ARM9 Johan utvecklade en applikation samt plattformsmjukvara för en prototyp till ett medicinteknisk automat. I projektet togs ettegenutvecklat kort med Atmel AT91SAM9263 processor fram. Johan arbetade med board bring up. Johan utförde anpassningar av bootladdare U-boot och Linuxkärna för bla display. Johan tog fram rootfilsystem mha openembedded/angstrom för grafisk miljö för X/GTK+ mha av Open embedded. Johan utvecklade applikationen för användargränssnittet mha GTK. Attana AB 2009-2010 Uppgifter:, konfiguration av embedded linux Sida 3/5
Tekniker: C, Linux, HTTP-server SVN, U-boot, ARM9 Johan ansvarade för applikationsutveckling, drivrutinsanpassning samt driftsättning av hårdvara för instrument med Linux. Applikationen fungerar som en kommunikationgateway mellan en PC och två DSP-moduler som ansvarar för datainsamling. Kommunikationen använder en USB anslutning som emulerar en serieport. Produktionstest och kodladdning av processorer togs fram som en integrerade del av produkten i form av en webserver. Embedded linux specialist Biotage AB 2007-2007 Johan fick uppdrag att komma in och stödja ett projekt för ett analysinstrument för DNA sekvensiering där de behövde kompetensförstärkning inom ett pågående projekt. Johan integrerade en bootloader U-boot på befintlig Atmel AT91RM9200 hw. Johan uppdaterade till en ny version linuxkärna samt patchade den för att lösa hw-problem. Johan tog fram en stabil byggmiljö med hjälp av make som var integrerad med SVN samt Cruise Control för kontinuerliga byggen. Johan vidareutvecklade en applikation i C++ som använde sig av Nano-X gui bibliotek som kördes på analysinstrumentet. Kundprojekt inhouse 2006-2010 Konsult inom embedded Linux för olika uppdragsgivare inhouse. Förstudier, plattformsutveckling, applikationsutveckling i C/C++, test och dokumentation. Arbetet bestod att på konsultbasis hjälpa kunder med och i projekt där de använde Linux som plattform. Framtagning av BSP för linux kernel samt user space applikationer. Ett antal projekt har inneburit driftsättning av egenutvecklad hårdvara med ARM processorer och periferienheter. Detta innefattar felsökning på hw-nivå med JTAG, Oscilloskop, logikanalysator, I2C/SPI-adapter. Utveckling och anpassning av bootladdare (U-boot samt RedBoot), linuxkärna, device drivers för hårdvara. Utveckling av Linuxplattformar i flera projekt där man vill ha en linuxplattform som är annpassad till en specifik applikation. Urval av paket som tex busybox, byggssystem med gnu make, konfiguration, integration och testning. Systemutvecklare CC Systems 2001-2006 Ett antal olika projekt som systemutvecklare åt kunder inom industri som BAE Systems Hägglunds, ESAB, Rolls Royce Marine & JohnDeere. Systemen bestod ofta av distribuerade styrsystem med CAN som kommunikationsmedium där stora delar simulerades i mjukvara. Utveckling bestod i att ta fram PC-programvara, stödprogramvara för PC till systemen, programvara till mikrokontrollers samt porteringar av tidigare existerande lösningar. Arbete i Windowsmiljö med utvecklingsverktyg för Windows. Microsoft Visual Studio C++/MFC,Borland Builder C++ och Borland Delphi. Underhåll, utredningar av kundkrav, tekniskt marknadsstöd, vidareutveckling, kundsupport, Sida 4/5
kravhantering, test och felsökning av Linuxbaserade datorplatformar. Applikationsutveckling i C/C++ för Linux. Systemanalytiker för ett vapensystem till svenska försvaret. Arbetet bestod i att ta fram dokument och beskrivningar för bl a fordonsdiagnostik. Handledare för fyra st exjobb inom Linux. Portering av två distribuerade styrsystem till Linux, driftsättning av Linux på en Xscaleplattform samt driftsättning av Linux på en fordonsdator. Exjobb med titeln "Java in distributed control systems". KURSER I URVAL - Praktiskt projektledning Wenell, 2012. - Certified Scrum Master, Crisp, 2011. - C# &.Net, Enea, 2010. - Rhapsody & UML, Nohau, 2005. - Projektledning med RUP, 2001. Sida 5/5