Tales From Hack Day: Braze Software Engineering Manager Derek Schultz on Campaign Comments
Three times a year, employees from around Braze take two days away from their normal duties to participate in Hack Days. These events—a long-running Braze practice that reflects how the company creates space for dreaming up and implementing new ideas—provide a chance to encourage innovative thinking, highlight pet interests, and even optimize the Braze platform in ways big and small.
To recognize the work that goes into each Hack Day, Building Braze will be profiling participants with particularly memorable projects or experiences. This week, we’re talking to Derek Schultz, Software Engineering Manager on the User Targeting Team*.
A Real-World Problem to Solve
My idea for a Hack Day project came from a lunchtime discussion with a product manager. A Braze user told the PM that their number one ask was a way to share campaigns with colleagues who were not authenticated users of Braze, but whose feedback would be valuable. These colleagues didn't need access to the Braze dashboard for anything other than to review the drafted campaigns.
As a workaround, this user was taking a lot of time to create multiple screenshots of the campaign, stitch the images together into a PNG, and send that PNG into another tool that would allow the reviewers to make comments. I was thinking, “Sure that works, but it would be nice if you could just do it in Braze.” So I thought I’d try building it for Hack Day.
Defining the Challenge
Sean Laude, one of my Braze colleagues, was already working on a tool for Canvas users that would let them leave themselves sticky note comments and reminders to return to later. Sean was kind enough to let me use his sticky note component, which was great because the tool had overlapping functionality with what I was hoping to build for my campaign-sharing tool.
The main challenge was being able to generate shareable links that exist outside the authenticated scope of the product. I wanted to give people a way to retrieve the HTML content for an email campaign, click anywhere, and have a sticky note appear. The user could leave a comment and hit “save,” saving the comment in the database and retrieving it for later use.
Another piece of functionality I wanted to build was ensuring these sticky notes updated themselves in real time—that is, if two people were leaving comments simultaneously, they wouldn’t have to refresh the page to see the other comments coming in.
Crafting the Solution
To build the rest of the tool, I worked from beginning to end, experience-wise. I started by building a button to generate a shareable link. Next, I needed to be able to retrieve and render the content of the email. I incorporated the sticky note component and added a persistence layer so that the sticky note is saved as you type it.
The last thing was integrating what I had into AsyncPusher, our in-house WebSocket framework that enables real-time notifications to be sent to the dashboard, so users could see right away when comments were left in campaigns.
There were a few features I wanted to add that didn't make the final project. For example, I wanted to have commenters identified somehow on their sticky notes, either through unique colors or through labels. But for Hack Day, it’s important to narrow your scope sometimes, rather than trying to fit everything in.
Hack Day is a chance to try out some new things in an informal, sandboxed environment. For example, the AsyncPusher was an unfamiliar area of the codebase I had the opportunity to explore. I had to put my AsyncPusher implementation and the permissions logic for link sharing outside of the authenticated controller, which was an unusual requirement and presented some unique challenges. The process was really educational for me as an engineer—it was rewarding to get into the weeds a little bit more with this feature.
The Final Step: A Memorable Presentation
I’d heard that it was important to be creative in Hack Day presentations. For mine, I generated one of those share links and dropped it in the chat during my presentation. Everybody in the audience was able to open it and leave comments on the campaign. While I was still demoing, little dots started showing up where people were leaving comments in real time. Hack Day presentations can be as long as four hours long, so to have something where people can interact helped get people's attention and made it more fun.
Interested in getting involved in our hack days? Braze is hiring for a variety of roles across our Engineering, Product Management, and User Experience teams. Check out our careers page to learn more about our open roles and our culture.
*All content in the blog post is of a general nature and for example only. It does not refer to any specific problems, features, or products that Braze intends to make available to customers, either now, or in the future. Nothing in the article should be considered as advice, nor does any information on the post constitute a partial, nor complete roadmap of future technologic features or function of the Braze platform.
Derek Schultz is a Manager, Product Engineering at Braze.