I remember the time when I was an independent consultant. I was consulting with a startup in Pune.
The startup probably had 4-5 employees. And unlike startups keen to burn through their runway, this startup was conservative in both spending and targeting growth.
When I was “interviewed” for a consultant role, the task was quite simple. Some bad data had to be removed, and some fresh data needed to be added online.
I began writing the SQL query under the co-founder’s watchful eye. I did not get SQL right on the first go. However, I had a trick up my sleeve – transactions.
I prefixed my SQL with a BEGIN TRANSACTION
BEGIN TRANSACTION
<query>
SELECT
ROLLBACK TRANSACTION
What this allowed us to do was revise the query through discussion. But <this> does not seem right. Can we do <that>?
By the 3rd or 4th iteration, the SELECT appeared to return the data we were expecting.
Big Learning: Always treat production data with reverence. It needs a sense of sanctity.
Trust was established that I treated the data with as much care as the founders believed it deserved.
I went on to win the client.
It was much later, through random conversations, that I learned that a previous candidate had messed up badly, deleting all good data and preserving only bad data. The founders had to revert to a previous backup, losing the latest batch of data.
So my reverence for production data (using transactions and committing only after confirming that the updates were sensible) struck a chord with the client.
I guess basics like being careful around production systems matter.