Programming Languages: C/C++, C#, ASP.NET, Java, PHP
Third Party Libraries: MFC, wxWidgets, JNI, TinyXML
Development Tools: Visual Studio, Eclipse, VMWare Workstation
Communication Protocols: TCP/IP, SCSI, USB, IEEE 1394, SNMP
Change Management Systems: Accurev, Rational Clearcase, Perforce
Senior Software Engineer
- Transfer Confidential knowledge to the Amalga platform
- Worked with C#, WCF, SOAP and MSSQL
- Helped create a rules engine to support the Amalga platform
- Aided in creation of an XML based DSL for the authoring of rules
Senior Software Engineer
- Helped to develop and maintain the QUALIBRIA project
- Worked with ANTLR and Java technologies developing a DSL
- Helped maintain C# code base for the patient view technology
- Muti - threaded socket programming
- Client-Server programming
- Maintain existing software and add new features as needed.
- Fixed memory leaks and random crashes within the first month resulting in a much more stable product.
- Aid in the development of Technical Support processes
- Using C++, Win32 API, MFC in Visual Studio.
- Integrate software into existing Patient Management System databases. Requires knowledge of multiple database platforms from SQL based relational databases to flat file systems including CTree and BTrieve formats.
- Re-worked most of the common/core code base resulting in a much more stable product for both legacy C++ and the newer C# application.
- Reduction of process times from hours down to minutes and reducing the overall memory footprint of the application; in one case the reduction was from 2GB of memory usage down to 100 MB memory usage.
- Helped design and implement newer code base in C#.
- Reverse engineering of older and custom database formats.
- Worked directly with technical support in solving immediate support needs.
- Used C++, C#, Win32 API, ODBC, CTree and BTrieve 3rd party libraries; database access included MSSQL, MySQL, Postgres, Firebird, Sybase and many other custom database formats.
Functional Requirements/Senior Software Engineer
- Planned and documented projects and new features. Gathered requirements, researched and created Functional Requirements documentation. The documents included use cases and implementation requirements to help communicate with developers and QA personnel.
- Worked with engineering team to implement the new features. This included a client side SDK (a C++ dll using Singleton and Abstract Factory OOP patterns) for PrintMetryx (NDA project), updated software security, application and installation enhancements using C++.
- Postscript RIP maintenance. Tracked and fixed issues related to Global Graphics JAWS RIP integration which used Decorator and Thread Pool OOP patterns, C, C++ and Postscript. Helped manage the escalation process with Global Graphics.
OEM Project Manager
- Technical contact for HP and Scitex OEM partners. This included weekly conference calls with both partners and coordination of new printer development needs.
- Developed printer drivers and managed new feature requirements to support new printers and technologies from our partners. C++, TCP/IP, and SNMP were used along with Mediator, Chain of Responsibility and Adaptor OOP patterns.
- Traveled to trade shows and partner sites to work with their new technologies and support their needs.
- Designed/ implemented a custom installation program for the product. This includes an installer for the program with printers and a separate program to install only printers resulting in the most user friendly experience in the industry. This was written in C++, XML and wxWidgets using several OOP patterns including Singleton, Composite, Chain of Responsibility and Monitor patterns
- Helped Design and implement a self patching system for the software. This allowed users to update their product over the Internet as well as using a downloadable patch file or on shipped media (CD/DVD). The front end was written using C++/ MFC and had a backend management database using C# and MSSQL.
- Developed new printer drivers as required. Knowledge of communication protocols and low-level languages such as JPL and RTL were required to communicate settings and image data to the printer. Drivers were written using C/C++ conformed to a specific API and required knowledge of several protocols including TCP/IP, USB, IEEE 1394 and SCSI.
- Added new features to the product. Responsible for taking requirements, developing and integrating them into the existing product. This included tools for printing white ink, spot layer management, OEM dot pattern SDK (Thread Pool, Adaptor and Bridge OOP Patterns) and adding support for new printer driver technologies. C++ and MFC.
- Helped maintain the existing product. Debugging using Visual Studio and Eclipse, refactoring of old code and knowledge of the core code base were required. C++, MFC and Java.