Today marks the end of my chapter as a software engineer at Rockefeller, where I spent the past year working on enterprise machine learning systems. Before this, I studied Data Science and spent time as a developer at startups in Paris and San Francisco. I found myself moving between software engineering, data science, and product. It was not indecision as much as trying to understand where the real leverage was. What I learned is that I care about being close to decision-making, where engineering isn’t abstracted from impact.

Rockefeller forced a kind of clarity I didn’t have before. I began to see the difference between “data science” as a major and machine learning as a software engineering discipline.

That reflection led to the lessons below.


1. The Blurriest Job of the 21st century

In 2012, Harvard Business Review called Data Science “the sexiest job of the 21st century.”

Since then, the role has stretched in every direction:

The truth? What data science means entirely depends on the environment.

At school, datasets are clean and questions are well-defined. In industry, neither the data nor the problem is. You might find yourself in a position where you have to prove your own value to your team. The real metric is adoption, not accuracy.


2. Data Science ≠ Data Engineering ≠ ML Engineering

What most people call “machine learning work” is actually two different worlds:

Experimentation Engineering
Modeling in a notebook Making the model real, reliable, and used
What is taught in school What creates value in industry

Data science is exploration + insight. What patterns exist in this data? What model architecture performs best? Can we predict customer churn with 85% accuracy? It's iterative, experimental, and often happens in notebooks. This is what's taught in school - feature engineering, model selection, hyperparameter tuning, evaluation metrics.

image.png

But then there's the ML engineering side, where models meet reality. Most data science programs don't teach you what happens when the model needs to run 10,000 times per second, or when the data distribution shifts three months after launch, or when the business logic changes and your training pipeline breaks.

ML engineering is about making models durable. You start thinking about failure modes, monitoring systems, API contracts, versioning, and building systems that work when you're not there to babysit them. A brilliant model that no one can deploy or use as a service is worth zero.