 Ben Shippey, and I'm the tech director for Bruj Amen. I do feel obligated to tell you all that there's no free beer at this talk, unfortunately. So by show of hands, how many from Pittsburgh? All right, so mostly the southern. That's great. So I'm sure a lot of you are aware that Bruj Amen is a craft brewery located in Braddock, Pennsylvania. This talk is going to focus on how we leverage technology at the brewery and how we've really had a journey over the past three and a half years with our technical projects at the brewery, including the menu board, our hackathons, and Bringshout and System Mew and Exciting Areas in the brewery. So let's talk a bit about Bruj Amen. So Bruj Amen was founded by two Sydney graduates and they opened their doors in 2014. There has been a recent craft beer explosion in Pittsburgh and we have close to 40 different breweries either in the city or shortly outside the city. So what makes Bruj Amen stand out? The beer. Well, two things, but mainly the beer. Bruj Amen aims to create soft balance and elegant beers and meaningful experiences while helping revise the historic steel town of Braddock, Pennsylvania. And they're doing a pretty good job of making the beers. They're consistently rated highly. This is a screenshot from Pace Magazine, which I'll quote this. This is the best, most complex double IPA we had a chance to taste out of a whopping 176 and that's nationwide. So we're making some really awesome beer there and a lot of that credit goes to the Brewmaster and Brewing staff as well as co-founders for the talent that they've managed to acquire. So let's talk about the brewery. Looks like a typical brew house. You know, grain, hops, yeast and water go in, beer comes out. By show of hands, how many of you have been on a brewery tour before? Wow. Okay. So none of this should surprise anyone here, right? So we have some barrels. We do barrel each beer. Essentially same thing, right? We put the ingredients in, beer comes out, put that in a barrel, let's sit there for a bit. Some tours will occasionally talk about that. Most tours we'll talk about, fermentation vessels, bright tanks, cutting equipment, cleaning equipment and that's pretty similar to everything that you've seen so far, right? And that's a pretty standard. Breweries might change a little bit, but generally it's the same process and we're not going to talk about any of that today because automation here is expensive, dangerous and best of two professionals, which I'm not a brew technician in terms of automating that level of sophistication. So what are we going to talk about today? What goes on here? Because without the back office, we have a lot of beer, but we can't do anything with it. So this is the business side of the brewery and that brings me to the second reason why a brew gentleman stands out, the core values. So a lot of this comes from Japanese philosophy with Miyabi, Soshin, Kanzo and Kaisen. The one that's thrown out to me mostly is Kaisen, continual improvement, basically asking ourselves what can we do to make things better? And that brings us to the taproom. So as you can see here, this is a shot from taproom and what you might notice first is the digital menu board. Now this is a shot from a couple years back and when brew gentleman opened, they had a digital menu board. A lot of brews at a time, we're still using chalkboards or any other way of doing it that wasn't digital. So that lets some interesting conversations. So let's have a look at that. I'll zoom in on that. And this is more or less a mockup of what that menu board held at the brewery. So after a few tasers, I had a very fruitful conversation with Asa, one of the co-founders there, and we got to talking about how they were doing this. And what you told me kind of surprised me. It was an illustrator final that he'd export into an image format, put that on an iPod and have the iPod pipe it to the TV. Sounds horrible, right? But it worked and that goes towards the DIY spirit of the brewery. Now bear in mind, this is also pre-untapped before they launch their menu offerings. So you kind of had to roll your own system at that point. So just to break down that process a bit, tap change. So that could be kegs kicked, new kegs added. Asa has to create an image, images add to the iPod, menu board's updated. Now those two steps are a huge bottleneck, right? How many of you have ever ordered a beer only to find out kegs kicked? You can't get it. It's infuriating, right? Because now you basically have to order a second beer and maybe, you know, if happens something, just plan ordering two beers. So having either stale or outdated information isn't great. When the iPod has to be disconnected, we have no information on there. So that's just not a good situation. So I suggested put that on rails, right? Because we got some other free benefits other than just like the real time updates, but also website integration. So that changed the process to removing those bottlenecks. Now any member of the bar sap could go in, update the list and be updated in real time. So now we have something that is guaranteed to be accurate up until, you know, you go up to order and then you kick a keg and now we just need to change by. So with rails, it's a very modular web framework. And what we're able to do is leverage the different engines and gems to really tie it together. One such gem was active admin. So we have a custom active admin dashboard here and I'll zoom in on some sections you momentarily, but basically it boils down to a very quick overview of unavailable beers and beers on tap. So beers on tap. We can drag and drop these beers to reorder them if needed. We have the icon, we have the name, we have the style and kicks kicks, you click the kick button and goes out. Really simple. Likewise, unavailable beers, names, style and click on tap. Now that is something that any member of the bar sap can do. We don't need to have any specialized SAP software and it makes the entire process go a lot easier. Now the other benefits we get out of this, we get beer database. So now we have this persistent record of all the beers that we've brewed, pricing information so we can go back and run analytics on those. The brewmaster can go in and enter all the details that you know, you need to for either the ABV, the tasting notes, the name, the style and creative can go in and put in the icon separately. So now there's no bottleneck waiting on one person we can distribute the work. Now I also mentioned the iPod. Originally we started out with a Chromecast, just proof of concept, making sure this works. We already had one, why invest money into more hardware because at the time the brew just opened, we don't want a lot of debt, either technical or not. And eventually we moved to Raspberry Pis because those would be self-sustaining. We don't need a laptop constantly pushing this to the TV and that worked really well for us. And as of today, we have four Raspberry Pi power displays and Bury pulling from the API. So now we have the menu board digital, but we also want to print it. And we were able to generate PDFs whenever we needed to and print those and put those on the tables and tap them. So that was a very nice benefit to make sure that the printed material matched the digital material and keeping that all in sync. So just a quick recap right now. We have a Rails app. It has a menu, it has a beer database, we have printables, where do we go from here? Well, we have a website integration at this point, where it's more or less an iframe being injected into the static site just because the static site predated my work with Brugelman and we want to kind of keep that for the moment. We decided to change that and make it a CMS based system. So we added refinery to the stack. And that worked really well, it allowed people to go in, edit content and you can be edited. The only issue was we had the blog on WordPress. So how do we get from WordPress to refinery without spending any money? Well, any paid plan would allow us to do that, but we don't want to pay for those. What does WordPress give you for free? An RSS fee. So we're able to actually scrape all the RSS data, reformat it a bit, put it into the refinery blog model and save that and push it to the website in the format we want. We do need to strip links because some of those are relative, but that's again a minor trade off for being able to do this so quickly. Now, with this being a website that we're running, we can push the beer database live and have people go in, explore different beers you make, you can sort by seasonals, flagships, sort by tags. And if you click on a beer, you get to see what the brewmaster has laid out for us. We have some nice notes there on the tasting notes if you want to pair it with a beer and links to untapped beer advocate rate beer. So basically we have a pretty sustainable compendium of all our beers and anyone going to the website can explore them. So at this point, this is about a year after I started working there. And we decided to have our first hackathon. Now, how many of you are familiar with the Balmer Peak? Yeah, we're brewery. So that only made sense. So it was 24 hours, some technical staff, Matt and ace of co founders. And what that entailed was a lot of beer code and power tools, which makes for a great night. So one of the things that we built was a Raspberry Pi, Raspberry Pi power display for the bathrooms I've ever done. And so now we can push our event details of beer and yoga, new ball releases, food truck calendars, and that works pretty well, those are still in use at brewery today. The Hue lights were an interesting little toy that we picked up and quickly realized that we're there some problems with these. While they are great for being able to turn them on and off with your phone, you can change the color and stuff having all these different mobile devices with all different bar staff. We can't think all the profiles. So we made a custom active admin view for that. And this is running on the laptop in the brewery. So the audio reactive scenes could take input through the laptop's microphone and push that to the lights and pulse them accordingly. And that worked really well for us for a little bit. Eventually, we ended up taking the lights out because they were not that great in terms of keeping the brewery focused on one thing and one thing only making a certain beer. So now we're here back at the tap room. We talked about the menu board briefly, we talked about the Hue lights, the Clover point of sale system. We did investigate integration into the menu board with that. The problem is their API wasn't super friendly at the time, which would have been kind of cool because we know how many beers are in a keg, we know how many beers you're selling through Clover, we could put some real time metrics on, okay, this is going to kick really soon. Unfortunately, their API didn't really support that. But if we look over there on the right, we have these tags. And these tags are what we use for our to go packaging. So that's got to be a swing top 750 milliliter growler or a full 64 ounce rally. So let's zoom in a bit here. This looks like the same information we have on the menu board largely, right? So why should the creative staff have to do that by hand? And especially because, you know, we don't know what beers are going to be selling into go formats. We don't want to print all these ahead of time, we need to be able to print these on demand. So let's say a new keg goes on. Well, now the creative has to go out and basically do a lot of copypicing to get a sheet like this. Using the prawn PDF gem, we're able to generate all those. So now anytime that there's a beer on tap, we can click print tags, and bars happen just print the tags they need, we don't need to have creative involved in that effort at this point at all. So right now I've talked about a lot of things in kind of a short amount of time. And let's take a step back here. Here are all the features that we currently have in the Rails application so far. And going back to the core values of what can we do to make this better and conzo simplification and making sure that we only have what is essential there. So beer database, that seems pretty essential to a brewery app. Tap management, menu screens, that makes sense to keep brewery display management. That was a bit of a toss up for us because while those are cool, they are in brewery. And it's the same type of display as a menu screen really where it's a Raspberry Pi powered and we push content to it. So we decided to keep that. As I mentioned, brewery lighting, we nixed that idea. It just wasn't sustainable. And it's a lot easier for someone just to put lights on and off. We don't need a whole website to turn lights on. Print menu generation, label generation. Yeah, we'll keep those. Website and CMS. This was something that was kind of a toss up for us too. Because we wanted brewery staff to be able to manage their own website. But we didn't want it to be so heavily dependent on our own infrastructure and systems. So eventually we did decide to nix that and move to Wix as the current platform is hosted on there. It's not a fantastic experience from a technical perspective working with Wix. But we are managing to pipe the data that we need to, which is largely the food truck schedule and the tab menu. So these features, I like to call brewery driven features. And now we are truly BDD, brewery driven development. So let's talk a bit more about view tech. Because in this application of what we're doing, we took a step back and we started looking at how we're actually doing these things. So there's a migration path here from rails server interviews to Angular reviews to react views. At this time, we ripped out active admin inches amount to the engine. We kept all the core business logic in our models and services. So we didn't really lose anything. We just needed to basically write our own view and view controllers at that point. I this was written on Angular one. So over the course of the next year or so, we also migrate to react because the Angular map of one, two and four didn't really sit well with us. And react is just so much nicer to work with. No offense. So that also allowed us to take a time to look at the UI and UX of all this. And now we have a much cleaner looking in house software that I'll zoom in a bit. So we have two tabs of journal products on it, only one is actually visible to the customer, because we don't want duplicate information to customer. But bar staff does need to know that hey, we have two tabs of this if one kicks, you can go ahead and use the other one. There's no issue there. So we can toggle that. We can also print tags, pick it, and the edit functionality pops up in a modal window now, opposed to the active admin of having to dig through that review. And that's close to that. Super nice to work with. And it's all reactive at this point. So we click save the propagating through the entire system, and immediately up these platform. So any kind of price and changes or any other like, let's say we mislabeled the ABV, we can't think that in real time and how that pushed immediately. So while we're doing all the UI and UX on the back end, that's great for the people that actually do this. But how many people actually come into third to use this versus to order beer. So we started to refine the menu board a bit. And what we realized is the way that we originally had it was okay, but there's a lot of wasted space in there, especially when we didn't have that many beers on tap, which we did have some days where we were sell through a lot of the beers just because we're a small brewery, we couldn't make that much beer to sustain the demand there. So with the menu board system, we were actually able to test this out in the brewery with different customers and ask them which one they like better, look at how they were perceiving the information, look at where their eyes are going, and kind of see where the hangups were. So over the course of about 24 hours, this was a hackathon, if you would, it was more a refinement day where we all came together and said, okay, we know we have some problems, let's sit down, let's solve problems, let's make them simple, and have some good solutions come out of that. So we worked through about four different menus there. And that was something that was a bit of an eye opener for us where we're always looking at the screen from a 69 perspective without considering what we rotated 90 degrees. And that was actually the solution that we came up with, was having a vertical list of all the taps and pricing. That worked really well. Here's an updated screenshot for a photo from the brewery. And there it is. And that's how it is currently today. That works really well for us. It doesn't have the issues with the white space. Everything is broken out in terms of flagship seasonals, one-offs and partners in terms of just where it's placed on the menu board. So just to recap, we've talked about drafts, the website, some of the back-end tech, but we're missing one core feature here of the brewery. Bottles. Because chances are, if you buy beer, you're going to be buying a bottle not from a brewery directly just most of the time. So there are two types of bottles that give relation to the brewery. They're the ones that there are plenty of that you don't need a lineup around the corner for. And then there are the ones that you need to reserve ahead of time. So how many of you have witted in line for a bottle release? Yeah. It's not a great experience for waiting around the corner, you know, lining up. And it's also not pleasant for the brewery because now we have this massive influx of people. So to handle that, we had a roll-on solution. But let's talk about the common case where we have plenty of these bottles. We don't really care, you know, people line up or not. We wanted something similar to what we have with the menu board, where it can be updated from the same interface and pushed to a much smaller display in the brewery. So we have a iPad just hanging out in the bar top now that has the menu for bottles to go. And that works pretty well for us. It's the same information minus the icon. So it's just a much more condensed version of the menu board smaller and more focused just the bottles. So going to the limited releases now, as I said, we don't want people to be lining up around the corner because then they're just hanging out there. And while that's great for them to get the beer, it's not pleasant for all the other patients who don't want those bottles. They're just kind of everyone's way at that point. So the other way people do this typically is having festivals where you can buy a ticket and you have all day to go explore the brewery or park and whatnot. That didn't really work for us either. So we want something that was a bit more flexible and mindful of people's time that they would be coming to the brewery and also the time that they would take to, you know, enjoy the beer. So we came up with this. It's a reservation system that we were able to roll out different allotments on a daily basis. And let's say we had 200 different bottles of beer that we could sell. We're open from Wednesday to Sunday. Pick up day with Sunday. And we wanted to make sure that we didn't sell out of these reservations on Wednesday. So we split it up. So we had 50 available Wednesday, 50 available Thursday, and you get the picture. Now how do we manage that? You know, without any, you know, backend intervention by the brewery staff. We use some cron jobs. So that way we just keep opening the signups that were available. And with the software, you go and you pick your time slot and you get a nice little confirmation on screen, but also an email saying, hey, go pick up your beer at this time. You pay for that. And that worked really well for people because it also reminded them that, hey, I have this thing to go do. And if we didn't sell out all the beer, it would just be available in Tavern for whoever came by after the last time I saw the course. So if we want to take a look at this, and if you notice the correlation between the bottle branding and the reservation app branding, it's very similar. We want it to be that way. But we also want it to be something that would be extensible and reusable in the future. We don't want to keep building all these one-off apps. So we made that so we can just do a silo sheet change. And going back and forth here, there's really no core differences, right? It's some minor styling tweaks where we change the image, we change the color scheme. We might change the, you know, border edges on the button. But again, that's pretty straightforward and pretty easy to do. So we're reusing this anytime that we do a bottle release now. And that's been working really well for us. So who doesn't like to, you know, have some food with their beer? Bruges doesn't actually make their own food in-house, but we do have a network of partner food trucks that do come by the brewery. And those are on a weekly routine basis. So one of the new tasks now is creating the weekly food truck lineup menu. Or schedule, rather, sorry. And this calendar has to be generated, you know, once a week, at the beginning of the week, and constantly updates. So it can vary between month to month in terms of colors. We also need to have multiple formats. And we need to be easily editable. This is something that we found ourselves wasting a whole lot of time on just because well, going in till a sure once a week, what really wasn't the best way to do this. So we made that form. And now we're using our magic and RVG to generate these PNGs. You can put a Twitter message, post it to Twitter directly, put that on the bathroom displays, the website and download to post Facebook to. When the brewery originally opens, the annex was something that was generally reserved for events now since opened up usually for people to go enjoy the beers and their food in that space. However, it is still available for a reservation. And one of the core issues that we found was the different ways people tried to reserve this area. Someone call, someone send an email. So we ended up putting form on the website so people could just put their request there, we would process them and have our own little workflow around that. So they're full out, they click submit and then they're going to our internal service. The way that the general manager does things doesn't really correspond well with how we have the back end set up right now. So we have that piped into Trello and we're using Stripe to generate payment links so people can go ahead and pay the reservation fees online, as opposed to having come down the brewery or give you credit card of the phone. It's a lot more secure in that respect and that seems to be working well for everyone in that way. This also is something that we're moving away from now with Trello being a third party service, we're actually revamping and rebuilding our own management system of those same cards in React and putting that in our back end software. With these rental requests we also need to generate contracts. So that was something that the general manager was spending way too much time doing filling out this person's name, here's when they want it and that's something that can easily be automated. We have that information, it's a pipeline from taking the information from the form, putting it in PDF. Why do we need a human to do that? That's something that we can automate. We won't be working smarter here, not harder. So now it's time for another hackathon and this happens actually about a month and a half ago. And this is a new cycle where we want to do some physical stuff and some purely digital stuff. So let's have a look at the cold room. We don't get tours at Brugelman but if you ever get a chance and you're invited down to take a look at the cold room you'll notice that it's something that was built by Matinee so we didn't go out and pre-purchase one which is kind of cool. It kind of goes to the DIY aspect of the brewery. So we have a bunch of kegs outside, there are more kegs inside the cold room but there's also a piece of paper on the door. Any time a keg goes in or out someone needs to initial that okay I made a change here and it was with this beer. The initial request was okay can we generate that piece of paper and have printed out? Sure. Okay that's easy. By the end of the month now we have four pieces of paper that we need to reconcile and let's say we have multiple locations or we're going to start generating all these different pieces of paper that seems pretty wasteful. Where we want to do inventory management why don't we do inventory management instead of you know fixing this small problem let's tackle a big problem. So these are the new keg collars and you have the label there that gets generated you also have a QR code now that gets generated. So now we can actually track where beer is and this is a much more extensible system where it's not limited to just beer. It can be other inventory management it can be cases of growlers it can be merchandise that's flexible that's extensible so let's say we had a second cold room now we don't need to worry about that we can just reuse this system. One of the other projects we have then works is a mobile app I'm not going to speak towards that today but that is something that we were definitely working towards and should be out hopefully in the summer we did use Flutter for a quick and dirty kind of prototype of it and it worked pretty well. So I think the end with some eye candy here with the screensaver that we currently have running in the annex. So we have a nice high def screen and projector in the annex but it was always blank when there wasn't sports on. So we want something that was some that was pleasant to look at but not overbearing and distracting to the customers. This will also be hooked up to the back end system as well as untapped through a you know separate Rails app we're going to break that out but essentially we're going to be able to push events that happen in the brewery people drinking beer and have it affect the screensaver. So if you're ever there and you see different variations of the screensaver you'll know someone did something to cause that and that's kind of cool thing where as an art installation that is indirectly influenced by people drinking beer in the brewery. So yeah at this point I'd like to talk about a limited Russian April Stout that we released last February called the end. So that is Brugelman and Nutshell. We're a very DIY friendly brewery where we'd like to build around solutions that fit our needs but also think forward enough and really try to ask ourselves what can we do and make this better without over complicating it and keeping things simple. Thank you for coming. At this point I'd like to open up to questions. All right, well thank you.