Handling Clients Who Think You’re a 24/7 Developer

by Eric Hanson, Backend Developer at Clean Systems Consulting

It starts with a “quick message” at night.
Then suddenly, you’re expected to reply at 2 AM like it’s normal.

Spot the Pattern Early

It rarely begins as a big problem. It creeps in slowly:

  • Late-night messages “just this once.”
  • Weekend pings that feel urgent but aren’t.
  • Expectations of instant replies, regardless of time zone.

If you don’t set limits early, the client will set them for you.

Set Clear Availability

You don’t need to be available all the time to be professional:

  • Define your working hours clearly from the start.
  • Share your time zone and response window.
  • Use simple language like: “I’ll respond during business hours.”

Clarity removes guesswork—and prevents resentment later.

Don’t Reward Bad Timing

This is where many people accidentally create the problem:

  • Replying instantly at midnight trains the client to expect it again.
  • Fixing non-urgent issues on weekends sets a new “normal.”
  • Being too flexible early makes boundaries harder to enforce later.

Consistency matters more than occasional flexibility.

Create a System for Urgency

Not everything is urgent, but some things truly are:

  • Define what counts as an emergency.
  • Offer a separate channel or agreement for critical issues.
  • Consider charging extra for after-hours support if needed.

Structure helps separate real urgency from convenience.

Stay Firm, Stay Polite

Pushing back doesn’t have to feel confrontational:

  • Acknowledge messages without solving immediately: “Got it, I’ll check this tomorrow.”
  • Repeat your boundaries calmly if needed.
  • Avoid over-explaining—simple and clear works best.

Professional boundaries build respect, not conflict.

Closing Thought

Being available 24/7 isn’t a sign of dedication—it’s a fast track to burnout.
Protect your time, set expectations early, and teach clients how to work with you—not the other way around.

Scale Your Backend - Need an Experienced Backend Developer?

We provide backend engineers who join your team as contractors to help build, improve, and scale your backend systems.

We focus on clean backend design, clear documentation, and systems that remain reliable as products grow. Our goal is to strengthen your team and deliver backend systems that are easy to operate and maintain.

We work from our own development environments and support teams across US, EU, and APAC timezones. Our workflow emphasizes documentation and asynchronous collaboration to keep development efficient and focused.

  • Production Backend Experience. Experience building and maintaining backend systems, APIs, and databases used in production.
  • Scalable Architecture. Design backend systems that stay reliable as your product and traffic grow.
  • Contractor Friendly. Flexible engagement for short projects, long-term support, or extra help during releases.
  • Focus on Backend Reliability. Improve API performance, database stability, and overall backend reliability.
  • Documentation-Driven Development. Development guided by clear documentation so teams stay aligned and work efficiently.
  • Domain-Driven Design. Design backend systems around real business processes and product needs.

Tell us about your project

Our offices

  • Copenhagen
    1 Carlsberg Gate
    1260, København, Denmark
  • Magelang
    12 Jalan Bligo
    56485, Magelang, Indonesia

More articles

Type Erasure in Java — What Disappears at Runtime and What That Means for Your Code

Java generics are a compile-time feature. By the time your code runs, most generic type information is gone. Understanding exactly what survives and what doesn't explains a category of bugs and design constraints that otherwise seem arbitrary.

Read more

Service Locator vs Dependency Injection in Java — Understanding the Tradeoffs

Both patterns resolve dependencies, but they make opposite choices about who controls the lookup. The difference has concrete consequences for testability, transparency, and how errors surface.

Read more

Reducing API Complexity in Spring Boot — Consolidation, Query Parameters, and the Endpoints Worth Removing

Every endpoint is a permanent contract the moment a client integrates against it. API surface area grows easily and shrinks painfully. Here is how to keep it smaller from the start and how to reduce it when it has already grown.

Read more

Memoization in Ruby — Patterns I Use Every Day

The ||= idiom covers 80% of memoization cases, but the other 20% — falsy values, arguments, thread safety, invalidation — is where the real decisions live.

Read more