Dutch / Nederlands
Curriculum Vitae of Frans Faase
Contact: email.
Personal website.
Personal GitHub account.
Summary
Senior software engineer with experience primarily using C(++) in technical
environments, client software in mechatronics solutions, and one year of
experience with embedded software. Sufficient knowledge of mechatronics and
electronics to develop software that works with them.
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. In 2024, I was the 1719th contestant to
complete the challenge. See my personal stats. I am great at finding and implementing algorithm sometimes
finding solutions that a hundred 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 - September 22, 2025: Senior software engineer at KITT Engineering
Developed embedded software in C. This included developing a custom
Hardware Abstraction Layer (HAL) for a number of peripherals including I2C at
the level of reading and writing to hardware registers. The work included
studying data sheets for sensors and actuators.
Also gained some experience with embedded Linux using Yocto and editting
device tree for an Arm Cortex SoM.
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 fulfilled the role of product owner, keeping contact
with other department, prioritizing issues, and support other software engineers
in solving the issues. Developed domain knowledge of printing with
Poly-ether 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
hundred).
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 web server 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. After a few months, a major reorganization took place, followed by a
takeover.)
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)
Publications
- Andrew Josey, Phil Beauvoir,
Frans Faase, A Guide to the ArchiMate® Model Exchange File Format
- ArchiMate® Model Exchange File Format (contributor)
- Frans Faase, Arno Harteveld, Roland Hartman,
XP maakt korte metten met bestaande ontwikkelingsmethoden,
p. 17, Automatisering Gids,
nr. 35, September 1, 2000.
(An article about eXtreme Programming with an
illustration
by Jos Thommassen)
- F.J. Faase, S.J. Even, R.A. de By, The Transcoop Specification
Environment, Chapter 6 in Transaction Management Support for Cooperative Applications,
R.A. de By, W. Klas, J. Veijaleinen
(editors), Kluwer Academic Publishers, 1998. ISBN 0-7923-8100-9.
(Technical report)
- F.J. Faase, On counting specific spanning subgraphs of the graphs
G x P_n, Ars Combinatoria, Volume 49, August 1998.
- F.J. Faase, S.J. Even, R.A. de By, P. Apers,
Integrating Organisational and Transactional Aspects of Cooperative
Activities. 6th International Workshop on Database Programming Languages
(DBPL).
- S.J. Even, F.J. Faase, R.A. de By,
Language Features for Cooperation in an Object-Oriented
Database Environment, International Journal of Cooperative
Information Systems. Vol 5, No. 4 (1996) 469-500.
- P.A.C. Verkouwen, F.J. Faase, A.W. Selders and P.J.J. Oude Egberink,
Requirements for an Advanced Database Transaction Model to Support
Design for Manufacturing,
"Flexible Automation and Intelligent Manufacturing"
conference in Stuttgart, 1995, Begell House, New York.
- H. Alblas and F.J. Faase, Attributed Abstract Program Trees,
in Essays on concepts, formalisms and tools, pages 217-230,
Stichting Mathematisch Centrum, Amsterdam.