Name | Wouter Olaf van Ooijen |
Contact | wouter@voti.nl |
Born | 18 september 1962, Gouda, Netherlands |
Home |
Amersfoort, Netherlands
I prefer on-site work. Remote work and periodic trips are an option, permanent relocation is not. |
Availability | Currently employed |
Highest education | University, TU Delft, Informatics (Computer Science) |
Languages | Dutch (native), English (fluent) |
Keywords | C++, Python, C, assembler, Ada, Java, (Turbo)Pascal, DEC EPascal, embedded, real-time, resource-constrained, electronics, system designer, architect, lecturer, consultant, team leader, Linux, micro-controller, Cortex-M, Microchip PIC, Arduino, make, git, catch2, doxygen, pybind2, industrial, space, military, C++ SG14, Meeting C++, Meeting Embedded, ACCU, EmBo++, CoreHard, The Dutch C++ group |
File location | https://www.github.com/wovo/cv |
Printable html page | https://htmlpreview.github.io/?https://github.com/wovo/cv/blob/master/index.html |
I want to guide and help an embedded development team to use C++ effectively to improve productivity, software quality and code re-use.
This can involve a fresh team, a team struggling with C++, or a team transitioning from C to C++.
My role is consultant, architect, team lead, trainer. Occasionally I also design, code, document, test, evaluate, and whatever else is necessary.
I am a software professional with a passion for electronics, often working on the boundary between hardware and software. I am quick to learn the essence of new application areas, and I like to absorb and disseminate knowledge.
I have a solid background in my field of work (technical software), adequate knowledge of neighboring domains (mathematics, electronics, physics, chemistry, biology, etc.), and an active interest in everything else that turns out to be relevant. I like working with professionals from both software and other domains. I have worked in industrial, space, military and academic domains in various roles where electronics, reliability, resource constraints, real-time aspects, and data-communication were important.
I started my career as programmer with one year as a one-man development team for a hospital laboratory. Next I joined the hiring company ICT Automatisering, for which I worked internally and externally at various projects. I became a 'problem solver' for technically challenging problems that involved both software, and other technical domains. For me 'solving' means identifying and (as far as possible) quantifying the consequences of the available alternatives, so a well-founded decision can be made. Often the non-software aspects (hardware, costs, risks, schedule impact, politics, company culture) are what makes a problem really interesting (and challenging).
In 2001 I started as an independent, with a webshop and hiring myself out as a freelancer. The shop expanded, and the freelancing was replaced by fixed-price contract work, and a small assignment as lecturer. My main activities involved Microchip PIC and ARM/Cortex micro-controllers. I still sell these chips (and related components), and some products that contain these chips.
From 2010 onwards my work gradually shifted from the webshop ad freelancing to lecturing. As a lecturer, I really enjoy passing my knowledge and experience on to new generations of embedded software engineers, both technical aspects and the enthusiasm for the field. I prefer to combine different formats: written material, lectures (life and recorded), interactive work sessions, small-group discussions, home assignments, individual and group projects. I activate the internal motivation of students (and colleagues) by providing individual challenges and bringing them into contact with professionals in the field.
I am a firm proponent of using C++ for small embedded (micro-controller) systems. I have held talks at various C++ conferences on this subject, and I participate in the SG14 GameDev & low latency ISO C++ working group, which is part of the ongoing C++ standardization and evolution process.
period | 2022 - ... |
function | embedded software expert |
organization | cboost (https://www.cboost.nl) |
location | Breda / Utrecht; Netherlands |
CBoost is an engineering company specialized in robotics
and artificial intelligence.
My first activity is coaching an automotive development team. |
period | 2004 - 2022 |
function | senior lecturer |
organization | Hogeschool Utrecht, HBO-ICT, Technische Informatica (Computer Science) |
location | Utrecht; Netherlands |
I work at the section Technical Informatics (Computer Science)
of the HBO-ICT institute, where
I am overall responsible for the 1.5 years of TI curriculum.
I coach and guide colleagues, create course material,
give lectures, and guide and supervise students.
I initiated and manage the lab, which is the place where lecturers, freshmen and senior students meet, discuss, and work on projects. I also initiated the visiting of local meetings (the Dutch C++ group) and international conferences (code::dive, FOSDEM, EmBo++). This started with a small group of senior TI students, and was gradually expanded to interested students of all years and also other sections of the institute. My specialization is C++ and software engineering, applied to programming small embedded (micro-controllers) systems. |
period | 2001 - present |
function | owner |
organization | VOTI |
location | Amersfoort; Netherlands |
I run a webshop for micro-controller chips and related products.
My customers range from entry-level hobbyists to small-scale professionals,
the occasional a large company or a school.
I also did freelance work (NLR, see below) contract embedded software development, and due-diligence code base audits. |
period | 2001 - 2002 |
function | tester, programmer |
organization | NLR (from VOTI) |
location | Markenesse, Amsterdam; Netherlands |
MPTE is a visual simulator of the ERA robot arm,
the space station on which the robot is used,
and the environment of the space station (sun, moon, earth, stars).
MPTE is used for mission preparation and for cosmonaut training.
I created automated test procedures for a number of simulation models developed at LNR. The procedures test both the functionality and the test path coverage (using Tcat-Path). I also rewrote and corrected the model code and wrote (or rewrote) the detailed designs. |
period | 1999 - 2001 |
function | system engineer |
organization | Hollandse Signaal / Thales (from ICT) |
location | Huizen; Netherlands |
SmartNet is a communication system designed for military purposes.
Its original intended use was as a voice and data communication system
in military vehicles (tanks), either stand-alone or in groups (headquarters).
An important civil customer is the NS (Dutch railways) where it is used to carry video,
voice and data over the existing glass fiber infrastructure.
I contributed to the system design of SmartNet, especially the interface definitions, the testability, the transport of synchronous data and the scalability. I created a tool that can be used to assess the feasibility of a SmartNet configuration. |
period | 1995 - 1998 |
function | system engineer |
organization | Fokker Space / Dutch Space (from ICT) |
location | Leiden; Netherlands |
The European Robotic Arm (ERA) is a robot arm for the Russian section
of the international space station ISS.
As the prime contractor Fokker Space is responsible for the system design,
the project management and the integration and testing of the total system.
I worked mainly on the central computer of the arm and on the datacommunication within the arm. Critical aspects were the performance of the processor and the reliability of the (Ada) compiler. Contacts with the subcontractors (SAAB, DASA, CRI/Matra, Tecnospazio, Alsys/Aonix) were an important part of my work. I also worked on the automated testing facility for the engineering model of the central computer. |
period | 1994 - 1995 |
function | programmer, team leader |
organization | NCR (from ICT) |
location | Amsterdam; Netherlands |
A cheque processing system was adapted for the Dutch situation.
The system consisted of an optical cheque reader, a database system,
an OCR engine, an number of data entry terminals and a mainframe connection.
I worked as (C/C++) programmer and as team leader. |
period | 1989 - 1994 |
function | programmer, designer, trainer, team leader |
organization | ICT Automatisering |
location | Rotterdam; Netherlands |
DM90 is a real-time data-communication and data-acquisition product,
sold mainly to for industrial process control (AKZO, DSM, ALDEL).
A DM90 is a real-time DEC VAX with software developed by ICT
that handles the communication with various industrial control systems
(Honeywell, TDC, Siemens, AEG, SattControl).
A DM90 gathers and stores real-time data and presents
this data in a uniform way to a VAX-VMS system.
I worked as (E-Pascal, C, Fortran) programmer, designer, trainer and as team leader. |
period | 1988 - 1989 |
function | designer, programmer |
organization | St Elisabeth Hospital |
location | Leiderdorp; Netherlands |
The hospital laboratory performs analysis on blood samples.
The analysis requests are provided by the hospitals mainframe.
The majority of the analysis are performed on automated analysis machines.
I designed, implemented (in TurboPascal) and introduced a network of PCs. One PC gets the requests from the mainframe, and feeds the authorized result back. The other PCs are each coupled to one or more analysis machines and receive the analysis results via RS-232 interfaces. These PCs are also used to select the analysis that are to be performed and to authorize the results. |
period | 1981 – 1988 |
degree name | MSc (Dutch: ir) Informatics (Computer Science) |
organization | Technische Universiteit Delft |
Member and chair of the student club "de Delftsche Zwervers".
Student-assistant for three programming courses: Pascal, PDP-11 assembler, numerical algorithms. |
period | 1977 – 1981 |
degree name | IVO MAVO, VWO (state exam) |
organization | Vrije School Den Haag |
These are my talks and appearances on C++ meetings that were recorded. Most are about using modern C++ for small embedded systems.
- "Better embedded library interfaces with modern C++" ACCU 2019, Bristol
- "We stopped teaching C" (with Jorn Bunk) Meeting Embedded 2019, Berlin
- Embedded C++ For Embedded C Programmers emBO++ 2019, Bochum
- "Grill the committee" CoreHard Spring 2018, Minsk
- "Objects? No thanks!" CoreHard Spring 2018 Keynote, Minsk
- "Embedded & C++" Meeting C++ 2017 Keynote, Berlin
- "C++ on small micro controllers" Meeting C++ 2015, Berlin
- "Objects? No Thanks!" Meeting C++ 2014, Berlin
Hobbies |
Natural history: water insects, mushrooms
Buitenkunst |
Sports | Badminton |
family | Married, 3 children, 2 cats |