Tech Stack
I will generaly talk about my current tech stack, but I will also talk about my previous tech stack. Before web3, I was a full-stack developer. I've worked with a lot of different tech stacks, but these are my favorites.
Smart Contracts
Language: Solidity (opens in a new tab)
I started my smart contract journey with Solidity. I've been using it for a while now, and I'm still using it. Solidity is the most popular language for smart contracts that operates on EVM. Although it is a great instrument to build the next generation of finance, it is still an easy language to use. It can be little challenging to learn, but it is worth it.
Development Environment: Foundry (opens in a new tab)
Foundry is the best tool I have ever used for Ethereum application development. It is suprisingly fast and extremely convenient. Before Foundry, I was using Hardhat. The type conversions from JS to Solidity were a pain. Now I can test my Solidity smart contracts with Solidity tests. I can also use Solidity to deploy my smart contracts. It has a lot of other features that allows you easily fork etc., but I will not talk about them here.
Development Environment: Hardhat (opens in a new tab)
Hardhat is a great tool for Ethereum application development. Even though I am using Foundry, I still use Hardhat for some of my projects. It is a great tool for testing, deploying, and debugging smart contracts.
Smart Contract Library: OpenZeppelin (opens in a new tab)
I am using OpenZeppelin library for my smart contracts. It makes the development extremely faster by using the already written smart contracts like ReentrancyGuard, AccessControl, and many more. It is battle-tested and audited by the best security experts.
Library: Ethers.js (opens in a new tab)
Ethers.js is a library for interacting with Ethereum. For my scripts, backend, and frontend development, I am using Ethers.js if I am using JavaScript.
General / Backend
Language: TypeScript (opens in a new tab) | JavaScript (opens in a new tab)
Building the full stack with TS/JS is the best way to go. I am mostly using Typescript for complex projects. If I need to build something fast, I am using JavaScript (then converting to Typescript at some point xd).
Language: Rust (opens in a new tab)
Rust is cool.
Language: Python (opens in a new tab)
Although developing backend with Python is not the best way to go for me, I am using Python for some of my projects. They are mostly for data analysis and algo trading. I am also using Python for almost all of my scripts.
API Framework: Fastify (opens in a new tab) | Express (opens in a new tab)
Before learning about Fastify, I was using Express. I was using Express for a long time, and I was not satisfied with it. I was looking for a better alternative, and I found Fastify. It is extremely fast and easy to use. It is also very lightweight. I am using Fastify for more structured projects. Writing plugins and decorators is a breeze with Fastify. I can also use Express if I need to work with a team that is using Express.
Database: PostgreSQL (opens in a new tab) | MongoDB (opens in a new tab)
I am not an expert in databases, but I am using PostgreSQL for most of my projects. I am using MongoDB for my hobby projects to not worry about the database migrations etc.
In Memory Database: Redis (opens in a new tab)
I am using Redis for caching. It is easy to use and powerful if you know how to use it.
Job Queue: BullMQ (opens in a new tab)
I am using BullMQ for my job queues. It is built on top of Redis. Simple and lightweight.
Frontend
Framework: React (opens in a new tab)
I am using React for almost 6 years. No other framework can beat React + ReactRouter + Redux combo.
CSS Framework: TailwindCSS (opens in a new tab)
Component Library: Geist UI (opens in a new tab)
Zero Knowledge
Language: Circom (opens in a new tab)
I am not an expert in building zero knowledge circuits, but I am using Circom if I need to do.
Framework: SnarkyJS (opens in a new tab)
SnarkyJS is a framework to build zkApps on Mina Protocol. I love using it.
Infrastructure
Docker (opens in a new tab)
Docker Compose (opens in a new tab)
Github (opens in a new tab)
AWS (opens in a new tab)
Heroku (opens in a new tab) | Vercel (opens in a new tab) | Netlify (opens in a new tab)
Serverless (opens in a new tab)
Learning
Golang (opens in a new tab)
I am developing VMs in Golang. It is amazing language. I cannot create a project from scratch with Golang, but I can code with it if I need to.
© Orkun Mahir Kilic.RSS