Henrik har 13 års erfarenhet av professionell mjukvaruutveckling och har även utvecklat privat sedan ännu längre. Han är en lagspelare som även kan jobba självständigt och kommunicera tydligt. Både högnivå- och lågnivå-utveckling har präglat hans karriär, att lära sig nytt och utvecklas är en stor drivkraft.
Om Henrik
Henrik är en mycket driven senior mjukvaruutvecklare som har haft en passion för utveckling sedan grundskolan. Hans främsta färdighet är mjukvaruutveckling i högnivå-språk men även för inbyggda system. Genom att vara med i flera stora projekt har han vidareutvecklat sina färdigheter genom åren. Han har utvecklat mjukvara både för Windows och Linux. Under arbetslivet har han fått mycket erfarenhet av att underhålla och utveckla stora kodbaser. Kvalitet är något Henrik värderar högt, och han ser alltid till att det speglas i hans arbete.
Henriks CV
Statens jordbruksverk
Mjukvaruutvecklare
2020 -
Utvecklar ett administrativt handläggningssystem som används av länsstyrelserna för handläggning av jordbrukarstöd. Största delen är Java enterprise server och även en del Javascript i webbklient med AngularJS samt Angular. Utvecklingen sker i 6 team som har sina respektive ansvarsområden, men kräver mycket planering och kommunikation. Använder docker och kubernetes för testmiljöer och verifiering. Gitlab används för kodgranskning och IntelliJ används som IDE. Satt upp automatiska systemtester med cypress och kubernetes som kör regressionstester. Driver utvecklingen både i egna teamet och hjälper andra utvecklare. Bra systemförståelse och förmåga att se hur helheten påverkas av förändringar i koden. Diskuterar mycket arkitektur med teamet och arkitekt för att hitta bästa lösningen ur ett helhetsperspektiv. Hjälper även till att ta fram krav tillsammans med kravare för att koden ska vara dokumenterad. Skrev självständigt om ett verktyg i Java för att rensa och minska storleken på en stor PostgreSQL-databas för att få en mer hanterbar storlek för test. Resultatet blev att tiden att köra verktyget minskades drastiskt.
Utvecklade prototyp för fjärrkonfigurering av lås till kontorsmöbler. Använde Zephyr för att köra en C-applikation på ett nRF52840-kort för att använda Thread för trådlös och strömsnål kommunikation. Ovanpå det användes MQTT för att skicka över konfiguration och status. En webb-server användes för att exponera ett REST-API som molnet kunde använda sig av. HomeAssistant användes för att testa kommunikationen från webb-servern till låset. Kommunikationen mot låset skedde med GPIO-pinnar och UART. Utvecklingen skedde helt självständigt med mailkontakt med utvecklaren av låset.
Utvecklade och testade ITABs mjukvara för automatiserade kassasystem. Utvecklingen skedde mestadels i C++ för både Linux och Windows, med Git för versionshantering, BitBucket för kodgranskning, Jira för ärendehantering, Confluence för dokument och Jenkins för att köra kontinuerliga tester. Även utveckling i Java för olika verktyg kring systemet med Maven för beroendehantering. Framför allt utveckling i Java 8 men även Java 7. Arbetade testdrivet och agilt enligt Scrum. Skrev även integrationstester för moduler samt testar manuellt på maskin. Använde Docker för att köra applikationer isolerat samt för att slippa korskompilera. Databas i PostgreSQL användes för statistik och diverse data. Använde Eclipse och CLion (del av JetBrains verktyg) som utvecklingsmiljö. Utveckling av webbsidor med HTML 5 och CSS för att presentera statistik. METODER OCH TEKNIKER: C++, Qt, Java, Maven, CLion, Eclipse, Git, PostgreSQL, Docker, HTML, CSS, Confluence, BitBucket, Jira, Jenkins, Systemdesign, Scrum, Agilt
Saab
Testutvecklare
2016 - 2018
Utvecklar mjukvarutester samt verktyg för generering av tester. Använder mestadels Java (Java 8) och C++ på Linux. Kodgranskar med hjälp av BitBucket och hanterar ärenden med hjälp av Jira. METODER OCH TEKNIKER: Java, C++, BitBucket, Git, Jira, Jenkins, Scrum, Agilt
Zenterio
Testutvecklare
2016 - 2016
Mjukvaru-/testutvecklare för mjukvara som kan köras på flera olika TV-boxar från tredje part. Använder C++ för att utveckla plattformen och JavaScript för att skriva systemtester. Dessa tester körs kontinuerligt i en automatiserad miljö för att verifiera mjukvarukvalitén. Kodgranskning med hjälp av Crucible används för att säkerställa att designen och implementationen är lämpliga innan ändringarna mergas in till huvudspåret. METODER OCH TEKNIKER: JavaScript, C++, Crucible, Git, Scrum, Jira
Ericsson AB, Mjukvaruuvecklare
Konsult
2014 - 2016
Konsult inom mjukvaruutveckling. Uppdrag för Ericsson i ÅFs lokaler för att skapa testverktyg för radiobasstationer. Utvecklade mjukvara och GUI i C# och .NET för att kontrollera verktygen. Även utveckling av applikationer i C för inbyggd Linux. Mycket av utveckling gjordes individuellt med stort personligt ansvar. METODER OCH TEKNIKER: C, embedded, C#, .NET, Visual Studio, Git, Jira, Scrum
Ericsson AB, Mjukvaruuvecklare
Konsult
2011 - 2014
Konsult inom mjukvaruutveckling med uppdrag på Ericsson. Utvecklade ett testverktyg för att last-testa radiobasstationer. Verktyget var mestadels skrivet i Java, C++ och Ruby. En del mindre uppgifter gjordes med Perl, Bash och Ruby. Prestanda var viktig och koden optimerades med stor framgång flera gånger. Ett kommandorads-interface skrevs i Ruby och JRuby för att kontrollera verk-tyget med hjälp av EJB. Continuous Integration implementerades med Jenkins som byggde, analyserade och körde tester (enhetstester, multikomponent-tester och systemtester). Administrerade både befintliga Jenkins-installationer och satte upp nya instanser. Agil utveckling användes med Scrum och parprogrammering, men i vissa fall utvecklade han mjukvara individuellt. Han använde testdriven utveckling för att producera bra och underhållbar kod. Eclipse användes mestadels som IDE, men Emacs användes också. Git användes för versionshantering tillsammans med lite Subversion. All utveckling skedde på en Linux-plattform och kommandoraden användes i stor utsträckning. Han var med i labbgruppen som var ansvarig för installation och konfiguration av servrar med iDrac. Han supportade kunder och felsökte problem för att hitta buggar, både i projektets egna produkter samt i andra. METODER OCH TEKNIKER: Java, JavaBeans, C++, Ruby, Git, Subversion, Maven, Eclipse, Emacs, Perl, Bash, Jenkins, Jira, TDD, Systemdesign, Scrum, Agilt, Parprogrammering
Henriks kompetensområden
Bransch
Telecom, Detaljhandel, Försvar, Myndigheter
Kompetenser
IntelliJ, Embedded Linux, Linux, Kubernetes, Jenkins, Javascript, Java 8, MQTT, Java, Jira, IntelliJ IDEA, Java 7, Microsoft Excel, Microsoft Visual Studio 2010, HTML5, Windows, Microsoft Word, Mockito, MySQL, PHP, Perl, PostgreSQL, Python, Qt, REST-API, Ruby, SQL, Microsoft PowerPoint, HTML 5, Git, Scrum, webbsidor, Unit Tests, TestNG, .NET, Microsoft .NET Framework, Agile, AngularJS, Angular, Maven, testverktyg, Gitlab, BitBucket, Bash, C++, CSS, kodgranskning, Confluence, Continuous Integration, cypress, databas, docker, Eclipse, Emacs, GNU Debugger, C#, Subversion
Personligt
självständigt, kommunikation, Agil
Roller
Utveckling / UX / DevOps
Språk
French, English, Swedish
Övrigt
TV, statistik, Datavetenskap, prototyp
Henriks anställningar
Konsult, Mjukvaruutvecklare, Sigma Technology Embedded Solutions AB
2016 - 2023
Konsult, Mjukvaruutvecklare, ÅF
2014 - 2016
Konsult, Mjukvaruutvecklare, Enea/Xdin/Alten
2011 - 2014
Henriks utbildningar
Cybersäkerhetslagen (NIS 2), Distans
2024 - 2024
Kubernetes (for CKAD), Distans
2024 - 2024
7 languages in 7 weeks, Alten
2014 - 2014
Clean Code: SOLID principles, Alten
2013 - 2013
Clean code: Fundamentals, Alten
2013 - 2013
Git för mjukvaruutvecklare, Alten
2013 - 2013
C för inbyggda system, Enea
2011 - 2011
Kandidat Datavetenskap, Linköpings universitet
2008 - 2011
Kort om Kvadrat
Spetskonsulter inom systemutveckling, teknik, digitalisering, informationshantering, ledning, organisations- och verksamhetsutveckling.