This is the blog, but if you want to know more about me and my projects, check out the Projects and About pages.

Not So Unlimited Vacation Policy

I was catching up on Marco Arment’s writing ( recently and his link from December 14th caught my eye. Arment links to a piece talking about the lie that is the common start up benefit of “unlimited” vacation days (From Open (Unlimited) to Minimum Vacation Policy). It’s a good piece and certinaly worth a read but Arment’s comments are what specifically caught my eye:

I’ve never heard of an employer in the tech business with one of these “open” vacation policies whose employees actually took as much vacation as they would have in a traditional accrued-vacation-days policy.

What usually happens instead is that the workaholism culture in tech startups takes priority, and it becomes politically unwise to ever take a vacation, especially a truly offline one.

It would seem Marco and I need to have a cup of coffee together some day soon because my team and I took plenty of vacation last year. I myself took roughly 3 weeks, which is about what I’d imagine I’d get if I worked at a Google (for example).

Lets get back to my team in a minute.

First, we should acknowledge the reasons why start ups do the whole “Unlimited Vacation” policy:

  1. It sounds like a really cool benefit so it helps in recruiting. This is especially true when pulling in veteran developers that currently work in more corporate environments.

  2. It lessens HR responsibility by not having to worry about keeping yearly totals of who’s taken how much vacation.

  3. It’s easier for the company’s finance team because the company doesn’t have to keep as much cash on hand. The reason is that the standard 2-week vacation policy usually allows for a departing employee to get those days back in monetary value at the end of the year. When you have a “take what you need policy” you don’t pay anything out because no one has any days “left over” at the end of the year.

  4. It usually means that the average employee takes far less vacation. When you give employees a set amount of vacation days, they are acutely aware of that total and will have internal and external (read: family) pressure to make sure those days get used. As stated before, no one wants to be the person that takes the most vacation, so with an unlimited structure it’s a race to the bottom of used vacation days.

All of that makes sense for the company as a whole, but #4 in particular makes less sense for the team leader/manager. No one wants a valued employee to burn out and yet that’s exactly what can, and does, happen, which is exactly what Marco correctly laments. There is a solution however: As a manager, don’t let it happen.

Back to my team: As I stated, I took roughly 3 weeks of vacation in 2014. I don’t keep track, but I believe most of my team averaged roughly the same amount. We also had a huge crunch time later in 2014 when my team was under the gun to release a brand new stats dashboard (we made it) so it’s not like we’re not doing the usual “start up stuff”. So how one make sure their team takes an appropriate amount of vacation time throughout the year? Easy:

  1. Take some vacation. I’m talking to you! If you, the manager/director/CTO, isn’t taking any vacation, how the hell do you expect anyone on your team to do anything different?!

  2. Tell the crazy workers to take a day for themselves. There will always be those hard core folks on your team that will work non-stop through a deadline…and then after the deadline…and then keep going…etc. After you guys hit a big milestone or meet a deadline, walk up to them, congratulate them, thank them, and then tell them to find a day or two next week to not come in. Don’t tell them to not come in tomorrow because everyone can always find an excuse that they need to be in the next day, so tell them to find two days next week and block on their calendar. Plenty of time to plan a head with sprints and deflect any new meeting requests.

  3. Reinforce that people shouldn’t work while on vacation. Obviously, emergencies happen and you have to be able to cover them when they happen, but outside of that, no work. Now obviously there are lots of people in this industry that genuinely like to work. That’s great, but over vacation tell them not to. If they absolutely have to work on something, I tell my teams to work on their own projects something that’s uses totally different tech than what we use at the office, and if they don’t have any ideas for new projects then use the time to write up a blog post about something awesome we did at work, or take some useful code they created for work and flesh it out in to an open source library (with approval). Just don’t do tickets!

There’s a lot more to discuss here, but for now I’ll leave it at this: There’s too many good reasons for companies, and especially start ups, to stop with the “Unlimited Vacation” policies but at the same time having your team burning out no matter how many snacks you keep at the office will look bad. As always, it falls on technical managers to make sure we take care of our team and ourselves.

That Has to Change

The New York Times has a nice, but short, profile on the CTO of the United States of America and the lede stood out to me in particular:

President Obama’s top technology adviser cringes when she hears highly educated adults say how bad they are at science and math, particularly when they do so in front of children.

“That has to change,” the adviser, Megan J. Smith, firmly told a group of teachers at the White House not long ago. “We would never say that about reading.”

No they wouldn’t. That’s gotta change.

A Project Site Reboot

I’ve decided it’s time to reboot my personal page and you’re looking at the result of that. Over the last year I’ve done a ton of personal projects (I’ve also done some great work with my team professionally, here’s the blog for that: I figured it was time to have a site that listed the projects I’m most proud of and give me a place to blog occasionally about various technical issues.

Check out my list of projects on the Projects page and reach out if you have a cool project to work on or just want to chat.

On St. Louis, Ferguson and Michael Brown


When starting an opinion piece its good practice to find a sliver of common ground to start from, so let’s try this:

People are fallible and have agendas. Not all people have the desire to push their agendas on to others, but some (many) do. When that subset of people are in positions of power, either real or perceived, they will then have more opportunity to inflect their agendas on to those that are in a lower power group. That act is wrong. So wrong that any time there are situations where there is even a possibility of this type of indiscretion, those situations should be looked at carefully, researched throughly enough to make a clear judgment, and acted on accordingly. Of course, any indiscretion is, by definition, wrong but there is and should be an extra cost for doing wrong on a less powerful group regardless if the power in question is earned or inherited.

Do we agree on that? I would think so.

I think we can also agree that the murky details around the Michael Brown shooting in St. Louis County are enough that they warranted a deep investigation no matter race or location. When you have one party claiming that someone was shot by a person sworn to protect the community, that’s enough for an investigation. When you learn that person was shot multiple times, that amplifies the investigation. When you learn that there’s a chance that person may have had their hands up in surrender, that amplifies the investigation even further.

Do we still agree?

…and when you find out that the police officer was white and the person gunned down was black, should that also amplify the investigation? Yes, it should.

I’m sure I lost a few of you right there.

Lets go back to our first agreement. People in power shouldn’t inflict harm on those in less powerful groups and if they do, or even if it only seems like they might have, we as society should take a hard look to find out and if true, make the punishment even more harsh. In this particular case we have two power groups in play: police officer vs citizen and white vs black. Crude terms to be sure, but that’s the situation. I think we all agree that the police are in a higher power structure than any average citizen (maybe I should have started there) and yes, particularly in St. Louis, the average white citizen is in a higher power group than the average black citizen. Not because one is better than the other. The power in this case wasn’t earned. It is simply a (too) slowly fading relic of the past that is still held up by facts such as the average black St. Louis area citizen is more poor than the average St. Louis area white citizen. The clear high-level facts give a decided power advantage to the shooter. With those truths and our previous agreement in mind, why wouldn’t we want to give this particular shooting a closer look, talk about it more, and have it featured on the news more prominently that it may have been otherwise?

A common refrain is something along the lines of “If the opposite situation happened, this wouldn’t be getting so much attention!” to which they mean if a black police officer shot a white citizen this wouldn’t be getting as much attention and I agree to an extent. The nature of the shooting, as detailed above, is still just a horrible and curious regardless of race as there is still a level of abuse of power, but only one, and thus, less attention would be garnered…but that situation isn’t really the opposite is it? You can’t cherry pick what is opposite and what wouldn’t be and the true opposite of this situation also means you have to flip the related power groups as well. The actual opposite would be a black officer shooting and white citizen in a location where the average white person is less well off. In that case, the true opposite, I think the outrage would be, and should be, exactly the same.

Our early agreement on powerful groups doesn’t have to stop here. As soon as the resulting protest started gathering more and more steam, that group gained in relative power and soon the folks in that group with agendas used that power to loot, assault and terrorize the people of Ferguson. Later on as police presence grew to contain the burgeoning riot, the power flipped back to the police and we now see some of them terrorizing people with excessive force. It never ends. Even as the area rebuilds, it will still be happening in St. Louis and all over the world. It will always be a hallmark of human nature, but that doesn’t mean we shouldn’t talk about it, pretend that all groups are equal in society and that no one ever exploits those differences in power. We should always be looking out for the chance that someone could be taking advantage of the situation. No, this isn’t a battle that can be won, but you can certainly lose, and the quickest way to do that is to look the other way. St. Louis has been looking the other way for a long time, ignoring the nagging pain, and now, after one quick moment the pain has exploded and paralyzed the area.

By ignoring the issues St. Louis lost, but the fight isn’t over. The opportunity is there to both learn from these horrible events and start dealing with the issues directly, or to simply clean up just enough so you can go back to ignoring it. I hope St. Louis makes the right choice.

Sentence Saver for Beats Music


Ever since I made my little Clojure wrapper for the Beats Music API, I was on the lookout for a companion project where I actually use the library the make an app. I know, a totally 100% novel idea.

I just deployed a little web app I’m calling the Sentence Saver for Beats Music, and it solves the problem of being able to enjoy the Beats Music “The Sentence” feature (basically their radio feature) while offline by giving you the ability to request a sentence and then having those tracks made in to a playlist. That playlist can then be optionally saved to our local device and then go ahead and board that plane…or enter that military missile silo…or go to your grandma’s farm…or other places that don’t have or allow internet access…also, probably Denny’s.

Update: I also threw in a little feature that I’m still amazed Beats doesn’t have in their app (Update x2: They do have that feature, but they stashed it under the playlist filter menu.)…the ability to delete playlists! Flip to the Playlists section of the app to see all of your playlists and delete any of them you want.

The app is a self-contained Clojure app with the API and HTML served from the same jar file. Not something I usually do, but I wanted to try for this project. The UI is done with Bootstrap, the UX with ReactJS, http-kit and compojure for the web server, and of course I’m using beats-clj for the API interface. It’s all pretty simple and it’s open sourced on GitHub. The app is also 100% mobile ready and functions wonderfully as a standalone web app on iOS (using the save to home screen feature).

Please shoot any bugs or requests to @thatmikeflynn.


mikeflynn @ GitHub thatmikeflynn @ Twitter