I started programming at 16 by learning Lua in a self-study manner. I am known as an eager researcher and enjoy studying, designing, and building systems, especially network-based ones. I have knowledge of low-level network programming on Linux, and for this Ubuntu is my OS. I built 15+ projects, some within a team but mostly on my own as a software engineer and a backend developer.
An Online-taxi project was done by NodeJS+TypeScript. MongoDB was my main database mainly because of its geo-special and schema-less capabilities and GridFS. I also used MySQL for financial transactions. There was no use of WebSockets for notifications and instead I used a queue and HTTP polling method for those cases. Its architecture was also used for a massage reservation app and e-commerce, but GRPC was replaced by REST.
An Asset management system was made by NodeJS for a province that needed to manage and record the repair history of its pylons and wires between them. There were a lot of 4K images that are being stored in GridFS and due to complex relationships and queries, MySQL was used as the main Database.
An Educational course management system for a university was developed by NodeJS. MongoDB was used for their main database and the challenge was that some complicated time overlaps and conflicts had to be managed.
A scalable live-streaming service in Go with CDN capabilities was developed for an online classroom system.
A federated and decentralized end-to-end encrypted messenger by Go in a very simple but fast and secure architecture inspired by email was developed. A DHT was developed for its peer discovery to store users' information into that, like what IPNS does, and also a special blockchain was made in order to register and assign unique names to users. Moreover, a DNS proxy and resolver was crafted to integrate into current networks. Finally, a cross-platform client library was made in Dart.
A Decentralized DAG-based cryptocurrency that leverage the best Ideas from other projects. I also developed an interpreted scripting language due to implementing human-readble smart contracts. It can process transactions near a second with low cost and It's built-in to create new tokens with their parallel and separate chains.
A sequential PoS Ethereum-compatible chain on top of the Tendermint / Cosmos SDK with some optimizations. I understood how Ethereum and EVM work in depths to make it Ethereum-compatible and expose the same API as Ethereum. To improve the throughput I added some optimizations in the processing and consensus parts. I also used a method to solve blockchain big data size problem.
- DevOps and Server Administration (Debian, Ubuntu)
- Containerization (Docker, Snap) and Orchestration (Swarm)
- C, Go, NodeJS+TypeScript and Solidity
- Microservices architecture
- Parallel and concurrent processing
- TCP/IP networks
- Blockchain L1 and L2
- Load balancers and Proxies (Nginx)
- RDBMSs and SQL
- NoSQL (MongoDB, Redis)
- P2P, Decentralized and Distributed systems
- CI/CD
- Git and Github flow
- Smart Contract development
- Farsi/Persian
- English