Goals for 2015

Haskell, But Quickly

Heads Up!

I'm writing a book about building and deploying web applications with Haskell and Yesod. Want to know when it's released? Click here.

My favourite heavily-bearded man — Benjamin Reitzammer — took the initiative to publish his goals for this year. I think it’s a great idea, and I’m following suit for a number of reasons:

  1. Having my goals written down will help me to maintain focus; I’m not going to lose sight of what I want to achieve this year.
  2. I’ll be embarrassed and disappointed with myself if I fail to meet my goals this year, and publicly exposing what my goals are means I can’t bullshit myself next year with “Oh yeah, last year was fine, I didn’t have any real goals…”.
  3. Next year I’ll be able to more easily reflect on how my year went, and more easily measure how much progress I’ve made personally and professionally.

Benjamin writes:

What really struck me about setting goals in 2014 was the super powerful effect that the simple act of setting some halfway realistic goal has…

…And it’s totally true. One of my goals last year was to work all the way through a book called Seven Languages in Seven Weeks, and I think if I hadn’t set that goal I’d still be coasting now. I might even still be stuck on the Prolog chapter! I panicked when I noticed time was passing and not enough pages were turning. Setting that goal forced me to stop screwing around and actually put the work in, and I’m ever the richer for it.

Launch my SaaS

I’m working on a Rails app. It’s relatively mundane, but I believe it solves real problems and I think that in itself is interesting. There is a company who have expressed interest in paying real money to use my app as soon as it’s ready. I’m quite confident there are actually many companies who have been longing for the software I’m building, but as anxious as I am to finally release the software after having worked on it for over a year, I’m not comfortable with charging money for — or even wasting people’s time with — a product that isn’t rigorously tested. I’m on the right route though; 630+ unit tests and counting! If I achieve nothing else this year, I must ship this product.

I’m not really comfortable talking in detail about the project just yet, lest I jynx myself (and I’m not even superstitious!), but I will flash the product’s logo which I had my father illustrate for me. Thanks Dad!

Stay active

Despite finally being in a financial situation to (kind of) afford to own and drive a car that I love, 2014 was my best year yet in terms of fitness. I started running regularly and even started to enjoy it. When I started in Spring, I struggled to run three kilometres. It took me around 28 minutes, and I couldn’t make it all the way without slowing to walking-pace to catch my breath. By the Summer, I was running three kilometres in about fifteen minutes — already a huge improvement. In August during a trip to visit my team in Frankfurt, I had the spontaneous desire to go running late one evening; I was feeling good and managed to run a whole 10 kilometres around the city, in almost exactly one hour! That’s a personal best for me, and it’s the kind of pace I want to keep up once the snow melts and the days grow longer here. Now that I live in a forest outside the city, I’m not comfortable going running outside when it’s dark. I’ve tried running at the gym, but I don’t like the gym (it’s full of weird guys who love to stand around naked and feign masculinity) and I can’t justify paying so much money for just running, which really should be free. So, I’ve recently been visiting Gothenburg’s indoor skatepark.

It’s funny, I’ve always loved skateboarding and I’ve been living in Gothenburg for about six years, but until recently I had never visited the indoor skatepark. I can still do a few simple tricks, but my goal this year is to consistently land big 360 flips off kickers/hips/whatever. There’s also a really nice long rail at the skatepark, and I’d love to hit it at full speed and boardslide the whole thing. I’ve so far managed to cleanly land a boardslide across the last quarter of the rail; I’ll have to work up some courage to do the whole thing.

Now that I’m skateboarding a little again, my balance should be much more on form for my upcoming snowboarding trip in Trysil, Norway, in March. I’m probably going to be spending 80% of my time in the park (as I usually do), and my goal for this year is to finally land a big clean 360. That’s all.

Read a stack of books

I have a pile of books near my desk. They are staring at me, making me feel perpetually guilty for not reading them. They’re good books too; books I have been thoroughly enjoying reading. I need to employ my tunnel-vision — a productivity tool I often reach for — and just plough through the books one at a time, start to finish. The three that I must read are:

  • Culture & Empire — Pieter Hintjens
  • The Master and Margarita — Mikhail Bulgakov
  • What If? — Randall Munroe

I was given a copy of Culture & Empire by the author when I met him at the Build Stuff developer conference in Vilnius, Lithuania. Hintjens is a fascinating guy, and the first third of his book that I’ve read taught me much about the world that I didn’t know, and more still about myself and my personality and behaviour that I hadn’t ever deeply reflected upon.

My copy of The Master and Margarita was a Christmas present from my father. When I say “Christmas”, I mean Christmas two years ago. My father is Polish, and I think Russian literature is just part of the deal of having Polish family. The book is actually very funny and plays right into my sense of humour.

I’m a fan of Randall Munroe’s XKCD, so of course I have to read through What If?. I didn’t buy one copy. I bought four copies. Three of them I gave away as Christmas gifts. I’ve read a couple of chapters from the book, and it’s hilarious.

I will read through those three books. If I find time after, I’d really like to read through my copy of Algorithms in a Nutshell. I’ve never been a maths-nerd, so I think that material will yank my brain open with brute-force, and with best possible efficiency (both puns intended. Not sorry.) I’d also like to read Pro Bash Programming, because Bash is a core skill and as a language it’s interesting in its own way, being at times ugly, at times elegant.

Invest in the things that won’t change

I found this interesting quote from Jeff Bezos mentioned a couple of times in articles and talks by DHH:

Find the things that won’t change in your business and invest heavily in those things.

I think that’s especially true in the tech industry. The rate at which JavaScript frameworks go in and out of style these days is so much of a joke that I’d rather not participate. How long did Grunt.js last? Is Gulp.js still a thing? Do people still use Yeoman? The first two are less elegant reimplementations of Make — a tool that’s been around for 38 years. The latter is a solution to a problem I don’t think anyone really ever had. Yeoman gives you generators for scaffolding projects quickly. But is scaffolding a project really what we’ve been struggling with over the years?

Over the past year, I’ve becoming increasingly skeptic over the new shiny things, and I think I’m better off for it. There’s nothing wrong with older stuff; in an interview where DHH talks about the old Basecamp, he points out the negative connotations that a word like “legacy” carries, when in this context that word can often be used as a synonym for “stability”, which is unarguably a good thing.

Learning Vim was possibly the best professional decision I’ve made. Learning Vim in the terminal strongly encouraged me to learn to love the terminal (and I do), and to embrace the Unix philosophy of composing simple parts that each do one thing well. Vim has been around for a long time. The editor that Vim improves upon (Vi) has been around for about forty years. What’s the new thing? Atom? Isn’t that already going out of style? And what does Atom do that’s so different from Sublime Text, TextMate, etc…

My goal generally is to learn more well-established tools that I know will be around forever. I haven’t written any C, and I’d like to change that. I predict I’ll have more direct use for C than I will for a tool like Haskell in the coming year, especially when I read an article like this. Git is relatively new, but it’s well-made and I don’t see it going away any time soon so it’s worth investing in that. Testing and refactoring and developing an intuition for which objects are responsible for which behaviour are general concepts that will help me write better software faster, regardless of what the software does or what language it’s written in. Kind of a no-brainer, right?

That’s probably enough for now.