Imagine it’s your first day at a new internship. At the same time you show up, the postman delivers a Kickstarter project. Coincidence? Or your first project?

For Paige, our engineering intern, the LaMetric clock provided a fun start here at VictorOps. Here’s what she had to say about the project…

lametric logo

Working on the LaMetric has been a fantastic introduction to VictorOps. Not only did I get introduced to the code base, but I also got to know the ideology behind the company.

As a computer science student, I’m no stranger to how stressful fixing something on a time crunch is, and as a Residential Advisor at the University of Colorado in Boulder, I’m no stranger to getting woken at 3am when something goes wrong. When those two things are in combination, it makes for quite the demanding situation. The passion that the people here at VictorOps have for helping people in those circumstances is absolutely incredible.

When I was told that my first project was to integrate the LaMetric smart clock with VictorOps, I was incredibly excited.

When starting off with the LaMetric, I went straight for the whiteboard (which wasn’t difficult because literally every square inch of VictorOps’ wall is a whiteboard) and started sketching out what I needed to accomplish. After talking with several developers here, I decided that opening a websocket with VictorOps and using a server to push data to the LaMetric was the best way to go.

What better way to start off with project than creating a server whose sole purpose was to spit out the most famous two words in software engineering history?

paige_post1

Obviously I had a long way to go from that simple server to creating one that would work with VictorOps and the LaMetric. There was definitely a lot of trial and error, but, whenever I got stuck, I didn’t have to look too far to find a developer that would take the time to help me with, and ultimately teach me, the concepts I needed to know.

On top of being new to VictorOps, the programming language was completely new to me. I had never worked with Javascript and the Node.js framework before. This was my first introduction to websockets and passing data between applications as well.

After getting hooked up with VictorOps testing portal and playing around with VictorOps’ websockets by sending data back and forth, I started working on a Node.js server that would communicate with VictorOps’ backend. I opened a websocket with a login request, allowing the server to constantly listen to the data that was received from VictorOps.

paige_post2

I then started digging through all of the resources on LaMetric website so that I could connect it to the smart clock. On the LaMetric’s end, it’s only takes a simple post request to push a string to be displayed on the LaMetric. It this case it pushes whatever data is passed to the function:

paige_post3

One of the most  helpful things for me in this project was going through code reviews with other developers here. It’s been invaluable drawing on their experience about good practices for writing code. Whether it’s specifics on how closures work in Javascript, or the philosophy about writing code and how it can be a work of art in itself, I’ve learned so much from the other other developers here. Throughout this project I’ve had the incredible opportunity to work with different teams throughout the company and gain a better understanding of the entire VictorOps platform.

I was working on a very limited schedule (two part time jobs and a full course load at school can get a little hectic), but VictorOps has been a great place to come in and be welcomed to the community. I’m excited to hit the ground running and see what I’ll work on next.

It’s no fun being woken up by a page on your phone, or now an obnoxious alarm clock, in the wee hours if the morning. It’s been incredible to come into a culture that’s dedicated to making that entire process easier and less stressful.

Unfortunately, due to how new the LaMetric is, it doesn’t offer user authorization, so if you want the VictorOps App working on your LaMetric clock, you have to make your own.

But never fear! The project is now open source. You can find the code and a tutorial on GitHub, along with a little demo below:

However, perhaps a warning should be given. What’s going to stop you from treating it as you do a normal alarm clock, acking the alert, as you would the snooze button, and then immediately falling back asleep?