Free e-Book:The Modern Data Stack:A Technical Roadmap.Download for free now!
A day in the life of a data nerd

A day in the life of a data nerd

Life at Mutt Data: A Sneak Peek!
Cristian Antuña

Posted by Cristian Antuña

on September 1, 2021 · 10 mins read

A Day In The Life Of a Data Nerd

Life at Mutt Data: A Sneak Peek!

When answering the common question: What do you do? Data scientists, engineers and experts commonly receive a series of follow-up enquiries. The occasional hacking request 🐱‍💻 or information retrieval mission aside (thank you hollywood…🎥) we get some interesting questions:

  • What does working in data science actually look like?
  • What do you do on an average day?
  • How much real communication with clients and people does the job require? (No we don’t all code away in dark rooms without human interaction)

This is just the tip of the iceberg. The purpose of this blogpost is to enlighten readers on our line of work and help aspiring data scientists picture themselves in a data science or engineering role. To do so, we’ll be focusing specifically on work at Mutt Data.

Working at Mutt Data will involve using modern cloud and new school data engineering practices as well as tools and technologies such as: Athena, Airflow, Spark, Pytorch, Kubernetes, AWS Sagemaker and MLFlow. But that’s just the technical side of it. What about our day-to-day life?

Well a day might be a little too specific, and our async, flexible remote working culture means that every data nerd's day might vary slightly so we opted for an average week and added some main events in the life of a data nerd working at Mutt.

A Typical Week At Mutt Data

Some Context...

On any given day of the year we’re always committed to remote-first, asynchronous work. Our team is free to plan and distribute their daily tasks as they see fit. Early bird? You can kick-off your day first thing in the morning. Set up your workplace and daily plan. Bit of a night owl? That’s fine too, maybe you’ll prep your agenda the previous evening.

The bottom line is, as long as you’re present in scheduled meetings, meet assigned deadlines and keep verbal, sharing status and progress during daily standups it’s all good. Our culture is about trust and ownership. We’re result driven instead of hour obssesed.

That being said, we also focus on collaboration and make use of collaborative tools and systems so that our work is readily available for relevant team members to cooperate on.

A Week At Mutt 🐕

Let’s get into it! For the sake of argument, let's imagine you’ve already been onboarded and you’re not currently kicking off or deploying a project.

Most weeks will be centered around a mutters’ backlog, each and every backlog will differ depending on your role. Let’s take a look at a data scientist.

His/her common workday will include a lot of data wrangling and cleaning, it is a routine task but very relevant to our line of work. However, there’s more than enough literature on the matter online, so we'll spare you the details and skip to the good parts.

cleaning

Fast-forward to when the project has begun, you understand the clients needs, infrastructure and data among other key aspects. Things are getting interesting, you’re eager to get coding and your brain is running through tons of candidate models.

But… hold off the gas.

We still need to think about metrics, working at Mutt means being greatly involved in the entire data pipeline, not just collecting from the ETL (Extract, Transform and Load) and producing models.

The success of a project can depend on how we monitor the deployed pipeline. This translates into a large portion of time spent on thinking about metrics, data sanity and quality both for ETL input and output as well as contemplating data trends, changes in the data generation process and, of course, model performance and degradation metrics.

A big part of the job is thinking before coding. Doing your homework, being smart when designing solutions, picking tools and studying data sets. We take the neccesary time to understand project needs, to design a relevant scoring for proposed models rather than blindly picking up commonly used metrics. The goal is to do things smartly, to offer long-term value, insights and results.

For example, classifcation standards can be useful but if not careful, these might produce misleading results.

TL;DR: Large chunks of your day will be spent measuring and analyzing models, contemplating metrics and their sanity as well as simply brainstorming. There's a lot more to the job than coding and resulting model values.

Once you’ve chosen a group of performance evaluation metrics you will put together a series of potential models, feasible within the clients infrastructure that fit the clients needs. This can be tricky: for example under the online inference scenario, not every model can be used, some amounts of data don’t allow for batch training, etc.

If no model seems to fit, a multi-disciplinary team is always available to help. A data engineer can try to tweak the infrastructure or the model or maybe even both to achieve the performance you need. Heck! Sometimes we even come up with potential infrastructure improvements for the client.

This last point, shines a light on something you will do a lot of: Cooperate. Knowledge transfers will greatly influence and benefit your workdays. You will work with Mutters' outside your assigned projects frequently. Your teammates might have tackled similar challenges in the past, thats why your team is a great place to look for advice.

More so, KT is an enriching experience both for the helper and the person who is asking for help because he/she will tweak what has been done before and learn while doing so. Collaboration is ingrained in our culture and is responsible for efficiency and the development of new features.

A real Mutter will always be open to collaborative learning and will spend large portions of time using meets, slack channels and data office hours (see below) to share learnings, bug resolutions, interesting papers, blog posts and courses with his/her team.

We hope this has served as a general look into common work at Mutt Data, next we’ll cover meetings and some specific moments that might not come up every week but are definitely worth talking about.

Meetings

As mentioned previously, we do our best to keep meetings at a minimum. We make heavy use of task tracking tools, communication platforms and channels to stay collaborative-friendly and as async as possible. We prioritize focus time, streamlined processes and efficiency.

However, meetings are still necessary and to be honest although when it comes to remote, the good outweighs the bad occasionally some face time (even if digital) is nice. These are the main weekly and monthly meetings you will participate in as a data expert at Mutt:

Daily Standups 🤖

This isn’t a meeting per se, it’s more of a morning ritual. A bot, called Alice will ask you what you’ve up to yesterday, what you’re up to today and what's blocking you. This is part of keeping people in the loop, keeping work agile and facilitating collaboration. It is 100% async.

Bi-Monthly Team Syncs 📢

There are two types of monthly syncs: company and tech. During the general company sync you hear about general company updates regarding, marketing, people and finance as well as high-level summaries of our main external projects. Exposition is kept short and to the point.

weekly

On alternating weeks, bi-montly tech meetings are scheduled. The main difference is, in this case, the participants are solely tech oriented Mutters’ and the focus is set exclusively on technical status: advances, releases, deploys and blockers.

Data-Office Hours 🤓

Once a week Mutters' share new learnings regarding tools, models or technologies they’ve currently used or researched. This keeps solutions relevant and cutting edge. Ideally, every week alternates between Data Engineering and Data Science. This meeting and all knowledge transfer meetings and opportunities are taken seriously as they allow the whole team to learn from each other even if they haven’t directly participated on that project.

Client Status Meetings 🤝

Every client is unique and every project different. Working with clients from different industries with different objectives trains our communication skills. We need to be able to sync expectations and requirements, we need to communicate clearly and work in a visible and transparent manner.

We prepare for these meetings to make the best use of our time, in doing so, we regroup ideas, revisit milestones and objectives gaining clarity on the project and our status.

Social Meets ☕

Everyone needs to unwind. During one-on-ones we share some downtime with an assigned founder and talk about non-work related topics.We also take part in “Donut Meets” once a week where you will be randomly paired with someone from Mutt to have a chat or coffee. This app is aimed at getting to know people in the company we might not commonly share time with. Finally, bi-monthly virtual lunches with the whole team. Although it’s not written in stone, Thursdays are known for office meetups.

Key Moments

We hope we covered the basic gist of day-to-day work at Mutt Data. However, we thought we might broaden our reach and focus on some common key moments you might go through when becoming a Mutter

Kicking Off Your Career At Mutt Data

During your first day as a Mutter you will take part in an onboarding meeting with one of the founders where you will cover the company’s culture and vision and go on to schedule different onboarding status meetings.

If you’re anxious about meeting fellow employees, stress no more. We've organized a remote lunch with 2 mutters selected at random to ease you into the team.

Finally, you will initiate your formal onboarding in the Mutt Academy by setting up your personal repository and going through some of the repo material. More on that below…

first

After your first day, and during your first weeks, you’ll participate in separate meetings to introduce you to our work methodology, our projects and project documentation. You will get to know your onboarding lead better and take the time to properly set up your communication tools, tracking systems and one-to-ones.

When you’ve gone through your onboarding tasks and feel comfortable we’ll ease you into our internal and external projects.

Onboarding: Mutt Academy 🎒

Once you join Mutt Data, you will officially become a Mutt Academy student, welcome to the class of 2021! The focus of the onboarding process is to get you up to speed with all the technologies we use, our workflows, best practices and most importantly our work culture.

The duration of your onboarding process will depend on your seniority but if all goes well after three or four weeks you should be able to:

  • Use git to create a MR and handle its comments/suggestions.
  • Know how to use the shell.
  • Have your own setup running Python3, and know how to use pipx and pyenv.
  • Create a project using poetry.
  • Know how to use code formatters and linters such as black using project configurations.
  • Know how to setup a pre-commit hook.
  • Be confident in your Code Editor of your choice.
  • Create and manage Airflow's DAGs.
  • Spin up your own Airflow setup.
  • Use Docker to build your own image, and docker-compose to spin up multiple services.
  • Use at least one Machine Learning library to fit and predict a model.
  • SSH into an instance.
  • Know how to use SQL to spin up your own database and query its contents.
  • Know how to create a CI/CD pipeline in Gitlab, and run it both with a local and remote runner.

You might even get some know-how on MLOps tools like MLFlow or use SQLAlchemy. We always recommend all our onboarded to picture onboarding as a learning opportunity: it’s the moment to ask questions, make mistakes and have fun learning new things.

morpheus

To help track your progress during this process, the person in charge of your onboarding will create your own personal repository.

If you’re wondering what it takes to graduate Mutt Academy you can relax. There are no exams! We graduate by contributing new knowledge or improving upon current information and practices in our onboarding repository.

Getting Comfortable

Soon after you join our team, we’ll send over some goodies to make your everyday work experience more enjoyable and comfortable. Investing in a good setup is key to staying healthy whilst working remotely.

merch

Starting A New Project At Mutt Data 🎬

Working with a large variety of clients and industries means using a variety of different tech stacks. Each project is unique, although a business problem might be similar or even the same, each tech stack and architecture may be completely different.

For this reason, the first weeks on a project are focused on discovery, getting familiar with databases, infrastructures and tools. We use standardized questions and ML canvases to diagram their current status and understand the gap we want to close between where we are at the start and where we want to be. You can read more about our entire process here.

If the project is starting from scratch, then this stage calls for research / literature review and brainstorming for the development of an initial prototype. We tend to write documentation explaining everything about our proposed solution, why we chose it and what could be added down the line to potentially improve it in subsequent project iterations.

In essence this is a learning stage for Mutters'. We document everything, we listen to our peers for recommendations and proposals and we question all non-trivial decisions: What are we trying to solve? What would the optimal solution look like? What tools are the best for the job? Why can’t we implement this version? Are there better alternatives?

End-Zone: Deploying a Solution 🏁

Deploying 🚀

On your marks, get set, deploy! If only it was such an easy going experience. Putting a solution into production can be quite nerve racking! Presumably you’ve put a lot of effort and time into it, the important thing to remember is that the main objective is for deployment to run smoothly, for it to be a non-event.

solution

Deploying can be complex, because the proposed solution could potentially require modifications on multiple systems currently being used by the client. It’s important to plan ahead. What components will be affected? What dependencies are there? Who is the direct responsible person for this? What do we do in case it fails?

These are just a few of the questions we have to ask. We find it helpful to follow some guidelines:

  • Keep the client’s team at hand in case something fails
  • Be prepared in case a rollback is needed
  • Automate deployment to avoid human error
  • If possible, employ A/B tests
  • Don’t deploy on Fridays.
  • Don’t deploy on Fridays.
  • Don’t deploy on Fridays.
deploy

Retro 📼

At the end of every big project phase but specially at the end of the project we have retrospective meets. All mutters who participated in the project will take a step back, analyze what could have been done better, what was done well and what changes we might want to implement to achieve future milestones.

retro

Each team member writes their own conclusion first without seeing the rest of the team’s opinions, this way no one is influenced by other Mutters’ before getting together.

Wrapping Up

We hope you’ve found this post useful, and at least mildly entertaining. If you like what you’ve read so far, got some mad dev skills and like applying machine-learning to solve tough business challenges, send us your resume here or visit our lever account for [current job openings]({{ site.jobs_page }})!