Skip to main content

Available for select engagements

Farhan Tanvir

Software Architect, Full-Stack Engineer and Technical Leader

I design and deliver enterprise software that stays clear under pressure: well-modelled data, explicit boundaries, and systems a team can still reason about three years later.

Portrait of Farhan Tanvir
Focus
Architecture
Stack
Full-Stack

Core technologies and capabilities

  • Java 17
  • Spring Boot 3
  • Angular
  • TypeScript
  • PostgreSQL
  • Redis
  • Docker
  • Nginx
  • REST APIs
  • CI/CD

Selected work

Systems built to stay changeable

Each case study describes the problem, the design decisions and the measurable outcome — without publishing confidential client detail.

View all work
Product EngineeringFeatured

Mess360

A multi-mess SaaS for Bangladeshi messes: daily meals, bazar, deposits and an automatic month-end meal rate and settlement that every member can see.

  • Java 17
  • Spring Boot
  • Spring Security
  • PostgreSQL
  • +6 more
Read the case study about Mess360
Enterprise ModernizationFeatured

Academic ERP

Re-architecting a long-running academic ERP into a modular, well-bounded platform that institutional teams can extend without regression.

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • PostgreSQL
  • +3 more
Read the case study about Academic ERP

Approach

Principles I build on

Technical leadership is mostly about removing ambiguity — making the target state explicit and keeping the loop between a decision and its evidence short.

More about me
Clarity
A design is finished when the next engineer can predict how it behaves without reading every line.
Ownership
The person who ships a change owns its behaviour in production, not just its merge.
Resilience
Assume dependencies fail. Design timeouts, fallbacks and recovery before the incident, not during it.
Quality
Constraints in the database, validation at the boundary, and tests that would actually fail if the logic broke.
Accountability
Decisions are written down with their trade-offs so they can be revisited on evidence rather than memory.

Writing

Latest articles

Notes on architecture, data modelling, caching and the engineering practice around them.

Read the blog
Redis and Performance7 min read

Cache Invalidation Is a Write-Path Problem

Most stale-cache bugs are not caching bugs. They are write paths that forgot they had readers. Here is how to make invalidation structural instead of remembered.

  • Caching
  • Architecture
  • Performance
PostgreSQL8 min read

Put Your Invariants in the Database

Application-layer validation protects the request path you thought of. Database constraints protect every path, including the import script written at 2am eighteen months from now.

  • Migrations
  • Data Modelling
  • PostgreSQL
Software Architecture9 min read

Designing REST Contracts That Survive Change

A versioned base path is not a versioning strategy. What actually determines whether an API can evolve is the shape of its responses and the discipline of never widening a promise you cannot keep.

  • Architecture
  • Spring Boot

Beyond the work

Time away from screens, and time with other practitioners.

View photo journal

Get in touch

Have a system that needs to hold up?

Tell me about the problem, the constraints and what success looks like. Inquiries are typically answered within two business days.