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)
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
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
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
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
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)
Jun 2006 – Sep 2006
Software Developer – Mentor Graphics, Automotive Networking Division (AND)

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