Amir's Face
Amir Karimi
Fractional Head of Engineering for early-stage startups
20 years of experience in end-to-end project delivery, team building, and consultancy services to diverse clients, ranging from small startups to and .

Services


Technical Leadership

Provide strategic guidance and leadership to engineering teams, helping them align their efforts with business objectives, optimize processes, and make informed technical decisions.

Software Architecture, Design and Implementation

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.

Team Management and Mentoring

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.

Stakeholder Communication

Effectively communicate with clients, project stakeholders, and cross-functional teams to manage expectations, provide project updates, and address any technical concerns or challenges.

Software Development Process Improvement

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.

Technology Evaluation and Selection

Assist in evaluating and selecting appropriate technologies, frameworks, and tools for projects, considering factors such as scalability, performance, security, and future extensibility.

Code Review and Quality Assurance

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.

Technical Hiring and Talent Acquisition

Assist in the recruitment and hiring of engineering talent. Participate in candidate screening, technical interviews, and evaluating skill sets to build high-performing teams.

Skills


Technical Leadership
System Design
Distributed Systems
ETL
Functional Programming
TDD
OOP
SOLID
Agile
Kanban
Python
Go
TypeScript
JavaScript
Scala
Java
Ruby
C/C++
HTML
CSS
Spark/PySpark
Django
FastAPI
Flask
Rails
Play
Akka
VueJS
React
Selenium
Linux
Docker
AWS
Kubernetes
Terraform
Postgres
MySQL
MongoDB
Kafka

Positions


Fractional Head of Engineering | Self Employed
Jun 2023
Vancouver, Canada

I support start-ups in the following two situations:

  • They're outsourcing development and they need a liaison between their team and the overseas developers
  • They have an in-house team that needs additional resources or more efficiency in creating scalable code
Software Engineer | Amazon
Nov 2022 - Jun 2023
Vancouver, Canada
  • My team utilizes AI/ML to overcome advertising attribution challenges while maintaining compliance with strict privacy regulations that prohibit user identity capture and storage.
  • Demonstrating exceptional leadership skills by becoming a project lead within two months of joining Amazon.
  • One of the main contributors to re-architecting and improving the data processing pipelines which are processing petabytes of data daily, reducing the number of jobs from around 15 to 1.
Tech Lead / Principal Software Architecture | Acceptto
May 2019 - Nov 2022
Vancouver, Canada
  • Promoted to lead the core engineering team consisting of 5 engineers developing the company's core product.
  • Reduced customer onboarding time from days to hours by developing a horizontally scalable, full-duplex communication service for the customer directory agent.
  • Led the redesign and implementation of the next generation of Acceptto's SSO microservice to make it horizontally scalable and highly available.
  • Designed and implemented a policy orchestration engine module that allows customers to control Acceptto's authentication system behavior with or without writing code.
  • Increased the availability and scalability of the company's core services by leading the migration to AWS and adding multi-region disaster recovery support, done using Terraform.
  • Helped the sales team to close two deals that increased the company's annual income by almost 30%, by leading the technical sale and architecture design calls.
  • Acceptto was acquired by SecureAuth in Nov 2021.
Site Reliability Engineer | Disney Streaming Services
Mar 2018 - Mar 2019
Manchester, UK
  • One of the main contributors to establishing the SRE practices within Disney Streaming Services as the 4th member of the newly shaped SRE team in the company.
  • Increased the availability of the services by implementing a transparent cross-region replication support for AWS Kinesis resources (Kinesis did not offer such a service at the time).
  • Helped three different 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.
Software Engineer | Disney Streaming Services
Apr 2017 - Mar 2018
Manchester, UK
  • Developed scalable microservices capable of handling tens of thousands of requests per second using Scala, Play, DynamoDB, AWS Lambda, Kinesis, SQS, S3, etc.
  • Contributed directly to the design and implementation of a new subscription system for BAMTech Media, which was later used in Disney+.
  • The original company name was Cake Solutions. It was acquired by BAMTech and then Disney in 2017.
Independent Software Engineer / Consultant | Self Employed
Jan 2006 - Mar 2017
Tehran, Iran
  • Designed and developed more than 40 custom-built software projects, from high-performance desktop applications written in C++ to highly scalable web applications written in Scala. Technologies: C#, .NET, Scala, Play, Akka, Python, Ruby, Java, Javascript, HTML/CSS, and more. See some of my works done as a solo developer under Projects section.
  • Worked directly with clients from corporate to individual entrepreneurs as a contractor or partner.
  • Built and managed a network of developers by setting up a transparent system to share the project's financial value with the whole team based on the value each member adds. It was a successful alternative to the traditional employment structure of corporations to attract the best talents.
Software Developer | Behsad
Feb 2003 - Dec 2005
Arak, Iran
  • Software developer in a team of 3, consisting of two academic researchers building a 2D cutting-stock problem-solving desktop GUI application for the first of its kind in Iran. Written in C++ and utilizing the Genetic Algorithm, it was solving general cutting-stock problems with less than 5% waste on average.
  • Designed and implemented dozens of applications using C#, .NET, and MSSQL.
  • Mentored and led a team of junior developers.

Featured Projects


Re-architecture of the ML big-data data pipelines
Dec 2022 - Jun 2023

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 and used in one of the strategic products of Amazon Advertisement organization. My team leveraged Iceberg and other technologies and refactored the existing Spark jobs to a cleaner and simpler design. This project reduced the number of job applications from 15 to 1 for a module.

Python, Scala, AWS, Spark/PySpark, ETL, PyTorch

Re-architecting the SSO and migrate to cloud
Nov 2020 - Jun 2021

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.

AWS, Terraform, Ruby, VueJS, JavaScript

LDAP Agent and Switchboard
Sep 2020 - Feb 2021

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.

Go, Ruby, VueJS, TypeScript, JavaScript

Policy Orchestration Engine for an IAM Solution
Apr 2019 - Sep 2019

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

Launch SRE
Apr 2018 - Apr 2019

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

Subscription system
Apr 2017 - Apr 2018

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

Book Coupon Distribution System
Jun 2016 - Dec 2016

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

ISP Integration Software Bot
Oct 2015 - Nov 2015

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

Fair Registration and Management System
Nov 2013 - Apr 2014

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

Pluggable Authentication Module (PAM) to add MFA support to Linux services
Jan 2014 - Mar 2014

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.

C/C++, Linux

Xoqal (Open Source)
Aug 2012 - Aug 2013

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.

C#

Custom-made Inventory Management System
Jan 2011 - May 2011

A custom-made desktop application that automates inventory management for small businesses.

C#, WPF

Steam Boiler Simulation CAD Software
Dec 2010 - Mar 2011

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

Custom-made Enterprise Report Builder
Aug 2009 - Feb 2010

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.

C#

Online Education System of Arak University of Medical Sciences
Apr 2007 - Jul 2007

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.

PHP, MySQL

2D Cutting-Stock Problem Solving Software
Sep 2003 - May 2004

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.

C/C++

Boot loader (Personal Project)
Nov 2001 - Dec 2001

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.

C/C++, Assembly

Education


BSc in Computer Science | Azad
2005 - 2007
Arak, Iran
  • Created a full-featured messenger system from scratch, including a custom binary protocol written in C++.
  • Gave a few talks about Computer Networks & Socket Programming.
AEng in Computer Software | Elmi-Karbordi
2003 - 2005
Arak, Iran
  • Developed a boot loader in an effort to develop a basic operating system. Learned working with IO, direct screen memory access handling, memory management (used linked-list data structure), re-implementing some functions of the C standard library from scratch.
  • Was selected as the top 3 students to participate in ACM Asian regional contest.
  • The youngest student attending this university at age 17.

Certifications


Stripe Certified Professional Developer | Stripe
Jul 2023

Credential ID: 76849733

Neural Networks and Deep Learning | Coursera
Sep 2017

License: UQH3GDCTTGTH

AWS Certified Developer | AWS
Jun 2017

License: F4YBGRB2KNV11PWB

Principle of Reactive Programming | Coursera
Dec 2013

Accomplishment with distinction