Provide strategic guidance and leadership to engineering teams, helping them align their efforts with business objectives, optimize processes, and make informed technical decisions.
Analyze business requirements and translate them into robust software architectures and designs. Contribute to the implementation of the critical components and modules. Apply best practices and industry standards to create scalable, maintainable, and efficient software systems.
Oversee and manage engineering teams, ensuring effective collaboration, productivity, and high-quality deliverables. Mentor and coach team members to enhance their skills and professional growth.
Effectively communicate with clients, project stakeholders, and cross-functional teams to manage expectations, provide project updates, and address any technical concerns or challenges.
Implement and optimize agile development methodologies such as Scrum or Kanban. Streamline processes, improve team efficiency, and foster continuous improvement through retrospectives and feedback loops.
Assist in evaluating and selecting appropriate technologies, frameworks, and tools for projects, considering factors such as scalability, performance, security, and future extensibility.
Conduct thorough code reviews to ensure adherence to coding standards, best practices, and maintainable codebases. Implement quality assurance processes to identify and resolve bugs, performance issues, and security vulnerabilities.
Assist in the recruitment and hiring of engineering talent. Participate in candidate screening, technical interviews, and evaluating skill sets to build high-performing teams.
I support start-ups in the following two situations:
One of the main contributors out of the two, to re-design and implement a new version of the data pipeline that simplifies the architecture and allows faster evolutions. This pipeline is handling petabytes of data daily. We leveraged Iceberg and other technologies and refactored the existing Spark jobs to a cleaner and simpler design. We reduced the number of job applications from 15 to 1 for a module.
Python, Scala, AWS, Spark/PySpark, ETL, PyTorch
Led the redesign and implementation of the next generation of Acceptto's SSO microservice to make it horizontally scalable and highly available. The old SSO module was a web server that should be run and maintained on the customer site. The new version was designed to run in the cloud and connect to the customer's user directory using an agent. This project reduced the customer onboarding time from days to hours.
Created a solution for Acceptto that allowed their backend to communicate with customers' ActiveDirectory. I managed the project (team of two) and contributed to the development directly. It was done in two phases and successfully executed with customer compliments. The final architecture removed the need for firewall configurations and load balancing on the customer side.
Designed and implemented a policy orchestration engine that allows customers to define their rules and condition to customize a core IAM solution software behavior. For example, customers can dynamically define policies to ask for MFA in addition to passwords when the user is logging in from a specific location or specific time of day, or a specific risk profile associated with the user. In addition to a UI, it allows power users to write their own predicates and policies. This feature provided a competitive advantage for the company in the industry which led to at least two successful accounts.
Python, AWS, Terraform, Ruby, Flask, VueJS
As the 4th member of the newly founded SRE team of Disney Streaming Services, helped three different development teams within a year to prepare for big launches that required handling thousands of requests per second by reviewing the architecture, building high throughput performance tests, chaos engineering, and building necessary tools and processes to improve reliability.
Python, Go, Scala, Kafka, Ruby
As part of a team of four, contributed directly to the design and implementation of a new subscription system for BAMTech Media, which was later used in Disney+. Capable of handling tens of thousands of requests per second.
Scala, AWS, Docker
Built an online registration, allocation, and payment system that handled the sales of book coupons for students used in international Iranian book fairs. This app handled the equivalent of $2M transactions within two weeks of the Tehran International Book Fair. Probably the largest project built entirely using the Scala ecosystem in Iran for the first time.
Scala, MongoDB, Play, Akka
Removed human errors, reduced costs and time by up to 10 times by reducing the time to submit the information and monitor the data from other systems by developing a bot to expose an API and other integrations on top of a closed-source UI that was designed to be only used by humans.
Python, Django, Selenium
A custom-made book fair registration system automates book publishers' registration process, allowing visitors to search for books and publisher locations online. It handled more than 40 provincial book fairs in the country, including the Tehran International Book Fair, with Alexa's rank below 500 among Iranian websites during the fair times. Serving tens of thousands of users per day using a single CPU and 2.5GB of RAM thanks to using non-blocking IO and async programming.
Scala, MongoDB, Play
Implemented a Pluggable Authentication Module (PMA) that integrates with my client's multi-factor authentication service. It allows adding MFA to all Linux services supporting PAM, such as SSH or local user logins.
Xoqal is an application library targeting .NET 4+ platforms written in C#. It helps to build web and desktop (win) applications using the same infrastructure. It provides some abstractions, data types, etc that make it easier for developers to follow the best design patterns and principles like SOLID.
A custom-made desktop application that automates inventory management for small businesses.
A GUI desktop app that simulates a virtual power generator steam boiler. Allows designing boiler systems by drag-and-dropping the boiler elements, specifying the connections and parameters then the user can run a simulation and receive the results report visually as well as on each element.
C#, WPF, Fortran
This project has started based on IRISL's need for a highly customizable report-building system. The customer was not able to produce their reports using off-the-shelf reporting software. This software was a set of tools, templating system, and integration with Microsoft Office Suite providing the flexibility customer needed and minimizing manual operations.
An online education system with features like defining the exams, questions, exam registration, issuing certificates based on the exam results, etc. This system has been used to facilitate the process of physicians' continuous education supervised by the University of Medical Sciences in Arak.
This software was the first of its kind which has been implemented in Iran. Using C++ and genetic algorithm we could reduce the waste in general 2D cutting-stock to less than 5%. I was the main developer in a team of 3, consisting of two academic researchers. This was my first commercial project and basically the start of my career.
A boot loader program written from scratch to run from a floppy disk, built using my home-grown text rendering library. It was an effort to develop a basic operating system. I learned about working with low-level IO, direct screen memory access handling, memory management, and re-implemented some functions of the C standard library since the original ones depended on MS-DOS.
Accomplishment with distinction