Photo by Giallo from Pexels

I’m a Solutions Engineer. And like many Solutions Engineers, it’s my aspiration to someday work as a Software Engineer. That’s one of the reasons I write this blog every week — because I have a lot to learn if I want to make it.

One piece of advice I’ve heard is that reading pull requests (PRs) is a great way to learn because you can see the code an engineer is writing and follow their thought process on how they solved a problem. I reviewed a PR this week that used a function I wasn’t familiar with: window.performance.mark. …


Loyal readers know that I have some pretty great coworkers. I came across a perfect example this week when I asked a coworker to explain what they were working on and they decided to take an hour to hold an information session for the whole team. I learned a lot so, in the interest of solidifying my understanding, I’ll be writing about one of the core concepts of an API: Controllers.

What is an API Controller?

API stands for Application Programming Interface. In other words, an API is a tool that helps services communicate with each other by the handling of requests. We send an…


credit: Pexels

The title is a little misleading this week since…I haven’t actually learned what I want to know about encryption yet. This is extra unusual because I work with PGP as part of my job. When I get a request to set up file encryption for a client, I re-read documentation that I always have trouble following, try my best to make it work, usually fail to do that, and have to consult a more seasoned engineer. This is not an ideal workflow, so I’m spending some time this weekend trying to better understand the language and logic around encryption.

PGP vs GPG

These…


I’m currently reading Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans for my company’s book club. Loyal readers of this blog will know that I generally struggle with textbooks like this. I start reading, committed to focusing and learning a concept, but once it starts getting complicated I end up confused. Since I can’t afford to devote the time needed to go back and try to understand it, I accept the amount I did learn and move on. …


credit: Pexels

I had a not-so-great moment at work recently. Towards the end of the week, we started seeing some unexpected (and undesired) behavior from our script on certain client websites. In situations like this, the first question to ask is: “what changed? What happened between yesterday and today that could be causing the behavior?” As I learned more about the issue, I started to get an idea of what was causing it. And it turns out I was right, because it came from a PR that I had approved.

Part of what I like about engineering for a larger company is…


Photo by Artem Podrez from Pexels

My company uses an SFTP (secure file transfer protocol) to share report files with clients. This week, we took some time to focus on the capacity of our SFTP and contingencies if we ever have to add more space. A member of my team was asked to build a dashboard and a monitor in Datadog and, though I had no idea where to start, I volunteered to help if I could.

Luckily for us, we got an assist from another member of our team who has a lot more experience with Datadog. I quickly got lost watching him deftly navigate…


credit: Pexels

This month at work, I’m trying to graduate from understanding individual processes to understanding a full pipeline of data from frontend to back end. As a Solutions Engineer, I’m frequently asked to diagnose an issue with data failing to make it all the way through a pipeline with clues like “we’re seeing a network call on the front end, but no corresponding row in Snowflake on the back end.” I learned that, in my workplace, these questions are often difficult to answer because our back end EventHandler doesn’t actually build rows in a DB. …


This week, I got the chance to work with an experienced developer while we investigated whether our code was degrading performance on a client’s site. This was totally new to me, so I mostly watched as he quickly collected data and traced function calls. Many of us have probably seen a chart like this before:

I wanted to better understand how to use this tool and how to read the results. So of course the next logical step is…to blog about it!

Generating a Performance Sample

Before going any further, I should point out that Google has done a great job of documenting this…


Photo by ROMAN ODINTSOV from Pexels

A few weeks ago, I wrote about building a Chrome extension that would help my team check on the filter status of certain conditionally rendered elements. After finishing a draft of the extension, I was all set to publish it to the Chrome Web Store, but paused when I realized there was a small fee to register as a developer. The next Monday, I asked around to see if our company had a developer account that I could use to publish the extension. …


Photo by Tyler Lastovich from Pexels

This week, I was working on writing a configuration to collect data from a webpage each time a certain button was clicked. My logic was working about 75% of the time, but I couldn’t figure out what was going wrong for the other 25% (likely caused by a race condition somewhere). I consulted the Engineer who built the infrastructure that I was working with and he let me know that he was working on a new possible solution for issues like this which included the use of XPath. …

Mike Diaz

Solutions Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store