System Engineer
2013 - PRESENTHydrix Services Pty Ltd- Created a code generation framework from UML -> XML -> C++ for representation of data layer software.
- Created a plugin framework and accompanying SDK + documentation for writing plugins in the C++ environment.
- Created system architecture for initial instrument design.
- Lead the team developing several related GUI (Qt/C++) applications for use in a biomed lab.
- Created system architecture for a mobile X-ray cart.
- Created top-level software architecture and interfaces between various development partners around the world.
- Maintained system requirements and traceability for regulatory compliance.
- Led medical device risk assessment activities.
- Ensured IEC60601 compliance for the mobile X-ray cart.
Technologies: XML, C#, .NET, Windows, Linux, C++Senior Embedded Software Engineer @ MuTracx
2012 - 2013Sioux Embedded Systems- Developed an algorithm for the detection of circular markers in a copper substrate using C++, SSE3 and OpenMP.
- Implemented a system for double-sided alignment of printed etch resist on copper substrates moving with six degrees of freedom that had micrometer level precision.
- Designed various machine calibrations to detect actual mechanical tolerances that were influencing double sided print alignment.
- Designed an algorithm for the automatic calibration of optical sensors using C++.
- Automated the process of calibrating 9 optical units, reducing calibration time from several hours to approximately 3 minutes.
- Designed and implemented a new system for the distribution and synchronization of commands between autonomous networked nodes, allowing for a 70% reduction in the amount of Finite State Machines and protocol messages required.
- Designed and implemented a DSL (using XText) and code generators (using XTend) that allowed for simple interface definition and generated C++ code for middleware.
- Created an LXC container to allow developers to have a virtualized target environment independent of their development environment.
- Packaged all required development tools as Debian packages to allow for the easy installation of development systems.
Technologies: GDB, LXC, GCC, Eclipse, IBM Rational Rose, Eclipse Modeling Framework (EMF), Java, Xtend, Xtext, C++, LinuxSoftware Architect @ ASML
2011 - 2012Sioux Embedded Systems- Designed and implemented a new framework for the custom configuration of metrology reporting using C#, LINQ and Entity Framework.
- Managed a five-person development team (three in Moscow and two in Eindhoven).
- Achieved a ten-fold speed increase in report generation.
- Built UI prototypes using C# and WPF to improve user experience.
- Defined interfaces for factory integration at customer sites using XML.
Technologies: Windows Presentation Foundation (WPF), XSLT, XML, Entity Framework, LINQ, .NET, C#Software Architect for Wide-Format Printing Systems
2008 - 2011Oce Technologies BV- Architected Oce PlotWave 350, introduced a wide-format architecture reference platform to the Oce PlotWave 350 line.
- Led a team of senior developers implementing proof of concept.
- Chaired a focus group implementing wireless connectivity and mobile printing functionality.
- Responsible for the architecture of Oce ColorWave 600PP.
- Designed and implemented a system for product-line configuration using C++, Java, C# and XML/XSLT.
- Implemented roll-to-roll printing workflows.
- Led an architecture team consisting of six sub-system architects.
- Chaired a progress committee monitoring the co-development of drivers and support software with Onyx, an Oce partner in Salt Lake City.
- Designed a SOAP-based Web Service API for the integration of 3rd party software with Oce printing equipment.
- Gathered software requirements from Oce partners in France, Germany, the US, and the UK.
- Created tutorials for the new API using Java and C#.
Technologies: Linux, Android, iOS, NetBeans, Visual Studio, UML, SOAP, XML, IBM Rational Rose, C#, Java, C++Embedded Software Architect
2007 - 2008Oce Technologies BV- Developed machine control software architecture for the Oce PlotWave 300 based on Oce's reference architecture.
- Implemented an engineering prototype with a mixture of old and new software using C and C++.
- Planned and executed an incremental transition towards the new architecture, finishing the project three months before the predicted end date.
- Designed and implemented an industry first system for direct printing from a USB using C++ and Java.
- Build the compatibility layer for a service diagnostics system using MS Access, XML and XSLT.
- Improved the usability of a service diagnostics client application using Java.
- Implemented a logging system for use in difficult real-time environments using C.
Technologies: UML, IBM Rational Rose, Java, C++, CSenior Embedded Software Engineer
2005 - 2006Oce Technologies BV- Designed a new piece of architecture for synchronization of software and hardware startup and initialization within industrial printing systems.
- Led a team of six to implement a new design using Rational Rose Realtime and C++.
- Was responsible for the roll-out of new software into existing projects developing the Oce VarioPrint 6250 and Oce ColorWave 600
- Maintained custom built middleware in C++ and Java using SWIG.
- Performed debugging and analysis of machine control software using VxWorks.
Technologies: VxWorks, UML, IBM Rational Rose, C#, Java, C++Embedded Software Engineer
2003 - 2005Oce Technologies BV- Achieved a 2100% speed increase in image processing algorithms using C++, SSE2 and AltiVec.
- Implemented fast thumbnail generation of scanned documents using C and C++.
- Optimized performance using Intel VTune and Intel C++ Compiler on Linux.
- Maintained a projects CVS server on Linux.
Technologies: Server Sent Events (SSE), GCC, VTune, CVS, C++, C