Blockchain Developer — Solidity & React

Faisal Khan.

Blockchain developer building secure Solidity smart contracts and React-powered dApps. Based in Peshawar, Pakistan.

Currently focused onOn-chain systems & Web3 security

01 / Selected work

Projects where protocol design meets thoughtful product interfaces.

02 / Articles

Notes from building, breaking, and securing on-chain systems.

How I Built an On-Chain Voting dApp in Solidity

A walkthrough of DecentralizedVoting.sol — enforcing one-wallet-one-vote on-chain, custom errors for gas efficiency, and what 21 Hardhat tests taught me.

Read article +

Traditional voting systems — paper ballots, centralized e-voting databases — all share one weakness: you have to trust the people running them. I built a fully on-chain voting dApp with Solidity 0.8.24, React, and ethers.js. Every election, candidate, and ballot lives in contract storage. A nested mapping makes double voting impossible, while custom errors, OpenZeppelin Ownable, ReentrancyGuard, and time-locked elections keep the system efficient and verifiable. The 21-test Hardhat suite covered double votes, invalid time windows, unauthorized actions, and bad inputs. The biggest lesson: writing the contract is easy; getting it right is the hard part.

View related source ↗

5 Smart Contract Security Patterns Every Beginner Should Know

Reentrancy guards, checks-effects-interactions, custom errors, access control, and input validation — the five patterns I use in every contract I write.

Read article +

Security in smart contracts is not a feature you add at the end. It is a set of habits built into every function: validate before touching state, protect value and state changes with ReentrancyGuard, prefer typed custom errors over revert strings, define access control from day one, and validate every input and time window at the boundary. None of these patterns is exotic. That is the lesson — smart contract security is mostly discipline, testing, and consistently handling the failure path.

View related source ↗

Solidity for React Developers: What Carries Over (and What Doesn't)

I came from React. Here is what helped me learn Solidity faster — and the habits I had to unlearn.

Read article +

Component thinking, deliberate state management, event-driven interfaces, and TypeScript strictness all transfer naturally from React to Solidity. But gas changes everything, immutable contracts leave no room for casual hotfixes, debugging requires a different toolkit, and payable functions handle real value. Coming from React is not a disadvantage: you already think in state, events, and components. You just need to learn what happens when the runtime charges you for every operation.

View related source ↗

03 / About

Building with clarity, learning in public.

I'm Faisal Khan, a blockchain developer from Pakistan specializing in Solidity smart contracts (Foundry, OpenZeppelin) and React-based decentralized applications. CS student at UET Peshawar.

I enjoy turning complex technical ideas into useful, approachable products. I've also taken part in hackathons and contribute to the developer community through projects, writing, and open-source work.

SoliditySmart ContractsFoundryOpenZeppelinReactTypeScriptethers.jsTailwind CSS

04 / Contact

Have a protocol
worth building?

I'm open to project inquiries and collaborations — especially smart contracts, dApps, and Web3 builds.

Start a conversation ↗