hello@mazharsiddiqi.com
API

REST API DEVELOPMENT

REST API development.

APIs designed before they are built, because changing one after other software depends on it is the expensive kind of mistake.

DESIGN FIRST

Why the design matters more than the code.

Writing an endpoint is straightforward. Deciding what endpoints should exist, how resources relate, what responses contain, and how errors are communicated determines whether the API is pleasant or painful to work with for years.

Internal code can be refactored freely. A published API has clients depending on it: a mobile app in the store, a customer integration, or a partner system. Changing it breaks things you do not control. That is why the design comes first, in writing, before implementation.

API design and backend development on a monitor

THE PRINCIPLE

A public API is a contract. Write the contract before you commit clients to it.

Senior capacity, only when the work exists

WHAT I BUILD

APIs for the systems that rely on them.

Designed for the real consumers of the API, whether that is a product frontend, a mobile app, or another company.

Web application APIs

Predictable interfaces for web frontends and single-page applications.

Mobile app backends

Authentication, sync, and data services for iOS and Android products.

Public APIs

Customer and partner APIs with versioning, authentication, and rate limiting.

Internal service APIs

Clear contracts between systems inside a wider product.

Webhook endpoints

Safe receiving and delivery paths for event-driven integrations.

Existing API documentation

Readable specifications for APIs that are currently understood only by their code.

API STANDARDS

The details clients depend on.

A good API is predictable enough that a developer can understand the next endpoint before reading the docs.

01

Consistent resources and responses

Naming, shapes, filtering, sorting, and pagination that do not change from route to route.

02

Useful status codes and errors

Correct HTTP semantics plus machine-readable and human-readable error context.

03

Versioning and authentication

A planned route for change, with secure token and permission behaviour.

04

Input validation and rate limits

Every public surface protected from invalid data and avoidable abuse.

05

OpenAPI documentation

A maintained specification that stays in sync with the actual implementation.

06

Monitoring and deployment

Core tests, environments, and visibility into how the API behaves after release.

THE IMPLEMENTATION

A stable contract behind every endpoint.

The API design is written before implementation, then developed in Node.js, with NestJS where a larger API benefits from a clearer structure. Database design, query optimisation, authentication, validation, and tests are built into the service instead of treated as future fixes.

The result is documented with OpenAPI and deployed with the environments and monitoring required for another developer to work with it safely.

“An endpoint is only useful when the teams depending on it can trust it.”

Backend systems and API infrastructure

COMMON QUESTIONS

REST APIs, clearly scoped.

The key API decisions to make before other software starts depending on it.

REST or GraphQL?

REST for most projects. GraphQL solves genuine problems on complex applications with many client types and adds complexity elsewhere.

Can you document an existing API?

Yes, by reading the implementation and producing an OpenAPI specification plus readable documentation.

How do you handle versioning?

Usually URL versioning because it is explicit and simple. The important part is planning before the first client integrates.

Can you build an API on our existing database?

Yes, provided the schema supports it. If it does not, that is clear before implementation begins.

Do you handle rate limiting and abuse prevention?

Yes, on anything publicly accessible.

Can you build the frontend too?

Yes. The API and its application frontend can be scoped as one build.

Need an API built?

Tell me what will consume it and what it needs to expose. You will get a written design before implementation starts.

Versioned by designOpenAPI documentedBuilt to integrate