The Setup - Tom Hudson

As part of an ongoing series where we ask industry professionals what they use to get the job done, we speak to Tom, Software Engineer at Sky Bet.

Tom Hudson

Who are you, and what do you do?

Hi! I'm Tom Hudson, I'm a Software Engineer at Sky Betting & Gaming in Leeds.

Mostly I work with deployment and automation stuff; I write Go, PHP, Ruby (for Chef), Groovy (for Jenkins pipelines), and I do a fair bit of shell scripting. I spend about half of my time on mentoring and coaching type activities - I'm a firm believer in the adage that the most useful product of senior engineers is more senior engineers.

My kids keep me pretty busy, but outside of work I try to work on small tools like gron.

What hardware do you use?

At work I use an HP Z230 workstation; it's got 16GB of RAM, a Xeon E3-1226 and a 250GB SSD in it. It's plugged into an old 30" 2560x1600 Apple Cinema display, a Filco Majestouch-2 Tenkeyless keyboard (yes, I'm one of those clicky-key people), and a Microsoft mouse. I've got a giant steelseries mouse mat though, which is very important. I'm provided with a Macbook too, but I don't use it unless I have to - I'm not a fan of the keyboard layout.

At home I use a self-built machine; an i5-3570K, 32GB of RAM, a 120GB SSD, and a GTX 960... Nothing special under the desk, but on top of the desk there's a 43" UHD TV that I use as my monitor. It's by far the best thing I've ever bought for my PC, but it makes the 30" Cinema display I use at work feel very cramped.

And what software?

I run Ubuntu pretty much everywhere I can; but I've ditched Unity for goomwwm. It's just about the most simple window manager you can get - basically no menus, no chrome on the windows; just dmenu to launch apps and a task switcher.

At any given time I've got only two windows open: Google Chrome and Terminator. I keep a bunch of pinned tabs open in Chrome for email (Gmail and Outlook), chat (Slack and IRCCloud) and Twitter. In terminator I've usually got at least a dozen shells open, spread across varying combinations of tabs, horizontal and vertical splits.

In the terminal I use:

  • vim for editing (my .vimrc is here)
  • git for version control
  • curl for prodding HTTP endpoints
  • A plethora of other command line tools as and when I need them (grep, sed, awk, find, etc)

What would be your dream setup?

My home setup is pretty close. Ideally I'd like 20 physical cores, 128GB of RAM, and a bunch of NVMe SSD storage; which might seem like overkill, but every now and again I find myself having to do something annoying like compile Chromium from source. Couple that with a gigabit internet connection and I'd be a very happy man.

I have this dream about VR headsets being good enough to replace monitors too, but I think I've got a while to wait before the resolution is good enough to be practical.

One item you can't live without?

It's got to be the big monitor. At one point I was using four 22" 1080p screens in a 2x2 grid. My 43" screen is the same resolution as that, and nearly the same screen area - but without the bezels, and the annoying graphics card setup.

Thanks Tom!

Tom Hudson on 23rd March, 2017. Related talks and lectures:

If you enjoyed this you might like our talks, lectures or podcast.