With over 20 years of experience, I am a highly skilled and driven application developer. I've worked with a wide range of platforms, frameworks, languages, and tools, and there are few programming challenges I can’t tackle. I have taken responsibility for every stage of application development, from requirements gathering to testing and user training. I'm known for my dedication—I don’t stop until I am completely satisfied with the result.
What I enjoy most is learning new things, combining them, and applying them to benefit the projects I’m working on. As a self-taught professional, I often adopt effective methods from others, enhancing both my efficiency and that of those who rely on my work.
I always keep the bigger picture in mind when working. With everything I do, I ensure it’s transferable, which
benefits me when I need to revisit my own work and may not remember all the details.
In my
experience, efficiency in the work process is often lacking. Even with an Agile Scrum process in place, there is
often a lack of, or incomplete, documentation and conventions for handling epics and tasks. Establishing clear
conventions for coding, directory structures, code styling, and in-code documentation is crucial to improving
both efficiency and transferability.
Over the years I gained experience in some subjects.
Inspection systems need to follow the TO (Technical Order) set by the manufacturers of the parts. Calibration of the system before and after a part inspection are essential for a successful result. This is fully automated and operators start an inspection project and respond to system requests only to change heads for example. After the inspection analysis of the data is also automated. The operator confirms found defects by moving allowing the system to automatically move to a defect position to finding its highest amplitude.
Double bridged Ultrasonic and Eddy-current scanning system for jet engine parts
Eddy-current inspection system for jet engine parts
Ultrasonic inspection system for jet engine parts
Ultrasonic inspection system for jet engine parts
Ultrasonic inspection system for jet engine parts
Hydraulic test stand for F16 fighter jet parts
Wen I started out programming using in PHP4 there where no real frameworks that suited. So I developed my own framework that is using PHP7 now which has:
I started out programming C++ for MS-DOS operating system using Borland C++ 3.1 IDE and compiler. Over the years Windows was introduced and moved to Borland C++ 5.0 using its OWL (Object Windows Library) in a time where Microsoft still had to develop its MFC library. Gradually I moved to Borland C++ Builder which was Borland Delphi under the hood.
The legacy application I worked on were intended for inspection systems and adding a single setting in an application took a few month of programming and testing which was unacceptable. So I set out to develop a settings interface in which all information about each setting could be retrieved by a referencing identifier.
A setting in an application was provided by server and used by a client like edit control on screen. The interface also provided in a transport of the value from client to server and vice versa in an event driven way. Doing so writing and reading settings in the application was just iterating in the settings list of the application. A newly introduced setting by a server module in the application was automatically saved in the settings file. Because of the interface a side effect was module separation/isolation. This made recompiling the code after a change much faster.
Settings alone was not sufficient as for data that was still as spaghetti linking almost each part of the code. For this I developed a similar event driven interface where servers add data entries to referenced by an identifier.
At the time system memory was limited and using large pre allocated chucks of memory made a system sluggish. So having that in mind, clients are able to access the data through the interface on request to the server if the requested data part is not yet accessible. The server which can be an acquisition module in case of an acquisition application or file reading module in case of an analysis application. The underlying mechanism uses file mapping to only have that part of memory available which is needed. The result is that a system with only 200MB of memory available to the application was able to acquire a multiple of that size.
Having realized both interfaces modules for transforming/filtering the data like FFT (Fast Fourier Transform) for instance to generate spectrum data from time sample data. A filter module has settings and result data as client input and data and settings as server output which can then be linked to presentation controls on screen.
Finally the screen layout needed to be modular and configurable as well. Borland C++ Builder/Delphi VCL made this possible. It allowed to save and load a design forms at run-time. This meant creating all controls needed for acquisition and analysis applications. Controls for settings like: Edit, Multi-line Edit, Dropdown, Edit Combo. As for the resulting data controls for an A-scan (Amplitude), B-scan (Color coded amplitude), C-scan (Color coded max amplitude/time-of-flight).
Since all the code mentioned is written for Borland C++ (Builder) and so bound to Windows only, I started to see if it is conceptually possible to use the cross-platform Qt6 library to build an application for Linux as well as Windows.
This resulted in an open source Git repository
(documentation).
The project uses
a common Git-module to share the burden
of DevOps on C++ projects.
A tiny 'Hello
World' (documentation) project is
created as boilerplate/skeleton project also to test all its features:
Some of the project are also mirrored from my hosted GitLab into GitHub.
I created a Wiki to store mainly information on application configuration and organisation issues (document management).
To be able to find pages in the wiki or manual everything a private search engine is available.
U kunt mij bereiken door mij een e-mail te sturen of te bellen.
info@scanframe.nl
036-5230283 / 06-57786444
LinkedIn.
Mijn adres is:
Valetaweg 42
1326MD Almere.