I build software that stays simple.

I build backend systems, developer tools, and products while learning by building in public.

A little about me

I’m Noor ul Hassan, a self-taught developer from Jhang, Pakistan, currently studying Software Engineering at the University of Agriculture Faisalabad. I build backend infrastructure and developer tools, with Blockend being my main open-source project — a CLI that brings shadcn-style composability to backend engineering. I learn by building, contribute to open source, and enjoy understanding what happens beneath the abstractions.

Jhang, Pakistan

Things I’ve built

A collection of projects I’ve worked on, from open-source developer tools to products I’ve built to solve problems I care about.

Blockend

Open source

An open-source toolkit for adding reusable backend building blocks to TypeScript applications, inspired by the simplicity of shadcn/ui.

Source-code-first backend tooling for developers who want reusable infrastructure without giving up ownership of the code.

Open SourceTypeScriptNode.js

Job Tracker

A full-stack application for managing job applications, tracking progress, and keeping the entire search organized in one place.

Full StackTypeScriptNext.js
View project

Image Processor

A developer-focused image processing tool built to handle common image transformations through a simple workflow.

TypeScriptNode.jsTooling
View project

Things I’m figuring out

I write about the problems I run into while building — backend systems, architecture, performance, developer tools, and the lessons that only make sense after you’ve built something yourself.

Password Hashing: A Deep Guide to Storing Passwords Properly

A comprehensive guide to password hashing — from basics to production-grade systems using Argon2id, salts, peppers, and PHC strings.

Security · Password Hashing

Build a Dynamic Array in C from Scratch

Learn how dynamic arrays work by building one in C — covering memory layout, pointers, structs, and heap allocation as one connected idea, not isolated fragments.

C · Data Structures

How to Prevent Users from Overwriting Each Other's Data: Optimistic Locking in Next.js & Prisma

Learn how optimistic locking prevents race conditions in Next.js applications. Discover how a simple version column can stop concurrent updates from silently overwriting business-critical data.

Next.js · Prisma
Read all writing

Services

I take on selected projects where thoughtful engineering can make a real difference, from new products to systems that need to be improved.

Web applications

React and Next.js applications with thoughtful interfaces, real workflows, and the backend work needed to support them.

Backend systems

TypeScript APIs, PostgreSQL data models, Redis caching, integrations, and background jobs with BullMQ.

Product engineering

New features, technical improvements, and the engineering work needed to make an existing product easier to evolve.

Let's talk

Have a project in mind? Leave your email and let's start a conversation.