Vision models for embedded targets
I trained and quantized a ResNet50 classifier for deployment on a Raspberry Pi 4 — the core trade-off was 97% accuracy against memory and latency constraints. Quantization to INT8 was the single biggest win; thread separation of capture, pre-processing, and inference was the second.
The research community publishes accuracy numbers. The embedded community has to publish accuracy at a latency budget. Those are different problems. The model that wins a Kaggle leaderboard often loses on a Pi because it cannot finish before the next frame arrives, and the model that finishes in time often loses on the leaderboard because it traded a few accuracy points for speed.
My mental model now is simple: pick the smallest model that hits the accuracy bar, then squeeze the runtime around it. Going bigger is almost never the right move on edge hardware. Going leaner almost always is.
Classical ML utilities
Not everything needs a neural network. scikit-learn pipelines for sensor data classification and anomaly detection in IoT telemetry streams quietly do most of the work — they are cheap to retrain, easy to explain, and tiny enough to run anywhere.
There is a quiet professionalism in reaching for a Random Forest when a Random Forest is the right tool, even when something deeper would look cooler on a slide. The model has to live in production. The model has to be retrained when the data drifts. The model has to be debugged when it surprises you. Classical ML is easier on all three counts.
I default to the simplest model that works and only escalate when the simple one stops working. It is not a glamorous strategy. It is just the one that ships.
Tooling
Python, TensorFlow, scikit-learn, NumPy, OpenCV, and MATLAB when the signal-processing roots demand it. The boring stack is the productive stack.
I also write a lot more SQL than I expected to. Most of the time the bottleneck in an ML project is not the model — it is getting clean, well-joined data into the trainer. Every hour I have spent getting comfortable with data wrangling has paid off ten times over compared to the hour I would have spent reading another paper.
What I look for in an ML project now
Three things, in order: a clean labelled dataset I trust, an honest evaluation set that mimics the deployment environment, and a deployment target that I can actually measure. If any of those three are missing, the project is not ready to start, no matter how exciting the model architecture is.
This is the single biggest mindset shift between a student and a working ML engineer. Students start with the model. Engineers start with the data and the deployment, and the model falls out naturally.
