Dutch / Nederlands
Curriculum Vitae of Frans Faase
Contact: email.
Personal website.
Personal github account.
Education
- Augustus 1967 - May 1973: Primary education.
- Augustus 1973 - May 1981: Secondary education.
(Grade list)
- Augustus 1981 - March 1986: Computer Science at the University of Twente. Graduated from the departments of Theoretical
Computer Science and Formula Manipulation (TIF) and Computer Architecture
and Programming Tools (CAP). The graduation assignment entitled
An attribute evaluator generator was carried out
at the compiler construction group of TIF. Passed with honors.
(Grade list)
Personal characteristics
I see myself as a senior software engineer who:
- realizes that everything revolves around collaboration with colleagues and
end-users,
- is always ready to answer questions or take a look,
- has a strong sense of responsibility,
- can assess risks and set priorities,
- organizes his work independently,
- has a pragmatic attitude being able to break-down complex problems in
smaller steps, and delegate these to others, if needed,
- likes to use his experiences to help other developers grow,
- has a preference for continuous integration / continuous delivery (CI/CD).
I am a creative thinker and gifted with respect to nonverbal, visual and
spatial intelligence. I beat most, often all, of my colleagues in programming
challenges, such as Advent of Code using plain C. I am great at finding and implementing
algorithm sometimes finding solutions that a hunderd times faster. I am the
guy that find the cause of bugs that others could not find after searching
for days or weeks.
Work experience
September 23, 2024 - Now: Senior software engineer at KITT Engineering
October 2019 - April 2024: Senior software engineer at
Bond3D
Worked on the development of the Bond3D Slicer in C# in close cooperation with
other departments. Also fullfilled the role of product owner, keeping contact
with other department, priotizing issues, and support other software engineers
in solving the issues. Developend domain knowledge of printing with
Polyether ether
ketone (PEEK).
The Bond3D Slicer takes as input a 3D model (in the form of STL files) and slices this into slices with a given thickness, generate
paths according to settings, determine a sorting order for the paths,
connecting them with travel movements, and generate
G-code that is ready to be
sent to the printer for printing the parts. I developed several algorithms to
improve printing and slicer performance (a few with a factor of more than
hunderd).
Because of the experimental nature of the Bond3D Slicer, it has large number of
settings, which often interact with each other. I also developed a repository
to store and manage settings and device definitions. This repository was
implemented with a REST based interface with a webserver executing stored
procedures in a Microsoft SQL Server database.
For the slicer settings, I maintained the wiki with the documentation of all
the settings and their possible interactions. In doing so, I became the expert
with respect to these settings.
(I left Bond3D on my own accord because in the last year management wanted to
revert from CI/CD to the waterfall model of software development and because of organizational
changes that I am not allowed to disclose at the moment and.)
October 2018 - October 2019: Senior software engineer at ADLINK Hengelo
Worked on the development of an IDL compiler for Eclipse CycloneDDS
in C. My commits to the project. Also worked on documentation for Vortex Lite.
Gained experience with cmake, Doxygen and Sphinx.
(After one year, I decided not to continue my contract because work on the open
source CycloneDDS project did not match well with the other commercial
activities.)
April 2002 - October 2018: Software engineer at BiZZdesign B.V.
At BiZZdesign I worked on the development of the BiZZdesign Architect
applications for respectively modeling business processes and enterprise
architecture according to the ArchiMate methodology. These applications are developed in C++ with Visual
Studio 2008. Among other things, I worked on the development of:
- A revision control system that makes it possible to edit a single model
with several people at the same time. This uses an advanced semantics-based
locking system.
- The implementation of a repository for models in a relational database.
- A scripting language and evaluator for querying models.
- Various import functions of third party models: BWise, Protos, CaseWise and
Archi.
- Worked on the development and the implementation of the ArchiMate exchange
format, co-authored A Guide to the ArchiMate® Model Exchange File Format.
(I left the company on my own accord, looking for a new challenge.)
July 2001 - March 2002: Senior software engineer at TLI B.V.
Telic makes an ERP application based on software generation. Further developed
client application in Visual Studio C++ with OBDC, OleDB, and COM.
(Contract was terminated due to bankruptcy.)
April 1999 - July 2001: Software system designer at Philips Analytical B.V.
In my position I have been very closely involved in the development of the
SuperQ application, which is used for all high-end X-ray fluorescence
spectrometers, for which Philips Analytical (now Malvern Panalytical) is the global market leader. The package is
implemented in Visual Basic 6.0 and consists of several COM servers and MDI
programs running in parallel.
(I left the company on my own accord for a job closer to home.)
September 1997 - April 1999: Software engineer at Tecnomatix B.V.
The work concerned the further development of the PART application in C++, SQL
(Oracle), ACIS and X-windows (Motif). Technomatix is now part of Siemens.
June 1994 - September 1997: Research assistant at the ESPRIT project TransCoop at the University of Twente
In cooperation with GMD from Germany and VTT from Finland. The project
investigated cooperative transaction models and the specification of
cooperative scenarios. I have been involved in Work Package 2: "Analysis of
selected applications" and Work Package 4: "Design of the specification
language". The specification language is based on process algebraic language
LOTOS and the database specification language TM. A compiler was developed in C++ for this specification language and a
simulation environment including Java.
January 1990 - June 1994: System analyst/programmer at Seki-Riesewijk B.V.
Working as software developer for various applications developed using C. The
main activities concerned the development of a multi-user database system for
the storage and selection of graphic data (in the AutoCAD format) and several
couplings with AutoCAD.
March 1986 - March 1988: Employee at University Twente
Worked as an education employee (MOW) and as a research employee (MOZ), at the
department of Theoretical Computer Science and Formula Manipulation (TIF). The
teaching task consisted of giving introductory programming lessons in PASCAL
and supervising students with their graduation assignment. The research was
carried out at the translator construction group and consisted of developing
and documenting a component of a compiler-compiler. See: Documentation and Source of the AAPT-Evaluator Generator. (Part of this
work also formed the basis of SLADE.)
Summary of experience and skills
- All-round software engineer with a strong sense of quality.
- Familiar with modern software development techniques and standards.
- Is particularly attracted to complex problems: complex algorithms, parallel systems, complex implementations and large systems.
- Interested in and experience with developing compilers and software tools.
- Well acquainted with object oriented methods and implementation techniques.
- Experience with system design and software architecture.
- Experience with reverse engineering and data conversions.
- Research experience with regard to cooperative systems, in particular with regard to transaction models and formal specification methods.
- More than 20 years of programming experience in C and C++ (MSVS, g++, clang++). In addition, experience with C#, Java, JavaScript and many others.
- Familiar with several IDEs: Visual Studio, Eclipse.
- Experience with relational databases including SQL Server and Oracle.
- Experience with different types of CAD/CAM systems.
- Experience with the following operating systems: Windows, Linux (Ubuntu, Arch)
Working conditions
At the moment, I am not open for a new work position.
As an older software engineer, I notice that I have different needs than
younger software engineers. My requirements are mainly in the area of working
conditions, an optimal work-life balance for me, and less in financial reward
and many days off.
I am especially motivated when I can help others with my efforts or help them
solve their problems. I like short lines of communication with the users of
the software I develop.
I like working in a team, but I also like autonomy with regard to what I work
on. I do not cope well with a manager interfering too much with the content of
what I have to work on, but a 'product owner' who tells me which issues have
the highest priority, so that I can judge for myself what I can best work on.
(I quickly feel responsible and tend to take on too many subjects rather than
too few.) I like to be able to occasionally spar about my work with someone
who is not substantively involved in my work.
I am a supporter of the Manifesto for
Agile Software Development. I also like to focus on indicators for
effective software development as, for example, determined by DevOps Research and Assessment (DORA). I prefer a more chaotic
development method over a very structured method (such as Scrum) with many
administrative steps. I am also not convinced of the usefulness of a daily
stand-up meeting. Maintaining documentation for the users is a natural part of
the development process, but documenting the development process itself is
usually a waste of time. I have noticed that I function best when I can work
an average of six hours a day. I find it difficult to be present for pay. I am
usually present from 10 to 5 (also half past 5) when I work in the office. I
also like to work half a day from home on Tuesdays and Thursdays. But it also
happens that I spend them on the weekend or in the evening if I have an issue
that I can solve so that the end users can use it the next day. I have no need
for vacations that last longer than a week. I do like to take a day off every
now and then. I usually have trouble using up my vacation days. I prefer a
workweek of between 24 and 30 hours.
I am not someone who actively exercises (besides taking walks), but I really
appreciate the exercise of cycling to work. The maximum cycling distance for
me is half an hour (one way to the office). That is why I have a strong
preference for working in Enschede when it is required to be in the office
more than a few days per week.