DANIEL SKOGQUIST ÅBORG 0765 - 71 91 65 – [email protected] github.com/d2aborg – linkedin.com/in/d2aborg Mål Erfaren mjukvaruutvecklare söker tjänst som Tech Lead eller Senior Systemutvecklare inom Scala. Önskar företag med kundfokus, starka värderingar, och känsla för estetik. Introduktion Programmerare och datorentusiast i 27 år. Professionell mjukvaruingenjör i 15 år, och Team Leader 2 år. Kollaborativ med fokus på självorganiserande Agila team. Uppmärksam på detaljer och känsla för kvalitet och estetik. Passion för bra programvara och sunda tekniska principer. Färgrik bakgrund i olika språk och plattformar. Svensk medborgare med flytande svenska och engelska. Bott och arbetat i Sverige, Storbritannien, USA och Kanada. Ledarskap: Lagledande, Initiativtagande, Mentorskap, Scrum, Kanban, Agile, Open Source Backend: Scala, Java, J2EE, JBoss, Servlet, OO, FP, API, Scripting, Unix, Design, Arkitektur, Distribuerade system, Hög tillgänglighet, Molntjänster, Plattformsoberoende utveckling Frontend: HTML, CSS, JavaScript, Tomcat, J2EE, GWT, XSLT, JSP, Webbutveckling CI: Testing, Jenkins, Team City, Feature Branches, Git, SVN, Maven, Ant Databaser: SQL, MySQL, Oracle, PostgreSQL, NoSQL, Cassandra, XQuery, XPath Bakgrund Systemutvecklare – SpeedLedger (Göteborg, 2016) Utvecklade SpeedLedgers system för online-bokföring för små företag. Senior Systemutvecklare – Benify (Göteborg, 2015 - 2016) Utvecklade Benifys system för förmånsbehandling i små till stora företag. Team Leader – Ocado (Storbritannien, 2012 - 2015) Ledde Routing Systems-teamet med 8 ingenjörer och senare Geospatial Systems-teamet med 5. Software Engineer – Google (London, 2010 - 2012) Designade och utvecklade RESTfullt API för Google AdSense. Principal Software Engineer – EMC (Storbritannien, Kanada, USA, 2004 - 2010) Designade och utvecklade en central server i Java EE för katastrofåterhämtning. Chief Designer – Netengines (London, 2001 - 2004) Designade och utvecklade en applikation i Java EE för kompetensbaserad personalförmedling. Konsult – Sigma nBit (Göteborg, 2000) Utvecklade ramverk och delar av en intranätapplikation i ASP för en kund i Göteborg. Personliga Projekt Sequence 2015 - 2016 Ett funktionellt Java-bibliotek för hantering av sekventiell data, en mer lättviktig och bättre integrerad version av Stream-klasserna i Java 8. Liknar funktionaliteten i Scalas collection-klasser. github.com/d2ab/sequence Urban Hacker 2016 En nyhetssajt för tech-, vetenskap- och kodningsnyheter. Utvecklad i Scala/Akka/Play/Slick. urbanhacker.news Utbildning Civilingenjör i Fysik – Linköpings Tekniska Högskola Linköping, Aug 1995 - Jun 1997 (2 år) Studerade till Civilingenjör i Fysik i 2 år vid Linköpings Tekniska Högskola. Naturvetenskapliga Linjen – De la Gardie-Gymnasiet Lidköping, Aug 1992 - Jun 1995 (3 år) Utexaminerad från naturvetenskapliga linjen vid De la Gardie-Gymnasiet i Lidköping. Erfarenhet Systemutvecklare – SpeedLedger Göteborg, Jan 2016 – Jul 2016 (6 månader) Anställdes som Systemutvecklare hos SpeedLedger och utvecklade deras molnbaserade bokföringssystem för små företag. SpeedLedger är ett modernt företag som använder de senaste verktygen och teknologierna, och kör en väldigt agil kanban-baserad workflow med Product Owners som bestämmer arbetsuppgifterna och ett team-baserat flow där teamet jobbar som helhet på sina arbetsuppgifter och ofta parprogrammerar tillsammans för att lösa uppgifter. En väldigt kollaborativ och agil miljö, med bland annat ett nytt program för att jobba med Lean UX och införa mätningar på resultaten så att man skall kunna bevisa nyttan i det man har producerat direkt på kunderna. Färdigheter Agile, Kanban, Java, Scala, Tomcat, JUnit 4, Oracle SQL, Git, IntelliJ, VirtualBox, Docker, Atlassian, Maven, GWT Länkar: speedledger.se Senior Systemutvecklare – Benify Göteborg, Aug 2015 – Jan 2016 (1/2 år) Tog anställning som Senior Systemutvecklare hos Benify för att utveckla deras system för förmånsbehandling hos små och stora företag. Benify var just i fasen att börja expandera internationellt och sökte nya utvecklare för att höja utvecklingstakten. Organiserade och ledde Benifys kvartalsliga hackaton ”ShipIt Days” under vilken utvecklare tillbringar upp till 24 timmar med att utveckla någon ”galen” ide som kan ge en extra boost till produkten. Fick utmärkelsen som bästa ShipIt någonsin på grund av mitt engagemang och ledarskap. Ledde ett initiativ att minska antalet varningar i kodbasen. Minskade IntelliJ-varningar från ~30.000 till ~3.000. Halverade mängden PMD-varningar till ~250. Uppdaterade IntelliJprofilen för teamet med en mängd nya kontroller för att säkerställa snygg och bra kod. Introducerade månatliga ”Code Cleaning Day” då teamet har full tillåtelse att genomföra kodförbättringar man normalt inte skulle ha tid med såsom refactorings, städa upp gammal kod, skriva nya bibliotek, etc. Ledde initiativet att uppdatera copyright-texterna i alla source-filer från det gamla företagsnamned Flexpay till Benify, och startade även arbetet att flytta paketen från com.flexpay till com.benify. Introducerade IntelliJ @Contract-annotationer och mentorerade teamet på hur man använder @Nonnull @Nullable-annotationer. Genomförde en mängd förbättringar till kodbasen som medförde betydligt förbättrad renhet i koden. Arbetade till en början på buggfix-teamet då jag fixade en mängd buggar. Fixade en bugg i utprintningen av websidor genom att debugga tredjepartsbiblioteket phantomjs som används för PDF-generering. Färdigheter Agile, Scrum, Mentorskap, Java 8, Tomcat, JUnit 4, MySQL, ORM, Git, IntelliJ, Linux, VirtualBox, TeamCity, Kontinuerlig Integration, Maven Länkar: benify.com Team Leader – Ocado Hatfield, Storbritannien, Okt 2012 - Maj 2015 (2 1/2 år) Tog anställning som lagledare för Ocados ”Routing Systems”-team, som bygger och underhåller ett distribuerat optimeringssystem med hög tillgänglighet som fördelar och optimerar Ocados en timmas-leveranstider. Routing Systems bearbetar 800 000 sidvisningar per dag, och optimerar 25 000 leveranser över 1 500 lastbilar. Coachade och förvaltade teamet med åtta mjukvaruingenjörer genom 1: 1 samtal, teknisk ledning, Scrum och ständiga förbättringar. Koordinerade en avlägsen lagmedlem genom videokonferenser och virtuell Scrum Board. Anlitade fem nya ingenjörer till Ocado och tog över två nya medarbetare genom interna förflyttningar. Ledde lagORMet genom stora affärsförändringar: • • • Expansion till ett annat distributionscenter i Storbritannien. Lansering av djurtillbehörsaffären fetch.co.uk på nätet. Integration av Ocados nya affärspartner Morrisons. Uppnådde certifiering som Certified Scrum Master och tog rollen som Scrum Master vid sidan av lagledning. Ordnade 3-veckors scrum-sprints med väldefinierade planerings- och review-faser, och förbättrade ständigt scrumprocessen genom retrospectives och Scrum och Agile praxis. Förbättrade lagets utvecklingsprocess: • • • • • Migrerade från Subversion till Mercurial och sedan Git för versionskontroll. Främjade Jenkins för kontinuerlig integration och automatiserade tester. Införde ny teknik: Guice, Guava, JSON, REST. Införde "lab-dagar" för fri innovation mellan sprints. Förespråkade User Stories, agila principer och Scrum praxis. Bröt ut systerlaget Geospatial Systems och tog hand om utvecklingen av nya molnfärdiga tjänster i samklang med att Ocado expanderar till sin nya internationella shoppingplattform. Färdigheter Lagledning, Scrum Master, Agile, Scrum, Rekrytering, Mentorskap, Java 7, Tomcat, JUnit 4, REST, Oracle, Cassandra, Jooq, Quartz, Guice, Guava, Mercurial, Subversion, Linux, Distribuerade System, Hög Tillgänglighet, Molntjänster, Kontinuerlig Integration Länkar: ocado.com, groceries.morrisons.com, fetch.co.uk Software Engineer – Google London, Storbritannien, Mar 2010 - Jul 2012 (2 år och 4 månader) Accepterade rollen som ingenjör i Googles AdSense-produkt, med ansvar för att skapa en ny uppsättning AdSense API: er. Skapade och utformade de nya API:erna baserat på Googles nya RESTfulla API-stack. Tränade de nya i laget och programmerade de nya API:erna tillsammans med dem. Lanserade framgångsrikt API:erna som officiella Google-produkter som nu betjänar över 2 miljoner slutanvändare. • • Pionjerade tjänstbaserad åtkomst till databasen, för att minska användningen av direkt SQL. Byggde ett test-ramverk för end-to-end integrationstestning. • • Pionjerade JUnit 4 i AdSense, vilket ledde till en rekommendation av JUnit 4 istället för JUnit 3 inom AdSense-gruppen. AdSense API fick högsta testcertifieringen inom Google och uppnådde 97 % testtäckning, den högsta i AdSense-gruppen. Färdigheter Agile, Rekrytering, Mentorskap, Googles Teknologistack, Java, JUnit 4, REST, MySQL, Guice, Guava, Protocol Buffers, Linux, Skalbarhet, Hög Tillgänglighet, Distribuerade System Länkar: developers.google.com/adsense Principal Software Engineer – EMC Abingdon, UK, Jun 2004 - Mar 2010 (5 år och 9 månader) Gick med som chefsdesigner på Indigo Stone, ett startup som utvecklade programvara för katastrofåterhämtning. Befordrad till Principal Software Engineer när Indigo Stone förvärvades av EMC. Bodde och jobbade för EMC i Kanada och USA i 3 ½ år, flyttade så småningom tillbaka till Storbritannien. Skapade, designade och implementerade "Homebase", en Java EE webbapplikation som fungerade som det centrala navet för återhämtningssystemet. Utplacerade Homebase till produktionen i datacenter för flera kunder inklusive IBM och Sungard. "Homebase" täckte flera användningsområden: • • • • Samlade in konfiguration från agenter på täckta servrar. Matchade programpaket att installera på återvunna servrar. Redovisade server-inventering av anslutna serverparker. Övervakade server-förändringar med konfigurerbara regler. I rollen som Principal Software Engineer: • • • • • Utbildade laget i Java EE och serverside-Javateknik. Tränade upp laget på design och programmeringspraxis. Förespråkade testning och introducerade JUnit 4. Implementerade ett ramverk för end-to-end-integrationstestning. Skapade ett RESTfullt API för inter-agent kommunikation. Färdigheter Java, Java EE, JBoss, Hibernate, Spring, Cocoon, XML, XSLT, XQuery, XML Databaser, XML Pipelines, HTML, CSS, Javascript, JQuery, REST, PostgreSQL, Solaris, AIX, Linux, Windows Länkar: uk.emc.com Chief Designer – Netengines London, UK, Feb 2001 - Jun 2004 (3 år och 5 månader) Flyttade till Storbritannien efter att ha rest i Europa i ett halvår och tog anställning på Londonbaserade Netengines. Designade och implementerade Staffzone, en bemanningsapplikation i Java EE som matchade kompetenskrav med tillgänglig personal i realtid. Byggde ett widgetbibliotek i Javascript och HTML med realtidsuppdateringar från servern. Tränade upp laget som fortsatte att bygga produkten. Lanserade Staffzone till produktion som användes som bemanningstjänst av kunder såsom Network Rail. Färdigheter Java, JBoss, Hibernate, JSP, HTML, CSS, Javascript, MySQL, Windows Länkar: Netengines wins award from Aberdeen Group Konsult – Sigma nBit Göteborg, Sweden – Jan 2000 - May 2000 (5 månader) Tog anställning som konsult på Sigma nBit och byggde ramverket och vitala delar av en intranätapplikation utvecklad i ASP för en kund i Göteborg. Färdigheter Visual Basic, ASP, SQL Server, Windows Länkar: sigma.se/en Programmerare – Gladius IT Linköping, Sweden, Jan 1998 - Dec 2000 (2 år) Byggde Gladius huvudprodukt, en e-handelswebbplattform. Implementerades i C på VMS, med ett specialbyggt webbrenderingsspråk baserat på LISP. Färdigheter C, SQL, VMS Support Tekniker – Linköping University Linköping, Sweden, Jul 1997 - Dec 1997 (6 månader) Hjälpte eleverna att ansluta till universitetets nätverk och felsöka problem med datorer och uppkoppling. Teknologi Windows, Nätverk Sällskap Ctrl-C – Linköpings Tekniska Högskola Linköping, 1997 - 2000 (3 år) Medlem och ledamot i Universitetsdatorklubben "Ctrl-C", en alternativ datorklubb som mixtrade med VMS OS på VAX hårdvara. Projekt 2015 – 2016 Utvecklade ett Java-bibliotek för hantering av sekventiell data, liknande Stream-klasserna i Java 8: github.com/d2ab/sequence 2009 Experimenterade med att bädda in en fysikmotor i ett iPhone-spel där man genom att luta och flytta telefonen fick taktil och realistisk interaktion med spelobjekt. 2007 - 2008 Deltog i programmeringstävlingen ”Rails Rumble” två gånger, där tävlande gör en Ruby on Rails applikation på 48 timmar. Gjorde en slumpmässig receptgenerator i Rails Rumble 2007 och en inbrowser canvas-baserad processuell animationsskapare i Rails Rumble 2008: railsrumble.com Gjorde serverprovisionsverktyget "serverjuice" för Ruby on Rails-servrar på virtuella maskiner som officiellt rekommenderades i Rails Rumble 2008 som ett bootstrapverktyg för tävlande: github.com/d2ab/serverjuice (omforkad från ”handcrafted” men ursprungligen skriven av mig) Mixtrade med Ruby on Rails-applikationer på molnplattformen Heroku, inklusive en receptsajt "The Empty Plate": heroku.com Slutade i topp 10 i Topcoder:s maraton-programmeringsmatch "ChessPuzzle", efter flera veckors tävlande för att utveckla den bästa spellösaren för ett schackliknande spel: bit.ly/topcoderchesspuzzle 1995 - 1997 Programmerade en open source-musikspelare kallad "mokion" i C ++ och GTK ++ på Linux, och släppte den på dåvarande freshmeat.net: bit.ly/mokion-releases 1990 - 1995 Programmerade en mandelbrot- och julia-fraktalgenerator i Pascal i skolans datorsal. Programmerade en grafisk musikspelare i objektorienterade programmeringsspråket E på Amiga: wikipedia.org/wiki/Amiga_E Kodade proceduella grafiska "demos" i 6510-Assembler på C64: csdb.dk/scener/?id=3189 Grundade C64-demogruppen "JAM" med vänner: csdb.dk/group/?id=357 Hjälpte att organisera hackathon-"partys" för den lokala C64-scenen för att koda demos och utbyta kunskap: csdb.dk/event/?id=905 1988 - 1989 Utvecklade ett sidscrollande shoot-em-up-spel i BASIC på ZX Spectrum 48k.