So yet again, I’m here to answer the question that’s definitely been on everybody’s mind — what did I do today? The short answer? I wrote a lot of code. The long answer? Well, that’s probably why you’re actually reading this.
[TECHNICAL STUFF WARNING] (you should probably be accustomed to it by this point)
Remember Pankbot? Well, the test workspace was finally set up, so I was able to test my changes and ensure that they didn’t break anything before they were moved onto the prod environment. I don’t actually think I’ve explained how most development pipelines work — I’ll quickly do that then. (This will be fairly Pendo specific, but a lot of other places do it this way as well) So pretty much every company uses something called version control (VCS), a piece of software that allows for users to, well, keep track of different versions of software. There are many flavours of VCS, but most companies use what is known as Git. So the actual Git software manages local repositories (codebases) on someone’s computer — that means that if you want to share the code with someone else, you have to use another service. That’s where websites like GitHub and GitLab come into play, basically they host a remote version of your git repository so that it can be accessed and manipulated from any computer. When a company makes software, they often want to make sure that it consistently works — if you’re making a bunch of changes and testing it, then there’s a pretty decent chance that it will not consistently work. Branches exist to make it easier to manage that — most repositories have a master branch as well as some kind of working branch. (I won’t go into too much detail here but basically you can move and ‘merge’ code between various branches) Basically, you keep the functional, (hopefully) bug-free codebase, prod(uction), in one branch, test and stage code to move it to prod in a another branch, and keep a working copy of the code in another branch. Pretty logical, right? I hope you took notes because I’m definitely going to go over this again later as it directly relates to the other project I’ve been working on.
A working Pankbot.
But yeah, back to Pankbot. I spent a decent portion of last week working on it, and it was finally ready to be tested and be staged to be deployed onto the prod server. On Friday, one of my coworkers set up the testing environment, so today I finally got to run the code and see if it actually worked or not. Fun fact — it worked. I mean, to be fair, most of the changes I did were pretty small and were just small changes to the API calls being made, but I’m quite happy that it worked — I mean, jumping into an ~1500 line codebase and being told “hey there’s an issue somewhere in here” is pretty hard IMO. But after rigorously testing it to make sure that it passed expectations, I finally got to run the command to deploy it to prod, which is exactly where it’s sitting, idling, right now, just waiting for somebody to use it. Fun!
So it turns out I’m bad at remembering to take photos. Have a street view photo of where the Ion Chefs ate.
In more human friendly news, two new interns joined our team today! Because they just arrived today, they got to do a lot of fun things, such as getting backpacks and other Pendo swag (wait i didn’t get anything) and have a Pendo funded lunch at a nice Italian restaurant next to our workplace (why not me ;(), but they also got to attend the super fun HR entry meeting (but i missed that. was it worth it?) I did get to talk to one of them at lunch, and it turns out that he’s actually from Utah, which I found to be really neat, as it’s quite cool that I’ve been able to work with people from all over the world. Thanks to Pendo for that! I also got to meet a former person from another FRC team, who made it to worlds a few years back. Sadly their team didn’t have the required funding to stay alive and died.
But on a more positive note! Statusbot! Thanks to the amazing nature of the open source community, I was able to quickly and efficiently find all of the libraries I’ll need to use to make Statusbot work! I started working on writing some prototype code to make sure I understand the API as well as test out some ideas that I’ve had. One of the things I’m using is GraphQL, but I see that I’m already well over the word limit again, so I’ll save that for next time. Until next time:
~John