How Sentry Bridges the Gap Between Support and Engineering
In this post, we’re highlighting a specific role at Sentry — our Support Engineers. Like what you read? Well, friend, you too can join the Sentry team.
Support Engineer: a little bit support and a little bit engineering. Few jobs are so accurately described by their titles.
At Sentry, the Support Team provides a direct link to users. Support Engineers — an essential component of the Support Team — compile common issues and feature requests, and then have the opportunity to work on some of those issues with more experienced engineers. We also engage with our users and provide results, helping to complete the feedback loop. In other words, the work of a Support Engineer looks something like this:
Support ticket of feature request > Compile to list of requests > Support Engineer works on a request > Provide the results and finished feature request back to the users that requested it.
Answering support tickets is part of the day-to-day for Sentry’s Support Engineers, but somewhere between working on a request and providing the results to customers, we also contribute to engineering projects (hence the engineer part of the name). Depending on skillsets and interests, Support Engineers are assigned a project that they will work on for a few hours each week. The complexity of the issue is also a consideration, and the project itself could take anywhere from a week to a month or more to complete. Sound fun? That’s because it is.
An example of one such project is the Audit Log improvement to Sentry’s Organization Settings. Sentry customers often contact us with questions about why a setting in their account has suddenly changed or why a feature is behaving in a different way than it used to behave. Generally, the first step we take is to check of the Organization Settings Audit Log.
Previously, the Audit Log would only display the user alongside the text “edited the organization” whenever a Manager or Owner made any changes to Organization Settings.
As you can see, this provided very little information to the customer or Support Engineers. It also feels a little dystopian. “Editing the organization” could be a small or very large activity depending on just how much editing you did.
Unsurprisingly, this was often not enough information to uncover the concern of the customer, and the internal acknowledgment of this knowledge gap drove us to suggest the improvement to Sentry’s Engineering Team.
Engineering projects — like the Audit Log improvement — serve as learning opportunities for Support Engineers. Through weekly pair programming sessions, a Support Engineer and another (usually more experienced) engineer simultaneously work on the same block of code. These meetings foster mentorship and establish a platform for discussion, like addressing project blockers and sharing ideas on how to proceed.
This relationship also highlights personal and career growth. Specific projects aside, pair programming is especially useful for a one-on-one tutorial of a new programming language.
Mentors help Support Engineers build on existing skills while providing insight into the engineering process at Sentry. While code improvement is often a focus, collaboration sessions allow opportunities to write tests, use different tools to help debug, write an effective pull request, and become familiar with the review process as a whole.
The Audit Log project — to return to our previous example — was met with a few complications that required the consultation of additional engineers, turning this into a learning experience that stretched beyond the original pair. With the combined sets of knowledge and expertise, we pushed through the issues and ultimately improved the feature, a result that is much preferable to getting stuck on the issues and making everything worse.
Now that the improvement is live, the Audit Log displays the user, the name of the altered setting, the previous value, and the new value. As a result of the work done through pair programming, the addition of the Audit Log gives both customers and internal Sentry teams greater insight into the past and present state of Organization Settings.
Helping users and internal teams
Due in part to their collaboration on engineering projects with mentors, Support Engineers build processes and systems that help both Sentry customers and internal teams.
On the customer side, Support Engineers help users self-diagnose specific issues. Internally, Support Engineers have high visibility into common user errors, and they can quickly determine a few possibilities for why something is not working as expected by the user.
Let’s say a Sentry customer contacts the Support Team and is wondering why data across all their projects are being scrubbed when previously they were able to see this data. The customer also explains that they are reviewing their settings to determine what could cause this change. From previous experience, Support Engineers know that one possible reason is that someone enabled the Organization Setting, Require Data Scrubber, which will “Require server-side data scrubbing be enabled for all projects.” Classic.
As a result of the pair programming done for the Audit Log improvement, Support Engineers can provide detailed insight to the customer without having to escalate the issue to additional teams. As mentioned above, the Audit Log now displays the previous value along with the updated value, which can be used to inform the customer of the exact change. In this case, we would let the customer know that the Require Data Scrubber setting was changed from false to true.
If you’re interested in exploring the intersection of customer support and engineering, you’re highly encouraged to navigate to the Sentry jobs page. We’d love to hear from you, even if you don’t see a great fit that’s currently open for you.
And if you have any questions, please reach out. As you know from reading this helpful blog post, our Support Engineers are here to help. And also to code. And also to code with another person who is also coding. But mostly to help.