

Java Software Engineer with over 6 years of experience across all stages of the SDLC. Proficient in Java, Spring Boot, multiple databases, and CI/CD processes. Specialized in developing highly available and scalable applications for high-load environments, including a recent project with over 15k daily active users. Skilled in finding innovative solutions to complex problems and building software systems that are testable, flexible, and maintainable.
EMCI is a leading enterprise in the telecommunications sector in Iran, pioneering both B2C and B2B projects across diverse fields. I contributed to a search engine project.
• Analyzed and planned the migration of a Spring Boot application from monolithic to microservice architecture, with a phased approach: breaking down the application into minimal services, implementing a service registry and broker, and integrating Event Sourcing and CQRS.
• Deployed a stable Nebula graph database capable of handling vast incoming stream data from Kafka effectively. Additionally, developed over 5 graph algorithms to facilitate comprehensive data analysis tasks.
• Implemented Docker File for the project, integrated GitLab CI to automate build processes and run tests, deployed to Kubernetes, exposed Prometheus metrics, and created Grafana dashboards. As a result, The project has been efficiently pipelined and monitored.
• Substituted the key-value database after extensive research and testing to increase throughput. The application now processes over 3,000 messages per second with the new database (Cassandra).
• Resolved user activity search functionality by implementing a solution to save client logs in Elasticsearch with n-gram tokenizer, resulting in streamlined query processes with varied query lengths.
• Mentored 3 junior teammates who had just joined the team, accelerating their onboarding by 2x and boosting team productivity within 4 months.
RUNC is a startup specializing in innovative banking solutions tailored for B2B clientele, with a workforce of approximately 200 employees. I worked on a blockchain analysis project.
• Applied DDD principles in a Spring Boot application, which improved loose coupling between services, modularity, and testability from 20% to 70% in JUnit and Mockito tests.
• Engineered storage and retrieval of high-volume blockchain data with minimal latency by designing MongoDB collections. Achieved the capability to process 2k messages per second, enhancing system efficiency and responsiveness.
• Boosted API performance, system responsiveness, and user experience by implementing caching techniques with Redis and Hibernate, reducing latency to 50 milliseconds.
• Modeled a multi-master architecture using PostgreSQL BDR, achieving dual redundancy and high availability to ensure continuous uptime.
• Partnered with UX designers and product managers to translate business needs into technical requirements and propose innovative solutions that enhanced user experience within 4 months.