Category Archives: Personal

The Value of Getting your Hands Dirty

As software developers we spend an inordinate amount of time both indoors and staring at glowing panes of glass while sitting firmly on our butts.

Today I’m here to tell you to get off your ass!

I’ve never been afraid of getting outside or digging in to some physical work. Though often in talking to people when I mention a recent home-improvement project I’ve been working on they respond “oh, I couldn’t do that!”.

You want to know the secret?

When I started doing many of my own home projects, I didn’t know what I was doing either!

With all this technology at our fingertips, it’s incredibly easy to lose the pride and sense of accomplishment that comes from physical work. In my experience the benefits are numerous, but here’s a few nuggets that come to mind:

  • working with your hands without a keyboard
  • though you’re still solving problems but you’ll feel like you’re using a different part of your brain
  • you can create something in the real world, exactly the opposite of the virtual products create
  • it’s great for clearing your head from challenges you’re having in your technical work
  • sore muscles at the end of the day FEEL GOOD!
  • you just might get to spend more time outside!
  • there’s a whole new set of skills out there that you couldn’t even imagine
  • you’ll save money on small projects or fixes vs. hiring somebody

After you’ve done a few smaller things, say rewiring an outlet or fixing a leaky pipe, you’ll quickly grow more confident in your abilities. You’ll quite likely find yourself taking on larger projects, it can be an addictive and empowering feeling. For example, in two weeks I’m going to be ripping the siding off one side of my house, building and pouring a concrete slab and then extending my roof to build a new shed. A far cry from the drywall repairs and light switch replacements that were about the limits of my abilities few years ago.

So get out there, get your hands dirty, and do some work that doesn’t involve a computer. I promise you will feel a different level of accomplishment than what you’re used to in your day-to-day work.

What? It’s only been two years…

Scroll down to see this blog’s shame.

It’s been over 2 years since the last time that I’ve posted anything here. Now, that doesn’t mean that I haven’t been writing during that time. In fact, I’ve probably written more in the past 2 years than at most other times in my professional life. I just haven’t been writing as many things that I thought would be a good fit for this site.

That starts to change today.

There’s this odd thing that happens when you write frequently, your brain gets used to thinking of things for you to write about. I’ve been doing quite a bit of writing over the past few months for my stories over at Wattpad (where I work). I’ve also been writing in more of a professional journalling sense, who knows? maybe that’s part of getting older and not trusting my memory as much as I used to.

As a result, I have a lot of drafts sitting on my hard drive for things that it turns out would be a good fit for this space so that’s exactly what I’m going to do with them.

Things will likely be a bit scattered at first, but as I keep going I know the focus will dial in and some sort of theme will emerge.

I do know however that a majority of what I will be talking about pertains to being a modern JavaScript developer. There will probably be the odd piece about being a father (of two awesome boys), being a bit older (35 last I checked) and having been in the web industry for almost 20 years at this point (I published my first web pages in the late 90’s). I’m also open to suggestions for topics from my readers, something that I’ve found immensely valuable with my stories over on Wattpad.

Stay tuned, more coming soon…

Looking forward to 2014 (late post)

Oops! I wrote this back in December but somehow forgot to post it. It’s a bit late, but I think it still has value.

Early this year I put up my list of developer goals for 2013. Here’s a quick summary:

  1. Learn Git
    • I’ve been using Git exclusively for source control for 10 months at Wattpad. I wouldn’t classify myself as an expert just yet, but I’m very comfortable using it and most commands I use are built into my muscle memory now.
  2. Launch an app that generates money
    • While I haven’t created and launched an app of my own that charges money, earlier this year I was heavily involved in a new project at work that required integration with Stripe for processing transactions with customer cards. I’m going to consider this a 50% success.
  3. Publish some open source code
    • I haven’t actually published any code yet, but lots of time has been spent learning the tools that I would need to do so (Git, GitHub, BitBucket, Markdown).
  4. Write automated tests for most of my code
    • I write more tests for my code than I did a year ago, but I don’t think I’m at the point where I’m more likely to have tests for my code than not. At work we’re pushing very hard towards TDD, and I’d say we’re getting close. I’m confident it will get there.
  5. Find a mentor
    • 100% complete! Very early in the year through the magic of Twitter I was connected with Jeff Carouth, a PHP dev. out in Texas. We’ve had a number of online chats and even a few Skype calls to talk about various development topics. Our discussions often turned to Domain Driven Design (DDD), a concept that I was familiar with in name only, but now understand much better. I’m currently working on applying DDD to some Javascript projects that I’m working on.

Looking back at the list I’m a bit surprised to see that overall I have done decently well. Far better than in previous years where I didn’t end up touching any of my goals throughout the year.

It’s not your employer’s job to keep you at the top of your game

This past weekend I attended the TrueNorth PHP conference, hosted by the GTA PHP user group. It’s the second year that the event has been held and I attended last year as well. Based on my experience it’s a great event, and the only PHP focused conference that takes place in the Toronto area.

As with most conferences, sometimes the most insightful things come from the hallway conversations that happen outside of the scheduled talks. This conference was no different. There was one specific conversation that got my attention. I was talking to a couple of guys that were lightly complaining about how their employer doesn’t send them to any conferences, and that the were only able to come to this one because it happened to be in the neighbourhood.

My opinion on this is that as a developer, you need to take responsibility for your own professional development. Your employer hired you to perform a specific job, so as long as they are providing the tools required to get the job done and paying you your agreed salary, they’re holding up their end of the bargain. If you want to learn new skills, experiment with new technology, sharpen your saw or whatever, that’s up to you (although don’t be surprised if you later get canned if you never attempt to get better at what you do). Your company being willing to foot the bill for these things is a perk, not a term of employment. It’s a little different if there’s a course or conference that your employer asks you to attend, in this situation they have decided that there is some business benefit to be had by you attending, so I do feel they should cover your costs.

For me, my employer probably would have paid for my conference ticket to True North but I didn’t ask them to. I wanted to go because I have a strong connection to the PHP community and I knew that there was going to be the possibility for some great conversations. It’s the same reason that I watch lots of online tutorials, listen to podcasts and reach out to others on sites like Stackoverflow. I need to constantly be in a state of growth, otherwise I quickly start to feel like I’m stagnating or falling behind and that’s just not acceptable to me, and it shouldn’t be acceptable to you either.

So take ownership of you skill development, you’ll be happy that you did.

Update (Nov. 15th, 2013): So it turns out that through absolute serendipity a friend of mine that I met through the PHP mentoring community just happened to post a similar post on his blog a bit over a week before I wrote this.  I think he’s managed to distill the idea better than I have, so you should check out his post over at

My Core Values

The idea behind core values is that it’s a set of principles that guide your actions, your decisions and how you interact with others.  It’s not a new concept, although I’m pretty sure that I  heard about it most recently on the Entreleadership podcast (one that was just recently added to my list).  I spent a fair bit of time over the last couple of weeks thinking about what things I value in life, both professionally and personally and came up with the following list of core values:

Accountability – If I make a mistake, I want to own that mistake and do what needs to be done to make it right.  Conversely, I also expect others do to the same with their interactions with me.   If they make a mistake they’ll own up to it and correct it, not pass the buck by blaming it on somebody else.

Integrity – For me, integrity means not compromising my values when it’s the more convenient or profitable option.  This means that I won’t tell a customer that we’ll ship something on March 16th in order to land a contract if I already know that it isn’t going to be possible.

Honesty – There’s a lot of value in getting a straight answer from somebody.  Being honest with somebody doesn’t require you to be mean, there are constructive ways to give people feedback that isn’t necessarily positive.  I want people to come away from their interactions with me knowing that they got the truth from me, not just my assumption of what they wanted to hear.

Quality  – I want the things that I produce to be good.  If it’s a piece of software, then I’m embarrassed when somebody discovers a bug.  If it’s something physical, then I want it to feel and look like it was made well, and stand the test of time as proof.

Balance – my non-working life is very important to me, especially my family and social activities.  I’m not willing to be constantly sacrificing these things in order to work.  At the same time, I fully understand that balance isn’t uniform, there will be times where the scale is going to have to tip further to one side than the other.  As long as in the end it gets back to even then I’m ok with that.

What values drive your day-to-day life?