Silbo Episode V: GitLab Strikes Back

Today was all about new features for the bot. I updated the /search-user [USER ID] function from Friday so that it would better handle errors and improper usage, and created /nearby-refs [ZIP CODE] [SPORT] command to find users living within thirty miles of a input zip code, who are credentialed for a particular sport. The database code behind this one is pretty complicated, because it actually calls a second database that holds latitude and longitude information for zip codes, converts the distance to miles, then checks if that distance is under 30 miles. There were a few errors where the correct information wasn’t being pulled from the database but it only took a few minutes to find out where the problem resided.

At this point I realized that the layout and readability of the code was getting particularly poor, so I spent a while time on re-organizing it to flow better, commenting the functions fully, and adding more user help commands.

The rest of the day was spend adding more commands:

/silbo: Returns a list of all commands and their descriptions
/predict-power-users: Returns the number of new power users if all games are run as they are currently filled
/predict-active-users: Returns the number of new active users if all games are run as they are currently filled
/checked-game: Returns the name, email, and phone number of all refs to have checked a specific game
/open-games: Returns a list of all open games, their ID number, their sport, and their zip code

Silbo Day 4

Today was super relaxed! We started an hour later than usual – at 10 – so I got to sleep in a little (always nice). At the office we ate a small breakfast, then did a little work while we waited for everyone to show up. I focused on adding a few new slash commands to the Slack command list and creating backend functionality for them, but I only got one finished during the hour it took for everyone to show up. The one I completed is a user lookup query, where you type

/search-user [USER ID]

and it searches the database for anyone with a matching ID number by running the SQL command

SELECT name, family_name, email FROM user WHERE user_id = ‘USER ID’

We then spent some time playing a teambuilding Jeapordy game with questions drawn from fun facts we had submitted that morning.

After the game we headed out to a special Olympics baseball tournament where Silbo was providing refs to about half the games, and spend the afternoon watching them play. A few employees were also volunteering as umpires for the game, so we got a few marketing pictures of them.

Silbo Day 3

My focus today was on the internal database tool. I got the serverless AWS backend setup with an automatic GitLab database runner, but encountered a few problems regarding python default dependencies not installing correctly. We solved this by first changing from installing these dependencies during the deploy stage of the pipeline and instead changing the deploy image in the .gitlab-ci.yml file from a default python one to a specialized image hosted by nikolaik (specifically python3.7-nodejs8). Second, there were a few dependencies still left out of the nikolaik image (such as pyscopg2), so these dependencies were simply added into the GitLab project individually. After a quick lunch, I moved on to removing the AWS and SQL database login credentials from the publicly visible parts of the GitLab project and changed them to being injected into the pipeline at the deploy stage as environmental variables and referenced in variable name form when the serverless application is launched and when the python script attempts a login of the SQL database. By the end of the day this was all finished, and the first few test commands were outputting!

Silbo day 2 (left on read)

I spent most of my day continuing work on the internal database query tool. It’s test server is complete, and the connections to the messaging application and the database are secure. All I need to do now is finish the internal connections between the pieces of code.

I also attended a meeting between Silbo and District C, a training and educational company. The work was partially about more ways to involve high school students with companies for flexible problem-solving teams.

The highlight of the day was either going to lunch with the product development team to a breakfast restaurant (at two in the afternoon) or playing with both the office puppy and the CEO’s dog.

Silbo Day 1 – Sir the Puppy!

My day began as all others do: unexpectedly. I walked in, expecting a boring office – only to find one full of energy. People talking, laughing, and having fun – not to mention the puppy (named Sir) (pictured). I began by meeting my two primary hosts – Brendan Zulich and Paul Dorney – and discussing what I was bringing to the internship, and what I wanted out of it. I got a few promotional videos, some internal training information, and was on my way.

That afternoon I attended the starting all hands meeting. It was a bit of a downer, discussing the financial future of the company, but also extremely motivational. I can say, without embarrassment, that I left it ready to give the hardest quarter of my life – despite not being paid.

I closed the day by working on an internal tool to make it easier to view analytics by connecting their communications tool – slack – with their database allowing users to create and submit queries without accessing the full database.

Skip to toolbar