Hackathon Winners Part 1: A Slack Bot Elevates Dev Support

Meet Hacky Dat, the winner of our People's Choice Award.

Hackathon Winners Part 1: A Slack Bot Elevates Dev Support

The bi-annual US Hackathon is back with five amazing winners.

Related Articles: See 2022's US Hackathon Winners

You'll meet every team over the next couple of months, but today, it's all about Hacky Dat, the winner of our Bludger award (see definition below).

Before I introduce you, let's quickly discuss how we conduct our Hackathons:

Hackathon Details

  • This Hackathon ran for three consecutive workdays.
  • Teams consisted of up to five teammates. Their projects were not limited to code, and they did not need to benefit the BigCommerce platform or need a clear path to production.
  • Our theme was based upon a very magical world that consists of wizards, witches, goblins, ghosts, and much more. For legal reasons, I can't come out and say the name of the franchise directly, but I can tell you that it rhymes with Scary Otter – a creature that could totally exist in the story.
Not a Scary Otter

Teams who demoed their completed projects had the opportunity to win the four coveted awards below:

  • Bludger (AKA People's Choice) - BigCommerce team members throughout our global organization vote for their favorite project.
  • Quaffle - Product Management and the Designers choose the team who created the most impactful end-user experience for merchants, shoppers, or 3rd-party developers.
  • Weiss-ly Done - This award honors our inspirational former team member, Matt Weiss, who made a positive impact on so many lives. Senior P&E leadership selects the team who solves an intimidating problem that others may be too apprehensive to take on.
  • Sorting Hat - Our P&E executive team picks the project that incorporates the best use of AI.

Meet Hacky Dat

John Koelndorfer, Lead Infrastructure Engineer on the Delivery Acceleration Team (DAT) Team

Background: I have been a technologist for my entire life. I created my first website at ten years old. In 2008, I started my professional journey in infrastructure at the University of Minnesota, where I earned my degree in Computer Science.

Since graduating, I have worn many hats. Some of my previous job duties include Linux systems administration, storage management, network security, digital forensics, hardware testing, and site reliability engineering.

Fun fact: As a student at the University of Minnesota, I co-authored a paper that made national news.

Role in this project: I focused on implementing the bot's health check and OCR functionality.

Connect with John on LinkedIn.

Bill Thompson, Staff Software Engineer on the DAT Team

Background: I am a self-taught web developer. I started my career on the frontend, transitioning to the backend working with Ruby and Rails about 10 years ago. I spent about 6 years working in our Billing domain and about 3 years on the DAT where we have primarily been focusing on improving our engineer's development environment experience.

Fun fact: I'm affectionately referred to as a "boomerang" - the term we use for someone who left the company but came back. Prior to working in software, I sold home automation and structured wiring to homeowners and worked with a famous soccer icon to wire her Austin home so that she could stream her media library from her primary home in California (this was before streaming services like Spotify).

Role in this project: I focused on getting the app setup for development, being able to describe a user's cluster (a collection of GCE VMs), managing issues, and the bot integration with the health check and OCR functionality.

Connect with Bill on LinkedIn.

Hacky Dat's Project

How did you come up with your team name?

Bill Thompson: Knowing the scope of the project and how much experience we had creating Slack bots, I knew it was going to be hacky, so I just ran with that. 😊

Please describe your project.

John Koelndorfer: Our project is a Slack bot that helps support users of BigCommerce's cloud development environment. It provides the ability to get information about a user's environment, track and report active issues in the dev environment, convert screenshots of text into actual text (for searchability), and perform a health check on a user's environment.

What inspired you to choose this project?

John Koelndorfer: The cloud development environment is quite complex. There are a lot of moving parts that can break. We spend a lot of time helping users solve problems, and we wanted to streamline that process.

Bill Thompson: During a team offsite, we discussed ways that we can help accelerate our developers beyond a stable development environment, and we all had a high level of excitement when we started discussing features we could expose via a Slack app/bot — from the ability to help our team provide support to our engineers to helping unblock engineers by feeding their error messages into an internal AI that can comb through our source repos, extract info from our service mesh, and internal documentation/runbooks to provide help and context quickly. I was hoping that we could lay the foundation to make this possible.

Open Roles: Explore Your Next Engineering Opportunity

Which pain points does your project solve?

John Koelndorfer: The bot helps us provide better support more quickly by getting information about a user's environment and running some diagnostic checks. It helps keep users informed about known issues and how they can work around them.

Which challenges did you face while you were developing your project?

Bill Thompson: We chose the Bolt for Python SDK, which I had no experience in either the framework nor the language, so I knew things were going to be fun! 😉

How did you overcome these challenges?

Bill Thompson:  The Slack documentation for getting a new socket-based app set up was fantastic; I believe we were accepting messages from Slack in less than 15 minutes! Once we got into the development, John was just a Slack message / Google Meet away when I encountered some Python concept I wasn't familiar with (e.g. creating breakpoints, the decorator syntax). I went into the project with a pragmatic mindset knowing that we'd be able to get the time to refactor the code if we had a good proof of concept, so I didn't spend any Hackathon time cleaning up code unless it made development faster.

What’s the one thing you’d change about this project?

Bill Thompson:  While I have been on three winning Hackathon teams at BigCommerce, this has been my favorite! The project was fun with just the right amount of stress. The collaboration and teamwork was fantastic. There was a lot of excitement generated by the live demo, and we have a product that can be productionized and bring value to our engineers in just a couple weeks. The only thing that could have made this Hackathon better is if breakfast tacos were delivered to my door every morning, but I don't want to be ridiculous. 😀

How Bill's Breakfast Tacos May Have Looked

John Koelndorfer: This Hackathon was a ton of fun for me. Overall, I'm really happy with how the project turned out. That said, if I had known we were going to win, I'd have pushed a little harder to come up with a more fun team name.

What are the next steps for this project?

John Koelndorfer: We've got to get the Slackbot productionized. The code needs to be cleaned up, and it needs to be deployed properly, not just on a user's laptop. There is a small health check service that will need to be deployed to user's development environments, as well.

What advice would you give to an engineer who is about to participate in a Hackathon?

John Koelndorfer: Choose a project that...

  • excites you
  • can be reasonably put together within the allotted time
  • is visionary or solves a real problem
  • aligns with expertise your team has

Bill Thompson: I would recommend that engineers choose a project that aligns with some goal that has a measured outcome. If you want to win the Hackathon, you have to find a project that solves a significant pain point or has a major "cool" factor (e.g. generative AI was a common theme for many teams this year).

As an example of what not to do, one year my Hackathon project was derailed by a production support incident, so I spent most of the time working through a Scala tutorial. It would have been a better use of my time to collaborate with a team that works on a Scala app and fix a low-hanging bug instead. I would have achieved my goal of becoming more familiar with Scala, but also how BigCommerce uses it while having something to show for it at the end — a bug fix released to production. Instead, I felt like the days weren't as productive and exciting as they could have been.

If any engineers would like to contact you, how should they reach out to you?

John Koelndorfer:  See my website for links to my GitHub profile, LinkedIn profile, and e-mail address.

Bill Thompson: For those with access to our internal Slack that will get the fastest response, but I'm also available on GitHub, LinkedIn, and lurk on Twitter.