- Senior Software Developer with 15 years of experience in leading and developing large scale software products that control and interface with hardware devices
- (e.g. Automatic Test Equipment (ATE), Flow Meters, Data Acquisition, Robots…). C++ and C# expert and keeping up with the latest technologies.
Programming: C, C++ (OOP), C#, Visual Basic 6, Delphi and Pascal.
Libraries, Frameworks and Technologies: MFC, Dundas libraries (Ultimate Toolbox, Ultimate Grid Control, .NET Gauge controls and .NET graph controls), BCGControlBar, Telerik .NET (Desktop and Web), OpenSSL, Win2003 DDK, ActiveX, COM, ATL, UML, XML, Design Patterns, Windows SDK (16/32), (Modbus, Modbus over TCP, I2C, USB 1.0/2.0) protocols.
Database Experience: SQL 2008/2005, Database administration and design.
Development Tools: Microsoft Project, Rational Rose, Enterprise Architect, Rational visual test, Mantis Defect tracking, Test Complete, Visual Build, Visual Safe Source, SVN, Install Shield, Top Team, Visual studio 2010, System Internals (Process Explorer, TCPView...).
Operating Systems Experience: Windows (10, 8.1, 7...), Windows Servers, UNIX/ Linux (Red - Hat), iOS and Mac OSX.
- Developed TCP/IP SSL communication layer, to facilitate the communication between Omni Flow computer and the client Side software using MFC and OpenSSL (including Client authentication). This layer supports Modbus communication over TCPIP. (VC++ 2010, and MFC)
- Developed a USB communication layer (using FTDI library), this layer handles the communication between PC and Omni Flow computer. (VC++ 2010, and MFC)
- Securing Omni’s software by creating a secure connection to Omni’s licensing web-services. Supporting different types of activations, Online, Phone and evaluation licenses. (ASP .NET, C#, VC++ 2010, and MFC)
- Using the Modbus protocol, in configuring the flow computer settings.
- Restructure the software libraries for better integration and usability.
Software Project Manager
- Managed a team of 6 Software developers, 1 quality assurance and 3 electronics engineers in many successful overseas projects (Egypt and Germany).
- Managed large software projects, handling the communication with robotic flying prober testing machine (4 armed robot used for PCBs electrical testing). Preventing heads from colliding together during flying over the unit under test.
- Managed high-tech projects that were using different technologies at the same time (C++, managed C++ and C#). Many projects required a very high speed communication during data acquisition (100nSec).
- Ensured worldwide customers satisfaction (2nd and 3rd level technical support); our products were used in runtime production environment, which means any problem in the software impacts directly the customer production.
- Managed the correct balance between running the scheduled projects and customer queue of support requests.
- Added some enhancements to our products to minimize the troubleshooting and diagnostics.
- Kept our huge system quality while adding new modules that supports new emerging technologies in the electronics manufacturing industry.
- Built “Teradyne Converter” that converts between a competitor test program structures to our test program format taking into consideration debugging information, was one of the most stressed projects that I managed, as the delivery date was tightly set by higher management due to market need.(VC++2005)
- Created a functional prototype for a complete new solution, representing a new approach in representing the test program as a complete user friendly debugging environment replacing the complexity of VB6 language that requires electronics engineers with VB knowledge. This prototype was adopted by the higher management. I managed this huge software project for 2 years through finalizing the specifications, coding and 1st release presentation in Germany. It was presented to a worldwide users meeting during its releasing event. (VC++ 2010, Mixed C++, C# and VB .NET)
- Ported the complete system from VC++6 to VC++2005, including all the involved core libraries.
- Enhanced the APG (Automatic test program generator) module to generate:VB6, VB .Net, Binary format or a mix between binary and VB. NET based on the given configuration.(VS2010, C++, VB .NET)
Senior/Team Leader Software Engineer
- Created hybrid boards compiler and runtime systems, controlling multi-concurrent micro-controllers. This very high speed system was running with instruction cycle = 100nSec. This tool was developed in VC++ and was ported later to VS2010. Spent 6 months development in Germany, and managed the communication between the German and Egyptian teams.
- Developed floating license Client/Server: using socket programming application using different type of security tokens. This product had 3 major releases (C++6, sockets and MFC). Later it was ported to VS2005/2010.
- Developed SPM (Serial Programming Module), a USB driver using DDK 2003, to interface with this module. Then I managed other teams to develop (Signal interpretations, signal visual modeling, and reporting services). (VC++ 2005, and MFC)
- Developed real time acquisition systems that interface with another machines “Electronic Testing Boards”, using Serial/Parallel ports, ISA ports and USB ports.
- Imported different CAD file formats (Ariadne, Pads perform, Pads 2000…) to our board data structure, in the frontend software department.(VC++6, MFC and Dundas libraries)
- Created a full featured library, contains many of the common functionality used for importing many CAD systems. (VC++6, MFC and Dundas libraries)
- Joined the development of the company core libraries.
- Experienced in the design and implementation of small-scale digital circuit boards. (Used for testing software during the testing phase)
- Board versioning support: due to the huge board data structure and its big memory footprint. It was required to support board versions which would multiply data structure size. I modified the core board data structures to support the addition of versions in a deferential way in a tree structure (source control like), without sacrificing the performance.
Medical Equipment Maintenance Engineer
- Built a complete financial and accounting system based on MYOB.
- Maintained wide range of Computer based electrical medical equipment.
- Arranged sessions for the new employers on how to maintain and use these equipments.
- Supported network expansion and maintained network security.