Hi! I’m
Seyyed Emad Razavi
Senior Mobile Developer | Tech Lead

bg-shape
bg-shape
bg-shape
bg-shape
bg-shape
bg-shape
bg-shape
bg-shape
bg-shape

A senior mobile application developer and team leader with 7+ years of experience in Android (Kotlin, Java) and Flutter. Proven ability to lead teams, architect scalable mobile solutions, and deliver high-quality applications. Seeking a challenging position to leverage expertise in mobile development, leadership, and innovation.

know more

Technical Skills

Work Experience

Team Lead & Mobile Architect

Partov Ertebat Saba | Jul. 2021 – Mar. 2024

  • Unified client-side JVM and Android projects (Galaxy and Kapela) into a Kotlin Multiplatform (KMP) initiative, sharing data models, networking, and business logic. This resulted in a 20% increase in development efficiency and an 80% reduction in critical bug reports due to code sharing, increased focus on tasks, leveraging Kotlin Coroutines, Clean Architecture, and data layer testing.
  • Established infrastructure (Package Registry using Maven Publish and Gitlab Package Registry, CI/CD pipelines using GitLab CI) and fostered a DevOps culture. A shell script was developed to automate [Specific Deployment Tasks], further increasing development speed. Established CI/CD pipelines using GitLab CI and a custom shell script integrated with Docker to automate deployment and apply device-specific configurations.
  • Optimized build processes, reducing compilation times from 15 minutes to under 5 minutes.
  • Transitioned from Retrofit to Ktor for networking, leveraging Ktor's multiplatform support to enable code sharing across JVM and Android. This resulted in a 40% reduction in development time for data-layer tasks by eliminating the need for duplicate framework-specific code. Migrated from Room to SQLDelight for a unified database solution across Android and JVM.
  • Mentored two junior developers, guiding them from beginner to intermediate level in software development and architecture, [Add outcome if possible].
  • Successfully incorporated Jetpack Compose into the project (led by Mehdi Bahmanpour).
  • Implemented 'Feature Flags' (led by Mehdi Bahmanpour) to control feature availability per flavor, improving flexibility for different business needs.
  • Migrated from Groovy to Kotlin (kts) for Gradle files.
  • Introduced Version Catalog for improved dependency management.
  • Utilized SLF4J as a logging abstraction, delegating to Log4j on the JVM side and Logback on the Android side for platform-specific logging.
  • Used Picocli to enhance the CLI user interface in the JVM project.
Detailed Timeline:
  • May 2019: Joined the company. Initial projects were three Android apps with architectural issues and significant shared business logic. First step was using Build Variants, leading to initial instability but ultimately achieving moderate stability. Improved UI/UX and migrated from Volley to Retrofit. No DI, Java-only codebase, XML-based layouts, no tests, and some Java modules (e.g., 'common' for utilities).
  • Feb 2020: Transitioned to a Single Activity architecture using Fragments and Navigation Component. Separated Custom Views into a dedicated Android module, aiming for a design system (which was later achieved with Jetpack Compose).
  • May 2020: Introduced Kotlin. New files were primarily written in Kotlin, and existing Java files were gradually converted, encountering occasional bugs due to the lack of a proper architectural structure and tests.
  • Mar 2021: A JVM version for Linux was requested. Mohammad Sohrabi joined the team, increasing the focus on architecture. The project adopted Clean Architecture + MVVM + DI. Significant code refactoring, class/module creation/deletion, and Java-to-Kotlin conversion accelerated. Introduced Kotlin Coroutines and Hilt Dependency Injection.
  • Aug 2021: Started building the JVM project. Used Room (Android) and Exposed (JVM) for database access (later realizing SQLDelight was a better option). Used Hilt (Android) and Dagger (JVM) for DI. Used Ktor for server communication (as Retrofit wasn't multiplatform). Utilized Maven Publish and Gitlab Package Registry for shared modules. Created a Ktor-based module for all server interactions. Used SLF4J-based libraries for logging (Log4j for JVM, Logback for Android).
  • Dec 2021: Mehdi Bahmanpour joined the team, bringing design expertise. Significant domain changes. Improved Picocli usage for the JVM CLI. Enhanced database query writing with Exposed. Mehdi took initiative in Gradle improvements (debug/release version script, Groovy to Kotlin conversion).
  • Jul 2022: Project reached business stability, allowing more focus on technical tasks. Mehdi added the first Jetpack Compose code. Mohammad led business logic, Mehdi led UI, and Emad Razavi led the overall project and promoted the KMP vision.
  • Nov 2022: Migrated to Version Catalog for easier dependency management.
  • Apr 2023: Migrated from Room to SQLDelight (Android and JVM) for a unified database solution. Mohammad Sohrabi wrote tests for the data layer. Emad and Mohammad worked on .sq files and related code changes. Addressed differences between Dagger/Hilt and SQLDelight drivers.
  • Jun 2023: Mehdi Bahmanpour led the 'Feature Flag' task (incorrectly named at the time). The goal was to identify shared features and control their availability per flavor through a configuration file, improving flexibility for different company needs. This involved separating features and creating appropriate implementations for various combinations. Features were transformed into Use Cases.
  • Jul 2023: Added a fourth flavor to the Android project. A feature was split into two. The previous feature flag implementation made adding this flavor quick. Mohammad Sohrabi left the company. Mohsen Abedini joined, bringing attention to detail, documentation expertise, and knowledge of the latest Android developments.
  • Mar 2024: Final step towards KMP. Initially, there were misconceptions about KSP and Build Flavor compatibility, and Hilt's usability in the Android module. Emad converted the JVM project from Dagger to Kotlin Inject. Mohsen Abedini worked on the Android side. This (unnecessary) conversion led to further code sharing in the DI part. Java/Kotlin and Android Library modules were moved to the JVM project. A 'shared' Kotlin Multiplatform module was created and added as a dependency to the JVM project. The Android project depended only on the 'common' part of the 'shared' module. The successful execution on both platforms confirmed the KMP setup.

Senior Android Developer & Team Lead

Parsian Information Technology Company | May 2019 - Present

  • Led Android development team, mentored junior developers, and oversaw project timelines.
  • Architected and developed new features for flagship mobile applications.
  • Improved app performance and user experience through code optimization and refactoring.
  • Managed CI/CD pipelines for automated testing and deployment.

Android Developer

Basalam | May 2020 - August 2020

  • Developed and maintained features for the Basalam e-commerce Android application.
  • Collaborated with cross-functional teams to deliver high-quality software.

Android Developer

Seyagh Software Solutions | December 2017 - December 2018

  • Contributed to the development of various Android applications for clients.
  • Worked on UI/UX implementation and backend integration.

Education & Certifications

2014

B.Sc. in Mechanical Engineering

University of Kashan

2018

Professional Scrum Master (PSM I)

Scrum.org

2018

iOS Mobile Programming

Faratar Az Danesh

2017

Object-Oriented Design & Design Patterns

Faratar Az Danesh

2017

Android Developer

Tehran Institute of Technology (MFT)

bg-image

Mentorship

ADPList Profile: https://adplist.org/mentors/seyyed-emad-razavi

Statistics:

  • Total Mentoring Time: 495 mins
  • Sessions Completed: 16
  • Average Attendance: 100%
  • Karma Points: 53

Impact Areas:

  • General mentorship
  • Resume and portfolio review
  • Design career path

Projects

Taxiboard

Digital signage project for in-car taxi displays, utilizing technologies like location services (GPS, geofencing), socket.io, and ExoPlayer for streaming. Handled real-time playback and mid-stream ad insertion on low-resource devices (1GB RAM).

Dooz (Morabaraba/Twelve Men's Morris)

Developed and open-sourced a game of Morabaraba using Basic4Android. Versions available on Google Play.

GitHub: https://github.com/razavioo/Dooz

Ghasedak Samaneh (Internal Project - Parsian)

Contributed to the development of an internal super-app for Parsian, focusing on Android development, feature implementation, and architectural improvements.

Parsian Mobile Banking (Parsian Bank)

Key developer for Parsian Bank's mobile banking application, responsible for core features, security enhancements, and performance optimization.

Parsian Authenticator (Parsian Bank)

Developed a software token application for Parsian Bank, enhancing security for mobile banking users.

Personal Projects & Open Source Contributions

Various small projects, including Ktor server-side applications (dockerized and deployed) and a personal website (emad.dev) using Jekyll and GitHub Pages. See GitHub profile for more.

GitHub: https://github.com/razavioo

Architectural Contributions

  • Mardomanim (Ghasedak Samaneh): Developed a novel, abstract gamification architecture, separating player and user concepts and integrating with a custom rule engine. This architecture treated all user actions (including messaging and logging) as potential rewards, simplifying the system and allowing for flexible configuration and future expansion.
  • Parsian Mobile Banking: Implemented a multi-module architecture based on Clean Architecture principles, improving code maintainability, scalability, and testability.
  • Internal Super-app (Parsian): Designed and implemented a dynamic theming system, allowing for runtime customization of the application's appearance.

Agile Experience

  • Various (Parsian IT, Basalam): Extensive experience with Scrum methodologies, including sprint planning, daily stand-ups, sprint reviews, and retrospectives. Often took the lead in planning sessions and backlog grooming.
  • Team Leadership: Championed Agile practices within development teams, fostering collaboration, iterative development, and continuous improvement.

Languages

  • English: Fluent
  • Persian: Native

Testimonials

Emad always tries to pay special attention to the correctness and depth of the concepts he learns and is eager to share his valuable knowledge with those around him .

Mohammad Sohrabi

Mohammad Sohrabi

Android developer
map bg-shape bg-shape bg-shape bg-shape bg-shape

Blogs