Use it in your work · Beginner
Working in AI
Draft, open for academic review
The roles that exist, what they pay, and how people get in without a famous degree.
Your progress here is recorded once you pass the AI at Work exam.
The film · 16 min
The roles that exist, what they pay, and how people get in without a famous degree.
103 MB · captions in English · nothing downloads until you press play
Read the transcript
What this course is for
Most careers advice about artificial intelligence describes a job almost nobody has: training models at a famous laboratory. Those jobs exist. There are a few thousand of them in the world. Meanwhile there are hundreds of thousands of jobs in ordinary organisations that merely run software and have accumulated data they cannot use. This course is about those. The roles that exist, what each feels like on an ordinary Tuesday, how people actually get in, what the money looks like locally, and which parts of the work are most exposed. Nothing here promises you a job. Everything here is a mechanism you can act on this week.
1. The terrain: who hires, for what, and where you fit
Who actually employs you
Ask where the jobs are and most people name four or five companies. Here is the fuller map. Frontier laboratories, tiny and famous. Big technology product teams, real but skewed senior. Services and outsourcing firms, which in India, the Philippines and parts of Latin America are the largest employer of junior technical people. Product start-ups, which read applications because there is no department to filter them. Enterprises with internal data teams, where most analysts and data engineers on earth actually work. Agencies. The public sector and universities. And yourself. Categories three, five and seven hold most of the jobs and generate the least conversation, because a regional insurer does not advertise to developers.
Read the advert backwards
An advert has five parts and most people read from the title down. Read it in a different order: tools first, then responsibilities, then requirements, and the title last. The tools list is the most honest section, because whoever wrote it may have been vague about the work but was not vague about the stack. A posting titled AI Engineer that requires dbt, Snowflake and Airflow is a data engineering job. Count the responsibilities too. Four to seven bullets describing one coherent activity is a job somebody thought about. Fourteen bullets covering pipelines, dashboards, machine learning and marketing support is four jobs and one salary.
A year on six hours a week
Most people reading this have a job, or a family, or both, and four to eight hours a week. A plan that assumes forty is not a plan. Here is the part that matters most. A three week gap does not cost three weeks of progress. It costs a whole session, because you have to re-read your own code and rediscover what you were doing before you can add one line. Two gaps a month and half your year goes on re-entry. That is why two hours weekly beats twelve hours once a month. Memory of your own reasoning decays far faster than memory of facts. End every session by writing the next action down.
2. The roles, one at a time
The model is the small part
The title machine learning engineer suggests somebody who trains models. The job is mostly building and operating the system around one: getting features to it reliably, serving inside a latency budget, noticing when quality decays, being able to roll back. Of the effort in a deployed system, training is somewhere between five and fifteen per cent. And the defining bug of the field has a name. Leakage. Your training data contains something that will not exist when the prediction is actually made, usually a field somebody fills in after the event you are predicting. Ask of every feature: at the moment we make this prediction, does this value exist yet.
Retrieval, or generation
An AI engineer builds products on models they did not train. The week goes like this. It demos beautifully. Then somebody asks about a discontinued product and it invents a refund policy. Then you build a test set of two hundred real questions and discover it is right seventy-one per cent of the time, which nobody knew because nobody had counted. Then you find half the failures are retrieval: the right document was never fetched, and the model was never the problem. That split is the most useful diagnostic in the job. Teams that skip it spend months tuning prompts against a retrieval bug.
3. The evidence: what gets tested, and how to prove you have it
SQL, and the two bugs that cost real money
SQL appears in almost every process because it is universally needed and cheaply verified. Two bugs cost real money. The first is join fan-out. You join orders to order items to filter by product, then sum the order total, and every order is counted once per item. The query runs, the number looks plausible, and the dashboard is wrong for eight months. Check row counts before and after every join. The second is that null is not a value. Filtering on status not equal to cancelled silently drops every row where status is null, because comparing anything to null is unknown, and a where clause keeps only what is true.
Evaluation is the scarce skill
Anyone can produce an output. The scarce skill is deciding what counts as correct, in advance, and then measuring it. Build the set by hand and build it small. Thirty to fifty cases, because you will read every one personally. Take real questions people asked, the edge cases the team argues about, and three that should fail. Grade with three coarse levels people agree on rather than five fine ones they do not. Then score the dumb version on the same cases. If plain keyword search gets seventy-four, your honest headline is eight points above search, not eighty-two per cent. A score with no baseline lets everyone assume the baseline was zero. It never is.
The page a reviewer actually reads
A reviewer gives your project ninety seconds. They read the title, the first sentence, whatever number is visible, and then, if you have earned it, the part admitting what is wrong. Almost nobody runs your code. So write for that order. The mess and how you found it, because that section cannot be faked from a tutorial. Two decisions, each with the option you rejected, because a decision with no discarded alternative is not a decision. One number from a test set you built by hand. And what it still gets wrong, because a page with no limitations reads as one written by somebody who has not checked.
4. Getting seen: the routes that put a person in front of your work
The search is a funnel, and it is division
Three weeks into a search everybody has the same two thoughts. Nothing is working, and maybe I am not good enough. Neither is information. A funnel is. Cold applications convert to a first conversation at two to five per cent, and for advertised remote roles well under one. A referral or a direct approach converts at twenty to fifty. Work backwards from two offers and you need about thirty-four first conversations. At three per cent that is more than eleven hundred applications. At thirty per cent it is a hundred and thirteen approaches. The same search, run two ways. This is not motivational. It is division.
The job next to the data
The most reliable route into this field is the least discussed, because it is slow and nobody can sell a course about it. Large numbers of working analysts and data engineers were already inside a company doing something adjacent, and they moved. Support, operations, quality assurance, finance, dispatch. Three mechanisms make it easier and none is about you. Your manager has watched you work for a year, so hiring you carries almost no risk. Many internal moves are never posted. And you already hold the expensive part, domain context, which takes an outsider a year to acquire. The step people skip is saying the sentence to their manager.
5. Using AI in your own search
One test decides every use
Can you verify the output, and is the output itself the evidence. That is the whole test. Where you can check the result and the result is not what you are being judged on, a model saves real hours. Reformatting. Translating an advert's vocabulary into your own. Gap analysis. Practice questions you can check by running them. Where the output is the evidence of your ability, using one destroys the thing you were trying to produce, and everybody downstream finds out at the technical stage. A generated cover letter contains nothing only you could have written, which was the letter's only job.
The score that does not exist
You will be sold tools that scan your document like a tracking system and return a match percentage, with a subscription to improve it. No mainstream applicant tracking system assigns your document a percentage and rejects you below a threshold. That number is invented by the company selling the report. What is real is duller. A recruiter can search the pile for a word, and if your document never contains it you are not in the results. And the form's knockout questions are genuinely automatic. Answer one in the disqualifying direction and you are rejected with no human involved. That is where automatic rejection happens: on the form.
6. The interview, from first screen to signed offer
Seven stages, and what each one is testing
Most processes are a subset of seven stages, and knowing which one you are in tells you what to say. The recruiter screen tests three administrative facts and is not a technical conversation. The hiring manager screen tests whether you would be useful within a few months. The technical exercise tests whether you can do the work. The deep dive tests whether the things on your document are yours. The design conversation tests whether you think in constraints. One thing candidates are rarely told: panel notes travel forward, so a weak first round is not erased by a strong third.
A metric dropped fifteen per cent overnight
This comes up in almost every analytical interview, and there is a correct order. The first step marks experience. Is it real. Did the logging change, did a release stop firing an event, did the pipeline fail, is the dashboard's date filter doing something odd. A large share of overnight step-changes are instrumentation, and a candidate who investigates user behaviour before checking whether the number is trustworthy has revealed how little time they have spent doing this. Then, is it everywhere. A drop confined to one Android version is a bug; a drop everywhere is an event. Then, is it us. Then, is it the world.
7. The money, and the paperwork underneath it
The headline number is the least useful one
In India and several other markets an offer is quoted as cost to company, and it includes things that never reach your bank account: the provident fund contribution, gratuity accrual, an insurance premium, and a variable component quoted at target. An eighteen lakh offer is frequently fourteen lakh forty thousand of guaranteed cash, twenty per cent less than the number on the letter. That is a convention rather than a deception. But comparing a cost to company figure against a base salary compares two different quantities, and people accept worse offers doing exactly that every day.
Options, and the ninety days nobody reads
Most employee equity in private companies ends up worth nothing. That is the ordinary outcome, and it produces one rule: do not accept below market cash for equity unless you can afford for the equity to be worth nothing. An option is worth the current share value minus the strike price, so ten thousand options at a strike of two hundred and fifty rupees, when the fair value is two hundred and fifty rupees, are worth nothing today. Two clauses decide most outcomes. The liquidation preference, because investors are repaid before you are. And the ninety day exercise window, in which you must find the cash to buy your own shares.
8. Freelancing and contracting, as a business
A rate is not a salary divided by hours
Somebody earning fifteen lakh a year decides to freelance. They divide by one thousand nine hundred and twenty hours, get about seven hundred and eighty rupees, add a little for confidence, and quote a thousand. A year later they have worked harder than they ever did as an employee and earned less. Only half to two-thirds of a freelancer's hours are billable, and in a first year a quarter to two-fifths, because the rest goes to selling, scoping, invoicing and chasing. Then add back pension, insurance, equipment and a buffer for bad debt. The honest rate is roughly two to two and a half times salary divided by hours.
Getting paid, which is a separate skill
Take thirty to fifty per cent before you start. Bill in milestones. And with any client above about two hundred people, get onto their vendor system and obtain a purchase order before you begin, because an invoice with no matching purchase order is not rejected. It sits, unmatched, in a queue, until somebody notices. Your contact assumes it was paid. You assume you are being ignored. Nine weeks pass. Decide the chase schedule before you need it. A neutral note the day after it was due, finance copied at day seven, a phone call at day fourteen asking on what date this will be paid.
9. Staying: the first ninety days and the ten years after
The first ninety days
A new data hire arrives, reads the code, is appalled, and proposes a rewrite in week two. Everything they say is technically correct. Nobody agrees, the proposal dies, and they spend two years as the person who criticised things they did not understand. Almost every piece of ugliness in a working system was put there deliberately by somebody solving a problem you have not met yet. So spend your first four weeks reproducing the numbers the team already reports, from source. Either your number matches, and you have learned the definitions, or it differs, and you have found a misunderstanding or a real bug. Bring it as a question.
Which parts of this work are most exposed
Forget predictions and ask three questions about any task. Is it well specified. Are there many public examples of it being done. Can correctness be checked in seconds. Three yeses means heavily exposed, and that describes the traditional bottom rung: write the query for this report, turn this spreadsheet into a chart. The exposure lands hardest exactly where people used to enter. What holds up is different. Being accountable when the answer is wrong, because organisations do not assign accountability to a tool. Undocumented context. Work that touches the real organisation.
What survives ten years
Not the tools. Every framework named in this course will be replaced, and the replacements will be replaced. What survives is a domain you understand deeply, about thirty people who have seen you work and would take your call, a written record of what you built and decided, and the habit of finishing. None of it is a guarantee. Markets contract, good companies fail, and a good decision can still end badly through nothing you did. What the evidence habit buys is not immunity. It is that your work is legible to somebody else when you need it to be. Start with one lane and one small thing finished.
9 modules. 85 lessons.
The terrain: who hires, for what, and where you fit
10 lessons · 1 h 20
You will be able toName the employer types that hire for AI work in your own market, decode a job advert into the role it really is, and commit to one lane with a plan sized to the hours you actually have.
- 1.1The jobs, described as they feel on a Tuesday
- 1.2The eight kinds of employer, and how many of each
- 1.3Geography, time zones, and the office you have never heard of
- 1.4The work that trains the models
- 1.5Reading a job advert for what it actually is
- 1.6Who sits around you, and how work arrives
- 1.7Who actually needs a degree
- 1.8Choosing a lane you can defend, and changing it later
- 1.9Levels, titles, and why “senior” means nothing on its own
- 1.10A year on six hours a week
An illustrative case, built from documented patternsTwo offers, one title, and the question about the dashboard
Offer A was from a fourteen-person edtech company in Pune. The title was AI Engineer. The money was ₹6,50,000 CTC. The founder had spent twenty minutes of the interview describing what they would build with language models next year.
Offer B was from the Pune office of a Dutch insurer: a global capability centre with about nine hundred people, a category Sneha had not known existed six weeks earlier. The title was MIS Executive. The money was ₹5,80,000 CTC.
Her mother had one question about each, and it was the same question: which one has AI in it.
What the adverts said when read backwards
Sneha had learned to read the tools list first. The startup’s requirements named a hosted model API, Google Sheets, Zapier and “prompt libraries”, and the responsibilities section ran to fourteen bullets covering dashboards, marketing support, customer research and “AI initiatives”. The insurer’s advert named SQL, dbt, Snowflake and Airflow, listed four responsibilities that described one coherent activity, gave the manager’s name, and described the first ninety days.
She also noticed something she nearly did not mention to anybody: the startup’s advert had been reposted every month since April.
The question she asked in both interviews
Where does the number on your main dashboard come from, end to end?
The founder said it depended who you asked, and laughed, and said that was exactly the problem she would be hired to fix. The insurer’s team lead answered in four sentences: the policy administration system lands in Snowflake by 04:00, twenty-six dbt models run against it, forty-one tests run after that, and if a test fails the dashboard shows yesterday’s data with a banner rather than a wrong number.
One of those answers describes rung two of the maturity ladder. The other describes rung three or four.
The cost on both sides
Taking the startup meant twelve per cent more money, a title that would look serious on a CV, and touching a model API in her first month. It also meant being the only technical person on data, with nobody to review her work, in a company where the first year would be spreadsheets and one integration, and where the advert being reposted monthly suggested she would not be the first person to discover that.
Taking the insurer meant a title that sounded like a clerk’s, no model anywhere near her desk for at least a year, and the slow, procedural culture of a large European employer. It also meant a named manager, a team of six, a reviewer for everything she wrote, and a system she could learn deeply.
The startup wanted an answer within twenty-four hours. The insurer had given her a week.
What she was actually choosing between
Not two jobs. Two first years. One of them would produce a person who had spent twelve months doing four things badly with nobody to correct her, holding a title that would cause a large employer to down-level her at the next application anyway. The other would produce a person who could say, in an interview, exactly where a number came from and what happens when the pipeline fails.
What she could not know was whether the startup would be the exception: the small, chaotic place where somebody learns five years of work in two.
How it played out
She took the insurer, and asked for the offer in writing before telling the startup. Her first eight months were SQL, dbt models and a rota for checking test failures: no models, no AI in the work at all. In month eleven she moved internally onto the data platform team after answering a question in a meeting with a number and a source, which is the only interview that move required. The startup’s advert was reposted twice more that year. Two years later she interviewed at a product company and was mapped to their mid-level band on scope; the interviewer’s only note about her CV was that she had a system she could describe end to end, which almost nobody applying at that level could.
Worth arguing about
Sneha’s mother was right that the word AI matters to employers. Where in the process does a title actually help, and where does it stop helping?
One answer
A title helps at the top of a funnel: it gets a CV opened and it matches the words a recruiter is filtering on. It stops helping the moment somebody maps her to their own internal level, because large employers map on scope rather than on the title she held. An inflated title also invites interviews for jobs whose scope she cannot hold, and those interviews are miserable and consume the weeks she needed for the ones she could pass.
The founder said the vague answer about the dashboard was the problem she was being hired to solve. Why is that answer not enough on its own?
One answer
It is a truthful description of the job and it is also a description of rung one or two of the maturity ladder with no senior person on it. The work is real and worth doing, but the advert sold model work and the year would be extraction and reconciliation. The question is not whether the job is legitimate; it is whether she would end the year able to explain what she had learned, and with somebody having reviewed any of it.
What would have changed the decision in the startup’s favour?
One answer
A senior technical person she would report to, an honest advert that described the plumbing rather than the models, and an advert that had not been reposted monthly for five months. Any one of those changes the risk materially; the first changes it most, because the defining cost of a junior role with no reviewer is a year of habits nobody corrects.
Test yourself6 questions on this module
You have forty applications to spend this month. Why do enterprise internal data teams and IT services firms usually give a better return per application than a well-known technology brand?
A San Francisco team requires overlap from 09:00 to 13:00 Pacific time. For which candidate is that a night job rather than an inconvenience?
An advert is titled “AI Engineer”. The requirements name dbt, Snowflake, Airflow and strong SQL, with Python mentioned once at the end. What job is being advertised?
Fully remote junior roles for foreign employers became scarcer while remote senior roles did not. What is the mechanism?
Why does two hours every week beat twelve hours once a month, even though the monthly total is similar?
Two people have the same tools and the same five years. One is levelled senior and one is levelled mid. What distinguishes them?
The roles, one at a time
10 lessons · 1 h 33
You will be able toDescribe one role’s ordinary week, the artefact it produces, the stack it runs on and two realistic routes into it in enough detail that somebody doing that job recognises their own week in your description.
- 2.1The data analyst
- 2.2The analytics engineer
- 2.3The data engineer
- 2.4The machine learning engineer
- 2.5The AI engineer
- 2.6The platform and MLOps engineer
- 2.7The applied scientist and research engineer
- 2.8Trust, safety and the policy side of AI
- 2.9The AI product manager
- 2.10The forward-deployed and solutions engineer
An illustrative case, built from documented patternsThe model that scored 0.94 in the notebook
The brief was to reduce failed deliveries. Around eleven per cent of consignments needed a second attempt, each one costing about ₹180 in fuel and driver time, and the operations director wanted to know which deliveries would fail before the van left the depot.
Week one produced no model at all. It produced the discovery that the delivery_status field had only been populated consistently since the previous April, and that before that the depots had used a free-text note. Week two produced a baseline: predict each customer’s historical failure rate. It got about seventy-nine per cent of the ranking right and took an afternoon.
Week three produced the model everybody wanted. Gradient-boosted trees over thirty-one features, and an offline score of 0.94.
Nobody on the team had asked for a neural network and nobody needed one. This is ordinary tabular business data (a few hundred thousand rows, thirty columns, no images and no text) and gradient-boosted trees remain the correct tool for it, which surprises people who have spent a year reading about model architectures.
The question asked at the feature review
A senior engineer went through the feature list and asked one question about each: at the moment we make this prediction, does this value exist yet?
Thirty features survived. One did not. resolution_code was filled in by the depot clerk after a delivery attempt, describing how the attempt had been resolved. In the training table it sat innocently beside the target. At prediction time (05:30, before any van has moved) it is empty.
Removing it took the score from 0.94 to 0.81. Three weeks of work, and the number went backwards in front of a board demonstration that was already in the calendar.
The decision
Demonstrating 0.94 was available. The leaked column would not be visible in the slide, the number was real in the sense that the notebook had computed it, and there was a defensible version of the argument: the demo is about the idea, not the deployment.
The cost of that path was not abstract. The operations director would take the number to the board, the board would fund a rollout, and in production the model would score somewhere near 0.61, at which point the failure would be discovered by the depot supervisors, who are the people whose trust the system needs and who have watched three previous head-office systems arrive and be quietly abandoned.
The cost of the honest path was three weeks of visible progress turning into a lower number, in a company where nobody on the board understood what leakage was and where “it went down” is not an easy sentence to say in a boardroom.
The second problem, which was larger
While arguing about the first, somebody asked what happened to a prediction after it was emitted. The answer: the depot could physically re-check about a hundred and twenty consignments a day out of roughly four thousand. Whatever the model produced, exactly a hundred and twenty deliveries would be looked at.
Which meant the metric everybody had been optimising (overall ranking quality across four thousand rows) was not the metric that mattered. What mattered was how many genuine failures appeared in the top hundred and twenty.
That is the second failure that ends a first year in this role, and it is quieter than leakage: improving a score for six weeks while the business outcome does not move, because nobody followed the prediction to the person who acts on it. A model whose output lands in a queue with a fixed capacity is not being asked to rank four thousand things. It is being asked to fill a hundred and twenty slots well.
What the three weeks were actually for
The engineer’s own summary afterwards was that roughly one week of the three had been modelling. The rest was establishing what the target field meant before April, arguing about whether a re-attempt on the same day counted as a failure, writing the feature computation so that the training path and the serving path used the same function, and finding out what happened to a prediction after it was emitted.
That proportion is not a sign of a badly run project. It is the job. Model training is somewhere between five and fifteen per cent of the effort in a deployed system, and a candidate who describes their week the way the internet describes this role has usually not deployed anything.
How it played out
The feature was deleted. The demonstration showed 0.81 with a slide headed “the number we removed and why”, explaining the leak in four sentences, and a second slide showing that against the historical-rate baseline of 0.79 the model was worth two points, not fifteen. The operations director’s response was not disappointment; it was to ask what the model would do to the hundred and twenty daily checks. That reframed the project. The team switched to precision in the top hundred and twenty, which the baseline achieved at thirty-one per cent and the model at forty-four: a difference worth roughly ₹9 lakh a year in avoided second attempts, and a number the board could act on. Six months after rollout, live precision was within two points of the offline figure, which is the only result that ever mattered.
Worth arguing about
Why is leakage described as the defining bug of machine learning engineering rather than as a beginner’s mistake?
One answer
Because it does not announce itself. Nothing errors, the code is correct, and the model appears to be excellent. It is caught only by a habit (asking of every feature whether the value exists at the moment the prediction is made) and it is created by the ordinary structure of business data, where operational systems record what happened after the event you are trying to predict.
The baseline scored 0.79 and the final model 0.81. Was the three weeks wasted?
One answer
No, but the honest headline is two points above the baseline rather than a model that works. The value of the three weeks was mostly the discovery of the leak, the fixed capacity constraint and the correct metric. Building the baseline first is what made all three visible; a team that had gone straight to the model would have shipped 0.94 and found out in production.
What does the hundred-and-twenty-checks constraint tell you about how to start a modelling project?
One answer
Follow the prediction all the way to the person or system that acts on it before training anything, and ask what changes as a result. Here the action was a fixed-capacity review queue, which means the correct metric was precision at a fixed cut-off rather than overall ranking quality. If nothing had changed as a result of the prediction, the real problem would not have been a modelling problem at all.
Test yourself6 questions on this module
An analytics engineer rebuilds a table from source every night instead of appending yesterday’s new rows. Why?
A support assistant gives a customer a wrong refund window. What is the first thing an AI engineer establishes?
Why does a data engineer prefer a pipeline that crashes to one that completes with half the rows?
A model scores 0.94 offline and 0.61 in production. Which question, asked of every feature beforehand, would most likely have caught it?
A platform team ships a deployment system that is more capable than the three hand-rolled ones it replaces. Two teams keep routing around it. What follows?
In trust and safety, why is a lawful political opinion throttled rather than removed, while a direct threat is removed?
The evidence: what gets tested, and how to prove you have it
11 lessons · 1 h 34
You will be able toProduce one written case study of your own work (with the mess you found, the decisions you rejected, and a number from a test set you built by hand) that a reviewer can judge in ninety seconds.
- 3.1When the courses end and you still freeze
- 3.2SQL, and the six query shapes that cover the job
- 3.3The employable half of Python
- 3.4The statistics that come up, and the ones that never do
- 3.5Git, and what a reviewer sees before your code
- 3.6The terminal, the container, and a cloud bill of zero
- 3.7The spreadsheet skill nobody puts on a syllabus
- 3.8Evaluation: deciding what “correct” means, in advance
- 3.9A portfolio when you have never been paid for this
- 3.10Where portfolio data comes from, and what you may do with it
- 3.11Writing up a project as a decision record
An illustrative case, built from documented patternsThe clinic’s spreadsheet, and what could be published
His aunt runs the reception desk at a clinic near Arera Colony. Fourteen months of appointments live in a spreadsheet called appointments_master_final.xlsx, maintained by hand, and about a fifth of booked patients do not arrive. The doctors lose the slot; the patients who could have had it wait another week.
It is a genuinely useful problem and Farhan had the data on his laptop within a day. Then three separate questions arrived, in the wrong order.
The mess, which was the interesting part
The first thing the file taught him had nothing to do with prediction. Three months in the middle of the fourteen used day-first dates and the rest used month-first, with nothing marking the change. He found it because Tuesday appointments spiked implausibly in exactly those three months, which is what a day-month swap looks like when you plot it.
He had two defensible options and had to choose one. Re-parse those months with the other convention and keep the rows, accepting that any row where both numbers were twelve or lower could still be wrong and he would never know which. Or drop the three months entirely and lose a fifth of his data. He dropped them, and wrote down why, because inventing a correction would have hidden the fact that he could not tell.
The data question
Patient names, mobile numbers, ages, and a free-text reason column that in about four hundred rows contains a diagnosis. Nothing about that file is his. It belongs to the clinic, it describes identifiable people, and India’s data protection regime does not contain an exemption for “my aunt gave it to me”.
A blurred screenshot would not have helped either: the underlying file would still have been in the repository.
The measurement question
He built forty test cases by hand from the last two months, wrote down for each what a correct prediction would be, and scored his model: eighty-six per cent.
Then he did the thing almost nobody does and scored the dumb version on the same forty cases. Predicting that every patient shows up (a rule requiring no model, no Python and no laptop) was right eighty-two per cent of the time, because most people do turn up.
So the honest headline was four points above a constant. Reporting eighty-six per cent alone would not have been a lie. It would have let every reader assume the baseline was zero.
The decision
Three routes were open, and each cost something.
Publish the real analysis. Strongest evidence: real mess, real decisions, a real user. Also a breach of the clinic’s trust, a probable breach of the law, and a reviewer who spots patient data in a public repository will assume he would do the same with theirs.
Publish with synthetic data. Safe, and honest if labelled. Also much weaker, because synthetic data demonstrates that a pipeline runs and demonstrates nothing about a finding. He would have a project that proved he could write code and proved nothing about judgement.
Ask, in writing, and publish what is permitted. Slowest, and it required a conversation with a doctor who had not asked for any of this and who might reasonably say no, in which case he would have spent three weeks and had nothing.
He also had to decide whether to report the eighty-two per cent baseline at all, three weeks before applications opened. Nobody would have known it existed. He had computed it himself, in an afternoon, for his own benefit, and deleting one line from a page would have turned a four-point improvement into an eighty-six per cent result.
The reviewer he was actually writing for
He kept forgetting who the audience was. A reviewer gives a portfolio project between one and two minutes: the title, the first sentence, whatever number is visible, and (if the page has earned it) the section admitting what is wrong. Almost nobody runs the code, and nobody at all reads a notebook of forty cells.
So the page had to carry the mess, two decisions with the option he rejected for each, one number, and the limitations, in that order and above the fold. The model itself was fifteen lines of scikit-learn and the least interesting thing on the page.
How it played out
He emailed the doctor asking whether he could write publicly about the approach, with the clinic unnamed, no patient-level data, and figures changed while proportions were preserved. The reply took nine days and was yes, with one condition: he was to show her the page before it went up. The published case study contains the mess (three months of the spreadsheet used a different date format, which he found because “Tuesday” appointments spiked), two decisions with the rejected alternative for each, the sentence “a rule that predicts everyone attends scores 82% on the same 40 cases; this scores 86%”, and a list of what it gets wrong. A DATA.md records the source, the permission and the date. Two months later an interviewer at a health-claims company spent most of the first round on the baseline sentence, and told him afterwards that it was the reason he was in the room, not because four points is impressive, but because almost nobody reports the number that makes their own work look smaller.
Worth arguing about
Why does reporting the 82% baseline make the project stronger rather than weaker?
One answer
Because it tells a reviewer what the work is actually worth and shows that Farhan knew to ask. A number with no baseline invites the reader to assume the comparison was zero, and a reviewer who has done this work will assume the baseline was never computed. Reporting it converts a possibly-inflated claim into a checkable one, and the habit it demonstrates (measure the dumb version first) is the thing being hired.
The clinic is his aunt’s employer and the data was handed to him freely. Why is that not permission?
One answer
Because the data is not his aunt’s to give. It belongs to the clinic and it describes identifiable patients, so the clinic’s obligations and the law apply regardless of who copied the file onto whose laptop. Permission has to come in writing from somebody with the authority to give it, and it has to specify what may be published, which is exactly what he eventually obtained.
If the doctor had said no, what should he have published?
One answer
A page about the problem shape with no clinic details, the method described, and the pipeline demonstrated on synthetic data with that fact stated plainly. He would have to say which of the two he was showing: synthetic data is good evidence for a pipeline and worthless evidence for a finding. It is a weaker project and it is still publishable; what is not publishable is the real data.
Test yourself6 questions on this module
You join
orderstoorder_itemsto filter by product, then sumorders.total_amount. Revenue comes out about three times too high. Why?where status <> 'cancelled'returns 9,100 of 10,000 orders, but only 400 are actually cancelled. Where did the other 500 go?After
pd.read_csv, a customer ID of007reads as7.0and a postcode of01234as1234. What happened, and what prevents it?A conversion rate measured on 400 visitors has a 95% interval of about plus or minus three points. Roughly how many visitors are needed to halve that to plus or minus 1.5 points?
You report that your assistant answers 82% of forty test questions correctly. Why is that number incomplete on its own?
A student’s first cloud bill is $84 after a weekend of practice that used almost no compute. What is the most likely cause?
Getting seen: the routes that put a person in front of your work
9 lessons · 1 h 16
You will be able toRun a search that puts your work in front of named people rather than into application queues, and identify the bridge role or first paid job you would take to get inside.
- 4.1How people actually get in
- 4.2Running the search as a funnel
- 4.3A CV that survives a thirty-second read
- 4.4The profile a stranger checks in ninety seconds
- 4.5Writing to strangers, and what to say
- 4.6Publishing, and the inbound it creates
- 4.7A merged pull request as evidence
- 4.8The job next to the data
- 4.9The first client, and how not to lose money on them
An illustrative case, built from documented patternsThree hundred and forty-one applications
The spreadsheet is the only reason this case has numbers in it. She had started it in month two, on the advice of someone in a Discord server, and it had seven columns.
After eleven months:
- Applications sent: 341
- First conversations: 6
- Technical stages: 2
- Final stages: 0
- Offers: 0
Six conversations from three hundred and forty-one applications is a rate of one point eight per cent. In the same eleven months she had finished two courses, built three projects and learned dbt.
What the funnel said
The leak was at the very top, and everything she had spent the year improving sat below it. Her SQL was not the reason nobody was calling; nobody was getting far enough to find out about her SQL. A funnel that breaks before the first conversation is a statement about targeting and route, not about ability, and it was the one diagnosis she had spent eleven months not making, because improving her skills felt productive and changing her method felt like admitting the year had been wasted.
Run the arithmetic forwards and it is worse. To reach two offers she needed roughly seven finals, seventeen technicals and thirty-four first conversations. At one point eight per cent that is close to nineteen hundred applications. At a warm-approach rate of thirty per cent it is a hundred and thirteen approaches.
Those two numbers describe the same search. One of them is possible for a person with rent to pay and a life to lead; the other is not, and no amount of stamina closes the gap, because the gap is division rather than effort.
The part of the funnel she could not see from inside
The tracker also had a column she had stopped filling in: why she wanted each role. Reading twenty rows back, most of them said some version of it was open. That is a different failure from a leaking funnel and it does not show up in a conversion rate. A search that has drifted into applying to whatever exists produces applications that are visibly generic to the person reading them, which lowers the rate further, which produces more applications.
Lagos also has a specific shape she had not adjusted for. A large share of the good roles are remote contracts with foreign companies, which means her competition is global and her evidence has to be public, and the hiring channel that actually works there is community rather than job board.
The decision, and what it cost
The proposal from a friend in the same server was blunt: stop applying for six weeks. Spend the same eight hours a week writing to twenty named people who do the work, with something specific attached, and publishing one write-up a month.
The costs were real and none of them were about strategy.
Sending applications is visible effort. Her uncle asked every Sunday how many she had sent, and “none, I wrote four emails” is a difficult sentence in a house where money is tight. Approaches also fail silently and slowly: an application produces a rejection email, which is at least an event, while a message to a stranger produces nothing at all for a fortnight.
And she had a third option she kept not taking: a customer support role at a payments company, twenty per cent below what she wanted, sitting next to the transaction data. Taking it would have meant admitting, out loud and to her family, that eleven months of study had ended in a support job, while being, on the evidence of how most working analysts actually got in, the single highest-probability route available to her.
How it played out
She did not stop applying, which was probably correct: she split the week: five tailored applications, five direct approaches, one piece of public work, half an hour on the tracker. In six weeks that produced twenty-seven approaches and eight replies, three of which became calls. One reply came from an engineer at a fintech whose write-up on timezone handling she had read and asked a specific question about; that conversation produced a six-week contract cleaning a transactions dataset, at a rate she would have refused a year earlier. The contract produced the reference, and the reference changed how every subsequent conversation started. Her cold rate over the whole search stayed near two per cent. Her warm rate over those six weeks was twenty-nine per cent: the same person, the same skills, a different route.
Worth arguing about
Ifeoma spent eleven months improving her skills. Was that the wrong response to the numbers?
One answer
It was the wrong response to these particular numbers. Skill improvement is the right fix when a funnel leaks at the technical stage; hers leaked before any human conversation, which points at route, targeting or the top third of the CV. The skills were not wasted (she needed them for the contract she eventually got) but eleven months of them did not move the stage that was actually broken.
Why is a warm approach worth roughly twenty cold applications rather than a few?
One answer
Because the conversion rates differ by an order of magnitude at the first stage: cold applications convert at one to five per cent and often under one per cent for advertised remote roles, while a referral or a direct approach to the person doing the work converts at twenty to fifty per cent. The gap is not effort, it is that an application joins a pile of several hundred and a message arrives in one person’s inbox.
What did the six-week contract change that three hundred and forty-one applications had not?
One answer
It converted her from a candidate into somebody with a reference and a paid engagement to describe. After it, conversations started with what she had delivered for a client rather than with what she had studied, and she had one person with no obligation to her who would answer a call about her work. Paid work in an unplanned direction beats unpaid preparation in the planned one, for exactly this reason.
Test yourself6 questions on this module
After 200 applications you have had three first conversations and no technical stages. What does the funnel say to change?
Reaching two offers takes roughly thirty-four first conversations. Why does that make cold volume the wrong lever?
Which rewrite of “Responsible for data cleaning and analysis for the sales team” is doing the work a CV bullet is meant to do?
You messaged an engineer about her write-up ten days ago and heard nothing. What is the correct next move?
You have found a genuine bug in a mid-sized open-source tool you use weekly. What is the most useful first contribution?
Why is moving into a data role from inside a company so much easier than being hired into one from outside?
Using AI in your own search
9 lessons · 1 h 16
You will be able toUse a model for the mechanical parts of a search (tailoring, research, rehearsal, gap analysis) while stating correctly what an applicant tracking system does and does not do, and keeping your own and an employer’s confidential material out of a third party’s logs.
- 5.1What it genuinely helps with, and what it quietly ruins
- 5.2What an applicant tracking system actually does
- 5.3Rewriting a CV against an advert, and the line
- 5.4Why volume stopped working, on both sides
- 5.5Your CV, their take-home, and the terms
- 5.6Forty minutes of research, and how to check it
- 5.7Recorded and machine-scored interviews
- 5.8Rehearsing with a model that wants to please you
- 5.9Building a project you can still defend
An illustrative case, built from documented patternsThe take-home that arrived with somebody else’s customers in it
The brief was ordinary: find the drivers of chargebacks in the attached extract, produce a short write-up, five hours. The zip file was not ordinary. It contained merchant names, partial card numbers, timestamps, and a free-text complaint_note column in which about nine hundred rows contained a customer’s name and, in a few dozen, a phone number.
The brief said nothing at all about using AI.
The tempting ten minutes
Classifying nine hundred free-text notes into complaint categories is the kind of task a hosted model does well and a person does slowly. Pasting the column into a chat window would have taken ten minutes and produced a usable classification. Doing it by hand would take most of an evening he did not have, because he was doing this after a full shift.
He asked the three questions in order and the first one settled it. Is this data mine to share? No. It is not even the hiring company’s to share carelessly; it is their client’s. His own CV would have been fine to paste. This was not that.
The second and third questions (what the provider does with it, and whether he would mind seeing it in somebody else’s output) did not need answering, because the first had already decided the matter. That order is the point: most of the trouble in this area comes from skipping straight to the provider’s retention policy.
He checked the settings on his own account anyway, which took two minutes and which he had never done in a year of using it. The training toggle was on by default, as it usually is on a consumer tier. That would have mattered for his own CV. For somebody else’s customer file it was beside the point: “we do not train on your data” is not “we do not keep it”, retention for abuse monitoring is standard, and the disclosure has already happened at the moment of the paste.
The decision
Paste it. Ten minutes, a better classification than he could produce by hand, and a submission that would almost certainly never be traced. The cost is that a disclosure of a client’s customer data to a third-party service is a genuine breach rather than a bad look, and he would be starting a relationship with a company by doing to their client exactly what they would fire him for later.
Do it locally. A small open-weight model through Ollama on a laptop with sixteen gigabytes of memory. Free, private, and meaningfully worse: slower, weaker on long text, and an hour of setup out of a five-hour budget.
Skip the free-text column entirely and write in the README that he had left it out. Honest, fast, and a visibly smaller piece of work than the other candidates would submit.
He had four days, one of which was a Sunday, and a real chance that the extra hours would produce a worse submission than the shortcut.
The thing he could not resolve by choosing well
There was a fourth question underneath the other three, and it was about the company rather than about him. A take-home that ships a real client’s identifiable data to unvetted candidates is a data-handling failure by the employer, whatever the candidate then does with it. He was being asked to be careful with material that had already been handled carelessly.
He decided that was worth raising, once, in the submission rather than in an email: a single sentence noting that the extract contained customer names and numbers, and describing how he had contained it. Raising it as an accusation before an offer exists costs a candidate the process; raising it as a description of what he did costs nothing and is checkable.
How it played out
He ran a small model locally for a first pass over the complaint notes, hand-checked fifty of its classifications against his own reading and found it agreed on forty-one, reported that agreement rate in the write-up rather than presenting the categories as fact, and left the rest of the analysis in plain SQL and pandas. The README carried two extra lines: what he had spent (about five and a half hours, and what he cut), and one sentence saying that no client data had left his machine and which parts of the code were assisted. He was told at the technical round that the data-handling paragraph was what moved his submission to the top of the pile, not because the analysis was the best, but because the company had been arguing internally about that exact risk, and had added an explicit line about it to the brief the following month.
Worth arguing about
Why does the question ‘is this data mine to share?’ come before the question about the provider’s terms?
One answer
Because if the data is not yours, no setting on the provider’s side makes the disclosure permissible. Turning off training, using a business tier or trusting a thirty-day retention policy all address what happens to data you were entitled to send. Marlon was not entitled to send this, so the provider’s terms were irrelevant to his decision.
The local model was weaker. How did he keep that from becoming a weaker submission?
One answer
By treating its output as a first pass rather than as a finding: he hand-checked fifty classifications, reported the agreement rate, and did not present the categories as established. That is the same discipline as checking a model judge against hand labels. A stated agreement rate on a sample is stronger evidence than a confident, unchecked classification of all nine hundred.
Should he have disclosed the assistance at all, given the brief was silent?
One answer
Yes, in one line. Disclosure costs nothing, pre-empts suspicion, and is increasingly expected; nobody competent rejects a candidate for using the tools their own team uses. What gets people rejected is being unable to explain their own submission. The line also let him state the more important fact (that the client’s data never left his machine) which is what actually distinguished him.
Test yourself6 questions on this module
Where does automatic rejection actually happen in an applicant tracking system?
Which single test decides whether using a model on a job-search task is sensible?
An exaggerated CV is risky for a mechanical reason rather than a moral one. Which pair of items is most reliably verified?
Cold conversion fell from about 4% to about 1.5% while warm conversion held near 30%. What follows for how you spend an hour?
A take-home ships with a real customer extract. Which question settles whether you may paste it into a hosted model?
Why must interview rehearsal with a model be done out loud, one question at a time, with feedback withheld until the end?
The interview, from first screen to signed offer
11 lessons · 1 h 33
You will be able toWalk each stage of a data or AI hiring process knowing what it tests, and negotiate an offer without a competing one in hand.
- 6.1The stages, and what each one is really testing
- 6.2The first call, and the salary question
- 6.3The take-home, and how not to lose on it
- 6.4The live exercise, where silence is scored
- 6.5“How would you build this?” answered well
- 6.6“How would you measure it?”
- 6.7Talking about your work without lying or shrinking
- 6.8Your questions, and what the answers reveal
- 6.9The offer conversation
- 6.10Pay, rates, and who actually decides them
- 6.11What a rejection tells you, and what it does not
An illustrative case, built from documented patternsAnswer by ten tomorrow morning
The offer came by telephone at 16:40 on a Thursday: analytics consultancy, sixty people, ₹9,00,000 base, joining in three weeks. The recruiter added a sentence at the end. We need your answer by ten tomorrow morning: the budget is being reallocated on Friday.
The other process was a global capability centre. He had reached the final round, scheduled for Tuesday. At their recruiter screen four weeks earlier he had asked for the band and been told ₹9,50,000 to ₹12,00,000. He had not asked which level the role sat at, which turned out to matter.
How he had got here
The consultancy’s process had run over five weeks: a recruiter screen, a hiring manager call, a four-hour take-home he had time-boxed to four and a half and said so in the README, and a deep dive on the take-home in which he had been asked why he chose a left join three separate times. He had answered the third one badly and had emailed the following morning saying he had thought about it and got it wrong, with the version he would write now.
He assumed that email had cost him. It had not: panel notes travel forward, the interviewer in the later round had already read the earlier one, and revisiting your own answer reads as strength rather than as weakness precisely because the note is already there.
What was actually being decided
Not whether to accept. Whether to ask for time, and everything about that felt asymmetric at 16:40 on a Thursday. He had one offer. He had watched a friend push back on a deadline in March and be told the position had gone to somebody else, which may or may not have been true and had been extremely persuasive anyway.
Accepting on the call was available and safe. The cost was that the moment he said yes, the conversation was over: no negotiation, no start date, no six-month review, and a Tuesday final round he would have to cancel while wondering for a year what the band would have produced.
Asking for time risked the offer. It also tested it. A deadline that survives a polite request for the weekend is a real constraint; one that evaporates within an hour was manufactured, and a company that manufactures pressure at the offer stage does it at every subsequent stage too.
The second thing he had not asked
The consultancy’s title was Senior Analyst. Three years of experience, sixty-person firm, and a title that was free to give. He had no idea what level that mapped to internally, or whether “senior” there meant anything a larger employer would recognise later.
And he had no competing offer, so any negotiation would be one sentence with nothing behind it.
The list he wrote on the Thursday evening
Before replying to anything he wrote down what was actually negotiable, because the base salary is only the loudest item and often the stickiest:
- The start date, which was worth real money against a notice period.
- A joining amount, which in most companies comes from a different budget than salary and is therefore easier to say yes to.
- A written salary review at six months with a defined band, rather than a vague promise about the annual cycle.
- The title, which costs the employer nothing today and shapes his next application.
- Whether the two remote days were written into the contract or existed by custom.
He also wrote down the number he would genuinely accept, because a range you quote is a range you may be offered the bottom of, and the bottom of it has to be a number you can live with.
How it played out
He replied by email within the hour: he was very interested, he had one final-stage interview on Tuesday that he had committed to, and he asked for until Monday to give a proper answer. The recruiter agreed in fifty minutes, which told him what the Friday deadline had been worth. On the Monday call he asked two questions before any number: which level the role sat at internally, and what distinguished it from the level above. The answer put Senior Analyst one rung below what the title implied at any larger employer, which he found useful rather than insulting. Then he asked once: “I want to accept; based on the scope we discussed I was hoping for ₹9,80,000; is there room?”, and stopped talking. He got ₹9,50,000, a written salary review at six months with a stated band, and a start date four weeks out. The GCC rejected him after Tuesday’s final round without a reason. The offer he had nearly panicked into accepting unchanged was still there, five per cent higher, with a review date in writing.
Worth arguing about
What did asking for time actually buy, given the GCC rejected him anyway?
One answer
Five per cent, a written six-month review, a later start date, and the knowledge that the Friday deadline was manufactured. None of that depended on the second process succeeding. The competing offer would have been leverage; the request for time was not leverage at all, it was simply the precondition for having any conversation, and the conversation is where the five per cent lived.
Why ask about the level before asking about the money?
One answer
Because salary bands are attached to levels. A recruiter usually cannot move you far inside a band but can sometimes place you at the next one, so the level is the larger lever. The answer also told him what the title was worth outside the company, which affects his next application far more than ₹30,000 does.
He had no competing offer. Was the single ask worth the risk?
One answer
Yes, and the risk is smaller than it feels. A realistic outcome without a second offer is five to ten per cent or a non-cash concession, and offers are essentially never withdrawn because a candidate asked once, politely, and then stopped talking. Five per cent on a first salary also compounds through every subsequent raise and every future conversation that anchors on what he currently earns.
Test yourself6 questions on this module
A take-home dataset for a refund-prediction task contains a column called
refund_processed_at. What is it doing there?In a live SQL exercise you cannot remember the syntax for a window frame clause. What scores best?
Asked how you would build an assistant over four hundred help-centre articles, what should come before naming any component?
“Sign-ups dropped fifteen per cent overnight. Diagnose it.” What does a strong answer do first?
The recruiter asks your salary expectations in the first ten minutes. What is the best first move?
You have been rejected after three final rounds. What does that most likely mean?
The money, and the paperwork underneath it
8 lessons · 1 h 15
You will be able toTake an offer apart into cash, variable pay, employer contributions, equity and contract terms, compare two offers with explicit arithmetic rather than headline figures, and name the clauses and employment structures that materially change what you are being paid.
- 7.1The headline number is the least useful one
- 7.2Options, RSUs, and why most equity is worth nothing
- 7.3Notice, bonds, IP and the clauses that follow you
- 7.4Employee, contractor, or an employer of record
- 7.5Getting paid by a company in another country
- 7.6The shape of the routes, and why the rules keep moving
- 7.7Two offers, compared with arithmetic
- 7.8Raises, promotions and the market rate
An illustrative case, built from documented patternsNinety days to find twenty-five lakh
She had thought of the grant as “ten thousand shares” for four years. Nobody had lied to her. The document said everything, and she read it properly for the first time in the week she resigned.
The numbers:
- Vested options: 10,000, fully vested after four years with a one-year cliff.
- Strike price: ₹250 per share.
- Most recent valuation used for tax purposes: ₹410 per share.
- Post-termination exercise window: 90 days.
So the paper gain was ₹16,00,000 and the cash required to realise any of it was ₹25,00,000. In India an ESOP is taxed as a perquisite at exercise, on the difference between fair market value and strike, so on top of the ₹25 lakh she would owe tax on ₹16 lakh of gain, in a year in which she could not sell a single share, because the company is private and there is no buyer.
She had ₹6,00,000 saved.
What she thought she had been paid
Four years earlier she had accepted ₹4,00,000 a year less than a competing offer from a bank, on the reasoning that the options made up the difference. That was the decision, and it was made before she knew what a strike price was.
The arithmetic of an option is not complicated. It is worth the current share value minus the strike, multiplied by the number of options, which means a grant issued at a strike equal to the then-current fair value is worth exactly zero on the day it is granted, and is worth something only if the value rises. Her grant had risen from ₹250 to ₹410 over four years, which sounds like a good outcome and, once the exercise cost and the tax are placed beside it, is not obviously one.
There had also been two funding rounds in those four years. Her number of options never changed and her percentage roughly halved, because the denominator grew. Nobody had hidden this; dilution is what a funding round is.
The questions she asked too late
Four of them, and she asked them in week one of her notice period rather than at the offer stage four years earlier.
- How many shares are outstanding on a fully diluted basis? Answered.
- What is the strike and the latest valuation per share? Answered.
- What is the total liquidation preference, and is any of it participating? Declined, on confidentiality grounds.
- How long do I have to exercise after leaving? Ninety days, as written.
The third refusal was the important one. Without the preference stack she could not value the grant at all. Investors are paid before common shareholders, so a company that has raised heavily can sell for a headline number that leaves nothing for employees, and the press release will still say a large figure.
The decision
Borrow and exercise everything. ₹25 lakh of borrowed money and a tax bill, converted into an illiquid holding in a private company whose preference stack she was not permitted to see, with no timeline to any sale.
Let all ten thousand lapse. Four years of vesting worth nothing, and the certainty of watching a headline in three years and doing the arithmetic she chose not to do.
Something in between, sized to what she could lose without it changing her life.
She asked for the window to be extended: some plans allow seven or ten years, and asking is normal. The company declined, politely, and the fact that it declined told her something about how it thought about people who leave.
She also, for the first time, ran the comparison she should have run four years earlier: guaranteed annual cash against guaranteed annual cash, with the equity entered at zero and the upside noted separately in a line of its own. On that arithmetic the bank had offered more every year for four years, and the difference compounded through every raise she had received since, because raises are percentages of a base.
How it played out
She exercised 2,500 options for ₹6,25,000 and paid perquisite tax on ₹4,00,000 of notional gain, funded from savings she could afford to lose entirely. The remaining 7,500 lapsed. Two years later the company raised a down round at ₹300 per share with a one-times participating preference on roughly ₹300 crore of invested capital, which, had she exercised the full grant, would have left her having spent ₹25 lakh and a tax bill on a holding worth less than she paid. She now tells every junior engineer the same two things: ask the four questions at the offer stage rather than at the exit, and value private-company equity at zero when deciding what rent you can pay. The upside is a bonus if it lands and it is not compensation.
Worth arguing about
Why is the ninety-day exercise window, rather than the share price, the clause that decided this outcome?
One answer
Because it converts a paper holding into a cash demand at the worst possible moment: the point at which you are leaving and have no salary from the company. The share price only matters if you can hold the shares long enough for it to move, and the window is what determines whether you can. Four years of vesting can evaporate on a clause nobody reads, entirely legally and entirely as disclosed.
The company refused to disclose the liquidation preference. How should that refusal be treated in a comparison of offers?
One answer
As making the grant unvaluable, which means entering it at zero with the upside noted separately. Some genuinely well-run private companies decline for legitimate confidentiality reasons, and the arithmetic does not care about their reasons: without the preference stack and the fully diluted count you cannot compute what the grant is worth in any exit, so it cannot carry weight in a decision about salary.
What would asking the four questions four years earlier have changed?
One answer
Probably not the grant, and definitely the planning. She would have known the exercise cost was of the order of ₹25 lakh, that tax falls at exercise rather than at sale, and that she had ninety days from any departure. That turns a shock into a savings plan, and it might also have changed how much cash she accepted at the offer stage, because the rule is not to take below-market cash for equity you cannot afford to see go to zero.
Test yourself6 questions on this module
An offer letter says ₹18,00,000 CTC. Which figure should you compare against another offer?
You hold 10,000 vested options at a ₹250 strike; the current fair value is ₹250. What are they worth today?
You are offered a contract at the same gross figure as a salaried role you hold. What has changed?
A bank advertises zero fees on inbound foreign transfers of $3,000 a month. Why might that cost about $900 a year?
You have side projects and the contract assigns everything created “during the term of employment”. What is the move?
Three years of good annual raises compounded to about eighteen per cent. A single job change typically brings what, and why?
Freelancing and contracting, as a business
8 lessons · 1 h 11
You will be able toPrice your own work upwards from a target income and a realistic utilisation figure, write a proposal whose exclusions prevent scope creep, run a payment process that survives a slow client, and state the conditions under which you should take a salaried job instead.
- 8.1Utilisation, and why a rate is not a salary divided by hours
- 8.2Pricing the work, and raising the price
- 8.3A pipeline, after the first three clients
- 8.4Writing the thing that prevents the argument
- 8.5Invoices, procurement, and the chase
- 8.6Registration, tax, records and insurance
- 8.7Repeatable offers, retainers and the ceiling of hours
- 8.8The conditions under which you should take the job
An illustrative case, built from documented patternsInvoice 0042, and the purchase order nobody mentioned
The engagement was ₹4,20,000 across three phases: thirty per cent on start, forty on delivery of the build, thirty on acceptance. The deposit had been paid on time, in eleven days, by his contact’s own corporate card because “finance is slow”.
That sentence was the warning and he did not hear it.
Phase two was delivered on 14 March. Invoice 0042, for ₹1,68,000, went out the same day. On 14 May it had not been paid, his contact was answering with “it’s with finance”, and Vinod had already done most of phase three.
What was actually wrong
He telephoned on day fourteen of the chase and asked one question (on what date will this be paid) and got the answer that mattered. There was no purchase order. In the retailer’s procurement software an invoice without a matching PO does not get rejected; it sits in an unmatched queue until somebody notices. His contact assumed it had been paid. Vinod assumed he was being ignored.
Worse: he had never been onboarded as a vendor at all. That process (a supplier form, bank verification, a tax declaration and proof of professional indemnity insurance) takes two to six weeks at a company that size and is nobody’s priority. It could have been started on day one of the project. It was started on day sixty-two.
The cash-flow arithmetic underneath it
He was profitable on paper and could not pay his own bills. Work delivered on 14 March, invoiced the same day on thirty-day terms, would have been paid in mid-April by a prompt client. This client was not prompt and was not refusing; it was simply a two-thousand-person company with a procurement department, and those pay in six to ten weeks as a matter of course rather than as a matter of intent.
That is the difference between profit and cash flow, and it is why the reserve exists. He had two months of expenses rather than the three to six the arithmetic asks for, which is what turned an administrative delay into a decision made under pressure.
The squeeze
Meanwhile his contact asked, pleasantly, for repository access and the warehouse credentials, because a new analyst was starting on Monday and “it would be good for her to get going”.
That was the decision.
Hand over. The client is the largest name on his site, a retainer had been mentioned twice, and refusing over money would be remembered. Once the repository, the credentials and the deployment are transferred, his only remaining instruments are a contract and the law, and both are slow enough to be theoretical for ₹2,94,000.
Hold the handover and pause the work. Protects the ₹1,68,000 outstanding and the ₹1,26,000 to come. Risks the retainer, the reference, and a reputation among the four people at that company who would recommend him.
There was also a smaller ledger he had been quietly absorbing: three “while you’re in there, could you also” requests, worth about a week between them, none of which he had priced or logged. Each had been small and reasonable on the day it arrived, which is how scope creep always arrives; nobody had demanded anything. The proposal had said what was included and had not said clearly enough what was not, and it did not number the revision rounds.
He was also aware, uncomfortably, that the client had not behaved badly at any point. His contact had chased finance twice. Nothing here required a villain.
How it played out
He ran the chase as a schedule rather than as a mood: a short neutral note the day after the due date, an email to accounts payable with the invoice re-attached at day seven, the telephone call at day fourteen that found the missing purchase order, and at day twenty-one a formal letter citing the contract’s payment terms and stating that work was paused. He did not refuse the handover; he offered a call in which he demonstrated the dbt project and the three dashboards running in his own environment, and said the transfer would happen on the day the payment cleared. Nobody was offended: his contact used the letter internally to get the PO raised, which is frequently what such letters are for. Payment landed on day seventy-four. He took the retainer at a rate fifteen per cent higher, with net-thirty terms, a purchase order required before any work starts, two numbered revision rounds, and vendor onboarding as the first item on the plan. The three absorbed changes went on the final invoice at full price with the discount shown as a line, so the next request had a number attached to it.
Worth arguing about
Why was the missing purchase order a bigger problem than a client who did not want to pay?
One answer
Because nothing was being refused: the invoice was invisible to the system that pays invoices, so no human was ever going to act on it. That is administrative failure rather than bad faith, and it is fixed by a phone call and a PO rather than by pressure. It is also entirely preventable by asking on day one who handles vendor onboarding and purchase orders.
Vinod’s leverage was the undelivered handover. Why is using it not hostile?
One answer
Because it is standard practice and because it was stated in the proposal before the work began. Showing the work running in his own environment demonstrates that it exists and is complete, so the client loses nothing but the transfer date. Once credentials, repositories and deployments have been handed over, a freelancer has only a contract and a legal process, which for a sum this size is not a real remedy.
What single earlier signal should have changed how he set the terms?
One answer
The deposit paid on the contact’s personal corporate card because finance was slow. A first milestone that is paid awkwardly or late is the strongest predictor of later payment trouble there is, and the right response is to pause and fix the terms while the amount at risk is still small: get the vendor onboarding started, get the purchase order raised, and make the next milestone smaller.
Test yourself6 questions on this module
Somebody on ₹15,00,000 divides by 1,920 hours, gets ₹780, and quotes ₹1,000 an hour. Why do they earn less than before?
Which section of a proposal prevents the most arguments in week eight?
Your invoice to a two-thousand-person client is sixty days late and your contact says it is with finance. What is the most likely cause?
You want to raise your rate by twenty per cent. What actually works?
The fifth delivery of a fixed-price two-week audit takes six days instead of ten, at the same price. What happened?
What is the strongest reason for somebody two years into their career to take a salaried job rather than freelance?
Staying: the first ninety days and the ten years after
9 lessons · 1 h 13
You will be able toEarn trust in a new data role within ninety days, and decide what to learn, what to refuse and when to leave using evidence rather than anxiety.
- 9.1The first ninety days
- 9.2Landing in a codebase nobody documented
- 9.3Being trusted with a number
- 9.4Which parts of this work are most exposed
- 9.5Keeping up without drowning
- 9.6The things you will be asked to build
- 9.7The second job, the plateau, and the ten-year view
- 9.8The one-pager that gets a decision
- 9.9Getting promoted, and the case somebody has to make
An illustrative case, built from documented patternsThe postcode feature, asked for on a Thursday
Default rates had risen for two quarters. On Thursday afternoon the head of product asked for three features to be added to the credit model before Monday’s demonstration: the applicant’s postcode, the price band of the handset they applied from, and the applicant’s first name, which somebody had noticed “seems to carry signal”.
Nobody in the room was being malicious. Everybody was under pressure and the request took eleven seconds to make.
This is the shape these requests actually take. Nobody asks an analyst to build something obviously wrong. They ask, pleasantly, under a deadline, for something that sounds reasonable when said quickly, and the person being asked has to produce an objection in real time, in front of people they like, with no preparation. That is why the advice is to decide the line before the meeting, because the meeting is not where anybody thinks clearly.
Why it was hard, and it was hard
She knew that postcode in Nairobi is close to a proxy for both income and ethnic group; that handset price band is a proxy for income directly; and that a first name in Kenya carries ethnic information as plainly as it does anywhere in the world. She also knew that the system declines people with no explanation and no appeal route, and that nobody had ever measured the decline rate by ward.
Against that: she had been there two years, she had no savings to speak of, the demonstration was Monday, and refusing on Thursday makes you the person who blocked an investor meeting. “This is unethical” is a sentence that moves nobody in a room where everyone believes themselves to be reasonable.
What she did, in order
A clarifying question that surfaced the risk without accusing anyone. ”If a declined applicant asks us why, what do we tell them?” The room went quiet for a moment, because nobody had an answer and everybody understood the question.
The version she could build. Structured application fields and repayment history, with the accuracy cost measured rather than asserted, delivered by Sunday.
Three sentences in writing to her manager, naming the specific risk (a decline decision the company cannot explain, on features that stand in for ethnicity) rather than writing a manifesto. A verbal objection did not happen; a written one is visible to somebody accountable.
Escalation to the one person with authority, a compliance lead hired two months earlier whom most of the team regarded as an obstacle and who turned out to be delighted to hear about a problem before it shipped rather than afterwards.
The measurement that ended it
She did not win the argument by arguing. Over Friday she measured both models and produced one table: adding the three features moved the ranking metric by nine tenths of a point, and the decline rate in two wards went from near-parity to nearly double.
That table ended an eleven-minute meeting.
It is worth noticing what the table cost her. It was a day of work she had not been asked to do, on a weekend before a demonstration, to produce evidence for a position she already held. The alternative (asserting the position without the numbers) was free and would not have worked, because a room under deadline pressure discounts an objection it cannot check and cannot discount a decline-rate breakdown by ward.
There was also a rule underneath all of this that nobody in the meeting had mentioned. Several jurisdictions require that a person be reachable when a significant decision about somebody is automated, and the company’s product declined applicants with no explanation and no appeal route at all. That was not a feature request; it was a gap that existed before Thursday and would have existed if the meeting had never happened.
How it played out
The demonstration used the smaller model, and the nine-tenths of a point was never mentioned by anybody. The first-name feature was dropped permanently. Postcode returned six months later in a different form: distance to the nearest branch, with a written justification, and a decline-rate-by-ward dashboard that Wanjiru built and that is reviewed monthly. The compliance lead later said the three-sentence email was what allowed her to act, because it made the request a documented decision rather than a corridor conversation. Wanjiru’s own account is less heroic than it sounds from outside: she was frightened on the Thursday, she had no reserve to fall back on, and the thing that made it survivable was having decided her line before the meeting rather than during it.
Worth arguing about
Why did the decline-rate table end the argument when the ethical objection had not?
One answer
Because it named a specific, checkable harm with numbers attached, which a room can act on, rather than a judgement, which a room can dispute. “This will decline people in two wards at twice the rate and we cannot explain why” is a statement about the product; “this is unethical” is a statement about the people in the room, and it invites defence rather than change.
What did putting the objection in writing achieve that the meeting did not?
One answer
It made the decision visible to somebody accountable and gave the compliance lead something to act on. It also protects the person raising it: a verbal objection is deniable and, in the version of this story where the feature ships anyway, the written record is the difference between having objected and having been present. Three sentences naming the specific risk is the right size; a long document is not.
She had no savings. How does that change what this lesson can honestly claim?
One answer
It changes how far the advice reaches. Asking the question, offering the buildable version and writing three sentences cost her nothing and were available regardless. Refusing outright, if the feature had shipped anyway, is a decision that depends on being able to afford to leave, which is why three months of expenses is described in this course as a career asset rather than a personal finance tip.
Test yourself6 questions on this module
What should the first four weeks in a new data role be spent on?
You find a hard-coded exception for one customer in a pricing function. What do you do before touching it?
A nightly job scheduled for 01:30 London time produces one missing day in March and one doubled day in October, every year. Why?
Applying the three-question test, which of these tasks is most exposed to automation?
Which of these is genuinely worth tracking monthly, because it changes decisions rather than opinions?
Somebody has performed excellently at their level for three years and has not been promoted. What is the most likely explanation?
What this course is
A plain-spoken guide to building a career in and around AI: the roles that actually exist and what they look like on an ordinary Tuesday, where a degree matters and where it does not, how to build a portfolio with no job history, what to do when the courses run out and you still freeze at an empty file, how hiring really works in India, Nigeria, Brazil, Europe and the US, what the money looks like in local terms, how freelancing and contracting actually pay, and which parts of this work are most exposed to automation. No hype, no doom, and no pretending that any of it is the same everywhere.
Who wrote it
Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.
More in Use it in your work
- AI at WorkThe tasks it genuinely helps with, the ones it quietly ruins, and the line you must never cross.
- AI for TeachersFor teachers who now have to teach and use AI, often with no training and no projector.
- Choosing and Using the ToolsA comparison written by someone selling none of them.
- How Software Development ChangedWriting code got cheap. Knowing what to build did not.
- AI for a Small BusinessTwo or three tasks, honestly measured. Not a new department.
- AI for StudentsHow to use these tools and still end up knowing things.
