Principal Software Engineer @ ApplyBoard
At ApplyBoard Inc., our mission is to educate the world by simplifying and facilitating access to education for students everywhere. As a Principal Software Engineer, I am deeply involved in driving this vision forward through my work on the company's core product—an advanced application processing platform designed to streamline the student application journey. By collaborating closely with cross-functional teams and business stakeholders, I help ensure that the platform is scalable, efficient, and aligned with our goal of making education more accessible globally. My role involves leading technical strategy and architectural decisions, driving innovation, and ensuring that we continuously improve to better serve students and educational institutions worldwide.
Skills & Technologies: Agile Methodologies, Architectural Decision-Making, Cross-Functional Team Leadership, Mentoring and Code Reviews, Driving Technology Innovation, Stakeholder Management, Microservices, Domain-Driven Design, Behavior-Driven Development, SOLID Principles, RESTful Services & API Design, Serverless Architectures, High Availability & Fault Tolerance, Distributed Systems Architecture, Separation of Concerns, Loose Coupling & High Cohesion, Identity and Access Management, CAP Theorem, Concurrency Control & Locking Mechanisms, Content Delivery Networks (CDN), Caching Strategies (Redis, Memcached), Ruby-on-Rails, Typescript & Javascript, NestJS, AWS Services (EKS, RDS, S3, SNS, SQS, Cloud Watch, EC2)
Research Interests
Education
-
2016 - 2018
ETH Zürich, Zürich, Switzerland
Postdoc - Systems Group, Department of Computer Science.
Research topics: High-Performance and QoS-Aware Memory/Storage Sub-Systems, RDMA-Based Data Replication in Modern Datacenters, Near-Data Processing
Advisor: Onur Mutlu. -
2010 - 2015
Sharif University of Technology, Tehran, Iran
Ph.D. in Computer Engineering - Computer Architecture Major.
Thesis title: A Scalable and High-Performance Design Architecture for Solid-State Drives.
Advisor: Hamid Sarbazi-Azad -
2005 - 2008
Sharif University of Technology, Tehran, Iran
M.Sc. in Computer Engineering - Computer Architecture Major.
Thesis title: Performance of Crossbar-based Interconnection Networks for Multiprocessors.
Advisor: Hamid Sarbazi-Azad. -
2000 - 2005
Sharif University of Technology, Tehran, Iran
B.Sc. in Computer Engineering - Software Engineering Major.
Undergraduate final project title: An image watermarking framework using discrete Wavelet Transform to protect image databases against unauthorized modifications.
Advisor: Shohreh Kasaei.
Work Experience
-
2020 - 2022
Software Architect/Lead Data Engineer @Fortum, Zürich
Skills & Technologies: Driving Technology Innovation, Data Architecture, Big Data, ETL (Extract, Transform, Load), Data Pipelines, Big Data Analytics, Serverless Architectures, Java, Scala, Python, Apache Spark, Apache Kafka, AWS (Kinesis, Lambda, S3, EMR, Firehose, CloudWatch, SNS, SQS), Azure Cloud Services (Event Hubs, Data Factory, Stream Analytics, Synapse Analytics), Databricks Lakehouse Platform (Delta Lake), Infrastructure as Code (Terraform)
-
2018 - 2020
Senior Software Engineer/Architect @RepRisk AG, Zürich
Skills & Technologies: Agile Methodologies, Architectural Decision-Making, Microservices, Domain-Driven Design, SOLID Principles, RESTful Services & API Design, GraphQL APIs, Message Brokers (Apache Kafka, ActiveMQ), Java, Python, PHP, Spring Framework, Jooq, JPA, Hibernate, JavaScript, React, JSX, Hazelcast IMDG, Django
-
2016 - 2018
Senior Researcher @Systems Group, ETH Zürich
Skills & Technologies: Hardware Simulation, Storage Subsystems, Storage Virtualization, Performance Optimization, Data Center Infrastructure, Quality-of-Service (QoS), Processing-in-Memory (PIM) Architecture, Data Center Scalability, High-Performance Computing (HPC), Remote Direct Memory Access (RDMA), C#, C++, .NET Framework, C, Cassandra, Redis
-
2015 - 2016
Manager @IPM HPC Center
Skills & Technologies: Agile Methodologies (Scrum, Kanban), Resource Allocation and Optimization, Process Improvement and Optimization, Data-Driven Decision Making, Performance Metrics Analysis, High-Performance Computing (HPC), GP-GPU Computing (General-Purpose GPU), Parallel and Distributed Computing, Linux-Based Infrastructure Design, Performance Tuning and Optimization
-
2010 - 2015
Senior Software Engineer/Architect @IPM School of Computer Science
Skills & Technologies: Software architecture, Java, C#, C, JSP, EJB, .NET Framework, Linux Shell Scripting, Apache Tomcat, Apache HTTP Server
-
2008 - 2010
Technical Lead @IPM HPC Center
Skills & Technologies: High-Performance Computing (HPC), GP-GPU Computing (General-Purpose GPU), STI CELL Processor Architecture, MapReduce Framework, Parallel and Distributed Computing, DNA & Protein Sequence Alignment, Enumerative Combinatorics, Linux-Based Infrastructure Design, Medical Data Analysis, Performance Tuning and Optimization, Scalability in Distributed Systems, Java, C#, C++, C, Apache Hadoop, Linux Shell Scripting, .NET Framework, .NET WPF, IBM CELL SDK, Nvidia CUDA, OpenMP, MPI, Pthread
-
2006 - 2008
Research Assistant @IPM School of Computer Science
Honors
-
2018
Best Paper Award, European Network on High Performance and Embedded Architecture and Compilation (HiPEAC), 2018.
-
2016
Third place award in the 18th Iranian National Khwarizmi Youth Festival for my innovations in storage systems, Iran.
In news (in persian): Official web page, IRNA, ISNA, Mehr News, Hamshahri -
2004
Ranked 4th in the Iranian Nationwide Graduate School Entrance Exam in Computer Engineering, Iran.
-
2004
Ranked among the top 15 students of the 8th National Scientific Olympiads in Computer Engineering, Iran.
-
2000
Ranked 188th among more than 350,000 applicants in the Iranian Nationwide University Entrance Exams, Iran
Skills
Programming Languages | Java C++/C C# Python |
Database Management Systems | MySQL PostgreSQL TimescaleDB AWS DynamoDB Redis Apache Cassandra |
Cloud Platforms | AWS (EC2, Lambda, ECS, EKS, S3, EBS, RDS, DynamoDB, Redshift, ElasticCache, CloudFront, VPC, ELB, IAM, KMS, EMR, Kinesis, CDK) Azure (AKS, Functions, App Service, Synapse, VNet, DevOps, Cosmos DB, AD, AD B2C, Event Hubs, API Management) |
Multicore & Parallel Programming Platforms | Nvidia CUDA OpenMP MPI Java Multi-threading Apache Hadoop Pthread Windows Threads |
Backend Technologies | Java Spring Framework .NET Core .NET Entity Framework Ruby on Rails Rails ActiveRecord Flask Django WGSI Nginx NestJS Apache Tomcat Apache HTTP Server |
Containers and Orchestration | Docker Kubernetes (AKS, EKS, OpenShift) Helm |
Message Brokers | Apache Kafka RabbitMQ Amazon SNS/SQS Amazon KDS Azure Event Hub Hazelcast IMDG |
Development Tools | Git Atlassian (Jira, BitBucket, Bamboo, Confluence) Gitlab Maven Nexus Jenkins SonarQube IntelliJ IDEA MS Visual Studio Eclipse Shell Scripting GCC/G++ Vim PhpStorm |
Scientific Tools | R Matlab SimpleScalar SESC gem5 MPARM GPGPU-Sim Disksim BookSim NVSIM CACTI Orion Simulink LATEX MS Office Open Office |
Digital & Embedded System Design | Verilog HDL Modelsim State Flow Intel x86 Assembly |
Publications
Venice: Improving Solid-State Drive Parallelism at Low Cost via Conflict-Free Accesses
R. T. Nadig, M. Sadrosadati, H. Mao, N. Mansouri-Ghiasi, A. Tavakkol, J. Park, H. Sarbazi-Azad, J. G\'{o}mez-Luna, and O. Mutlu
in 45th International Symposium on Computer Architecture (ISCA '23)
pp. 36:1 - 36:16, 2023.
Professional Services
Teaching
Academic Projects
Design and implementation of scientific high-performance systems, 2007 - 2008.
- A 2 teraflops scientific HPC platform implemented based on IBM CELL/BE processors.
- A 13 teraflops scientific HPC platform was implemented based on Nvidia GPUs.
- Famous parallel algorithms were implemented to examine peak and sustained performance of these platforms. Examples include: matrix multiplication, wavelet transform, fast fourier transform, N-body simulation, prime number generation and graphical ray tracing.
- Different software modules and libraries were developed to speedup abstract mathematical problems in graph theory, design theory, and algebraic fields.
- Some results were published in CSI JCSE:
Techniques for Utilizing Capabilities of Emerging Chip Multiprocessors in Enumerative Combinatorial Problems
E. Totoni, A. Tavakkol, Gholamreza B. Khosrovshahi, A. Khonsari, and H. Sarbazi-Azad
in CSI Journal on Computer Science and Engineering (JCSE)
Vol. 11, No. 2, pp. 1 - 14, 2014.
Xmulator: An object oriented multi-layered simulation framework, 2006 - present.
- A detailed SSD simulation platform was implemented. It was referenced in more than 5 publications.
- A power calculation methodology for NoCs was implemented based on Orion library. It was referenced in more than 30 publications and 20 PhD and MSc thesis.
- Well-known and special topologies of NoC and interconnection networks were implemented. They were referenced in more than 20 publications and 10 PhD and MSc thesis.
MSc. Thesis: Performance of Crossbar-based Interconnection Networks for Multiprocessors.
- The issue of pin constraint for traditional multiprocessor or multicomputer systems and routing limitation of wires in physical design of Multiprocessor Systems-on-Chips (MPSoCs) have been always controversial to designers. There is a trade off between communication bandwidth and the aforementioned constraints.
In my MSc. thesis, I introduced a new class of interconnection topologies, called Crossbar-based Networks, to solve the pin-out constraint in interconnection networks and wiring complexity problem in Network-on-Chips (NoCs). The main idea behind this newly introduced class is to find fully connected sub-graphs in communication graph of a topology and substitute all of the communication channels in each subgraph with a single crossbar switch. This substitution does not remove communication ability between nodes of the mentioned sub-graph, but it can reduce the number of physical communication links. Therefore, the node degree and the number of wires required to implement communication structure will be greatly reduced and designer can overcome implementation physical limitations.
In addition, I introduced a new topology with the name of Diagonal Connected Mesh (DCM) which modifies well-known Mesh and Torus topologies to provides the possibility of using crossbar-based communication. Besides, I investigated the topological properties of DCM, and proposed deterministic and fully adaptive deadlock free routing algorithms for this new topology.
BSc. Final Project: An image watermarking framework using discrete Wavelet Transform to protect image databases against unauthorized modifications, 2004 - 2005.
- In this project a framework for image watermarking was designed and implemented based on the properties of wavelet transform. This framework is used for protection of image databases against unauthorized modifications.
Software Projects
A web-based document indexing/provisioning system, 2009 - 2010.
- A web-based document management/sharing system was designed and implemented using J2EE for Institute for Research in Fundamental Sciences (IPM).
- IPM researchers use this system to share scientific documents in pdf, word, and text format.
- Documents are indexed based on content, title, keywords, authors, and category and users can perform mixed searches based on document content and properties.
- System can automatically check for duplicate uploaded documents and sends alerts to both document uploader and system administrators.
- System provides dynamic access control policy for different types of users.
Design, setup and installation of a unified Linux-based web-hosting system for IPM information center, 2008 - 2009.
- All web-related services of IPM, including its official home page, official home pages of its schools, a J2EE-based portal of research projects and employee information, and conference registration pages, were migrated from a Windows 2003 Server to RHEL 5.0.
- Apache Webserver, Tomcat container, MySQL, and MS SQL Server 2005 were installed and configured to run J2EE, .NET and PHP web applications.
- A backup server was set up and a backup policy was designed and implemented.
- A development server was set up and version control and deployment policies were designed and implemented.
- A unified user home directory management policy was implemented and protocols were defined for user management.
- An update policy for OS and other server packages was defined and implemented.
- The project was managed under my supervision.
An automated event management system for IPM School of Particles, 2009.
- A web-based JSP system was designed and implemented for automated event (conference/lecture/symposium) management in IPM School of Particles.
- System operator just provides event description, required registration fields, and required web pages for the event.
- The system automatically generates registration forms and required web pages such as: event desription, venue information, event program, event organizers, and etc..
- The system provides registration control panel to perform management tasks such as: open/close registration, confirm registration, send email to registrants, two step registration.
- Registration control panel also provides reporting services based on registration input data.
JDB: A distributed data gathering and analysis system for medical research projects, 2008 - 2009.
- This is a web-based client/server system that is used for distributed gathering of individual medical information in Shahid Beheshti University of Medical Sciences (SBMU), School of Dentistry. SBMU ranked among the top three medical schools in Iran.
- The software was developed using C# and .NET Framework.
- Users can perform complicated statistical analysis of data including: descriptive statistics, bivariate statistics, linear regression, cluster analysis (K-means and hierarchical).
- Other features include: data import/export to xls/csv/xml format, database merging, online RESTful data provisioning in both JSON and XML formats, data visualization (2D & 3D charts, line charts, bar charts, pi chart, etc.).
Code Snippets| Academic and scientific
MQSim
MQSim is a fast and accurate simulator modeling the performance of modern multi-queue (MQ) SSDs as well as traditional SATA based SSDs. MQSim faithfully models new high-bandwidth protocol implementations, steady-state SSD conditions, and the full end-to-end latency of requests in modern SSDs.
Download source in C++ | Version 1.0
DTA
DTA is a Disk Trace manipulation/Analyzer tool. It converts traces generated by Linux blktrace or Event Tracing for Windows to ascii format. It can also provide statistical analyzes of ascii disk traces.
Download source in C | version 1.5 Download source in C# | version 1.1