This October we participated in Hacktoberfest by hosting an internal company hackathon. A chance for engineers to try out new technologies, test new ideas/workflows, or make those quality of life improvements that have been in the back of their minds.
“Every-time I try to have a party, I’m nervous no one is gonna come, for some reason. And I always get that feeling too with the hackathon, but tons of teams signed up to present,” said Paul Senechko, Vice President of Engineering, “and you all have done really cool and inspiring work.”
This year’s hackathon had a variety of projects that tackled different issues facing customers and developers alike. We had teams use machine learning to sort ZenDesk tickets, migration tools to automatically transform JavaScript repos to TypeScript, automating our load testing capabilities , and tools to recreate the entire Lob API environment locally or on-demand on a per- pull request basis. I’d like to share a few projects that caught my attention.
The winning project of the hackathon was the Mail Time Prediction Platform made by a team led by Chris Migirdic.
“It's a problem that is ubiquitous throughout the organization, and I didn’t want to approach this by taking one particular use case and making the best prediction,” Migirdic said. “I wanted a platform where other people could select a use case and generate their own predictions, and use their subject matter expertise to make refinements.”
The team used Prophet, a library that helps make predictions using time-series data, and Plotly, a Python library to show the visualizations made from the predictions. With the tool, a user can query historical mail data and tweak parameters in the prediction model to adjust for certain sensitivities. For example, if the subject matter expert knows USPS made changes to handle increased holiday activity, then the model can be adjusted. This is useful information for customers so they can schedule mailings that account for USPS delays.
Another interesting project came from the team led by Roman Kofman. This project sought to add new endpoints to Lob’s API that helps customers run jobs that have hundreds of thousands of mail pieces.
“I have this idea that we are trying to solve a problem that could be better solved through domain modeling of the actual workflows that our mass mailing customers are likely experiencing,” Kofman said.
The team proposed several new endpoints using an OpenAPI spec that Lob is implementing. The beauty of an OpenAPI spec is that endpoints can be mocked and documentation generated. Even though no code was written to implement the endpoints, everyone could see the different schemas, requests, and responses the team was proposing. API-driven design is wonderful! At Lob, we have written a couple of articles about the tooling around OpenAPI specifications that you can read here.
Remember, earlier when I said the hackathon was also about making those quality of life improvements? KC Chima created a bot for Slack that would aggregate all of the work he has done in the year in a nice file that is ready for him when performance review time comes around.
“One piece of advice someone told me was to keep a notebook of what you have accomplished so that when review time comes around, you can go look in you notebook and write it down,” Chima said.
The Slack bot will keep track of your accomplishments and tag them to the different OKRs that your team is tracking. It then saves these documents to Google Drive in a folder for you to easily reference.
The last project I will share is something for developers. Earlier this year, websocket.org closed down the popular echo.websocket.org service that so many tutorials and API clients use. Sid Maestre created echo.websocket.events as a replacement using echo-server, an open source project by James Harris. We've published a post demonstrating how to use echo.websocket.events with popular API tools or run your own version locally.
That’s all from this year’s hackathon. Until then, check out the repo for echo server and stay tuned to Lob to see which projects get integrated into production.