- System EngineerHydrix Services Pty Ltd2013 - PRESENT
Technologies: C++, Linux, Windows, .NET, C#, XML
- 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.
- Senior Embedded Software Engineer @ MuTracxSioux Embedded Systems2012 - 2013
Technologies: Linux, RTLinux, C++, Xtext, XTend, Java, Eclipse Modelling Framework, Rational Rose Realtime, Eclipse, dpkg, GCC, LXC, GDB
- 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.
- Software Architect @ ASMLSioux Embedded Systems2011 - 2012
Technologies: C#, .NET, LINQ, EntityFramework, XML, XSLT, WPF
- 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.
- Software Architect for Wide-Format Printing SystemsOce Technologies BV2008 - 2011
Technologies: C++, Java, C#, Rational Rose Realtime, XML, SOAP, UML, Visual Studio, NetBeans, iOS, Android, Linux
- 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#.
- Embedded Software ArchitectOce Technologies BV2007 - 2008
Technologies: C, C++, Java, Rational Rose Realtime, UML
- 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.
- Senior Embedded Software EngineerOce Technologies BV2005 - 2006
Technologies: C++, Java, C#, Rational Rose Realtime, UML, VxWorks
- 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.
- Embedded Software EngineerOce Technologies BV2003 - 2005
Technologies: C, C++, CVS, VTune, ICC, GCC, SSE, AltiVec
- 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.