CTO at HamiTrip , Tehran, Iran
September 2016 - Present
HamiTrip as an emerging company has got high reputation in SaaS services for Online Travel industry at Iran in recent years. I had the honor to work with the company as CTO from early states and experience the real path of success; from idea to production. So far, we have gathered a professional development team (with more than 20 members), developed a micro-architecture ecosystem that runs on self-hosted Kuberneties with all its interesting challenges. The product interact with tens of providers, assimilate the service and provide sets of standard APIs and OTA (Online Travel Agency) websites, as white-label, for B2C/B2B market; as an example: https://hipotrip.com.
Beside of CTO regular duties like technology selection, scrum master, team setup, HR and hiring, budget planning and project management; I was personally responsible of the below activities:
Atlassian Ecosystem: I have several years of experience on setting up Atlassian products and customize them according to requirement. Beside the main internal workflows (JIRA, Confleunce, BitBucket and Bamboo for CI/CD) I have setup leave management and hiring process of the company and also installed an enterprise EDMS system for a petroleum company, which is already described in PROJECT section.
Kafka: I setup a Confluent Kafka cluster with 3 brokers, combined with their schematic registry and rest proxy for our log gathering mechanism. All containers sends their logs to Kafka over sockets in Kuberneties workers, a Kafka Stream application process topics and cluster them into DevOps logs, bug tracking and BI system.
Java/J2EE: I was personally responsible for a payment engine micro-component. The engine developed in J2EE ecosystem with Spring and Percona/MySql database. The engine uses checksums to validate transaction records in DB and provides both bank payments and wallet management in hierarchial B2B/B2E businesses.
GoLang: In one of the components we required stable delay for responses. Considering guarantee on network layer of GoLang and since I'm a C++ lover, we decided to go with GoLang. It's using pipelined Bolt protocol over Neo4J and efficiently utilized Redis. So far, it shows excitingly great performance.
Python DJango: I can't call myself a Python developer, due to seeing all great Python professionals. But, according to our high demands I developed a Django based project to centrally control configurations of each micro-components in the ecosystem.
Software Manager at Solentech , Porto Alegre, Brazil (Remote)
June 2014 - Present
Solentech is specialized on RFID and IoT solutions. In several years of remote works with Solentech company I
was able to design and develop an IoT platform from scratch. This project starts with a fund of
Navitec project (Nation-wide IoT solution for customs and shipment). Our mission was to develop
a reliable solution to gather data from tons of sensors put information in a private Cloud
system, process data logs and provide scalable warehouse and scalable time-series database to
end users. Nowadays, beside of the Navitec project, it turns to the general data-gathering and
processing platform of Solentech's RFID products. Here are main components of the system:
Cloud infrastructure and middleware: We widely utilize Kafka platform to cache IoT data, use Avro protocol to guarantee validation of data and store logged data into an open-source and highly scalable time-series database.
Application Nodes: I developed a java based service that is able to schedule different RFID sensors, probe corresponding data and send them to Cloud. Main challenges in the system were accuracy and durability of scheduler, throughput and being able tolerate connection failures. Technology stack is: Spring, Spring Boot, Thymeleaf, MongoDB, Redis and Dockers.
CTO at DenaECommerce, Tehran, Iran
July 2015 - September 2016
Dena E-Commerce focuses on payment and smart transportation solutions. This company is the first place I took CTO position and it was unique management experience. I’ve been responsible for all technical issues from analysis to developers to customers. Efforts that took place in this position covers diverse range of activities, among most important ones are:
Project Management: We have more than 30 members in 4 different groups. How to plan, organize and track their activity requires significant effort and tools. We utilized Agile Scrum on Atlassian Ecosystem to being able to keep track of vast amount of issues in the system.
Networking: We planned and deployed the company’s data-center infrastructure to provide Operational, Development and Secure-access zones (DMZ). It provides NOC, backup plan, fault-tolerance communication and access control for secure resources.
Technology stack: Regards to restrict concerns of e-commerce and payment software systems, we select technologies carefully. Our projects are mainly based on: PostgreSQL, Oracle, C++ and Java/J2EE.
Senior Software Developer at Neurophoneme Lab LLC, California, USA (Remote)
October 2011 - October 2012 (1 year 1 month)
I was responsible for a group of (5) developers in Neurophoneme company. Our mission was to design and develop a clinical system from device to database/cloud storage. The application provides an interface for a specific clinical device (A Neuro-Audio based system for tinnitus evaluation) to probe hearing problems. Extensible architecture, synchronizing via cloud, considering clinical protocol for calibration, personal information confidentiality and durability were the main challenges of this project.
System Developer at Pars Pooyesh Simin
September 2011 - September 2012 (1 year 1 month)
In this project I was involving to develop a GUI SDK for GreenOS, a low memory and tiny operating system on 8bit processors. Accomplishments:
Develop APIs and underlying mechanisms
Create Persian right to left font from scratch
Develop scrollable forms and text-boxes for LCD driver
And some more..