CV

Basics

Name Mehdi Eidi
Label Software Engineer | Researcher
Email mehdiadq@gmail.com
Url https://mehdieidi.github.io

Education

  • 2024.09 - Present

    Tehran, Iran

    MSc
    Sharif University of Technology
    Software Engineering
    • Software Development Methodologies
    • Patterns in Software Engineering
    • Requirements Engineering
    • Enterprise Architecture
    • Software Testing
  • 2019.09 - 2023.09

    Urmia, Iran

    BSc
    Urmia University
    Computer Engineering

Work

  • 2023.02 - 2023.07
    Software Engineer
    Hub Irancell
    • Designed and developed a call-center system with a microservices architecture.
    • Enhanced system performance by improving the latency of a critical API by a factor of 37 times.
    • Mentored and managed entry developers to introduce the architecture and practices of backend development.
    • Dockerized and deployed services, utilizing Docker Compose.
  • 2022.06 - 2024.09
    Software Engineer
    Imenaria
    • Designed and implemented REST APIs and gRPC services for a video-on-demand system.
    • Designed a scalable video transcoding system to handle high volumes of media processing.
    • Developed a search system tolerant to spelling mistakes, improving search accuracy and user satisfaction.
    • Migrated high volumes of data from MongoDB to PostgreSQL with zero data loss.
    • Engineered an automated NGINX configuration generator to streamline server management.
    • Created a real-time chat feature to enhance user engagement and interactivity.

Volunteer

  • 2021.08 - 2021.11

    Urmia

    Workshop Instructor
    Urmia University
    Managed and instructed a workshop to introduce University students to Go programming language.

Skills

Programming
Go (Golang)
Java
Python
Bash Scripting
DevOps
Version Control: Git, Branching Strategies
Containerization & Orchestration: Docker, Kubernetes
CI/CD: GitHub Actions, Jenkins
Infrastructure as Code (IaC): Terraform, Ansible
Linux (LPIC)
Software Design & Architecture
Object-Oriented Design
Domain-Driven Design (DDD)
Modeling Languages: UML, BPMN, SysML
Patterns in Software Engineering
Design Patterns
Architectural Patterns & Styles
Refactoring Patterns
Reengineering Patterns
Anti-patterns
Serverless Patterns
Workflow Patterns
Microservices Patterns
Software Development Methodologies
Agile Requirements Engineering
Agile Software Development: Principles & Practices
Agile Methodologies: Scrum, DAD, DSDM, FDD, Kanban
Third Generation Methodologies: UP (Unified Process)
Data Management
Relational Database Design
Caching Techniques & Strategies
Relational Databases: Postgres
NoSQL Databases: MongoDB, Cassandra, Redis
Big Data Frameworks: Apache Spark, Apache Hadoop
Software Quality & Testing
Software Testing Techniques
Development Practices: Test-Driven Development (TDD), Behavior-Driven Development (BDD)
Core Computer Science
Data Structures
Algorithm Design
Graph Algorithms

Languages

Persian
Native speaker
Turkish
Native speaker
English
Fluent

Certificates

Distributed Systems Design Fundamentals
Particular Software 2024-07-01
Ultimate Go
Ardan Labs 2022-01-01
English Course Completion Certificate
Iran Language Institute 2018-01-01

Awards

Interests

Research Interests
Model-Driven Engineering (MDE)
Low-Code / No-Code Development
Software Architecture
Serverless Computing
DevOps
Empirical Software Engineering
Situational Method Engineering
AI for Software Engineering (AI4SE)