All posts by Wally

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.

I just shipped a single-page application without any frameworks and I feel fine

This past week I built a tool for a freelance client’s website that allows their visitors to find the nearest dealer for their products.

The previous version of this tool was written in Classic ASP (which I also maintained) and pulled its data from an MS Excel spreadsheet. Yes, you read that right, an Excel spreadsheet was the backend data repository for a live website in 2016. I suspect this approach is still out there more than us modern web developers would care to admit.

Anyway, my first job was to move the Excel data out to a real database, MySQL in this case simply because that’s what the web host supported. It ended up being pretty easy thanks to Excel’s ability to export to CSV.

Next, I built out a basic search class for sending queries to the database. I needed to be able to filter the data by any permutations of the available fields (think business name, city, province, etc.). A few simple 5–10 line functions later and it was done.

The API was even easier, I just checked $_GET for my trigger argument and called the associated function in my new search class, returning the result as a JSON payload. This made implementing the client JavaScript super simple.

Other than jQuery (simply for the XHR abstraction) the client-side was built with vanilla JavaScript. I had a few functions for drilling down in the filters, for example, if you selected a province I would only show ‘city’ options that were in that province. There was also one for rendering the HTML of search results. None of these were more than 15 lines of code.

I’m quite happy with how it all turned out and so is my client since they understand the code without having to learn some framework. They’re also able to make some changes on their own without having to involve me, which quite honestly I’m ok with.

Don’t get me wrong, I’m not against web frameworks, I find them quite useful when they’re appropriate. I do firmly believe that not all web things are in need of a framework. Next time you’re tackling something small, see what it’s like to write it by hand. You might just surprise yourself with how easy it can be and how simple the result ends up.

Known Unknowns?

Recently I tweeted this:

Afterwards I continued to wonder whether coming away from a tech talk with more questions than I started with was a good thing or not. It can certainly shake your confidence and make you feel like you might not know as much as you thought you did about the topic being discussed. 

On the other hand, perhaps the fact that you have questions reflects the simple fact that the speaker simply has a different perspective from your own. Perhaps if you were to talk about what you were working on they’d have as many questions come up as you did. 

There’s so much available to be known these days in the tech world, especially when it comes to the web I feel. As a result, it’s incredibly easy to get discouraged, or to constantly feel the weight of all the things that you know you don’t know. I know I certainly struggle with this. 

I’m not sure what the answer is, but my strategy is going to be to try to be ok with not knowing everything. Maybe it comes with age and maturity, but it’s obvious to me now that aiming to know everything, no matter the topic, is a fool’s errand.

I’ve always been a great consumer of information. Recently though I’ve been trying to shift my focus towards only needing to know enough to take the next few steps I need on my journey. Once I’ve taken those steps I’ll be able to look from that new position of knowledge and experience and know what needs to be known next to keep going. I feel like this will help with overloading myself with information without really figuring out how to apply any of it.  

After all, who cares what you know if you can’t do anything productive with that knowledge?

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.