# Amro Al-Baali > Robotics Software Engineer. Expertise in SLAM, computer vision, and state estimation. Location: United States, United States Profile: https://flows.cv/amro I'm a robotics software developer specializing in optimization algorithms and SLAM solutions. My expertise is in using applied mathematical theory such as numerical optimization and probability theory to model and implement state-estimation and SLAM algorithms using C++ and ROS. ## Work Experience ### Software Engineer - Scene Perception @ Pickle Robot Company Jan 2024 – Present | Cambridge, Massachusetts, United States - State estimation - Sensor fusion - SLAM - Computer vision ### Robotics Software Developer @ Vention Jan 2023 – Jan 2024 | Montreal, Quebec, Canada - Worked on developing a Python-based editor that allows clients to write custom software that controls their automation pipeline. This is in contrast to MachineLogic, which customizes the software using drop-down menus. - The Python code controls the robots, conveyers, and other automation pipelines, and works in both simulation and on physical hardware. - Interacted with clients to customize the software to their needs. - Led the effort to cloudify the Python development pipeline and expand its capabilities so it can handle multi-files and multi-processes. This expands the capabilities of the Python pipeline. ### Software Developer - Localization and Mapping @ Avidbots Corp. Jan 2021 – Jan 2023 | Kitchener, Ontario, Canada Software developer in the localization and mapping team. - Develop and maintain the localization and mapping algorithms for a robot equipped with a 2D LIDAR such that the it is well localized within a pre-defined cleaning plan - Develop and maintain calibration algorithms - Setup an OptiTrack system that can be used for performance evaluations - The primary tools used in this job are ROS, C++, Python, and nonlinear least squares (mainly using Ceres) ### Graduate Research Assistant @ McGill University Jan 2019 – Jan 2021 | Montreal, Canada Area The focus of my research was on obtaining a SLAM solution of an AUV using a third-party INS (treated as a black box) and a laser scanner. The primary tools used in the project are: - Lie groups (e.g., SE(3) and SE_2(3)) to model the kinematics of the robot; - Statistical inference (to derive the probabilistic equations); - Invariant extended Kalman filtering; - Optimization on manifolds; - Linear matrix inequalities (LMIs) (semi-definite programming); - Sensor modelling; - MATLAB; - GTSAM (package to solve SLAM problems using efficient graphical approaches); - ManOpt (MATLAB package for optimization on manifolds); - YALMIP, MOSEK, SDPT3 (MATLAB semidefinite programming packages). ### Mechanical Engineering Intern @ MY01 Jan 2018 – Jan 2019 | Montreal, Canada Area Designing and performing mechanical testing on devices. This includes: - outlining the test procedures and protocols - writing test reports - CAD designing using Autodesk Inventor - 3D printing - programming the testing platform using Python - Designing jigs (CNC and metal bending) Writing a C# code to customize Autodesk Vault software for automated quality control. ### Research Assistant: Dynamics and Control Lab @ McGill University Jan 2017 – Jan 2018 This research project is part of the required thesis course (MECH 403, MECH 404). Research topic: Parallel Feedforward Control Using Linear Matrix Inequalities. The research focuses on finding a method to control a nonminimum unstable plant without affecting the performance of the system too much. Different mathematical models (plants) are used to test the method (using MATLAB). A method is a successful one if the embedded system's (controlled system) output (performance) is not far away from the original system's output. ### Teaching Assistant for MECH 412: System Dynamics and Control @ McGill University Jan 2017 – Jan 2017 My task was to set up and prepare questions for students to answer during tutorials. Two questions were presented in the tutorial: the first was presented and followed by the solution in a form of a slideshow which took around 5-10 minutes, the rest of the tutorial was used for the students to answer the second question and I was present to clarify students' questions. ### McGill Summer Undergraduate Research in Engineering (SURE) @ McGill University Jan 2017 – Jan 2017 | Montreal, Canada Area Topic: Testing Design Space Exploration Techniques Using OpenMDAO Software engineering: Using OpenMDAO, a multidisciplinary design optimization Python-based framework, to carry out different Design Space Exploration (DSE) techniques. DSE is usually used on embedded systems to choose the best system with respect to some objective function (minimum space allocation, fastest processing time, reliability...). DSE eliminates unwanted designs and finds the best set of solutions. ### Aerodynamics Subteam @ McGill Racing Team Jan 2015 – Jan 2017 Design and model different parts of the car using Siemens NX CAD. Provided analysis for radiator, pitot tube, and pressure sensor to help choosing them. ### McGill Drones: Electronics subteam @ AERO McGill Jan 2014 – Jan 2015 ### computer hardware assembly @ ECIS Jan 2010 – Jan 2010 Assemble computer parts for customers Downloading OS and other programs Test computers and diagnose problems ## Education ### Master's of Engineering - Thesis based in Mechanical Engineering McGill University ### Bachelor of Engineering (B.Eng.) in Honours Mechanical Engineering McGill University ### Minor in Computer Science McGill University ### Edexcel A-levels in Math, Physics, Chemistry Qurum Private School ## Contact & Social - LinkedIn: https://linkedin.com/in/amro-al-baali - GitHub: https://github.com/aalbaali - Portfolio: https://aalbaali.github.io --- Source: https://flows.cv/amro JSON Resume: https://flows.cv/amro/resume.json Last updated: 2026-03-31