Performance engineering for the ordinary Barbie

A publication on profiling and other topics in observability

--

If you’ve seen the Barbie movie, you know where the “ordinary Barbie” reference came from. If you haven’t, you can probably still guess what it means.

I’m Lily, senior software engineer on the profiling team at Datadog.

It was more or less by chance I found myself on the profiling team at Datadog. I was never intentional about delving into the world of observability and performance. Nevertheless, I’m very grateful this path found me.

The topic of performance first came up a couple years into my React career. The more we built, the slower the application got. That was when I first learned about the many low-hanging fruits such as why we don’t create new objects in mapStateToProps.

I’ve tried to avoid the topic of performance optimization for as long as I could. It was an intimidating subject, and I didn’t want to be discovered as a fraud.

I made some simple React code changes according to best practices and called it a day. Phew.

Performance engineering and I would cross path again a couple years later at Slack, when I was pulled into a project to investigate why channel switch was slow for some customers.

My almost non-existent experience in this problem space meant it was very much a trial-by-fire project. However, I learned A TON about observability, tracing, telemetry, and even machine learning, through this experience.

Then, by the grace of forces beyond my control, I was hired into the profiling team at Datadog.

I spent my first year on the team not saying much though. If I weren’t myself, I’d probably at times forget I existed.

One thing that inspired me to start writing and to create this publication is precisely because I faced a huge activation energy in order to get into the swing of things. If there were a book titled “Profiling for dummies”, it might have served as a catalyst.

There were publicly available blog posts written by domain experts on how profiling works, but it was difficult to get through the first few paragraphs without being lost.

I’ve been wanting to publish blog posts about what I’ve learned, and to be honest, I have many drafts just sitting there in Medium. However, I always found an excuse to pull myself back because I see weekly on Zoom meetings some of the smartest and most knowledgeable engineers in the world in the space of profiling and performance. Who am I to write on this topic?

A few things happened in the last few months that really inspired me to pull my writing together, even if it’s just to clarify my own thoughts and understanding. Amongst them were:

  1. I was invited to give a Tech Talk at Datadog as part of a recruiting event, and I learned a ton going through the process of putting together a blog post and the slides. I received a lot of positive feedback and it encouraged me to continue the path of putting my work out there.
  2. I saw Barbie, duh, which was very inspiring in the sense that it empowered me to be less afraid of being imperfect. Fear of sounding like a kid in a room of experts was ultimately why I felt uncomfortable publishing blog posts on profiling and performance optimization.

Yet something ironic I discovered is the more I seek clarity, the more I learned I’m not the only one with imperfect understanding of how things work.

I’m happy to formally introduce my Medium Publication:

“Performance engineering for the ordinary Barbie.”

My goal is to make complex and “hardcore” topics in performance engineering, like profiling, accessible and understandable to any holder of a technical role.

Maybe they’re product engineers who spend 90% of their time on building new features. All of a sudden, they’re told to improve the performance of their application because customers are having issues.

Maybe they’re frontend engineers like myself, or technical account managers, in the space of application performance monitoring, who are curious to learn more.

This publication is for anyone interested in delving into the field of performance optimization who are not already domain experts.

And please note: just because we are ordinary Barbies in the space of observability and performance, it does not mean we are ordinary people.

I’ve already added a few stories to this publication, including:

And

The latter being the topic of the aforementioned Tech Talk I did at Datadog!

Expect to hear from me on these topics in the coming weeks and months, in no particular order:

  • Observability 101 and how profiling fits into the space.
  • What are profiling data and how are they collected?
  • Different profile types: CPU, memory, wall time, etc.
  • How to solve memory leak issues with profiling?
  • How profiling for different runtimes work differently.

Any many more!

I’m Lily Chen, senior software engineer on the profiling team at Datadog. If you like my work, I’d greatly appreciate some claps and a follow ❤

--

--