OCTOBER 2009 – APRIL 2010
SOFTWARE RESEARCH & DEVELOPMENT INTERN
I started my professional journey as a research and development intern at Cairo Microsoft Innovation Center (CMIC), now known as the Advanced Technology Lab (ATL) Cairo, after completing my BSc in Computer Engineering at Cairo University – Faculty of Engineering in 2009. ATL Cairo was an independent subdivision that focused on research and development efforts related to image processing, natural language processing, and speech processing.
Overall, my experience at CMIC/ATL Cairo gave me a lot of exposure to various aspects of research and development, and taught me how to write scientific papers.
Working under the guidance of a professor researcher, I worked on image processing-based applications and gained valuable experience in the research and development cycle. My responsibilities included implementation and development, and I worked on a module that identified the language of document images as a first step before further character recognition. Additionally, I developed an API that verified the integrity of translated text in Microsoft Windows forms in terms of location, indentation, and readability. Furthermore, I worked on a technique called “OCRLESS” which aimed to search text in degraded document images such as old newspaper images without using Optical Character Recognition (OCR).
During my time at CMIC/ATL Cairo, I expanded my knowledge in image processing and pattern recognition, which I had studied in college. I successfully applied the techniques of image processing to search documents or forms’ images in my daily work and deliveries. I used C/C++ on Microsoft Visual Studio with OpenCV and Matlab in my tasks. I also co-authored a scientific paper with my supervisor that was sent to a world-class conference.
Although I worked there for only six months before leaving to complete my military service, my experience at CMIC/ATL Cairo played a significant role in shaping my career path and honing my skills in image processing and research. I tried to obtain a permanent role at CMIC/ATL Cairo but they had frozen hiring during that time. Ironically, they called me for an interview after I had started working for HP, so I had to decline their invitation.
NOVEMBER 2010 – OCTOBER 2013
AUTOMATION TESTING ENGINEER
After I was exempted from military service, I took some time to find a job that aligned with my skills and qualifications. Eventually, I landed a position as a functional tester at HP, which was formerly known as EDS before being acquired by HP and now goes by DXC. At the company, I worked on the portal development of telecommunication service providers like Vodafone, which was our primary focus.
My role as part of the testing team was to validate increments for the Vodafone Netherlands portal. We organized our sprints into three phases, with the first week devoted to reviewing new requirements and conducting an ambiguity analysis. During the second week, we wrote HLS and peer-reviewed one another’s work products, documented our findings, and wrote detailed test cases. In the third week, we executed the tests and submitted daily reports on defects. Additionally, I was responsible for working with content management systems and configuration management systems.
It was during this project that I was introduced to automation testing, and I went on to get certified in QTP. We developed test scripts using Selenium, C#, and Microsoft Visual Studio for the portal’s package maker module. This project also taught me a great deal about agile methodologies, as we had planning meetings, daily stand-up meetings, and held review and retrospective meetings.
Later on, I worked on a project in the transportation industry, where I spent two months in Dublin, Ireland. I was introduced to every phase of the workflow, planned test cases, executed them, and reported summary reports. We presented our findings and recommendations to the client site before returning home. After my return, I developed keyword-driven and data-driven automated test cases using QTP (now known as UFT), recorded test scenarios, and amended them with VB. I used SQL and Oracle/Toad to interact with back-office applications.
During my time at HP, I was eager to learn about automation testing and took the opportunity to learn Selenium as an open-source automation testing tool, QTP as a commercial automated testing tool, and various defect and requirement management tools. I got certified in ISTQB foundation level and QTP. I worked at HP for three years before leaving to work as a test lead at IBM. Although the management team tried to persuade me to stay, the offer from IBM was too good to pass up.
NOVEMBER 2013 – FEBRUARY 2017
TEST SPECIALIST
I had the pleasure of working at Global Delivery Center (GDC), which later changed its name to Client Innovation Center (CIC). As a team leader and automation test expert, I was responsible for managing small test teams consisting of 4-5 testers. In addition to that, I provided automation testing sessions and workshops to other team members.
Writing test plans and estimating testing efforts were also part of my role, and I reported to the technical lead and project manager about the results and recommendations. During the UAT of several projects, I was fortunate enough to work closely on the client side and offer guidance to third-party service providers on how to use our solution and inform them about Known Technical Issues. I worked under strict timelines and had to rely heavily on experience-based testing, use cases, and requirement documents SRS and checklists.
In addition to that, I provided support in automation testing projects that involved selenium and Java for automated test script development. I was also responsible for tool introduction activities and tried different mobile testing tools such as Appium, Silk Mobile, and Robotium to explore their features and provide detailed feedback to the organization during the assessment phase before using them in real projects.
During my tenure, I learned a lot about developing good relationships with customers and third-party service providers and how to maintain them. I had to work under severe pressure, relocate my workplace to the customer site and work there overtime for several weeks. I also had the opportunity to work on different web applications and mobile applications of eCommerce, eGovernment, and banking domains. To do so, I used a plethora of tools such as RQM, RTC, Bluemix, Eclipse, Selenium, Java, DB2, and Data Studio. Furthermore, I expanded my knowledge by taking various courses such as ISTQB test analyst, CMAP mobile tester, and ITIL foundation certificates.
Despite my incredible experience at IBM for 3 and a half years, I decided to take a new challenge and explore new territory. Unfortunately, I felt saturated with the lack of good opportunities to grow and advance technically and financially in the web and mobile automation testing areas.
MARCH 2017 – AUGUST 2019
PRINCIPAL VALIDATION ENGINEER
I had the opportunity to work at Valeo, where I experienced a remarkable fusion of my academic knowledge and practical skills. Shifting my career from the IT industry to the automotive sector was undoubtedly challenging, but joining Valeo turned out to be an immensely rewarding decision.
I joined the Valeo InterBranch Automotive Software (VIAS), which serves as a central hub for numerous software projects developed by the company. Since its establishment in 2007, VIAS has played a pivotal role in the development and validation of software for Valeo’s Electronic Control Unit (ECU). As a tier one supplier to leading Original Equipment Manufacturers (OEMs), Valeo’s impact in the automotive industry is substantial.
During my time at Valeo, I worked in ADAS – Ultrasonic systems, assuming responsibility for several critical tasks. One of my key roles was ensuring the integrity of the software requirements by meticulously assessing the entry criteria and conducting requirement baseline comparisons. To streamline the testing process, I employed effective filtering techniques, focusing solely on testable and in-scope software requirements. Furthermore, I estimated the effort required for planning and modifying test cases, providing accurate and reliable estimations to enhance overall project efficiency.
Utilizing Eclipse and Java, I meticulously planned test cases, scripting them for Valeo’s automation framework, known as “TESCG.” By setting up the testing environment at the beginning of each sprint, which involved flashing the targets on the micro-controller of the ECU using Win-idea and iSystem debugger, I ensured a smooth and seamless testing process. To verify proper flashing of the ECU with the correct software version, I performed comprehensive smoke tests using diagnostic requests sent through Canoe. This allowed me to assess the correct response from the ECU, guaranteeing the smooth functioning of all features.
One of my significant contributions was the meticulous analysis of overnight automated runs using the logic analyzer Canoe. This comprehensive analysis involved reporting any bugs identified, their severity, priority, and the relevant test cases and requirements they affected. To provide comprehensive bug reports, I diligently attached logged traces and screenshots when necessary, describing them in detail and assigning meaningful names. I also delved into investigating customer findings, comparing them with our internal findings to identify root causes and determine if they fell within the software scope or were affected by hardware limitations. In scenarios where the bugs were not covered or the hardware posed limitations, I proactively planned new test cases, ensuring comprehensive coverage of corner scenarios.
Seeking to broaden my expertise in testing automotive embedded systems, I transitioned to the lighting systems department within Valeo. This opportunity allowed me to explore the distinctions between system testing and software testing. Working hands-on with ECUs controlling motors and LEDs, my focus shifted towards testing heat and power degradation scenarios. I meticulously verified the correct behavior of the system under these critical conditions, designing the test environment and creating the initial layer of the framework that interacted with the firmware APIs provided by the test bench. Additionally, I successfully resolved various hardware and software issues by troubleshooting and collaborating with relevant teams, ensuring smooth operations.
Throughout my tenure at Valeo, I honed my skills in communication protocols, logic analyzers, hardware debugging, and troubleshooting test environment setups. Recognizing my proficiency, I was entrusted with delivering induction training sessions for new hires, where I garnered exceptional feedback. These sessions focused on software testing methodologies and Valeo’s automation testing framework. Furthermore, I conducted comprehensive knowledge expansion sessions for newly hired engineers, assisting them in quickly familiarizing themselves with vital subjects such as communication protocols, ISTQB automotive tester certification, and guidelines for building robust automation.
My time at Valeo has been an incredible journey of growth and accomplishment. By leveraging my academic foundation and practical skills, I have made significant contributions to software development and testing processes, earning the respect of my peers and superiors.
SEPTEMBER 2019 – AUGUST 2021
SOFTWARE DEVELOPER
When I accepted a job offer from JLR at Shannon Co.Claire in Ireland, I knew that I was in for an exciting challenge. The site was a startup within a big organization, so most of the activities were in their early stages. However, I was thrilled to be part of a team that was ramping up on automotive knowledge and project knowledge from other sites.
One of my first tasks was to investigate the current toolchains available to develop virtual ECUs. Through this work, I became engaged in some development tasks and discovered my passion for embedded systems. Specifically, I became involved in software-in-the-loop (SiL) activities, where I wrote scripts to run on QNX for the purpose of continuous integration and development verification.
From there, I moved on to processor-in-the-loop (PiL) activities. In this role, I was responsible for deploying code generated from Simulink Matlab models on NXP calypso boards. Additionally, I developed UART and I2C applications on these boards to prove that our NI bench could successfully communicate with those boards using those communication protocols.
The outbreak of COVID-19 changed the way we worked, but it didn’t slow us down. I shifted to working on vehicles in the loop (ViL) activities. This work involved integrating and deploying the framework developed in Labview by another team at JLR’s site in Gaydon. I then verified the refactored modules developed by our team using the same duplicated environment I had established earlier.
For the most part of my tenure, I had the opportunity to participate in a battery energy control module project. This project involved automating manual test scenarios using Gherkin, Robot, and CAPL (C code). Our team was responsible for developing, verifying, and validating a physical battery that was connected in the workshop.
Throughout my time at JLR, I had the chance to work with a variety of tools and technologies, including Matlab, Labview, Python on PyCharm, and C on S32Studio. I also used Confluence for documentation and Jira for task and report management.
As I reflect on my experience at JLR, I can see how much I have grown in my knowledge and skills in the embedded systems field. The exposure to a variety of activities and tools allowed me to deepen my understanding of microcontrollers, multithreaded interfacing, and real-time operating systems.
FEBRUARY 2022 TILL NOW
SENIOR SOFTWARE TEST ENGINEER
As soon as the COVID-19 restrictions were lifted, I was eager to find a new opportunity that would challenge me and allow me to grow professionally. That’s when I found a senior tester role at Mastercard in Dublin. From the moment I started, I knew it was the perfect fit for me.
In my current role, I work with backed applications hosted on Linux machines. I’m part of a close-knit team of developers, technical product managers, and product owners who work together in a scrum environment to deliver epics, features, and stories that focus on the decision and authentication enrichments of payment card transactions. It’s a high-stakes role, but it’s also incredibly rewarding.
One of my main contributions to the team has been my ability to collaborate effectively with all stakeholders involved in the development process. I’m constantly communicating with developers to ensure that testing aligns with the software changes they make. I also work closely with technical product managers and product owners to ensure that the epics, features, and stories we’re delivering meet the needs of our customers.
My attention to detail and my ability to think critically have also been instrumental in my current role. I always make sure to thoroughly test each feature before it goes live, and I actively seek out potential problems and vulnerabilities that might otherwise be missed. As a result, we’ve been able to deliver higher-quality software to our customers, which has ultimately helped drive business success.
Overall, my experience at Mastercard has been incredibly fulfilling. I’m constantly learning and growing in my role, and I feel like I’m making a real impact on the company’s bottom line. I’m excited to continue my journey at Mastercard and see where my skills and expertise can take me next.