TAUSIF
home

Who you would be working with

How I got here, how I think, and what I got wrong.

I started TechnicalBind in February 2017 and never closed it. DevTechGuru came in November 2021 and the Technical Lead seat came with it. Ostad joined in 2025. This is the long version: the rules I work by, the timeline behind all three, and the calls I would make differently.

About

I teach the stack I ship on.

Three jobs at once. It sounds worse than it is. TechnicalBind is mine — I started it in February 2017 and I still run it. DevTechGuru took me on as a trainee in November 2021; four promotions and under 2.5 years later I was senior, and I hold the Technical Lead seat there now. Architecture, code review, and how the work actually gets done on client projects across nine countries. Ostad is the teaching one: Python, Django, React, AI. That's 2,900+ engineers so far, taught on the same stack my own production work runs on.

System ArchitectureDevOps & CI/CDFull-Stack EngineeringTechnical MentorshipHealthcare AIFintech Platforms
Govt-Certified Software Engineer · Bangladesh · ID F126670146243
Md Tausif Hossain

Md Tausif Hossain

Software Engineer · Educator

TechnicalBind, since 2017.

DevTechGuru Technical Lead & Senior Software Engineer, since 2021.

Ostad Lead Instructor, since 2025.

9

Years experience

4

Promotions in 2.5 years

2.9K+

Engineers taught

Operating rules

How I think about systems before writing the first line.

Every one of these came out of a system that didn't behave the way the diagram said it would. Two of them are further down this page.

  1. One database, until it hurts.

    The parking system was selling the same spot twice under load. One migration fixed it — a unique constraint on the reservation table. No Kafka. No service split. No rewrite. One Postgres instance handled all of it. So split the database when a query you can't rewrite is the bottleneck, and not before.

  2. Enforce boundaries in the database.

    Every table in OrderBind sits behind a row-level security policy keyed on tenant id. Forget the filter in a route and the query comes back empty. That's slower to write than an if-statement in a handler. It's also the only check that survives a refactor, a new endpoint, or a tired Friday merge.

  3. The model proposes, the human decides.

    In the orthopaedics tool a surgeon can change anything the model suggests, and nothing reaches a patient without their sign-off. Legibility is what earns the trust. A model that's right 95% of the time and can't show its working doesn't get used on a ward. One at 80% that shows every step does.

  4. Ship the boring primitive first.

    Before you reach for a queue, a cache, or a new service, try the primitive the database already gives you. Constraints before mutexes. Indexes before read replicas. Materialised views before cron jobs. Most production bugs I've fixed turned out to be a feature the database already had and I wasn't using.

Experience

The studio never closed when I took the day job.

TechnicalBind came first, in February 2017. DevTechGuru came in November 2021 and I kept both. Ostad joined in 2025.

Desk at dusk: keyboard, notebook, terracotta mug, code editor
Studio, after hours
  1. Founder & Self-Employed

    at TechnicalBind

    Feb 2017 - Present (9+ years)

    Independent Studio

    I started TechnicalBind in February 2017. One person at first, then a small distributed team building production web and mobile platforms: a CMS serving 2M+ daily reads, fintech apps published to Google Play. Mentoring the juniors on it has been part of the job since year one.

    Result

    Nine years, still open, still mine. It's run in parallel with the Technical Lead & Senior Software Engineer seat at DevTechGuru since 2021.

  2. Technical Lead & Senior Software Engineer

    at DevTechGuru

    Nov 2021 - Present (4.5+ years, concurrent with TechnicalBind)

    Corporate Track

    I joined DevTechGuru full-time in late 2021 and went Trainee to Senior in under 2.5 years, with TechnicalBind still running alongside it. I hold the Technical Lead & Senior Software Engineer seat now — architecture, review and delivery standards across a 30-engineer organisation shipping to clients in nine countries. Healthcare AI, a university CMS, fintech, smart parking, ERP. Day to day it's architecture review, code review, and helping the engineers around me get into harder problems.

    Result

    Established the team CI/CD: a test-gated GitHub Actions pipeline — lint, type-check and automated tests as merge gates — plus Docker builds, trunk-based development and mandatory PR review. I also set the RFC-first design rule and the async written-communication standard. The team works across nine timezones.

  3. Lead Instructor

    at Ostad

    June 2025 - Present (concurrent, part-time)

    Teaching

    I teach advanced system design and full-stack engineering at Ostad, mostly to working developers going after their first remote role outside Bangladesh. The material comes out of the systems I ship at DevTechGuru and TechnicalBind. That's the whole point. It's closer to production than to slideware.

    Result

    Students have gone on to ship production systems at companies they couldn't have applied to before. And what turns up in their code reviews feeds back into how I review code at the day job.

Things I got wrong

The other half of the resume.

All of it is still checkable. Two of them are in the repository this site is built from.

  1. I decorated the hero until you could not read it

    An earlier version of this page ran five decorative layers behind the headline. Terracotta mesh, animated conic overlay, perspective grid, spotlight, film grain. On a phone the whole thing resolved to a muddy tan field. And the <h1> — the one element on the page that says who I am — was set at 11px, which made it the smallest text in the viewport. It's flat ink and one grid line now.

  2. I listed a dependency that was never installed

    The stack list on this site claimed Framer Motion. It was never in package.json. The animation layer is plain CSS keyframes and always has been. This is the one project here a reviewer can open and check line by line, which makes it the worst possible place to be approximately right.

  3. I shipped a mobile app nobody could pay in

    CV Builder went out with Stripe-only billing. Apple and Google in-app purchase went under later. That got it out the door sooner, which was the trade I wanted. It also meant a subscriber on the mobile client had no way to hand me money on day one, and I didn't notice until after launch. That's the part I got wrong. Not the date.

  4. I left OrderBind's migration history for the next person

    Fifty-plus migration files. Forward-only, none of them rebased. Every production schema state replays straight out of that history, which is exactly why I chose it, and it means working out how one table arrived at its current shape is a matter of reading the whole thing in order. That cost lands on whoever joins next. I haven't paid it back.