Engels / English
Curriculum Vitae of Frans Faase
Contact: email.
Persoonlijke website.
Persoonlijk github account.
Opleidingen
- Augustus 1967 - Mei 1973: Basisschool.
- Augustus 1973 - Mei 1981: HAVO en VWO.
(VWO cijferlijst)
- Augustus 1981 - Maart 1986: Informatica aan Universiteit Twente. Afgestudeerd bij de vakgroepen Theoretical
Computer Science and Formula Manipulation (TIF) en Computer Architecture
and Programming Tools (CAP). De afstudeeropdracht was
An attribute evaluator generator en werd gedaan
bij de compiler constructie groep van TIF. Met lof geslaagd.
(Cijferlijst)
Persoonlijke karaktertrekken
Ik zie mezelf als een senior software engineer die:
- beseft dat alles draait om samenwerking met collega's en eindgebruikers,
- altijd klaarstaat om vragen te beantwoorden of een kijkje te nemen,
- een sterk verantwoordelijkheidsgevoel heeft,
- risico's kan inschatten en prioriteiten kan stellen,
- zijn werk zelfstandig organiseert,
- een pragmatische houding heeft en complexe problemen in kleinere stappen
kan opsplitsen en deze indien nodig aan anderen kan delegeren,
- graag zijn ervaringen gebruikt om andere ontwikkelaars te helpen groeien,
- een voorkeur heeft voor continuous integration / continuous delivery (CI/CD).
Ik ben een creatieve denker en begaafd met betrekking tot non-verbale, visuele
en ruimtelijke intelligentie. Ik versla de meeste, regelmatig alle, van mijn
collega's in programmeeruitdagingen, zoals Advent of Code met behulp van gewoon C. Ik ben goed in het vinden en
implementeren van algoritmen, soms met oplossingen die honderd keer sneller
zijn. Ik ben vaak degene die de oorzaak van bugs vindt die anderen niet konden
vinden na dagen of weken zoeken.
Werkervaring
23 september 2024 - Nu: Senior software engineer bij KITT Engineering
Oktober 2019 - April 2024: Senior software engineer bij
Bond3D
Werkte aan de ontwikkeling van de Bond3D Slicer in C# in nauwe samenwerking met
andere afdelingen. Vervulde ook de rol van product owner, hield contact met
andere afdelingen, prioriteiten bepaalde voor de issues en andere software
engineers ondersteunde bij het oplossen van de issues. Ontwikkelde domeinkennis
van printen met Polyether ether ketone (PEEK).
De Bond3D Slicer neemt als invoer een 3D-model (in de vorm van STL-bestanden) en snijdt dit in plakken (slices) met een bepaalde dikte,
genereert paden volgens instellingen, bepaalt een sorteervolgorde voor de
paden, verbindt ze met verplaatsingsbewegingen en genereert G-code die klaar is
om naar de printer te worden gestuurd om de onderdelen te printen. Ik
ontwikkelde verschillende algoritmen om de print- en slicerprestaties te
verbeteren (een paar met een factor van meer dan honderd).
Vanwege het experimentele karakter van de Bond3D Slicer heeft het een groot
aantal instellingen, die vaak onderlinge afhankelijkheden hadden. Ik
ontwikkelde ook een repository om instellingen en apparaatdefinities op te
slaan en te beheren. Deze repository werd geïmplementeerd met een
REST-gebaseerde interface met een webserver die stored procedures uitvoert in
een Microsoft SQL Server-database.
Voor de slicer-instellingen heb ik de wiki beheerd met de documentatie van alle
instellingen en hun mogelijke interacties. Hierdoor werd ik de expert met
betrekking tot deze instellingen.
(Ik heb Bond3D op eigen initiatief verlaten omdat het management er op aandrong
om CI/CD te vervangen door de watervalmethode van software ontwikkeling en vanwege organisatorische
veranderingen waar ik op dit moment geen openbare uitspraken over kan doen.)
Oktober 2018 - Oktober 2019: Senior software engineer bij ADLINK Hengelo
Gewerkt aan de ontwikkeling van een IDL compiler in C voor Eclipse
CycloneDDS. Mijn commits voor het project. Ook gewerkt aan de documentatie voor Vortex
Lite. Ervaring opgedaan met cmake, Doxygen en Sphinx.
(Besloten om mijn jaarcontract niet te verlegen omdat de open source
ontwikkeling van het CycloneDDS project niet in lijn was met de
commerciële doelstellingen.)
April 2002 - Oktober 2018: Software engineer bij BiZZdesign B.V.
Bij BiZZdesign heb ik gewerkt aan de ontwikkeling van de BiZZdesign Architect
applicaties voor respectievelijk het modelleren van bedrijfsprocessen en
enterprise architectuur volgens de ArchiMate methodologie. Deze applicaties zijn ontwikkeld in C++ met Visual
Studio 2008. Ik heb onder andere gewerkt aan de ontwikkeling van:
- Een revisiebeheersysteem dat het mogelijk maakt om met meerdere mensen
tegelijk een enkel model te bewerken. Dit maakt gebruik van een geavanceerd
semantiek-gebaseerd locking systeem.
- De implementatie van een repository voor modellen in een relationele
database.
- Een scripttaal en evaluator voor het bevragen van modellen.
- Verschillende importfuncties van third party modellen: BWise, Protos,
CaseWise en Archi.
- Gewerkt aan de ontwikkeling en implementatie van het ArchiMate uitwisselingsformaat, mede-auteur van A Guide to the ArchiMate® Model Exchange File Format.
(Ik heb het bedrijf op eigen initiatief verlaten, op zoek naar een nieuwe uitdaging.)
Juli 2001 - Maart 2002: Senior software engineer bij TLI B.V.
Telic maakte een ERP application baseerd op software generatie. Onderhoud
gepleegd aan de client applicatie in Visual Studio C++ with OBDC, OleDB, and
COM.
(Het contract werd ontbonden vanwege een faillissement.)
April 1999 - Juli 2001: Software system designer bij Philips Analytical B.V.
Ik was nauw betrokken bij de verdere ontwikkeling van de
SuperQ applicatie, die werd gebruitk voor de high-end X-ray fluorescentie
spectrometers vaak voorzien van een sample handling robot, voor welke Philips
Analytical (nu Malvern Panalytical) de globale martkleider is. De applicatie werd
ontwikkeld in Visual Basic 6.0 en bestond uit verschillende COM gebaseerde
servers en MDI applicatie die parallel draaide.
(Ik heb het bedrijf op eigen initiatief verlaten op zoek naar een baan dichter
bij huis.)
September 1997 - April 1999: Software engineer bij Tecnomatix B.V.
Het werk bestond uit het verder ontwikkelen van de PART applicatie in C++, SQL
(Oracle), ACIS en X-windows (Motif). Technomatix is nu onderdeel van Siemens.
Juni 1994 - September 1997: Research assistant bij the ESPRIT project TransCoop aan de Universiteit Twente
In samenwerking met GMD uit Duitsland en VTT uit Finland. Het project
onderzocht coöperatieve transactiemodellen en de specificatie van
coöperatieve scenario's. Ik was betrokken bij Werkpakket 2: "Analysis of
selected applications" en Werkpakket 4: "Design of the specification
language". De specificatietaal is gebaseerd op de procesalgebraïsche taal
LOTOS en de databasespecificatietaal TM. Er werd een compiler ontwikkeld in C++ voor deze specificatietaal en een
simulatieomgeving met Java.
January 1990 - June 1994: System analyst/programmer bij Seki-Riesewijk B.V.
Werkzaam als softwareontwikkelaar voor diverse applicaties ontwikkeld met
behulp van C. De hoofdwerkzaamheden betroffen de ontwikkeling van een
multi-user databasesysteem voor de opslag en selectie van grafische gegevens
(in het AutoCAD-formaat) en diverse koppelingen met AutoCAD.
Februari 1986 - Juni 1989: Medewerker bij de Universiteit Twente
Gewerkt als medewerker onderwijs (MOW) en als medewerker onderzoek (MOZ), bij de
vakgroep Theoretische Informatica en Formule manipulatie (TIF). De onderwijstaak bestond
uit het geven van inleidend programmeeronderwijs in PASCAL en het begeleiden van
studenten bij hun afstudeeropdracht. Het onderzoek werd uitgevoerd bij de groep
vertalerbouw en bestond uit het ontwikkelen en documenteren van een onderdeel van een
compiler-compiler. (Een deel van dit werk heeft ook aan de basis van
SLADE gelegen.)
Samenvatting van ervaring en vaardigheden
- Allround software engineer met een sterk kwaliteitsgevoel.
- Bekend met moderne softwareontwikkelingstechnieken en -standaarden.
- Wordt vooral aangetrokken door complexe problemen: complexe algoritmen,
parallelle systemen, complexe implementaties en grote systemen.
- Geïnteresseerd in en ervaring met het ontwikkelen van compilers en softwaretools.
- Goed bekend met objectgeoriënteerde methoden en implementatietechnieken.
- Ervaring met systeemontwerp en softwarearchitectuur.
- Ervaring met reverse engineering en dataconversies.
- Onderzoekservaring met betrekking tot coöperatieve systemen, met name
met betrekking tot transactiemodellen en formele specificatiemethoden.
- Meer dan 20 jaar programmeerervaring in C en C++ (MSVS, g++, clang++).
Daarnaast ervaring met C#, Java, JavaScript en vele anderen.
- Bekend met verschillende IDE's: Visual Studio, Eclipse.
- Ervaring met relationele databases, waaronder SQL Server en Oracle.
- Ervaring met verschillende soorten CAD/CAM-systemen.
- Ervaring met de volgende besturingssystemen: Windows, Linux (Ubuntu, Arch)
Arbeidsvoorwaarden
Ik sta op dit moment niet open voor nieuw werk.
Als oudere software engineer merk ik dat ik andere behoeften heb dan jongere
software engineers. Mijn eisen liggen vooral op het gebied van
arbeidsomstandigheden, een optimale werk-privébalans voor mij, en minder
op het gebied van financiële beloning en veel vrije dagen.
Ik word vooral gemotiveerd als ik anderen kan helpen met mijn inspanningen of
hen kan helpen hun problemen op te lossen. Ik houd van korte
communicatielijnen met de gebruikers van de software die ik ontwikkel.
Ik werk graag in teamverband, maar ik houd ook van autonomie met betrekking tot
waar ik aan werk. Ik kan niet goed overweg met een manager die zich teveel
bemoeit met de inhoud van waar ik aan moet werken, maar met een 'product owner'
die mij vertelt welke zaken de hoogste prioriteit hebben, zodat ik zelf kan
beoordelen waar ik het beste aan kan werken. (Ik voel me snel verantwoordelijk
en pak eerder te veel dan te weinig onderwerpen aan.) Ik vind het fijn om af
en toe te kunnen sparren over mijn werk met iemand die inhoudelijk niet bij
mijn werk betrokken is.
Ik ben voorstander van Manifest voor Agile Software Ontwikkeling. Ook richt ik me graag op
indicatoren voor effectieve softwareontwikkeling, zoals bijvoorbeeld bepaald
door DevOps Research and Assessment (DORA). Ik
prefereer een meer chaotische ontwikkelmethode boven een zeer gestructureerde
methode (zoals Scrum) met veel administratieve stappen. Ook ben ik niet
overtuigd van het nut van een dagelijkse stand-up meeting. Het bijhouden van
documentatie voor de gebruikers is een natuurlijk onderdeel van het
ontwikkelproces, maar het documenteren van het ontwikkelproces zelf is meestal
tijdverspilling. Ik merk dat ik het beste functioneer als ik gemiddeld zes uur
per dag kan werken. Ik vind het lastig om betaald aanwezig te zijn. Ik ben
meestal van 10 tot 5 (wat vaak half zes wordt) aanwezig als ik op kantoor werk.
Indiem mogelijk werk ook graag een halve dag thuis op dinsdag en donderdag.
Maar het komt ook voor dat ik ze in het weekend of 's avonds doorbreng als ik
een probleem heb dat ik kan oplossen zodat de eindgebruikers er de volgende
dag gebruik van kunnen maken. Ik heb geen behoefte aan vakanties die langer
dan een week duren. Ik neem wel graag af en toe een dag vrij. Ik heb meestal
moeite om mijn vakantiedagen op te maken. Ik prefereer een werkweek van 24 tot
30 uur.
Ik ben niet iemand die actief sport (behalve wandelen), maar ik waardeer de
beweging van fietsen naar het werk wel enorm. De maximale fietsafstand voor mij
is een half uur (enkele reis naar kantoor). Daarom heb ik een sterke voorkeur
voor werken in Enschede als het nodig is om meer dan een paar dagen per week op
kantoor te zijn.