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 based on a microservices architecture.
    • Improved performance by reducing the latency of a critical API by a factor of 37.
    • Conducted architectural and detailed design using Unified Modeling Language (UML).
    • Implemented integrated authorization and failover mechanisms.
    • Containerized and deployed services using 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 large volumes of media processing.
    • Developed a typo-tolerant search system, improving accuracy and user satisfaction.
    • Performed large volume data migration from MongoDB to PostgreSQL.
    • Developed an automated NGINX configuration generator to streamline server management.
    • Designed and developed a real-time chat subsystem 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
Serverless Computing
Model-Driven Engineering (MDE)
Low-Code Development
Method Engineering
DevOps
AI for Software Engineering (AI4SE)