Curriculum Vitae juni 2014, V012
Personalia Marcel Kolsteren freelance software engineer Meandi ICT Amsterdamsestraatweg 146 3513 AM Utrecht tel. +31-6-50652611
[email protected] www.meandi.nl
Profiel Doordat ik al meer dan vijftien jaar in de automatisering werkzaam ben, beschik ik over brede ICT kennis. Ik heb diverse bedrijven geholpen met het bereiken van hun doelen, niet alleen door nieuwe software te bouwen, maar ook door bestaande applicaties betrouwbaarder en bruikbaarder te maken. Ofschoon ik primair een engineer ben, maak ik mezelf altijd vertrouwd met de business waarin ik werkzaam ben, iets dat mensen met een technische achtergrond vaak niet willen of kunnen. Mijn streven is om software te maken die aansluit bij de doelen van de opdrachtgever en de gebruikers. Wat er in de mode is op software gebied speelt een ondergeschikte rol. Technisch ben ik gericht op ontwerp en ontwikkeling van betrouwbare bedrijfsapplicaties, gebruik makend van Java Enterprise Edition (JEE). Ik ben JEE gecertificeerd, en bekwaam in de heersende frameworks en gereedschappen. Open source oplossingen, en in het bijzonder de JBoss middleware suite, spelen een centrale rol in mijn werk. 1
Opleiding en certificering 2007
Sun Certified Java Programmer for Java 5
2005
Sun Certified Web Components Developer 1.4 Sun Certified Business Components Developer 1.3 Sun Certified Developer for Java Web Services 1.4 Prince II Foundation
2004
Sun Certified Java Programmer for Java 1.4
1997
Microsoft Certified Systems Engineer (MCSE)
1994
ingenieur in de informatietechniek (Technische Universiteit Eindhoven, cum laude)
Werkgevers 2007-heden
Meandi ICT (eenmanszaak)
2003-2007
LogicaCMG
1997-2002
CMG
1994-1996
Technische Universiteit Eindhoven
Ervaring Senior niveau (> 3 jaar)
• • • • • • • • •
• •
Java, JEE, EJB, JSF (1.2 and 2.0), Facelets, JBoss AS, Tomcat, Apache JBoss Seam 2.x Ajax, ajax4jsf, RichFaces, PrimeFaces, JPA, Hibernate, CSS Eclipse, Ant, Maven, JUnit, Subversion (SVN), Git, Hudson, Jenkins, Nexus HTML, XHTML, Javascript, jQuery HTTP(S), SSL, TCP/IP SQL, MySQL, XML UML, object oriented design, structured design technical software engineering, transaction management, databases, high volume & high availability systems, web technologie, security, networking Linux, Windows, Mac OS C/C++, Pascal, COBOL
Medior niveau (2-3 jaar)
JMock, Lucene, CDI
Junior niveau (< 2 jaar)
Arquillian, Selenium, IntelliJ, DB2
2
Projecten periode
december 2013 t/m juli 2014
rol
ontwikkelaar
opdrachtgever
Triodos Bank
kernwoorden
Java EE 6, JSF 2, JBoss RichFaces, JPA, Hibernate, DB2, SVN, Maven, JUnit, JBoss EAP, IntelliJ, TeamCity, Arquillian, Selenium
Ik ben bij de Triodos Bank begonnen met het implementeren van middelgrote change requests, bijvoorbeeld het batchmatig vervangen van vervallende bankpassen. Daarna heb ik een interface gemaakt met een externe partij voor het online autoriseren van bankpas-opnames en -betalingen. Voorts heb ik me gewijd aan het automatiseren van systeemtesten met behulp van Arquillian en Selenium, en het analyseren en oplossen van productieproblemen. periode
juli 2013 t/m augustus 2013
rol
ontwikkelaar
opdrachtgever
Erasmus Universiteit, International Institute of Social Studies
kernwoorden
JSF 1.2, JBoss RichFaces, JPA, Hibernate, MySQL, SVN, Maven, JUnit, HTML, CSS, JavaScript, Linux, Tomcat, Lucene, Hibernate Search, Eclipse
Voordat een student verwelkomd kan worden aan dit instituut, moet er heel veel geregeld worden. De student moet zich als kandidaat aanmelden, er moet een uitgebreide selectieprocedure doorlopen worden, en bij toelating moeten praktische zaken zoals visa, vliegtickets en financiering geregeld worden. Er wordt een webapplicatie gebruikt om dit proces te ondersteunen. Mijn opdracht was om een aantal nieuwe functionaliteiten aan die applicatie toe te voegen, en om bugs te fixen. periode
oktober 2010 t/m december 2012
rol
ontwikkelaar, ontwerper
opdrachtgever
RaetsMarine
kernwoorden
Scrum, Java (JEE), JBoss Seam, JSF 1.2, JBoss RichFaces, JPA, Hibernate, MySQL, Hudson, SVN, Maven, JUnit, HTML, CSS, JavaScript, jQuery, Linux, JBoss AS, Apache
De scheepsvaart-verzekeraar RaetsMarine besloot om zijn portal-based ERP-systeem te vervangen door een op JBoss Seam gebaseerde applicatie. Het gaat om een omvangrijk systeem, dat de core 3
business van de verzekeraar runt, met circa 200 database tabellen, 90 detailschermen en 125 wizards. Met een Scrum team van zes ontwikkelaars en een scrum master hebben we dit nieuwe systeem gerealiseerd. In het blended offshoring team (Nederland/India) had ik de rol van lead developer en JBoss Seam expert. Ik heb de architectuur van de nieuwe applicatie ontworpen, en het framework gebouwd waarin de user stories gerealiseerd konden worden. In heb de inproductiename begeleid en de performance problemen opgelost die zich voordeden (met 50-100 gelijktijdige gebruikers). Nadat we een nieuw systeem hadden neergezet met behoud van functionaliteit, heb ik me bezig gehouden met ontwerp en bouw van een zelfbediening-portaal voor klanten. periode
januari 2005 tot heden
rol
ontwikkelaar, ontwerper
opdrachtgever
frrry, Meandi ICT, Spellenmug
kernwoorden
Java (JEE), EJB 3.1, MySQL, JBoss AS/Wildfly, JPA, JSF (1.x/2.x), RichFaces, PrimeFaces, JavaScript, jQuery, JBoss Seam, iText, Git, Maven, Eclipse, IntelliJ, HTML, CSS, Linux, OpenID, OAuth 2.0, Jenkins, Apache
Ik heb een enterprise applicatie ontwikkeld voor frrry: een bedrijf dat mode-accessoires ontwerpt, produceert en verkoopt via retailers in binnen- en buitenland. Later heb ik dit systeem uitgebreid tot een multi-tenant applicatie, die ook door twee andere bedrijven gebruikt worden: Meandi ICT (mijn eigen eenmanszaak) en de tweedehands spellenwinkel Spellenmug. Functionaliteiten: webwinkel, facturering, crediteuren/debiteurenbeheer, voorraadbeheer, matchen van betalingen, uitleen- en consignatie-administratie, catalogusbeheer, inventarisbeheer, boekhouding, iDEAL, integratie met iDEAL en PayPal. Voor de authenticatie van gebruikers maak ik gebruik van OpenID en Oauth 2.0. periode
juli 2009 t/m december 2010
rol
ontwikkelaar
opdrachtgever
JBoss
kernwoorden
Java (JEE), JBoss PicketLink, JBoss Seam, JSF, Security, Single Sign On (SSO), SAMLv2, OpenID, OAuth 2.0
In 2009 besloot ik om JBoss PicketLink in te zetten ten behoeve van Single Sign On (SSO), voor mijn in-huis gebouwde Seam applicaties. Op dat moment had PicketLink wel SSO support (gebaseerd op SAML) voor servlets, maar niet specifiek voor Seam applicaties. Ik ben JBoss committer geworden, en heb vervolgens Seam support toegevoegd aan PicketLink. Naast het schrijven van de code heb ik documentatie geschreven, gebruikersvragen beantwoord en onderhoud gepleegd. Ik heb als committer meegewerkt aan de security module van Seam 3 (m.b.t. externe authenticatie).
4
periode
augustus 2009 t/m juni 2010
rol
ontwikkelaar, ontwerper
opdrachtgever
Khonraad Software Engineering
kernwoorden
Java (JEE/J2EE), Postgres, JBoss AS, JSF, facelets, ajax4jsf, RichFaces, JBoss Seam, JBoss Drools, CVS, Maven, Eclipse, HTML, CSS, JavaScript, Linux, Apache Velocity, Tomcat
Khonraad Software Engineering ondersteunt organisaties en instellingen bij het uitvoeren van de wet BOPZ (Bijzondere Opnemingen in Psychiatrische Ziekenhuizen) en de wet Huisverbod. Bij de uitvoering van deze wetten zijn vele partijen betrokken, en het Khonraad systeem maakt het mogelijk voor deze partijen om de dossiers te delen en de processtappen centraal te coördineren en te bewaken. Hiervoor wordt o.a. gebruik gemaakt van de beveiligde website van Khonraad. Bij Khonraad heb ik me, samen met een collega ontwikkelaar, bezig gehouden met het ontwerpen en bouwen van een nieuwe JBoss Seam webapplicatie voor de interne medewerkers. Deze is inmiddels in gebruik genomen. periode
februari 2008 t/m januari 2010
rol
ontwikkelaar, technisch ontwerper
opdrachtgever
Fa-med medical factoring
kernwoorden
Scrum, Java (JEE/J2EE), EJB 3.0, MySQL, JBoss AS, JSF, facelets, ajax4jsf, RichFaces, JBoss Seam, Pentaho, Subversion (SVN), Maven, Eclipse, HTML, CSS, LDAP, StreamServe, Enterprise Architect, UML, Selenium, JUnit
De hoofdactiviteit van Fa-med is het uitvoeren van het facturerings- en inningsproces voor bedrijven in de medische zorg. Bij Fa-med heb ik gewerkt in een project van ongeveer 10-20 FTE. Dit project had ten doel om het kernsysteem van het bedrijf te vervangen door een nieuw te bouwen Java Enterprise applicatie, gebaseerd op state-of-the-art open source technologie. Mijn rol was die van software ontwikkelaar. Naast het implementeren van use cases heb ik bijdragen geleverd aan de technische infrastructuur van de applicatie, en heb ik meegedacht op functioneel gebied (met name vanwege mijn kennis over financiën en boekhouding. periode
december 2005 t/m november 2007
rol
test analist, integrator
opdrachtgever
Philips Applied Technologies
kernwoorden
Java (J2ME/J2SE/JSSE), JNI, C, C++, CM/Synergy, Eclipse, Linux, BouncyCastle, Python, Perl, SCons, Agile
In dit project hebben we hardware-onafhankelijke middleware gebouwd voor embedded Blu-ray disc devices. Hierbij is gebruik gemaakt van C, C++ en Java, op een open source embedded Linux besturingssysteem. Het Blu-ray platform, dat internet connected is, bevat een J2ME omgeving 5
waarin de door filmstudio's ontwikkelde Java programma's draaien. Ik was in de eerste fases van het project verantwoordelijk voor het integreren van de systeemcomponenten en analyse van de hierbij optredende problemen. Tevens hield ik me bezig met ontwerp en implementatie van de test frameworks. In de tweede helft van het project heb ik als test engineer testspecificaties opgesteld en geïmplementeerd. Ik heb me onder andere gericht op het testen van de security aspecten van de Java omgeving, waarbij X.509 certificaten, certificate chains, PKI, JAR file signing en credentials een grote rol spelen. periode
oktober 2001 t/m oktober 2005
rol
technisch analist, ontwikkelaar, teamleider
opdrachtgever
Rabobank Nederland
kernwoorden
HP/NonStop, Pathway/TS, C, COBOL, SQL, MQSeries, HTTP, HTTPS, HTML, Javascript, on line banking
De telebankiersystemen van de Rabobank zijn HP/NonStop systemen, die op verschillende wijzen ontsloten worden richting de klant: client/server, voice response, HTTP(S), SMS en e-mail. Ze maken deel uit van een complex en heterogeen systemenlandschap waarin vele middleware en EAI technologieën naast elkaar gebruikt worden. Ik was verantwoordelijk voor het onderhoud van de telebankiersystemen: analyse en oplossen van allerlei productieproblemen, en implementeren van kleine functionele veranderingen. Ik coördineerde vanaf 2004 als meewerkend voorman het onderhoudsteam (bestaande uit 3 personen). Naast mijn werk als problem solver heb ik methoden ontwikkeld om de reproduceerbaarheid van het ontwikkelproces te verbeteren en intakes te doen op de door projecten opgeleverde software. periode
augustus 2001 t/m september 2001
rol
analist
opdrachtgever
CMG
kernwoorden
directory, meta-directory, e-provisioning systemen
Bij CMG werd een zelf ontwikkeld systeem gebruikt, waarmee personeels- en organisatiewijzigingen doorgevoerd werden in authenticatiesystemen, fileservers, mailsystemen, enz. Dat systeem wilde men vervangen door een meta-directory product. Ik was als analist verantwoordelijk voor de pakketselectie. periode
januari 2001 t/m juli 2001
rol
analist, interim projectleider
opdrachtgever
ING Interadvies
kernwoorden
euro conversie
ING InterAdvies legt zich toe op bancaire produkten voor de particuliere en de zakelijke markt en gebruikt daarvoor het pakket Profile van Sanchez. Doel van het project was om het Profile systeem 6
eurobestendig te maken. Dit werd uitgevoerd door Sanchez (Verenigde Staten), OpenSys (Maleisië) en InterAdvies (Nederland). Ik werkte hoofdzakelijk in de rol van functioneel/technisch analist, en had de volgende taken: l
analyse van de gevolgen van de euro voor interfaces van Profile met andere systemen, en maken van afspraken met de systeemeigenaars over de uit te voeren wijzigingen;
l
systeemtesten; ondersteunen van gebruikersacceptatietesten;
l
integratie van Sanchez, OpenSys en InterAdvies deliverables;
l
opstellen conversiedraaiboek.
De laatste twee maanden vulde ik ad interim de rol van projectleider in. periode
augustus 1997 t/m december 2000
rol
ontwikkelaar, technisch ontwerper
opdrachtgever
Euronext
kernwoorden
optiehandel, high availability, high volume, HP/NonStop, Pathway/TS, C, COBOL, SQL, Business Objects
Het project had tot doel had om de handel op de optiebeurs stap voor stap te automatiseren. Het ontwikkelde systeem had een three-tier architectuur, bestaande uit een host (HP/NonStop) die via servers (Unix) aan clients (PC’s en handhelds) gekoppeld was. Binnen het project vervulde ik de functie van software ontwerper/ontwikkelaar voor het host systeem. Vanwege de hoge eisen aan betrouwbaarheid en performance, maakte het systeem gebruik van op maat gemaakte middleware voor transaction management en data distributie. Ik heb hier veel kennis opgedaan van online transaction processing, grote databases, performance tuning, mixed language programming, data modellering, versiebeheer, 4GL methoden, concurrency, data replicatie en foutafhandeling. Ik werd ook bij het functionele ontwerp betrokken, om vanuit de technische invalshoek snel de haalbaarheid van alternatieven in te kunnen schatten. periode
november 1994 t/m januari 1997
rol
promovendus
opdrachtgever
Technische Universiteit Eindhoven
kernwoorden
Computer Aided Design, logic synthesis, C++, Unix
Als assistent in opleiding voerde ik onderzoek uit op het gebied van computer-ondersteund ontwerpen van digitale systemen. Naast het bestuderen van bestaande ontwerptheorieën experimenteerde ik met zelf geschreven CAD software. Die software ontwikkelde ik in C++ op Unix systemen.
7