DR. ATABAK KH
Cloud Platform Modernization Architect specializing in transforming legacy systems into reliable, observable, and cost-efficient Cloud platforms.
Certified: Google Professional Cloud Architect, AWS Solutions Architect, MapR Cluster Administrator
Deadlines do not remove trade-offs. They hide them until production. Under pressure I learned to make trade-offs visible, written down, and reversible when I could.
Context: Mid-2024 I was seeing the same squeeze everywhere: cloud cost pressure, early GenAI prototypes, migration backlog still open. Senior engineers were asked to “just decide”. The decisions that held up were not genius calls. They were disciplined ones managers could defend later.
What I learned over a decade in leadership roles is that the job is not just about making decisions. It’s about transforming how the organization makes decisions in ways that enable the business to grow.
| Type | Examples | How I treated it |
|---|---|---|
| Reversible | Tooling PoC, schedule tweak, non-prod schema | Decide fast, time-box, measure |
| Irreversible | Core data model, public API, multi-year vendor | Slow down, write it down, review |
| Crisis | Outage, compliance breach, cost runaway | Fix first, redesign later - not at 2am |
Telling stakeholders which type we were in set expectations better than a long architecture debate.
Something like:
# Decision: Partition curated.events by date, cluster by user_id
Date: 2024-06-10
Status: Accepted
Context: Most dashboard queries filter by date; ~80% also filter by user.
Options:
1. No partition - rejected (scan cost)
2. Partition by user - rejected (too many partitions)
3. Date + cluster user - selected
Trade-offs: Point lookups by user alone may be slower.
Rollback: Re-cluster or add a serving table in 2 sprints.
Owner: data-platform
Review: 2024-09-10
Under pressure, the rollback line is what separates a professional decision from a gamble.
Matching DDL from the same decision (practice note):
CREATE TABLE curated.events
PARTITION BY DATE(event_ts)
CLUSTER BY user_id
AS
SELECT * FROM landing.raw_events
WHERE event_ts >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 180 DAY);
I ask:
Script I used with leadership:
We can ship serving tables for the top three dashboards in four weeks with acceptable cost. Full domain remodel takes six months. I recommend phase 1 with a written debt item and a review in Q3 - not silent shortcuts.
Managers need phased honesty, not false certainty.
Thirty minutes before a major launch:
Cheap under pressure. Cheaper than a failed cutover.
| Escalate when | Why |
|---|---|
| Risk is bigger than the team’s authority | Regulatory, brand, major revenue |
| Stakeholders disagree on what success means | You cannot design against two definitions of done |
| Timeline forces an irreversible compromise | Needs a named owner of that compromise |
| We lack data and waiting costs more than a wrong guess with rollback | Time-box the experiment |
I do not escalate every decision. I escalate the ones that stick.
Time boxes for two-way doors. Short protected reviews for one-way doors. A decision log somewhere searchable. No punishment when a planned rollback happens - that is discipline, not failure.
Architecture by anxiety - over-engineering because of deadline stress. Silent coupling that binds teams you never met. Disappearing into code to avoid the hard conversation. Winning the argument and losing trust.
Impact is organizational outcomes, not diagram elegance.
Under pressure: classify, document trade-offs and rollback, phase honestly, pre-mortem, escalate the irreversible ones. Managers make that possible by protecting time for hard choices and rewarding visible risk management - not only speed.
This is a personal blog. The views, thoughts, and opinions expressed here are my own and do not represent, reflect, or constitute the views, policies, or positions of any employer, university, client, or organization I am associated with or have been associated with.