Wim Vandenhaute

Full stack developer

wim.vandenhaute.org
wim.vandenhaute@gmail.com
+32 494 575 697


Methodologies

Clean code and the KISS principle
If a chunk of code cannot be understood without reading it 5 times, this should be considered bad code and refactored.

TDD
Should be used from a pragmatic approach. Not all chunks of code should be developed from a unit test. Only use this when the logic is "complex" enough for mistakes to be made but never be arrogant and question yourself on those decisions.

Broken windows theory
This kind of relates to clean code as I firmly believe that once dirty code intrudes your codebase, this will often lead to other developers not making enough effort to write clean code around that dirt code which will in the end spread out to your whole codebase.

Seperation of concerns and domain driven design
This leads to simpler code, safer code, more testable code and more maintainable code.

Commit often, small victories, divide and conquer
If you haven't made a code commit by noon, you are probably taking on too much at once. Always go for small victories as this will lead to a more fulfilling development process and better, simpler and cleaner code.

Agile
Continuous delivery/deployment will lead to software that can be more reliably released at all time .
Daily standups can lead to interesting coffee break/lunch time discussions but should be kept to the point, not just "I've added this and that".
Regularly, time should be allocated to reflect, should some code be cleaned up, can we improve a project from things learned in another project, are there certain "annoyances" in the development cycle that can be improved, ...

I am a realist that above principles will not always be possible to follow as we don't live in a perfect world and sometimes deadlines just have to made. Yet I do believe that if they are used from the start, at all times a best effort is done and periodically time is allocated to clean up, this will lead to faster development cycles, less bugs and better maintainable code.


Technical

  1. Java
  2. iOS (ObjC, basic Swift)
  3. Android
  4. Git / SVN
  5. Maven
  6. Cocoapods
  7. J2EE
  8. JPA (Hibernate)
  9. JMS, JAX-RS, JAX-WS, ...
  10. AOP
  11. WS-*
  12. XML DSIG
  13. OASIS DSS
  14. SAML 2.0 / OpenID / OAuth 2.0
  15. PKI, OCSP, CRL
  16. XAdES
  17. SOAP
  18.  
  19. Guice
  20. Spring IoC
  21. EJB 3
  22. JSON
  23. Protocol buffers
  24. XML
  25. angular (1/2)
  26. Webpack
  27. Grunt
  28. Wicket
  29. JSF (Richfaces, ..., Seam)
  30. JSP
  31. Amazon Web Services
  32. Tomcat
  33. JBoss
  34. Smartcards
  35. Belgian eID
  36. Java card API
  37. C++
  38. C
  39. lex / yacc
  40. MySQL
  41. PostgreSQL
  42. DB2
  43. Oracle 9i

An overview of technologies, languages, frameworks, ... I have worked with over the years. Obviously some might be a bit further down in the back of my head but it's still in there somewhere :)
I have grouped them a bit together per domain.


Experience

CounterFort Software engineer 2017 to ...
Responsible for the brand websites of the Cortina Group (Patrick, SafetyJogger, Sprox, ...)
Development of backend for iPad dealer app
Technical Environment DB2, Hibernate, Spring, Jersey, Angular, Tomcat

linkID NV Software engineer 2007 to 2016
Development of the linkID user centric identity/payment platform.
Development of a two-factor smartphone authentication solution on iOS and Android.
Integration with payment providers Docdata, Klarna and PayConiq.
Development of a user and operator web portal.
Development of the Dodentocht subscription application using the belgian eID
Development of the iWish.be service.
Development of the iWish.be iOS app.
Technical Environment MySQL, Hibernate, Guice, Jersey, OpenSAML, WSS4J, XMLSec, Bouncycastle, JUnit, EasyMock, angularJS, Tomcat, AWS, Objective-C, Cocoapods, TrustKit

FedICT Software engineer 2007 to 2011
Development on a number of projects for the belgian eID (jtrust, eid-applet, eid-idp, eid-dss, eid-trust-service)
Technical Environment MySQL, PostgreSQL, Oracle, Hibernate, EJB3.1, OpenSAML, OpenID4Java, WSS4J, XMLSec, ODF, OOXML, Bouncycastle, JUnit, EasyMock, JSF, Seam, JBoss

Encap A.S. Software engineer 2007 to 2011
Development of the authentication and signing platform
Development of the iOS app for this platform.
Technical Environment MySQL, Hibernate, EJB3, OpenSAML, WSS4j, XMLSec, Bouncycastle, JUnit, EasyMock, Wicket, JBoss

ON Semiconductor Software engineer 2001 to 2007
Development of a modular platform for the generation of test programs (digital and mixed-signal) for test engineering.
Technical Environment lex, yacc, C, C++, ObjectStore, JNI, Java, Swing


Projects


Education

Master Computer Science 1997 to 2001
Ghent University, Ghent, Belgium


Online