CV Geoffrey De Smet
laatst aangepast op 02/03/2010
Ik ben een passionele Java developer met meer dan 6 jaar professionele ervaring (en ook 3 jaar langer praktische ervaring).
Enerzijds werk ik full-time aan kwalitatieve java applicaties bij Schaubroeck N.V., een professioneel bedrijf in Oost-Vlaanderen. Anderzijds ben ik in mijn vrije tijd een community member van het JBoss Drools team, waar ik voornamelijk werk aan Drools Planner, het open source Java automated planning framework bij uitstek.
|
Naam |
Geoffrey De Smet |
|
Adres |
Jules de Saint-Genoisstraat 51 |
|
|
|
|
GSM |
(weggelaten, gelieve me via email te contacteren) |
|
Website |
|
|
Geslacht |
Man |
|
Geboortedatum en plaats |
16/11/1981 te Gent |
|
Nationaliteit |
Belg |
|
Burgerlijke staat |
Verloofd |
+++ (zeer goede kennis): Tijdens het gebruik van deze vaardigheid gebruik ik slechts zelden de API, omdat ik de belangrijkste delen van de API vanbuiten ken.
++ (goede kennis): Tijdens het gebruik van deze vaardigheid gebruik ik de API regelmatig en soms andere documentatie.
+ (noties): Mijn ervaring beperkt zich tot enkele kleine experimenten en/of bugfixes. Tijdens het gebruik van deze vaardigheid gebruik ik voornamelijk tutorials, documentatie en mailing lists (www.gmane.org).
|
Language 1.5 (+++) |
Threading / concurrency (+++) |
|
Collections (+++) |
Packaging: jar / war / ear (+++) |
|
Class loading (++) |
JUnit (++) |
|
SLF4J (++) |
Commons-logging (++) |
|
Log4J (++) |
Reflection (++) |
|
Serialization (++) |
|
|
Spring dependency injection (+++) |
EJB3.JPA (+++) |
|
Hibernate: xml / annotations / validator (+++) |
JBoss Drools (+++) |
|
Spring AOP (++) |
Spring DAO / transactions (++) |
|
Spring security (Acegi) (++) |
JCE cryptography (++) |
|
JavaMail (++) |
XStream (++) |
|
JDOM (++) |
Spring remoting: HttpInvoker, RMI, Hessian, Burlap (++) |
|
JasperReports (++) |
DynamicJasper (++) |
|
BouncyCastle S/MIME (++) |
FOP (+) |
|
Jade agent platform (+) |
JAXB (+) |
|
RMI (+) |
Xfire (+) |
|
EJB 2 (deprecated) (+) |
|
|
Servlets (+++) |
JSP (+++) |
|
Daisy CMS en Wiki (++) |
JBoss Seam (+) |
|
Facelets (+) |
FOP (+) |
|
Struts (action) (+) |
GWT (+) |
|
Portlets (+) |
Cocoon (deprecated) (+) |
|
Swing (+++) |
I/O (+++) |
|
Spring-richclient (+++) |
Java webstart (+++) |
|
Sockets (++) |
JGoodies forms en looks (++) |
|
Glazedlists (++) |
Java 2D (++) |
|
SwingX (++) |
Nachocalendar (++) |
|
Java3D (+) |
JOGL (+) |
|
AWT (deprecated) (++) |
|
|
Maven 2 (+++) |
Hudson (++) |
|
IzPack (+) |
ANT (deprecated) (++) |
|
Maven 1 (deprecated) (+++) |
CruiseControl (deprecated) (+) |
|
Continuum (deprecated) (+) |
|
|
JBoss AS (++) |
Jetty (++) |
|
Tomcat (+) |
Weblogic (+) |
|
Resin (+) |
|
|
IntelliJ IDEA (+++) |
Eclipse (+++) |
|
NetBeans IDE (+) |
Kawa (deprecated) (+) |
|
Jude UML (++) |
Together UML (++) |
|
Poseidon UML community edition (++) |
|
|
Gang of four design patterns (+++) |
J2EE design patterns (++) |
|
Sun coding conventions (++) |
Maven directory conventions (++) |
|
Borland C++ (+) |
COBOL (deprecated) (+) |
|
Visual Basic 5 (deprecated) (+) |
|
|
MySQL (+++) |
HSQLDB (+) |
|
Microsoft SQL server (+) |
Oracle (+) |
|
Informix (deprecated) (+) |
|
|
XML (+++) |
HQL / EJB3-QL / JPA-QL (+++) |
|
SQL (+++) |
|
|
HTML / XHTML (+++) |
CSS (++) |
|
FO (++) |
XSL (++) |
|
Jelly (+) |
|
|
Windows (+++) |
Ubuntu Linux (+++) |
|
Suse Linux (++) |
Kubuntu Linux (+) |
|
HP Unix (+) |
SCO Unix (+) |
|
Unix / Linux / Cygwin (++) |
DOS (++) |
|
Subverion (+++) |
CVS (deprecated) (+++) |
|
Git (+) |
|
|
JIRA (+++) |
Mantis (++) |
|
YouTrack (+) |
|
|
X509 certificates (++) |
|
|
Microsoft Office (++) |
OpenOffice.org (++) |
|
XmlMind (++) |
FreeMind (+) |
|
XMind (+) |
|
|
Nederlands (+++) |
Engels (+++) |
|
Frans (+) |
|
|
Rijbewijs type B (++) |
Ik bezit een eigen auto. |
|
Edugo / E. H. Glorieux Oostakker |
01/09/1993 - 31/06/1999 |
Afgestudeerd. Gevolgde richtingen:
2 jaar Latijn
2 jaar Economie - Wiskunde
2 jaar Wetenschappen – Wiskunde (8 uur)
|
Universiteit Gent |
01/10/1999 - 31/06/2000 |
Niet geslaagd voor de wiskunde vakken wegens een gebrek aan studietoewijding, wel geslaagd voor de informatica vakken.
|
Hogeschool Gent (BME) |
24/09/2000 – 31/06/2003 |
Afgestudeerd met onderscheiding met als keuzevakken:
Java
C++
Kennissystemen
Sun Certified Java Programmer (03/2004): 95%
Sun Certified Web Component Developer (11/2004): 94%
JavaBlackBelt: brown belt (black belt is nog
niet
mogelijk)
http://www.javablackbelt.com/UserView.wwa?userId=124826
Ohloh: Rank
8
http://www.ohloh.net/accounts/14946
International timetabling competition 2007
(04/2008):
4de plaats in track 1 (examination)
http://www.cs.qub.ac.uk/itc2007/
BEA Portal / Workshop 8.1 (10/2003)
J2EE 1.4 (10/2003)
Hibernate 2 (12/2004)
JavaPolis 2004 (12/2004)
JavaPolis 2005 (12/2005)
SpringOne 2006 (06/2006)
JavaPolis 2006 (12/2006)
JavaPolis 2007 (12/2007)
Devoxx 2008 (12/2008)
Devoxx 2009 (12/2009)
JavaPolis 2007 (12/2007): BOF Solving planning problems with Drools Solver (Drools Planner)
Devoxx 2009 (11/2009): BOF Examination timetabling with Drools Solver (Drools Planner)
Ch'ti JUG (01/2010): Automated planning with Drools Planner
BeJUG (upcoming, 04/2010): Drools
Drools team blog
http://blog.athico.com/search/label/planner
Tijdens mijn opleiding werkte ik met 2 medestudenten aan Java applets voor onze website http://www.realapplets.com (05/2000 - 02/2003).
MoonStar 2: Puzzel game.
QuizMaster: Configureerbare quiz.
LoveMeter 2: Entertaining toy.
LearnAndOrNot: Editeer en test logische circuits (AND, OR, NOT, ...).
HorizonMenu: Navigatie menu voor websites.
MathTimeFunction: Toont en 3 dimensionale (x, y, t) functie.
Encoder: Heel simpele karakter encoding en decoding.
QuothBar: Toont een random citaat via een fading effect.
SecretPass: Simpele geheime url protectie.
RealConverter: Geld eenheid omzetter.
TxtViewer: Tekst bestanden browser.
ImageTransitions (beta): Toont een reeks pictures via transities (fading, ...).
ActionShooter (beta): Actie game.
Technologie: J(2)SE, AWT, threads, reflection.
Verzekeringen
(12/2001 - 04/2002): Een verzekeringen makelaar
bestand-gebaseerd databankprogramma met een DOS GUI.
Technologie:
COBOL.
RealChess
(03/2002 - 04/2002): Een schaakprogramma met GUI en
heuristische computertegenstander.
Technologie: Borland C++.
ConnectFour computertegenstander (10/2002
- 02/2003): Een heuristische computertegenstander die gebruikt
maakt van alpha en beta pruning voor het 4 op en rij spel en een
reeks varianten daarop.
Technologie: J(2)SE.
NetworkTools (11/2002 – 02/2003):
Een GUI applicatie voor testing van netwerk programma's. Bevat een
TCP/IP-based protocol anlyzer die in client, server en pipeline mode
kan gebruikt worden om protocollen te bekijken en te debuggen. Bevat
ook een multi-threaded port scanner en maakt gebruikt van
PropertionLayout, een geavanceerde layoutmanager.
Later heb ik
dit project gemavenized, lichtjes bijgewerkt en online geplaatst op
http://networktools.sf.net.
Technologie:
J(2)SE, swing, sockets, I/O, threads.
SimpleGameNet framework en Chess (02/2003
– 06/2003): Een desktop applicatie en distributed
client-server frame framework voor multiplayer game modules. Het
framework voorziet verschillende services, zoals version checking en
synchronisatie van game settings, player settings en chat. Ook heb
ik een klassieke schaak module geschreven. Twee medestudenten hebben
met succes een vier op een rij en een yahtzee
module op mijn framework geschreven.
Later heb ik dit project
gemavenized en online geplaatst op
http://simplegamenet.sf.net.
Technologie:
J(2)SE, swing, Java2D, sockets, I/O, threads, reflection.
|
Java consultant / Java developer |
02/09/2003 – 29/08/2005 |
|
Contract van onbepaalde duur |
Loppem (Brugge), Brussel, Antwerpen, ... |
JCS Portal (09/2003 - 12/2004):
BEA Portal v8.1 en Jahia development voor de interne JCS
portal.
Technologie: BEA weblogic, BEA portal, Struts, Portlets,
...
Auditing (09/2003 - 03/2004): Micro en macro auditing van meer dan 15 projecten met PMD, CheckStyle, JDepend, AVK en andere. Automatisering via ANT en Maven.
Griffoen applicatie
(03/2004 – 05/2005 voor V.F.S.I.P.H. te Brussel): Desktop
applicatie om 2 soorten medische rapporten aan te maken, te beheren,
te printen, verouderde formaten te importeren en via S/MIME
geëncrypteerd te verzenden. Medewerking aan een gedetailleerde
handleiding, helpdesk training en gebruikerstraining. Griffoen is in
gebruik bij meer dan 200 organisaties in Vlaanderen.
Technologie:
Swing, JDOM XML, FOP, JavaMail, JCE, BouncyCastle.
Griffoen Verwerker (01/2005 – 05/2005
voor V.F.S.I.P.H. te Brussel): Mailer daemon die automatisch
griffoen rapporten ontvangt, decrypteert, valideert en opslaat in de
Feniks databank. Stuurt ook gedetailleerde
antwoordmails.
Technologie: JavaMail, JCE, BouncyCastle.
Feniks integratie (01/2005 – 05/2005
voor V.F.S.I.P.H. te Brussel): Integratie in een in-house client
server applicatie om Griffoen rapporten te tonen en te printen na
ontvangst.
Technologie: Swing (en een custom J2EE framework dat
JNDI, EJB2, etc gebruikt).
VF mavenization (04/2005 – 05/2005
voor V.F.S.I.P.H. te Brussel): Herwerking van het volledige build
process van ANT naar Maven 1 van 5 grote projecten met meer dan 20
modules, geschreven over 5 jaren door 10 developers. Setup van
CruiseControl op Suse Linux.
Technologie: ANT, Maven 2.
JavaCareers (06/2005 - 08/2005):
Verbetering van het build process gebaseerd op Maven 1. Setup van
CruiseControl op Suse Linux en geautomatiseerd deployment naar
JBoss, Tomcat en Resin.
Technologie: JSF, Tiles, Spring,
Hibernate, Maven 2, ...
Na 2 jaar consultancy op zoek gegaan naar een andere werkgever om de dagelijkse afstand tot de veranderende werkplaats die veelal 3 uur per dag in beslag nam te verkleinen.
|
Onderzoeker / Java developer |
01/09/2005 – 31/12/2006 |
|
2 contracten van bepaalde duur |
Gent |
Mammoet (09/2005 – 12/2005):
Onderzoeksproject naar multi-modaal transport planning via een
intelligent agentenplatform.
Technologie: Jade, Spring,
Hibernate, Spring-richclient, Maven 2, ...
Studenten project begeleiding (11/2005 –
05/2005): Begeleiding van verschillende studentengroepen en
onderwijzen van enkele korte lessen (Subversion, Hibernate,
Spring).
Technologie: Hibernate, Spring, Tomcat, Axis, J2ME.
Triton (01/2006 – 10/2006):
Online applicatie voor het invullen van timesheets en het beheer van
onderzoeksprojecten. Geïmplementeerd via een J(2)SE client en
J(2)EE server applicatie en geïntegreerd met een bestaande
persooneelsdatabank.
Technologie: Spring, Hibernate-annotations
(JPA), JBoss, Spring-richclient, JasperReports, Java webstart, Maven
2, ...
Voor het eindigen van het 2de contract van bepaalde duur op zoek gegaan naar een andere werkgever omwille van de onzekere toekomst met mijn graduaatsdiploma.
|
Java developer |
02/01/2007 – nu |
|
Contract van onbepaalde duur |
Nazareth (bij Deinze) |
Digidoc Pro (01/2007 –
05/2007): Client-server applicatie voor het bewerken en
doorzoeken van een beelden archief. Verbetering van het domein model
en Daisy CMS communicatie. Integratie met een OpenOffice.org
server.
Technologie: Spring, Daisy, Spring-richclient,
JODConverter, Java webstart, Maven 2, ...
BBA: Beleid en Budget Applicatie (06/2007
– nu): Client-server applicatie voor het opstellen en
beheren van een gemeentebudget, geïntegreerd met de boekhouding.
Design en implementatie van API (domein/rapport/batch objecten,
service interfaces), back end (business logic, dao's, rapporten) en
front end (screens).
Technologie: Spring, Hibernate-JPA,
Spring-richclient, Swing, JasperReports, Java Webstart, Maven 2, …
Fin (09/2008 – nu): Fin is het overkoepelend gemeente boekhouding project.
Atlas (? – nu): Het Altas project bevat de herbruikbare bibliotheken binnen het bedrijf. Verschillende delen van mijn BBA code (bv integratie met JPA, spring-remoting, hibernate validation, ...) zijn geëxtraheerd naar Atlas. Ik help dan ook regelmatig collega's met vragen omtrent java technologiën.
|
Java developer |
04/2005 - 08/2005 |
http://maven-plugins.sourceforge.net
Maven IzPack plugin: Een Maven 1 plugin om installers te genereren via IzPack. De basic IzPack installer is een platform onafhankelijke installer jar. Die installer jar kan dan op zijn beurt gebundeld worden met een JVM in Win32 installer exe.
Maven JAXB plugin: Een Maven 1 plugin om java broncode te genereren uit XSD schema's via JAXB.
|
Java developer |
02/2006 - nu |
Spring-richclient is een desktop framework voor fat clients met data binding, i18n, ... Het is nog steeds enorm beta, maar het werkt.
Maven2ization: Van ANT naar maven 2.
Development: Bugfixes en nieuwe features: exception handling, ...
|
Java developer / Drools Planner projectleider |
01/2007 - nu |
Drools Planner automatiseert planning. Het combineert een search algoritme (simple local search, tabu search, simulated annealing, ...) met de kracht van de Drools rule engine voor score berekening. Het is development-friendly en scalable.
Drools planner: Design en implementatie.
Drools build system: Bugfixes en hulp bij de maven 2 configuratie.
Ik hou ervan om creatieve en/of nuttige ideeën uit te werken en te implementeren in werkende applicaties. Ik probeer dagelijks mijn development methodes bij te schaven en te standaardiseren om superieure projecten te maken.
Ik werk bij voorkeur bij een bedrijf:
In een bedrijf (al dan niet ICT gericht) om een goede samenwerking te kunnen opbouwen.
Voor onbepaalde duur om op termijn respect, verantwoordelijkheid en vertrouwen te kunnen verwerven.
Met source control, issue tracking, (licht) UML design, code conventions, unit / user testing en dependency injection.
In Oost-Vlaanderen, om de dagelijkse woon-werk afstand minimaal te houden, die tijd kan nuttiger besteed worden. Ik heb geen probleem met occasioneel te reizen.
Op (Ubuntu of Fedora) Linux en met IntelliJ IDEA. Desondanks help ik collega's of klanten graag en vakkunding verder op andere platformen zoals Windows en/of Eclipse.
Ik wil een technisch team voor 1 of meerdere projecten leiden en inspireren in een professionele omgeving. Ik heb geen ambitie om boven het technische uit te groeien naar sales- of business management.
Gepassioneerde developer:
Programmeren is vakmanschap. Ik probeer dan ook altijd perfectie en
standaardisatie na te streven in design en implementatie.
Hierdoor
zal ik echter regelmatig er op aan dringen om tijd te vrij te maken
om slechte code te verbeteren of te refactoren, ook al biedt het
geen rechtstreekse feature winst.
Open en eerlijk: Als het me niet lukt om
iets juist af te werken wegens tijdgebrek, documenteer ik het
duidelijk via HACK en TODO commentaren.
Source control, issue tracking en een goed build process zijn dan
ook onmisbare tools om de code transparanter te maken en zwakke
punten aan het licht te brengen.
Anderzijds kan ik het niet laten
veelal direct aanmerken als iets dat gezegd wordt, dat - tot zover
ik weet - niet juist is.
Discussiegericht: Een goed team werkt op
bijna dezelfde lijn. Daarom werk ik het liefst samen met mensen die
oplosbare meningsverschillen vroeg aankaarten en erover
discussiëren, om dan zo via een compromis tot een goede oplossing
te komen.
Ik heb veelal een sterke mening over technische zaken,
maar als bij moeilijke problemen er geen compromis gevonden wordt,
zal ik uiteraard wel de opgelegde oplossing respecteren.
Praktijkgericht: Aan abstracte begrippen
zoals improved security en more agile development
heb ik weinig. Geef me liever bijvoorbeeld Spring Security
en JUnit met Maven 2. Ik leer dan ook veel sneller via
tutorials of code-voorbeelden dan via abstracte teksten.
Daarom
probeer ik bij abstracte voorstellen, problemen of analyses altijd
praktische vragen te stellen om ze sneller te begrijpen.
Soms mondeling minder begrijpbaar: Als ik
iets mondeling uitleg zonder voorbereiding dat ik zelf nog niet ten
volle begrijp, kan ik verwarrend en verstrooid overkomen.
Daarom
probeer ik dit tegen te gaan door structurele voorbereidingen,
diagrammen, mindmaps, metaforen of praktische voorbeelden te maken
om efficiënter te communiceren.
Squash/basketbal/badminton/schaatsen: Minder regelmatig dan vroeger.
Werken aan ons huis: Ter vervanging van de verminderde sport.
Wandelen: Als het mooi weer is.
Bordspellen of eten met vrienden: In het weekend.
Computer games, films en muziek: Regelmatig als ontspanning.
Open source programming: Zie vrije tijd werkervaring.