The Boring Parts Became the Job: Data Science in 2026, From My Desk
Delivery photos, a Vietnamese chatbot evaluation set, and the parts of data science I used to hurry through. Notes from my desk in Hanoi.

The summary the coding agent left for me last night begins with "Great news!" I have learned to read those two words the way my mother reads a text message telling her she has won a motorbike.
It had a busy night. It loaded a client's data, cleaned it, trained three models, drew eleven plots and wrote a page of results in a cheerful tone. Now it's Saturday, a bit after nine. The window is open because Hanoi has finally stopped being hot, the street smells of hoa sữa, and my tea is going cold. My job this morning is to find where the cheerful page is wrong.
It doesn't lie on purpose. But somewhere in roughly 400 lines of code there is usually a decision I would not have made: a column dropped because it looked empty, a date read the American way, a test set that quietly shares customers with the training set. Last month I found exactly that last one. The model looked brilliant. It was brilliant at recognising people it had already met.
The model types, I read
When I started in computer vision, most of my day was writing code. I once spent two full days on a data loader for traffic camera footage: cut the video into frames, resize them, match each frame with its labels, try not to run out of memory. I was proud of it. My master's thesis had a whole chapter that was, honestly, mostly plumbing.
Today I would describe that loader in a paragraph and have working code in minutes. The agent writes it, runs it, reads the error, fixes it, runs it again. I watch the terminal like I'm watching a stranger cook in my kitchen. Sometimes I'm impressed. Sometimes I want to take the knife away.
So the work moved. A normal week now includes long conversations about what the client needs, reading actual rows rather than summaries, and writing down what should count as correct. Then I review the code and explain the outcome to somebody who will never open the notebook.
"Build the model" is missing from that list. It became the cheap part. The expensive parts are the ones I used to hurry through because they were boring.
For a few months last year I felt like a translator whose clients had just discovered machine translation. Then I noticed the clients still called. They call when the numbers look good and they don't trust them, or when the model works in the demo and falls over on Monday.
The boring parts became the job. I wish someone had told me at twenty-two to get good at them.
Deciding what "right" means
A story from this summer. A small delivery company wanted to sort the photos its drivers take as proof of delivery. Good photo: parcel at the door, house number visible. Bad photo: blurry, parcel still in the driver's hand, or, more often than you'd think, the seat of the driver's own motorbike.
The agent built a classifier in an afternoon. On the test set it had prepared itself, the model scored around 95%. The client was happy. I was less happy, because nearly every photo in that test set was taken in daylight, on a dry day, in front of a house.
So I spent two evenings building my own evaluation set of 250 photos picked by hand. Night deliveries. Rain on the lens. Parcels left with the security guard of an apartment building, which in Hanoi counts as delivered and in the company's guideline counted as nothing, because nobody had thought about it. On my set, the same model got roughly two out of three right. The model hadn't changed. My questions had, and the guideline grew a new section about security guards.
This is why I think evaluation is the real craft now. Anyone can produce a number. The skill is collecting examples that look like the world the model will actually meet, then defending them when people would prefer a nicer number. A good evaluation set is small, checked by a human, a bit ugly and full of cases that annoy you. I keep mine frozen, with a date in the file name, and no tool is allowed to "improve" it.
Ask an agent to make the tests pass, and once in a while it will make the tests easier.
I also write the labelling guide before anyone labels anything. It starts as one page and ends at ten or twelve, because every strange photo creates a new rule. Those pages may be the most valuable thing I hand over, since the model itself will probably be replaced within a year.

Whose Vietnamese counts?
Earlier this year I helped a small team build an evaluation set for a Vietnamese customer-service chatbot. The first examples looked sensible on a slide: a clear question, a short correct answer, a polite ending. Then colleagues in Đà Nẵng and Huế began adding questions closer to the messages they actually received.
One question from the central region began, "Răng mà đơn ni chưa tới?" Why hasn't this order arrived? The reply correctly identified a late delivery, then promised a refund that the information in the conversation didn't justify. One person liked the helpful tone. Another gave it a low score because of the promise. Both had a reasonable interpretation of our one-line instruction to reward a helpful answer.
That disagreement became the work. We stopped asking for a single overall number and wrote down the decisions separately. Did the reply understand the request? Was its information supported? Did it give a next step the person could actually take? We still needed judgement, but at least we could see what we were disagreeing about.
I was especially interested in the regional words. I grew up in Đồng Hới, Quảng Bình, and my mother can put a whole question into a short phrase that looks unusual on a page of textbook Vietnamese. Depending on context, a word can be ordinary local speech or mean something entirely different. Taking it out of its sentence and putting it in a vocabulary list loses much of the point.
A colleague in Huế asked why every good answer in the first draft sounded like an announcement. We tried reading the examples aloud. One of mine was grammatically correct and so stiff that I couldn't imagine saying it to someone who had just asked where their parcel was. I crossed it out.
The opposite problem appeared too. A reply could imitate the customer's dialect so enthusiastically that it sounded as though it were making fun of them. We decided that understanding a regional phrase didn't require performing the same accent back. A plain, considerate answer could work perfectly well.
For a few days we reviewed a small shared batch together before dividing the remaining examples. The disagreements went into a separate file with an explanation of the decision we eventually accepted. When the same issue returned, we could point to a case rather than trying to remember who had sounded most convincing on a call.
Some cases stayed unresolved until we changed the question. An incomplete message can have several plausible meanings. Marking it as ambiguous was more useful than forcing everyone to agree that one guess was correct. We added examples where asking a short clarifying question was the right response.
The people doing this work noticed things I would have missed alone. Someone in Đà Nẵng spotted an address assumption that made sense in Hanoi but failed for their examples. A colleague in Huế caught a phrase whose intended politeness changed with the relationship between the speakers. Their notes changed the guide and occasionally changed my mind.
We kept a reviewed set aside before experimenting further. New prompts could be compared against it, but generated examples couldn't silently replace its difficult questions. I wanted the next improvement to survive the same inconvenient conversations as the previous version.
That project made evaluation feel much more concrete to me. A label is a decision somebody must explain. If two careful people repeatedly disagree, I want to understand the disagreement before I ask a model to learn from either answer.

Things I watch with one eyebrow up
These are the trends I actually think about, doubts attached.
Agents with real tools. Models connected to a terminal, your files, a browser, a database. This changed my daily work the most, and it makes me the most nervous. I give my agent a copy of the data, never the original, ever since it helpfully "tidied up" a folder of intermediate files I still needed. Nothing important was lost, but I sat for a minute with my hand over my mouth. Knowing what not to touch is still mostly my job.
Speech-to-speech models that talk back in real time. You speak, it answers out loud with almost no pause, and you can interrupt it. I showed one to my mother on a video call. She asked how long to braise the pork for thịt kho, it answered politely and correctly, and she said "nó nói như đọc bản tin", it talks like it's reading the news, then went back to her pot. The tones are mostly right now. The rhythm and the little words like "nhỉ" and "cơ mà" still feel borrowed.
Small models on a laptop. The one I like with few reservations. Some client data should never leave my machine, and a small local model is good enough to tag, summarise and draft. The fan sounds like a hair dryer. I can live with that.
Synthetic data. Using one model to make training data for another helps when you need many variations of a rare case. But the synthetic Vietnamese I've seen is grammatical, polite and strangely flat, like English that went through a translator and lost its personality on the way. Train on too much of it and I worry we'll get models fluent in a Vietnamese nobody speaks. The only protection I know is a human-written evaluation set that synthetic data never touches.
Evaluation as a discipline. More teams now treat evaluation sets like source code: versioned, reviewed, owned by a named person. I think this is the healthiest trend in the field, and the least exciting to post about. It usually appears in a meeting as an unexciting file someone has taken care to maintain.
What still matters
People ask which skills are still worth learning. I don't fully know, and I'm suspicious of anyone who says they do. From my desk, these still matter.
Domain knowledge. The delivery project went well mostly because I have personally collected a lot of parcels from security guards in Hanoi apartment buildings.
Asking good questions. Most projects go wrong in the first meeting, when nobody asks "what will you do differently if the model says yes?" If the honest answer is "nothing", stop there and save everyone the money.
Statistical intuition. You rarely derive anything by hand now, but you need to feel when a number is too good. 95% accuracy on a problem where 93% of the examples belong to one class is much less than it sounds. I got this reflex as a student, from a statistics teacher who would look at our beautiful results, sigh, and ask how many of them were just the majority class. I can still hear the sigh.
Taste. The agent will happily make eleven plots. Knowing which one deserves to be shown, usually one and usually not the colourful one, is still a human call.
Clear writing. The more of my code a machine writes, the more of my value sits in paragraphs for people: the labelling guide, the summary for a client with four minutes between meetings, the instruction that tells an agent exactly what to leave alone. I treated reports as homework for years, and I regret it.

To a student somewhere in Hanoi
You might be in second year, in a library at Bách Khoa, or in a rented room in Cầu Giấy like I was, eating instant noodles at midnight. You read the news and wonder whether the thing you're learning will still exist when you graduate.
I can't promise it will look the same. Mine didn't. Here is what I would do in your seat.
I would learn the boring maths properly, even though a model will explain any of it at three in the morning. You need it in your own head to notice when the explanation is wrong, and sometimes it will be wrong in a very confident voice.
I would spend more time with real data than with tutorials. Find something messy you care about, the receipts from your family's shop or a notebook of orders from a small shop, and clean it by hand once. You will hate it for a weekend and learn more than from a month of courses.
I would take Vietnamese seriously as a technical asset. Our language is under-served, so people who really understand its tones and slang, and the way your grandmother and your boss talk differently, are needed.
And I would learn to write: an email a busy person understands on a phone, one page explaining why a number is wrong, a guideline a stranger in another city can follow. It sounds unglamorous. A surprising amount of what people pay me for is exactly that.
When a tool does in one minute what took you a week to learn, try not to feel stupid about the week. My two-day data loader is long gone, but this morning I found the problem in the agent's cheerful report in about ten minutes. It was the dates. The 3rd of October had become the 10th of March. I knew where to look because years ago I made the same mistake myself and spent a whole evening fixing it, swearing in three languages.
Now I'm going to fix the date column and finish my cold tea. Our daughter will be two in December. A few minutes ago she came to the desk carrying a wooden piece from a toy and wanted to put it beside the keyboard. My wife followed her in with a bowl, asked whether I had heard her calling, and waited while I saved the file.
I had heard something without listening to the words. That remains an embarrassingly familiar failure for someone who has spent the morning thinking about evaluation. I closed the laptop and went to see what lunch needed.
If you're a student and want to talk about any of this, write to me. I answer slowly, but I answer.
— John
Written on Oct 24, 2026 · Hanoi
John Le · I work with AI and data in Hanoi and write here for friends.


