A Day In the Life of A Machine Learning Engineer

Shanif Dhanani
3 min readMar 23, 2018

--

ML engineering is an interesting discipline. It requires being good at a variety of skills: obviously everything needed from a good data scientist, like curiosity, analytical skills, knowledge of algorithms, the ability to understand business requirements, and the need for good communication. But it also requires being good at software development — creating clean, maintainable software and systems.

Being an ML engineer is a challenging job, but man it’s fulfilling. In this short-and-sweet post, I wanted to give a quick look at what a day as an ML engineer looks like at Apteo. Of course, with us being a small pre-funding startup, our sample size is really small here. But I’d be willing to bet that what you see below isn’t too far off from what other ML engineers do in their day-to-day.

Sample Schedule

Morning

  • Some time between 6 AM to 8 AMish: Wake up, gym, breakfast, etc. (very general, I know, but I’ve been surprised at how many ML engineers are into fitness)
  • Between 9 AM to 10 AM: Take a look at any models that were running overnight, check email to make sure there are no alerts, check Trello for today’s tasks, attend standup
  • 10 AM: Work. This could mean continuing to perform an analysis in a Jupyter notebook using scikit learn and your company’s codebase. Or this could mean firing up PyCharm and continuing to code up a class that implements a model or interfaces with the database.

Afternoon

  • 12 PM: Lunch, either with colleagues or at your desk. If working at your desk, continue looking into what you were doing from the morning, or have an impromptu meeting with about how to implement a piece of software or perform an analysis.
  • 1 PM: Maybe a meeting to discuss the next iteration of the product, or go over new features that need to be implemented and discuss how to create or calculate those features with the rest of the team.
  • 1:30 PM: Read an article about your company’s domain, or perhaps about how reinforcement learning was used to beat the world’s best player in Alpha Go.
  • 2 PM: Finish creating the logic for a new feature you were working on. Write the unit tests. Launch up a GPU server on AWS to test how it works in your models. Move the specific Trello card to “Running.”
  • 2:15 PM: Check on your existing models. If they’ve finished, check their metrics and compare them to your baseline. If they’re better than what you had before, set the model’s “valid” flag to true in your database.
  • 3 PM: Code review a pull request from a colleague who was working on integrating with the API of a data provider. Add a few comments about how to refactor out the code.
  • 3:30 PM: Keep coding

Evening

  • 6 PM: Pack up, head home or grab some dinner.
  • 8 PM: Check the progress of the models that are being trained. Code up a new activation function you thought about and see if it results in better metrics.
  • 10 PM: The new activation function sucked. Delete your branch in Git.
  • 11 PM: Read up on the latest industry news. Grab some sleep. G’night.

The Next Morning

  • In the shower, you had an idea about how to improve the performance of your existing models. Make sure to write it down when you get a chance.

Sound interesting? Get in touch to learn more: shanif@apteo.co

--

--

Shanif Dhanani

Creating software for businesses that want to use their data with AI. Learn more at https://www.locusive.com.