Ownership and Intention

Husmus logo

tl;dr: I’m joining Husmus as their Director of Engineering.

I never expected to be in consulting for over a decade. When my wife and I moved to Richmond, IN in 2010, I didn’t really know what I was going to do. I got a job at a small local web shop and stumbled into a consulting career. When that job soured on me, I stumbled into being an independent consultant for about a year. Then I stumbled from there into an eight year stint at InfernoRed Technology.

I don’t regret how my career has gone, but it certainly hasn’t been intentional. Even my first job out of college was predicated highly on getting something as close to my now wife as possible. We were still two and a half hours apart, but that was way better than the distance we dealt with through college.

So, when I decided to start job hunting in April, this was really the first time in my career that I was searching for a new job with intention. I was still working, so I wasn’t under financial pressure to find something immediately. I was pretty burned out on consulting. I had spent a decade jumping from client to client, never feeling like I had any real long-term stake in the product or codebase. I knew that I wanted that to change, but wasn’t exactly sure what form that would take.

I ended up applying to twenty-one different companies. Initially, I was applying directly with most of them, but that shifted more towards recruiters over time, either in-house or external. There was definitely a tendency to focus on smaller product companies to try and get that sense of ownership I wanted. I also really wanted to get into Elixir more if possible, but that part didn’t end up working out.

Of those twenty-one, I had interviews with thirteen. In an approximately one and a half month window, I had thirty calls, both introductory calls with recruiters and more formal interviews. It was draining. Being able to work full-time while job hunting was definitely a privilege, but spending a couple of hours most nights reading job postings, writing cover letters, filling out applications, prepping for interviews, and completing take home exercises was a lot. I’m not going to miss any of that. Neither will my family. I greatly appreciate my wife’s patience over the past two months as she barely saw me in the evenings.

That’s a whole lot of background to get to announcing that I am joining Husmus as their first employee and Director of Engineering. Working for a very early stage startup was something on my radar when I started my search, but I didn’t actually expect it to pan out the way it did. I’m looking forward to having both literal ownership in the company and emotional ownership in what I’m building.

I greatly enjoyed my time at InfernoRed Technology and want to thank everybody there. I got to work with so many amazing people over the years. I knew that no matter the client, I could trust that everybody I worked with at IRT was going to get the job done. Not being able to sit down at my desk every morning and talk to them on Slack is something I’ll definitely miss.

And a huge thanks to the founders of IRT, Josh, Scott, and Art. Throughout my entire interview process they were open and supportive. It’s a sign of great leadership when they continue to support you and ask how they can help even as you’re trying to leave.

I’m looking forward to the next chapter of my career and making it the first one I’ve authored with intention.

How I Focus: Cold Turkey

Cold Turkey Blocker Logo

In my last post I talked about how I use Forest to stay off my phone when trying to focus. In fact, I just started a sixty minute block to help me focus while working on this post. However, that just keeps me off my phone. What about all the magical distractions the internet can offer as I write this on my laptop? For that I use Cold Turkey.

What Is It?

Cold Turkey is a distraction blocking tool. It gives me the power to fight against my tendency to fall down the internet rabbit hole and not actually get anything done. My capacity to get lost in Wikipedia (or YouTube (or Twitter)) is boundless. Cold Turkey prevents those tangents from even happening.

Block Lists

The core of Cold Turkey is its ability to block lists of websites and apps. I currently just have one list called Distractions, but you can define multiple lists if you prefer. You also have the power to add exceptions. For example, I block youtube.com, but I’m also a YouTube Music user (R.I.P. Google Play Music). I’ve added an exception for music.youtube.com so that I am still able to listen to music throughout the day.

One downside to how Cold Turkey works is that block list is based entirely on what is in your browser’s address bar. This means that I can still be distracted by YouTube videos embedded in sites or that get posted in Slack. Sometimes this is useful, but overall it’s more of a negative for me. I have used other tools in the past that modify your hosts file, but always ended up having issues. The downside of some stuff getting through is outweighed by having it work reliably.

The ability to block applications is also really helpful. My Mac currently doubles as my work and personal machine, so it’s helpful to block things like Steam and Discord during work hours. You can also block specific binaries or the contents of specific folders from running, but I haven’t needed to use that myself. Blocking things in just the Applications folder has been good enough so far.

Scheduled Blocks

I’ve worked remotely for over eight years now and one way I keep a strong separation between home and work is by working a pretty strict 8-4 schedule. Cold Turkey helps me out by supporting scheduled blocks. From 8-4 every day, my Distractions list is blocked.

It’s difficult for me to work around this. I have it locked down so that I cannot turn it off or remove anything from the list during this time. That’s important for me, because it reduces the temptation to make an exception just this one time.

I’m not limited to just the scheduled blocks though. I can also turn on a block for a period of time ad-hoc. I often do this during non-work hours when I’m trying be productive on something like a blog post.

Wait! It Costs Money?

Fry from Futurama telling someone to "shut up and take my money"

Yes. I’m a software developer and I believe that other software developers should be paid for their work. It takes time and effort to make a tool like this work reliably across operating systems as those systems change. Don’t be shy about paying for software that is valuable to you.

You can use the free version to get a feel, but application blocking and scheduled blocks are central to my usage. That’s easily worth $39 to me.


Cold Turkey Blocker is arguably the most important productivity tool I use. My capacity to be derailed by the many wonders the internet offers is immense. If, like me, you struggle to resist its siren call, then give Cold Turkey a shot.

How I Focus: Forest

Forest app icon

I have worked remotely from home as consultant for over eight years now. Keeping focus during work is a constant struggle for me. I’m endlessly inventive in coming up with new ways to distract myself from doing work when I don’t want to. One tool I use to combat this is Forest, a distraction blocking app for your phone.

Blocking Apps

The big selling point of Forest for me is the ability to block apps for up to three hours. By default, it locks you out of every app on your phone. However, I use the allow list feature to allow certain apps. For example, I use Remember the Milk to keep track of projects and todo lists. That is productive work I can do with my phone, so I allow it.

The app blocking used to have some serious issues on Android, but recent updates have made it very reliable for me on Android 10. It used to get confused by notifications and and fail block timer. That is no longer an issue for me. I have no experience using it on iOS, so your mileage may vary.

Pretty Little Trees

Screenshot of weekly progress in Forest app
Some of these things may not appear in an actual forest.

My kids love how Forest gamifies staying off my phone by encouraging me to plant an adorable forest. For every 30 minutes you stay off your phone with a timer running you get a new tree. They love to see what I’ve grown recently and they even encourage me to grow more trees. That’s a win-win for them. They get to see more pretty trees on my phone and I’m not distracted by my phone, helping me be a more attentive father.

You earn coins every time you successfully complete a block, which you can then use to unlock different types of trees and bushes. The art style is whimsical and they’re not afraid to veer into things that are tree-adjacent at best. For example, the screenshot above has both candy and spirit trees alongside more realistic plants like apple trees and sunflowers.

Other Features

There are some features that might be useful to others that I do not use.

First, they have a Chrome extension to block websites. I use Cold Turkey Blocker for this, so I haven’t tried the extension. It seems worthwhile to try though if you like Forest and don’t currently use any other website blocking tools.

Second, you can go nuts with tags and notes on your block sessions if you like. I tried to do this a bit. I had tags for work, reading, side projects, etc. I constantly forgot to use it though, so my data was a mess. I gave up on it, but if keeping track of historical data is your thing then this feature is for you.

Finally, you can spend your virtual coins to plant real trees. Forest partners with Trees for the Future for this. I appreciate the sentiment, but I’m skeptical of the effectiveness of this kind of activism. It’s there if you want it though.


Forest is an important part of how I work on a daily basis. The combination of my phone being upstairs and an effective blocking tool even if I go upstairs keeps me off my phone when I’m trying to be productive. And the flexibility of the allow list lets me use my phone strategically when I need it for productivity. Plus, the in-app Forest you grow is adorable. If you, like many, are struggling with phone distractions, give Forest a try.

RSI & Keyboards

I’ve suffered from RSI since 2003 and have used a variety of keyboards over the years to varying results. I was originally diagnosed with tendonitis in both wrists. Over the next five years my symptoms moved all the way up my arms into my shoulders. Your nerves branch at the shoulder down your arm and your ribcage. On bad days, my nerves were so inflamed I could scratch my elbow and it felt like somebody was touching my side.

I’ve since gotten more than 90% better through drastic diet changes, but until I reached that point I tried a lot of keyboards. If you have suffered from RSI or just like trying out weird keyboards, read on.

Microsoft Natural MultiMedia

Well-used Microsoft Natural MultiMedia keyboard

Let’s be clear, the Microsoft Natural MultiMedia is trash if you are suffering from serious RSI, but it (or something similar) is what many people start with. It’s about the only “ergonomic” option you can find in brick-and-mortar stores. I got one in college (sometime in the 2004-2005 range) and had good results initially. That is a pattern with many ergonomic devices. It isn’t so much that the device is ergonomic; it’s that you are exercising different tendons/ligaments/muscles around the strain. Different angles and positions stress different ligaments and tendons, so your injuries get some much needed relief. Unfortunately, for many people the underlying cause isn’t being treated and they eventually develop similar problems with the new keyboard.

Kinesis Advantage Pro

Well-used Kinesis Advantage Pro keyboard

I graduated from college in 2007 and my RSI quickly got worse with a 40 hour work week. The Microsoft Natural MultiMedia just wasn’t cutting it anymore, so I swallowed hard and spent $260 on a Kinesis Advantage Pro.

The transition was rough and I was worried I had made a terrible mistake. I remember huddling over my desk in more extreme pain than ever after only a couple days of use. I stuck it out though and, after an adjustment period (and a lot of ice), it served me well for years.

The layout of the Advantage Pro is amazing. Your thumbs are amazing appendages, but the standard keyboard layout wastes them by only using them for the space bar. The Advantage Pro moves a bunch of commonly used keys to two keypads in the center of the keyboard. This lets you use your thumbs for Backspace, Delete, Super, Alt, Home, End, Page Up, Page Down, and Space. The key wells are spaced far enough apart that your arms can stay naturally at your sides and the keys are stacked vertically instead of staggered. This required some adjustment, but was amazing once I got used to it. The keys are Cherry MX low-force, tactile switches, which feel amazing and helped with the impact of bottoming out. You can also remap keys (useful for programmers who make regular use of symbol keys that are seldom used by the general population), setup macros (something I never got in the habit of using), and there is an optional foot switch that is commonly used for modifier keys (never tried it).

At some point (maybe in 2008?) I switched to Dvorak. I’m not sure if this really made any difference, but it was fun. I switched back and forth between QWERTY and Dvorak for a couple of days before fully committing because I was having problems learning by going back and forth. I kept with Dvorak for a couple of years before switching back to QWERTY because I was tired of not being able to type on any other keyboard.

Kinesis Freestyle Ascent

Kinesis Freestyle Ascent keyboard

I used the Kinesis Advantage Pro until sometime in 2011 when my RSI started getting worse. It just wasn’t cutting it anymore. At that point, after years of toying the idea, I bit the bullet and went vertical with a Kinesis Freestyle 2. (The 20″ cable between the sections is necessary if you want to go vertical.)

It took about two weeks until I could type at a reasonable enough speed to be productive. You could probably adapt faster if you can switch over full time immediately. I switched back and forth for a little while so I could actually get some work done.

The Freestyle itself is far inferior to the Advantage Pro, but I can’t use the Advantage vertically. That is the selling point. Otherwise, it’s a pretty average keyboard.

But going vertical made it all worth it. Being able to type with your hands still in a neutral handshake position is amazing and I doubt any horizontal keyboard will ever be able to compete with vertical (at least in my case).

DIY Kinesis Freestyle Ascent keyboard

The Ascent is the vertical mount for the keyboard. It actually can be used at many different angles, but I’ve only used it at the full 90°.It is an extremely well made (and extremely over priced) adjustable steel stand that the Freestyle screws onto. But you don’t actually need it. For the first couple of years I actually used a DIY stand from some scrap wood and attached the keyboard with velcro. I’ve since relented and actually bought the Ascent (it’s much better for travel), but you don’t actually need it.

The Future

Right now, I’m in a good place and don’t feel a need to switch to anything else. There aren’t that many options for vertical keyboards and there isn’t much interesting innovation elsewhere that I have seen. I don’t expect anyone to run out and try a vertical keyboard, but don’t be afraid to try it if nothing else is working. Or if you just want to be the guy in the office who always gets odd looks and has to explain their setup.

Test Driving the Microsoft Band SDK

TL;DR: The Band SDK is currently very much a preview and you should wait if you want to do anything serious with it. You’re very limited in functionality.


I use my Band on a day-to-day basis with my Nexus 5. I had never paired it to a Windows Phone. I had to factory reset my Band to get it to sync with my Lumia 635. I’m hopeful this is not a common issue when switching between platforms. I had no problem getting the band to pair back to my Nexus 5 when I was done. If it is an issue, then cross-platform development would be significantly easier if you had a separate Band for each platform. That may be true anyways to avoid constant re-pairing when testing multiple platforms at once.


I was using the 1.3.10219-preview build from NuGet. Currently, you can

  • Read sensor data in real-time
  • Create tiles and send notifications to them
  • Change themes
  • Change the main tile background image

I was mainly interested in sensor data. My goal was to create a simple app that would post your steps for the day to Slack (I have a lot of Slack code from a Windows Phone Slack client I started and didn’t finish). Ideally, the user would be able to tap a tile on the Band and a message would be sent to Slack. Unfortunately, the SDK does not support anything like that. You can send notifications to a tile, but you can’t trigger code on the phone from a tile. My backup plan was to have a timer background task that read step data from the Band, but that didn’t work either. Apparently, the SDK does not work in background tasks right now . I settled for the user having to tap a button in the app.

PCL Support

While I was working on Windows Phone, a co-worker was playing with the SDK on Android using Xamarin. We were disappointed to see that the NuGet package does not support Profile259, which would include iOS and Android. It only supports net45+win+wpa81. Long-term, I hope to see the interfaces separated into a separate assembly so that they can be referenced by the PCL. Otherwise, I would need to wrap almost the entire SDK myself to use it with MVVM. Or hope that Xamarin does it for them with their component.


  • Bluetooth is flaky. You will get IO errors. Be ready for them.
  • I was also surprised that the pedometer sensor gives the total number of steps the device has seen overall, not just for the current day. Since you can’t run in a timer background task right now, there is no reliable way to get just your steps for the day.
  • Be careful managing the lifetime of your IBandClient objects. When it gets disposed, all of your open connections to the Band will be closed. This is perfectly reasonable, but I wasn’t thinking about it at first. If you’re wondering why your ReadingChanged event never fires, this is probably why.