October 03, 2013

Free Your Data

A couple years ago a colleague and I started hacking our enterprise. We wanted a developer friendly way to ask questions about SEP and the people who work here.

We called it the SEP API.

Something like:

$ curl GET /hired/jcfuller

200/OK
{
  username: 'jcfuller',
  school: 'Rose-Hulman',
  hiredate: '2008-02-04'
}

After many months of tracking down data sources (not the HR file cabinet) we had some data, so I wrote up a little sinatra app to serve it.

get '/hired/:username => [username]
  JSON.load('data.json')[username].to_json
end

In the meantime, we harvested some data from other sources too, like Active Directory so we could do things like:

$ curl GET /sepeer/jcfuller

200/OK
{
  username: 'jcfuller',
  email: 'jcfuller@sep.com'
  title: 'Lead Software Engineer',
  first: 'Jonathon',
  middle: 'C',
  last: 'Fuller',
  extension: 1234
}

So what’s the point?

We have a treasure trove of data about the company that needs to be surfaced and talked about. Once this data is in a developer friendly format (e.g. JSON web API), we can make anything we want from it. Like the following dashboard that now lives in our commons/breakroom…

And now we can do things like:

  • build an app (and we did!) containing the company directory that you can call or text anyone from your smartphone
  • build a trivia game that helps you match names with faces
  • tell recruits that 49 of our 106 employees attended their school (Rose-Hulman)
  • or that our retention rate is 96%
  • play with new patterns, practices, tools, and technologies that we don’t get to use every day

Culture hacks like these become increasingly important as our ogranization continues to grow larger. It helps us to keep SEP feeling like a small company and to keep it so we can all know each other, and remember where we came from.