Ali Mesbah, Developer in Vancouver, BC, Canada
Ali is available for hire
Hire Ali

Ali Mesbah

Verified Expert  in Engineering

Bio

Ali is an expert in software quality and dependability. With more than a decade of R&D experience in the field of software testing and analysis, he has a proven track record in quality assurance, code quality assessment, test design, test effectiveness and adequacy, test automation, root cause analysis, and program repair.

Portfolio

The University of British Columbia
Software Engineering, Testing, University Teaching, R&D
Mobile Security Management Company
Appium, Robot Framework, Pytest, XCUITest, UI Testing, Mobile App Testing...
Testcue
QA Leadership, Management, Consulting, Quality Assurance Engineering...

Experience

Availability

Part-time

Preferred Environment

Java, Web, Selenium WebDriver, Git, REST Assured, Appium, Mobile Apps, Python

The most amazing...

...thing I've developed is Crawljax, an event-driven crawler for automatically analyzing and testing web applications.

Work Experience

Principal Investigator in Software Engineering

2017 - PRESENT
The University of British Columbia
  • Founded a research lab called Software Analysis and Testing (SALT) to investigate and implement new techniques for improving software quality.
  • Designed and delivered undergraduate courses on software testing and analysis covering unit testing, mutation testing, web and mobile app testing, code coverage, regression testing, static and dynamic analysis, fault localization, and program repair.
  • Taught graduate courses on software testing and verification covering state-of-the-art tools and techniques for analyzing large-scale software systems such as control-flow and data-flow analysis, taint analysis, and symbolic execution.
  • Supervised Ph.D. and MSc graduate students working on software analysis topics such as automated test generation, web testing, API testing, automated program repair.
Technologies: Software Engineering, Testing, University Teaching, R&D

Senior QA and Test Automation Consultant

2022 - 2022
Mobile Security Management Company
  • Developed automated tests for various native mobile apps in both Android and iOS.
  • Implemented tests in Appium and Robot Framework for cross-platform testing of mobile apps.
  • Set up continuous integration (CI) through Jenkins for automated test execution.
Technologies: Appium, Robot Framework, Pytest, XCUITest, UI Testing, Mobile App Testing, Android, iOS, WebDriver, Android Studio, Xcode, Python, Jenkins

CEO

2015 - 2020
Testcue
  • Established connections with industrial software companies for providing QA automation and testing services.
  • Participated in consulting projects, offered automated testing services to newly developed mobile and web apps.
  • Led the development of an automated online monitoring system for a large enterprise application to detect regression bugs.
  • Managed the development of a framework for testing canvas applications.
  • Liaised with industrial collaborators and clients for securing R&D funding. Made budgetary plans and objectives and adjustments to project constraints based on financial analysis.
Technologies: QA Leadership, Management, Consulting, Quality Assurance Engineering, Mobile App Testing, Web App Testing, Quality Assurance (QA), Automation

Software Engineering Consultant

2017 - 2018
Google
  • Participated in the design and implementation of an ML-based tool for automatically suggesting fixes for Java compilation errors using neural machine translation. The tool learns from errors developers make and the way they fix the errors.
  • Created a scalable Java type refactoring tool for ultra-large-scale mono repositories through a MapReduce design that made multiple passes over the code to collect type information and perform in-code refactoring.
  • Added bug patterns for the Error Prone framework, an open-source compile-time static bug checker.
Technologies: Java, Blaze, JUnit, Google MapReduce, Deep Neural Networks (DNNs), Compilers, Static Analysis, Python, TensorFlow, Test Automation

Software Engineering Consultant

2010 - 2010
Fujistu Laboratories of America
  • Developed a testing framework for automatically creating a navigational model of a given enterprise web application.
  • Devised an automated technique for cross-platform testing to detect inconsistencies and errors in the functional behavior of web applications across different browsers.
  • Designed and implemented a guided crawling algorithm to complement an automated tool with user input.
Technologies: Java, JavaScript, HTML DOM, Cross-platform, Test Automation, Browsers, XML, CSS, Quality Assurance (QA), QA Testing, Quality Assurance Engineering

Lead Senior Software Engineer

2002 - 2010
West
  • Developed a software system for generating a ventilation and heating strategy based on input from weather forecasts, measurements of temperature and radiation, and manual settings for regulating enterprise greenhouses.
  • Designed and was liable for implementing substantial parts of a large software system for the energy sector, including meeting with the client to elicit and document the desired requirements and designing the initial software architecture.
  • Tested, designed, and developed a web portal for a client based on REST APIs. The testing activities consisted of unit testing with JUnit, regression testing, and integration testing.
  • Acted as the technical lead and coordinator of a team of software developers.
Technologies: Leadership, Agile Project Management, Software Architecture, QA Leadership

Crawljax

https://github.com/crawljax/crawljax
Crawljax is an open-source tool for automatically crawling and testing modern web applications. I am the inventor of Crawljax, which can explore any web application through an event-driven crawling engine. It produces as output a state-flow graph of the dynamic web pages and the event-based transitions between them. Crawljax can easily be extended through its easy-to-use plugin architecture. Its test generation plugin automatically generates UI test cases once crawling has stopped. Crawljax has been used for both research and development as well as testing enterprise applications at large organizations such as IBM, Google, Huawei, and Fujitsu.

Automated Cross-platform Compatibility Testing

https://patentimages.storage.googleapis.com/81/9e/84/65e211a3249f3c/US9032067.pdf
Devised a novel automated testing technique for consistent and correct functionality checking across different platforms and browsers. This invention resulted in a US patent at Fujitsu Laboratories of America.
2005 - 2009

PhD Degree in Software Engineering

Delft University of Technology (TU Delft) - Delft, The Netherlands

2001 - 2003

Master's Degree in Computer Science

Delft University of Technology (TU Delft) - Delft, The Netherlands

1997 - 2000

Bachelor's Degree in Computer Science

Delft University of Technology (TU Delft) - Delft, The Netherlands

NOVEMBER 2011 - PRESENT

Professional Engineer (P.Eng.) in Software Engineering License

Association of Professional Engineers and Geoscientists of British Columbia, BC, Canada (APEGBC)

Libraries/APIs

WebDriver, Node.js, Sikuli, REST APIs, Selenium WebDriver, TensorFlow

Tools

Apache JMeter, Apache Maven, REST Assured, Cucumber, Bazel, Jenkins, LaTeX, Clover, Git, Postman, IntelliJ IDEA, Mocha, ANTLR, Apache Ant, Travis CI, SonarQube, Make, Bugzilla, Jira, Coverity, Pytest, Android Studio, Xcode

Languages

Java, CSS, XHTML, AspectJ, SQL, R, JavaScript, XML, Python

Frameworks

JUnit, Selenium, TestNG, QUnit, Appium, Robotium, Jasmine, Jest, Robot Framework, XCUITest

Paradigms

Continuous Deployment, Object-oriented Design (OOD), Fuzz Testing, Unit Testing, Test-driven Development (TDD), Automated Testing, Behavior-driven Development (BDD), REST, MapReduce, Refactoring, Load Testing, W3C, Microservices, Automation, Manual Testing, E2E Testing, Scrum, XP, Agile, Test Automation, Testing, Cross-platform, HTML DOM, Agile Project Management, Management

Platforms

Eclipse, Linux, MacOS, Android, Docker, Web, iOS

Storage

MySQL, NoSQL, JSON

Other

Web App Testing, Generative Testing, Code Coverage, Technical Writing, High Code Quality, Mutation Testing, API Testing, FindBugs, MonkeyTalk, Automated UI Testing, Mobile App Testing, Static Analysis, Quality Assurance (QA), A/B Testing, Debugging, Root Cause Analysis, Boundary Testing, Regression Testing, Fault-Based Testing, Quality Assurance Engineering, Performance Testing, Test Design, Team Leadership, Team Mentoring, Test Planning, QA Test Plan Management, Web Applications, Manual QA, QA Leadership, Machine Learning, Test Automation Frameworks, Blaze, Google MapReduce, Deep Neural Networks (DNNs), Compilers, Software Engineering, University Teaching, Research, R&D, Browsers, QA Testing, Leadership, Software Architecture, Consulting, Mobile Apps, UI Testing

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring