Pend(ay tr)o(i)

So, I heard that the people at SAS had M&Ms on Wednesday, that’s pretty cool. But you know what’s even cooler than that? Having access to M&Ms, chips, gummies, coffee, and multiple bowls of candy every day. But yeah, so it’s time to answer the daily question — what did I do today?

the battlestation

My desk soon to be battlestation needs a bit more RGB lighting. I’ll figure something out.

Well, as it seems that I’ve pretty much been given free reign to work on the Slack bot project at this point, I spent most of my time working on parts of it. To start off the day, I continued to work on debugging this one bot that’s been having some, um, interesting issues (to say the least).

A bit of background on Slack Bots [TECHNICAL STUFF AHEAD]

  • So Slack has what’s called a REST API which is driven using something similar to webhooks, meaning that for the bot to do anything, Slack’s servers have to send it a command.
  • That makes it pretty easy for the developers of the bots, as it turns out that Slack’s servers send a lot of useful information about any command issued.
  • One of the key features of Slack is the ability to enter a private channel with anybody in your workspace, or server, which no user should be able to enter.

Now, one of the things that the ‘bot’ I’m debugging is supposed to be able to do is enter and interact with people in private message rooms. Normally bots should automatically have that permission enabled by default, as they aren’t technically a user. Here’s the catch: the ‘bot’ that I’ve been debugging isn’t actually a bot — it’s a workspace app. There aren’t really that many differences in terms of what it can practically do in theory, however the tricky thing is that an app is actually given two ways to access Slack: one way that treats it like a bot and one that treats it like a user. Now the thing is that the bot has been using both methods, meaning that sometimes it’s able to enter private channels and do things, and sometimes it isn’t. So basically what I had to do was figure out why that was the case. I mean, evidently I figured something out given I was able to explain the problem, so I implemented a pretty simple solution — just make it behave like a bot. I’ll save you from the technical details (ignoring the rest of pretty much every other blog post I’ve made), but I just had to unify all the methods sending data to Slack and make sure they were using JSON to be treated as a bot. Interestingly enough, I actually traced the issue back to an upstream library, meaning that it wasn’t really the fault of whoever wrote the bot originally (who I’ll talk about in a bit), but it was partially an issue caused by something someone else wrote and pushed into a reputable lib. Assuming I interpreted the problem correctly, I might end up writing a fix for that particular piece of (non-Pendo) open source software, meaning that it could impact hundreds of other users and companies. Yay open source software! But yeah, even though I did a lot of that on my own, I still had help from someone at Pendo — Stav. Stav’s an employee that used to work from the Pendo location in Israel, but she moved to New York to another Pendo location. So, for the most part, I’ve been communicating with her online. I’ve found the whole online communication of Pendo really interesting, in that it seems to be that most employees communicate through Slack, which makes sense given the startup nature and spread of the company.

programmer street cred

Here’s some programmer street cred. I might need to set up a GitHub organization for the robotics team to increase my quantity of it.

But just to cover a few other things that I did throughout the day:

  • I attended the daily stand up meeting, presenting what I did and learning more about the company in the process
  • Pendo had a community lunch event which I attended, where they had a sort of ‘make your own’ food bowl type thing. IMO it was pretty good food
  • I worked a bit with Google App Engine while searching through log files for potential bugs. I’ll probably look into dumping some of my money into that as it seems like a good product
  • I used Golang and have continued to increase my obsession with Go

If anybody is willing to spot me some money to buy a stuffed gopher, please give me money. I really want one now, and it looks like a lot of people have them at Pendo. But yeah, for real I would love to get one of these. I almost forgot to mention this, but my supervisor mentioned that he’d be able to tell if the internship was successful if I was persuaded to use Go in the future. Let’s just say that that target has been met pretty early.

~John

go-meme pt1

Leave a Reply

Your email address will not be published. Required fields are marked *

Skip to toolbar