I am a Computer Engineering Ph.D. candidate at Polytechnique Montréal with a strong background in Machine Learning, Compiler Design, Software Engineering, and Computer Networks. I have expertise in various programming and hardware description languages, including C, C++, C#, SQL, Python, VHDL, and Verilog. My research is focused on enhancing P4 programming language and compiler.

Education

  • PhD Candidate in Computer Engineering
    Polytechnique Montréal, Canada
    May 2022 - Present

  • MSc in Computer Engineering
    Shahid Beheshti University (SBU), Iran
    Sept 2018 - Sept 2021

  • BSc in Computer Engineering
    Iran University of Science and Technology (IUST) and Semnan University, Iran
    Sept 2012 - Jan 2017

Work Experience

  • Research Assistant
    Polytechnique Montréal, Canada
    Apr 2021 - Present
    • Enhanced P4 language constructs for network devices using LEX, YACC, and IR classes in C/C++ and Python.
    • Developed a complete object-oriented compiler with lexer, parser, symbol table, semantic analyzer, AST, and code generation.
    • Designed and implemented P4 codes and control planes for network applications (Firewall and Load Balancer) in Software Switch, FPGA, and ASIC.
  • Research Engineer
    System Negar Sayna, Iran
    Sept 2017 – May 2022
    • Developed and tested intelligent software for data analysis using C++, Python, NumPy, and Pandas.
    • Worked on software to analyze news and select articles according to user preferences using ML techniques with Scikit-learn, TensorFlow, and Keras.
  • Research Assistant
    Karlsruhe Institute of Technology (KIT), Germany
    May 2020 – Sep 2020
    • Optimized multi-core processor performance under temperature constraints and improved ML-based models for application performance prediction.
    • Improved and debugged the HotSniper simulator for Splash-2 benchmarks using C/C++.
    • Analyzed power, IPS, and CPI, and visualized data with Python (Pandas, NumPy, Matplotlib).

Projects

  • Created a Mutex and condition variables for the producer-consumer problem using C and Pthreads.
  • Detected P2P botnets by discovering flow dependency in C&C traffic using Python and Scapy.
  • Developed a WAV player in C for ARM Keil and implemented it on the STM32F4 Discovery board.
  • Installed and configured dependencies for specific packages and modified GCC for compiling in Scientific Linux.
  • Compared the performance of NoSQL data models for Big Data and analyzed different software architectures like REST and SOAP.

Volunteer Experience

  • Instructor
    Iran University of Science and Technology
    • Taught programming languages, English, and mathematics to students.

Contact

Feel free to reach out to me via academic email or personal email.