my technologies
HTML(5) , CSS(3) , Javascript(ES5+) , Typescript , React , React Native , NextJS , Gatsby , NodeJS , Restful , services , Serverless , Redux , Mobx , RxJS , Svelte and Sapper , Statecharts and XState , Cloud (AWS mostly) , BaaS(Auth0, Firebase, Amplify) , CI/CD( Netlify, Heroku, GH Actions) , Testing (Cypress, Testing library, Jest) , SCSS/Styled components/Emotion/TailwindCSS , Build system and bundlers (Webpack, Rollup) , WebSockets
skills
languages
JavaScript
TypeScript
HTML
CSS
Python
PHP
mobile development
React Native (Android and iOS)
Cordova (Ionic & Phonegap)
desktop
A few experiences with ElectronJS
databases
MySQL
PostgreSQL
DynamoDB
Firebase Realtime DB
others
Good at: Pair programming, Brainstorming, Code review, TDD, Git + automation + release management
Mentor and Coach at MentorCruise, having mentored more than 25 mentees over the course of 3 years with 5 starts rating!
Has experience working in: product companies, as a consultant, well stablished companies, startups, as a technical leader, people management, individual contributor
Has worked as an Individual contributor, Senior engineer, Lead engineer, Tech and Team leader.
Excellent at clear communication, transparency, team work, peer support, driving initiatives, driving from ideation to completion, Scoping and technical breakdown, learning, teaching, social interactions
education
BSc in Aerospace Engineering, Sharif University of Technology in Tehran
Python programming, Duke University
professional experiences
Lead Engineer at Stately.ai
Building the next generation of software modeling tooling upon State machines and Statecharts.
Building XActor: A javascript framework for the actor model architecture.
Building and maintaining Xstate visualizer/inspector for visualizing the application logic and event sequences.
Building Stately visual editor: A drag and drop tool to build executable application logic visually.
and many more projects including but not limited to: The engineering blog, interactive tutorial for gamifying the learning of XState, technical documentation reworks, Building and maintaining Stately registry.
Lead Engineer at Epic Games Nov 2019 - Jan 2022
Core platform developer, in charge of overall architecture, engineering excellence, developer productivity and common platform services and abstractions.
Technical leader of Epic Online Services in the Game Services area.
Team leader, leading a team of 50.
Maintainer of Epic UI, an in-house design system and component library, Developer portal and Organization portal projects.
Driving the automated testing initiative across several distributed teams in Epic Games (1 year).
Driving the feature lifecycle initiative with the purpose of standardizing the life cycle of a feature from the ideation stage to the delivery and maintenance stage, optimizing for documentation/edge case exposure early on/cross team syncing.
Senior Software engineer at Futurice Nov 2018 - Nov 2019
Fullstack web engineering.
Building mobile application solutions for one of the popular payment systems (Smartum) in the Nordic.
Leading a team of 10 to rebuild 2 of the most popular news delivery systems, Ilta-Sanomat and Helsingin Sanomat, (with the scale of about 5 million unique visitors per day) in Finland.
Building a hardware to software management system for a famous and known gaming company (Supercell) in Finland.
Senior Web Engineer at Smarp May 2018 - Nov 2018
Using Angularjs and React.
Maintaining a legacy product (Social Network) and Developing the new product, migrating logical parts.
Migrate legacy code into new codebase (React, Redux, Webpack).
Create API Client abstraction on top of Smarp’s core API to handle API data models, data interfaces, custom data selectors/transformers, Testability.
Refactoring and consolidating the translation mechanism on the web and mobile clients on Smarp product.
Sketching the new notification system into an Event sourcing mechanism.
Planning the new design system initiative, working closely with the Design and the UX team for better E2E and integration testing coverage, solid design components, documentation, and right abstractions.
Scrum, Kanban, Agile values, Teamwork, Internal tech events.
Project manager of the Engineering blog.
Member of the hiring committee.
Lead Javascript Engineer and Consultant at Beeptunes Oct 2017 - May 2018
Tech leading and developing on a shared mobile-web React application (similar to Spotify), meant to play and stream audio tracks, albums, artists.
Written in React and Redux, uses a core package which shares logic and components - between React and, React Native, and probably Electron (in future).
Uses modern Javascript development environment.
Teaching React, Redux, Modern Javascript and Testing best practices to the tech team.
Senior Frontend Engineer at Talos Digital Jul 2017 - May 2018
Maintaining the US and Mexican based company’s online digital service for managing the entire Real Estate industry including All the legal access roles, legal document management, and legal process audit.
AngularJS, PhantomJS, Karma, Jasmine.
Passenger1 flight and accommodation booking system using React, Redux, Firebase, Jest, and Enzyme..
Agile, Scrum.
Frontend Engineer at PersianGig Sep 2016 - Sep 2017
Reworked multiple B2C and B2B cloud services (cloud storage, cloud-ware) from Dojo Toolkit to React and Redux.
Because of better UX, being responsive for mobile users and increase in performance, our customers grew up to 1 million and 450 thousand **(45% growth)**.
Upgraded a direct HTTP upload service to a Node.js, concurrent, chunk enabled uploader.
Since the service is more reliable and supports link resumes, drag and drop and folder upload, our upload instances grew up to almost **20,000** instances per day and decreased the number of tickets complaining about failed uploads, hence caused a better situation for our customer support team **(logs indicate a 60% growth in upload usage)**.
Add testing to projects up to a reasonable code coverage to increase consistency and avoid common mistakes. Before that, the codebase didn’t have any.
Introduced Git Flow to the dev team that decreased the number of conflicts and increased development speed on the codebase.
Gathered a small team of developers to run daily workshops on tech topics such as CI, DevOps, etc to make sure everybody learns as a team..
Mentored a junior frontend developer through a solid educational program (which I designed) and prepared them for team projects.
Enhanced the CI pipeline to cache none-updated assets that decreased the frontend build duration up to **50%**.
Integrated upload interface with the native camera to increase UX.
Designed and developed an embedding system for cloud-based files.
Came up with an ACL system on projects that helped the company to reuse code base and extend its business model from B2C to B2B that eventually led to a **200,000 Euros** worth contract with the main telecommunication service in Iran called Irancell.
Reworked file preview/download service to Node.js server-side rendered pages.
Member of the hiring processs.
Web Developer at Bertina Co. Dec 2014 - Sep 2016
Developed Employees Portal using AngularJS, a service to manage employees, request for vacatons, etc.
Developed Minisite, a service to provide minimal, responsive personal portals with various themes and live editing using AngularJS, jQuery, and SCSS.
Developed Chia, an Android application with a gamification approach to learning the English Language, including different levels, payments, live competitions using jQuery, Cordova, Socket.io and Node.js.
Developed Hamkalam, an IM application for Android devices providing an anonymous chat service to the public using AngularJS, Node.jS, and MySQL.
Developed CartoonLand, an Android application providing cartoons for kids, streaming online videos with multiple qualities, download manager to cache downloaded videos, user management, IAB for payments using jQuery, Cordova, PHP, MySQL.
Developed multiple enterprises and personal responsive websites using Wordpress, jQuery, AngularJS.
Member of the hiring process..
Junior web development freelancing Aug 2011 - Dec 2014
appearances
Conference Talks and Meetups
@ Turku frontend 2020So you think you know state management?
@ Christian AlfoniExperiments with State machines and Overmind
@ HelsinkiJS Meetup 2019A hitchhiker's guide to Svelte JS
@ SkyHacks Poland 2019In Pursuit of Finite States
@ HolysJS Moscow 2019The art of explicit and consistent user interfaces v2
@ ReactJS Day Italy 2019Tackle React component complexity using Reactive Statecharts
@ 404Fest 2019The art of explicit and consistent user interfaces
@ GDG Helsinki 2019Introduction to modeling with Finite state machines
@ Futurice Tech weeklies 2019Explicitness and Consistency in UI
@ TampereJS, 2019React Hooks vs Reactive Statecharts
@ React Helsinki June, 2019React Hooks vs Reactive Statecharts
@ React Finland 2019Abstract component modeling in React
@ ReactJS community 2019Statecharts driven UI development
@ React Helsinki 2019Boost state containment with Redux Observables
@ ReactJS Community 2018Headless React
@ Futurice Tech weeklies 2018React without React
@ Software Talks 2018Test Driven Development (Software Talks)
@ Software Talks 2018The state of Frontend development (Software Talks)
@ CoderConf 2018The life of a software developer in Finland