Work Experience
- Aug 2015 – Present
- Software Architect – Molex, Canada
- Architect for the industrial automation IIoT software suite supporting both SaaS and on-premise deployments
- Developed information models for the data-driven configuration of field network controllers
(XSD) - Contributor to the open source LF Akraino Edge Stack
- Technical lead for Molex’s Digital Twin application
(Java,ReactJS) - Define Molex’s device provisioning solution
- Define the edge computing platform for Molex edge devices
- Define the threat model and trusted computing architecture for Molex devices
- Lead the integration efforts with off-shore partners for controller logic application development
- Introduced an automated document review process, an Aha!/Jira/Confluence integration, and Google design sprints to the team
- Aug 2015 – Apr 2019
- Technical Lead & Software Architect – SOTI Research and Innovation Lab, Canada
- Lead architect for SOTI’s IoT management framework
(C#,AngularJS) - Designed data-driven semantic models and protocol definition grammars
(XSD) - Designed and developed a generic reusable rules engine(C#)
- Developed a data-driven protocol-agnostic transactional engine for executing device actions
(C#,ANTLR) - Lead adoption of DevOps practices through continuous delivery pipelines and automated packaging
(Jenkins,Groovy)
- Lead architect for SOTI’s IoT management framework
- Sep 2010 – Aug 2015
- Graduate Researcher – University of Waterloo
- Design and develop a static source-code software instrumentation framework to enable debugging of real-time systems while preserving their non-functional properties
(Java,C,CIL,LLVM) - Design and develop a dynamic binary instrumentation tool for the time-aware instrumentation of soft real-time systems
(C) - Introduce and prove the theoretical foundation (worst-case response time analysis, buffer-space analysis, path-selection) for the deployment of hard real-time applications on priority-aware network-on-chips
- Design and develop a static source-code software instrumentation framework to enable debugging of real-time systems while preserving their non-functional properties
- Sep 2014 – Dec 2014
- Embedded Software Developer – Magna Electronics, Canada
- Design and develop a targetless software calibration algorithm on embedded platforms
(C++) - Evaluate the performance and resource usage on target platforms
- Design and develop a targetless software calibration algorithm on embedded platforms
- Jan 2014 – Apr 2014
- Software Developer – IBM, Canada
- Implement run-time instrumentation as part of the Java JIT compiler
(C++) - Evaluate the performance of instrumentation on z/Architecture
- Implement run-time instrumentation as part of the Java JIT compiler
- Sep 2012 – Dec 2012
- Software Developer – Research In Motion, Canada
- Design a test plan to evaluate and asses indoor positioning solutions
- Develop an automated test environment for indoor positioning solutions
(Java)
- Sep 2008 – Jul 2010
- Software Developer – Mentor Graphics, System Model Architecture (SMA)
- Develop a model compiler to generate C code for AUTOSAR modules
(C,xtUML,RSL) - Enable modeling and code generation of AUTOSAR software components
(C,xtUML) - Develop model extensions to generate AUTOSAR configurations
(xtUML,EMF) - Participate in the development of the BridgePoint modeling and code generation tool
- Coach six trainees for hire as the basis of a new SMA team
- Develop a model compiler to generate C code for AUTOSAR modules
- Jul 2007 – Oct 2008
- Software Developer – Mentor Graphics, Automotive Networking Division (AND)
- Develop AUTOSAR basic software modules
(C) - Develop the Volcano Vehicle System Tester (VST), an automated real-time testing environment for AUTOSAR modules
(C,Java,JNI,TTCN3) - Modeling, verification, and code generation of AUTOSAR modules
(C,xtUML,RSL)
- Develop AUTOSAR basic software modules
- Jun 2006 – Sep 2006
- Software Developer – Mentor Graphics, Automotive Networking Division (AND)
- Develop an automotive bus protocol bit-level monitoring and manipulation tool on FPGA
(Java,JNI,Verilog)
- Develop an automotive bus protocol bit-level monitoring and manipulation tool on FPGA
Technical Skills
-
Professional Experience: C#, Java, C++, C, R, ANTLR, xtUML, Verilog, VHDL, LaTeX, XSD, Make, Shell Script, TTCN, DOT
-
Familiar With: Python, Perl, GraphQL, DTDL, JavaScript, AngularJS, ReactJS, Android, SQL, PL/SQL, Prolog, CIL, CSS
-
Source Control: Git, SVN, TFS, CVS
-
CI/CD: Jenkins, Groovy, Docker, Kubernetes
-
Tools: Vim, Eclipse, NetBeans, Visual Studio, IntelliJ IDEA, Xilinx, Keil, RapiTime, Matlab, Simulink, Jira, BitBucket, Confluence, Aha!
-
Embedded Platforms: ARM Cortex, Atmel, PIC, Freescale 68HC12, VIA x86, Spartan FPGAs, Virtex FPGAs
-
Favorite Editor: Vim
Teaching Assistant, University of Waterloo, ECE Department
- Spring 2014
- ECE-254 Operating Systems and Systems Programming
- Fall 2013
- MTE-241 Introduction to Computer Structures & Real-Time Systems
- Winter 2013
- ECE-327 Digital Systems Engineering
- Spring 2012
- ECE-327 Digital Systems Engineering
- Winter 2012
- ECE-327 Digital Systems Engineering
- Fall 2011
- MTE-241 Introduction to Computer Structures & Real-Time Systems
- Spring 2011
- ECE-354 Real-Time Operating Systems
- Winter 2011
- ECE-327 Digital Systems Engineering
ECE-459 Programming for Performance
Teaching Assistant, Ain Shams University, CSE Department
- Winter 2010
- CSE-312 Microprocessor Based Systems
CSE-291 Electrical Testing (1) - Fall 2009
- CSE-011 Computer Technology
CSE-291 Electrical Testing (1)
CSE-451 Electrical Testing (3)
HUM-x32 Project Management - Winter 2009
- CSE-291 Electrical Testing (1)
CSE-312 Microprocessor Based Systems
CSE-351 Electrical Testing (2)
CSE-483 Intelligent Control Systems - Fall 2008
- CSE-351 Electrical Testing (2)
Volunteer Work
- VP of communication for the University of Waterloo Egyptian Student Association (UWESA), Waterloo, Canada, 2013-2014
- Design and develop the UWESA website www.uwaterlooesa.com, 2013
- Participate in organizing the IEEE ICCES Conference, Cairo, Egypt, 2008
Technical
- Second place in the “24 Hour Startup - Innovation + Entrepreneurship” contest, Waterloo, Canada, 2013
- Second place in the “Engineering Innovation” contest, Cairo, Egypt 2006
Academic
- University of Waterloo FOE Graduate Scholarship, Winter 2012, Fall 2013
- Honored by Ain Shams University President for graduating first of class, Computer and Systems Engineering, September, 2007
Athletic
- First place in the all-star futsal tournament, Unviersity of Waterloo, Canada, 2014
- First place in the intermediate 3-on-3 indoor soccer tournament, Unviersity of Waterloo, Canada, 2012
- First place (with the Automotive Networking Division) in the Mentor Graphics Egypt Olympics (MGEO), Cairo, Egypt, 2008
- Bronze medal in the national badminton doubles championship, Egypt, 2002
- Gold medal in the national badminton teams championship, Egypt, 2001
- Seventh place in the national badminton singles championship, Egypt, 2001