Stories about Software


Some Changes to DaedTech Because I Want to Build a Thing

If I squint hard enough, I see an odd symmetry to my life that can be book-ended pretty simply with the phrase, “I want to build a thing.” I say this now, and I said it when I headed off to college, but I didn’t say it all that much in between. At least, I didn’t say it in the macro sense. But let me start the story a little before college.

As a kid, I was pretty equal opportunity when it came to academics. This was eventually born out somewhat empirically by my nearly identical SAT scores for math and verbal. So even though I had aptitude for math and the sciences, the first actual profession I aspired to in a non-childish fashion was to be a writer/novelist. I was pretty sure that I would make my living this way until it came time to apply to college. Here, I punted on a decision, applying to what I perceived to be the most rigorous major/school at each college and reasoning that I’d sort of force myself to make a decision. Mission accomplished. After weighing options and finances, Carnegie Mellon University in Pittsburgh was my best option and they were pretty good at Computer Science, so Computer Science it was. The world was enthralled with dot-coms, I’d always liked hacking around on my programmable calculators, I was told I’d be printing money when I graduated, and so I headed off to school saying, “alright, I’m gonna go build a thing!”

AirportMetalDetector Read More


How My New Pluralsight Course Can Help You

I spent a good portion of this fall working on a Pluralsight course.  It was originally going to be ready earlier, but it’s a lot harder to get a course recorded in a hotel room than it is in my comfy office at home. Nevertheless, I finished it up some weeks back, and it was just released on New Years Eve, 2014.

Earlier this fall, I wrote a post called “Have a Cigar.” In it, I described how I thought we as developers had essentially opted out of controlling our own destiny by adopting the attitude, “I’m a programmer and I don’t care about that business stuff.”  Sometime later, I read this post by Michael O. Church and realized there was a nice tie-in with autonomy as well.  Programmers feel they have more “geek cred” by eschewing “business matters,” but they also know that they’ll have autonomy when picking an RDBMS in a way that they won’t when discussing what the tools and software budget should be.  It’s a completely understandable sentiment.

But unfortunately, the road to controlling our own career destinies travels through “the business.”  If we want to lead existing organizations or found new ones, we can’t operate as if we were in some kind of technical think tank.  We need to learn to solve different kinds of problems, and in order to do so, we need to play on the home field of the MBAs, project managers, CPAs, and C-levels.  And to do that, we need to be able to communicate effectively in their language about concepts in our field.

It was toward this end that I made this Pluralsight course, entitled, “Making the Business Case for Best Practices.”  I wanted to start a conversation and provide some tools to people in our line of work that are looking to help people understand why they’re doing what they’re doing.  I wanted to give you a way to say, “We don’t just do practice X because it’s ‘the right thing.’ It also helps us make money.”

One thing I’m asked pretty frequently is “how can I convince my manager/the CTO/the project manager/etc. that we should do TDD/continuous integration/code review/pair programming/etc.?”  Usually, they’ll say something like, “I know it’s the right way to do it, but how do I make them see that?”  My response is generally something like, “How do you know it’s the right way to do it? Does it help your company make or save money?”


Often people are surprised by this response, especially because I’m such a proponent of many of these practices.  But the reason that I’m a proponent of them is because they’ve helped me and companies I’ve worked with to meet their goals with the aid of software.  In other words, TDD isn’t the right thing to do because it is a superior approach, but rather it’s the right thing to do if it helps generate revenue or reduce expenses for the company commissioning the software.

It’s important to understand that because it’s important to understand that software is a tool and not an end goal.  If you’re a developer or working as a PM/line manager for a software group, it’s easy to view the software as the be-all, end-all. But in reality, you’re writing software to help do something more basic — automate an expensive, error-prone process, help customers communicate, run some kind of hardware that end-users use, etc.  And so the only thing that really matters when you’re discussing how to write that software (TDD or not, pair programming or not, etc) is whether the practice will help the software’s stakeholders achieve their goals and/or save money in the process.

Once you’ve come to understand what truly matters when discussing how to approach writing software, you’re in a much better position to make your case to the people that control the purse strings.  Imagine that you’re trying to make the case that your group should use static analysis and the crusty old architect with 25 years of seniority is stymying you.  His argument is probably something like, “blah, blah, 25 years, blah, blah, tried it before, blah, blah, can’t work, blah, blah, pointless, blah, blah kids these days.”  But his argument is likely to carry the day due to his tenure if you argue back with “blah, blah, right thing to do, blah, blah, saw at a conference, blah, blah, Uncle Bob, blah, blah, my grad school text book.”

But now, for a minute, imagine that you’re in the CTO’s office with the architect and he’s just made his tiresome case.  Instead of making a similar one, however, you plug in your laptop and start a slideshow where the first slide says, “Static Analysis is going to save you $13,000 per year in your budget.”  I bet you he snaps to attention and watches carefully as you lay out your case in the subsequent slides.

I wrote this course to help you do just that — to help you make the case for practices that you want to adopt not because they’re “best” but because they’re profitable.  I’ve been using this approach for some time now, and I’ve had a great deal of success convincing the people that needed convincing that my approach was sound.  I’m hoping that, with the aid of this course, you’ll have luck doing the same.

I couldn’t be more serious about the need for technical people to reclaim “the business” instead of shying away from it.  So I encourage you to take some time, learn the language of business and learn where and how software practices fit in to improving the bottom line.  Your career will be better for it, and so will your endeavors.


Retrospectives Are So New Years 2014

The last couple of years, I’ve posted yearly “retrospectives” about this blog. Last year, I actually mentioned that I’d started doing this because it seemed like something other bloggers did and then I kept doing it because I like continuity. This year, I’d like to take the opportunity to stop.


I suppose some reading might be mildly interested in which posts of mine in the last year were most popular, how my demographic splits looked, or how many visitors I had per month. That is, if I told you in this post, you might read through to the end. Or, you might not. (It’s okay if you wouldn’t — I wouldn’t bother either, if I were in your position).

Thing is, none of that matters very much, so I’m going to dispense with the artifice for its own sake. I’ve never been much for traditions anyway; pretty much everything done at weddings bemuses me. The important thing is that I write these musings of mine and you read them and appear to appreciate them and I, in turn, appreciate that. I appreciate you spending a few minutes a few days a week reading what I have to say. Seriously. There is a truly infinite number of ways in which you could spend your time and you’ve opted to spend it reading what I have to say. I am grateful for that. Thank you.

At this point, read on only if you’d like to hear me ruminate a bit about this past, weird year of our Lord, 2014. (In case you’re wondering, I haven’t taken this blog toward religiousity — “AD” means “Anno Domini” or “In the Year of Our Lord” so every time you date a check this year, regardless of your religion, you’re dating it “In the Year of Our Lord 2015.” I believe this is why people have pushed a bit for the designation 2015, CE or Common Era.) The rumination will be relatively brief and light — I promise.

Last year, I talked about growing up as a blogger. This year, I’ve grown up as a human. At the beginning of 2014, I was running an IT department. In the last 12 months, I bid a reluctant farewell to that job to strike out on my own as a free agent. It was a difficult decision but I had, in essence, become convinced that I would not find what I was looking for in the corporate world and I essentially opted out… at least as a salaried, W2 employee. I accepted the fact that life as a Company Man would inevitably disappoint and decided to try a different tack.

It’s been fun and interesting. I’ve grown my freelance application development practice a bit, but I’ve really branched into true consulting. What I mean by this is that instead of trading hours of software development for dollars, I’ve begun to favor offering my services as a velocity multiplier — working with organizations and teams to help them understand how to be more efficient at developing software.

Perhaps more important (and salient to this blog) than any of that, however, is my development as a content creator. A year ago, I had two Pluralsight courses and a couple of fresh E-Books. Today, I have 4 Pluralsight courses, 3 E-Books and 2 actual, printed books. While I’ve grown professionally in terms of leadership and consulting, I think I’ve grown even more in the arena of content creation.

As someone fortunate enough to have enjoyed a nice career as a software developer, the emphasis on content creation may sound strange. It’ll probably sound even stranger when, coming from a heavy STEM field, I explain that it was virtually assumed when I was a child that I’d wind up being a professional novelist or, at least, a writer of some sort. And so, the opportunity to fuse the fields of software work and writing is particularly appealing to me.

I don’t know exactly what’s coming in 2015, but I can tell you a few things. First of all, I’ll definitely keep writing to the DaedTech blog. Secondly, I’m going to keep working with Pluralsight. Beyond that, I’m planning to start doing some professional copywriting in the software industry and also to write a book from scratch. (If you’re interested, the loose working title/premise with which I’m operating is “Developer Hegemony: The Future of Work”). And, of course, I’m going to keep coding, keep working with developers, keep running teams, keep looking at your code bases and offering thoughts, keep loving technology and keep solving problems.

So, thanks again for reading, please feel free to check back and hit me up whenever, and have a great 2015!


A Thanksgiving Apology

I’d like to wish all (American) readers here a Happy Thanksgiving. I’m probably not going to make a post for Friday and perhaps not Monday, so this will be it for a little while. I’m rarely home these days, so I’m going to take the opportunity of being here to relax and visit with family. So, enjoy your own holidays or, if you’re not in the US, your rest of the week and weekend.

Also, I’d like to apologize for a situation brought to light yesterday by this tweet:

For those of you reading without the benefit of ad-block, I’d really like to apologize. It looks like at some point the disqus settings around advertisements reset to “show ads and shady ones at that.” I have no idea when I last updated disqus, so this has probably been going on for a while (I knew disqus would show ads, but I didn’t realize how gross they were). Those should be gone now, so please let me know if you see nonsense like that again. Looking at the credit I’ve earned through this accidental revenue source, the earnings aren’t nearly high enough to start asking the question, “does dignity have a price tag?” I’d rather provide a pleasant reading experience.

For anyone interested, here’s how to get disqus to stop doing that.

Anyway, for the holiday, enjoy this picture of a turkey:



Hot off the Presses

Instead of your (semi) regularly scheduled post, I’d like to mark something of a milestone today. As a child, I was pretty sure I had it figured out. I was going to write science fiction novels for money and alternate between roaming around the world and living in the woods. I’m not sure exactly where I went wrong, but somehow I got slightly off course and wound up roaming the country, living in legacy code bases and fleeing from people waving Gantt charts. But, all is not lost — I now have two printed, published books to my name.

Links to 3 E-Books have appeared on the right-hand side of my site for a while now, but 2 of them are now available in print. So you can go to Amazon, order, and receive a real, bonafide, bound, glossed and printed book that I wrote. Or two.

Here they are.

Starting to Unit Test: Not as Hard as You Think


This book is more or less what you would expect, given the title. It assumes that you’re a developer who’d like to have some experience writing automated unit tests. But… you don’t know where to begin. The book invites you to relax and assures you that it won’t be so bad to learn if you set yourself up for success.  It also might be a great thing to slide casually to people on your team that can’t seem to break themselves of the habit of writing legacy code in real time.

If you’d like a copy, here’s the Link to Amazon

The Expert Beginner


This is the synthesis and refinement of a series of popular posts I made some time back. It’s about the unfortunate journey that some people in the tech world take from novice to “not very good, but I was the first one here so now you have to listen to the dumb stuff I tell you.” Somewhat cynical on the surface, it really underscores what I perceive to be a muted, industry-wide tragedy but one from which recovery is certainly possible.

If you’d like a copy, here’s the Link to Amazon

Enjoy, and for those of you hoping for the next Chess TDD post, it’s in the works.  I have some of the video for the next one, but it needs audio.


Happy Independence Day

Here in the United States, the 4th of July is Independence Day. Traditionally, this holiday is celebrated with barbecues, warm weather activities, beer, and blowing things up, generally in the form of fireworks both professional and amateur. Given that it occurs on a Friday this year, it’s a big 3 day weekend here for most (though as of last Friday, my life is kind of a constant semi-weekend where I work on weekends), so I anticipate readership being a lot slower than normal as people are going to be at pool parties rather than browsing their RSS feeds.

While I do have several posts that are ready to go, I’m going to save those for next week and just wish all of my fellow American readers a happy 4th, and all of my other readers a happy weekend. To celebrate, please enjoy this picture of a bald eagle holding a sparkler:



On My Own as a Free Agent: DaedTech Grows Up

In 2013, I made a mildly rambling life update post. In it, I described that I had decided to leave the job I had at the time with the intention of job seeking and blogging about it all the while (and also possibly striking out on my own). Things passed in something of a whirlwind and, when the dust settled, I had an offer and was back to W2 employment the Monday following my last Friday at the previous job. So many lost opportunities for interview anecdotes and “holy crap I’m actually on my own” posts about what it’s like to be a freelancer.

Well, the good news is that I’ve managed to double back after taking the commonly traveled road and set out this time on the one less traveled. Take that Robert Frost; I’ve now taken both roads and it has made all of the difference. Anyway, my point here isn’t to antagonize icons of poetry, but to announce that, starting this week, I am now in business for myself.


Like last time, my situation is somewhat fluid. I’ve agreed to consult with my now-former company on an extended basis and will continue my work with Pluralsight and on the blog and in the community in general. I have a few engagements lined up, both potential and scheduled, and the aim at this point is to start building and broadening my book of business. But there are also a few companies I’ve had conversations with about various intriguing full time opportunities. So the next month or two will probably be a busy, marginally confusing and formative time for me that is likely to determine the course of my career in the near term future, depending what I decide to do.

If you’re interested in working with me in some capacity, look for updates to the site’s menu soon to formalize and organize my thoughts, but I’ll speak to it a little bit here in the shorter term.  I’m willing to do some software application delivery work — essentially implementing applications needed by prospective clients.  But two areas in which I see myself as a fairly high value add, given my experience, are true consulting and what I’ll loosely describe as coaching and related delivery.

In the capacity of “true consulting,” I can bring a variety of experience to bear, ranging from line level development to C-level departmental management.  If your firm needs advice on implementation or architecture, I can certainly supply that, but I can also help provide gap analysis, recommendations for technical strategy, ROI calculations for software initiatives, help selecting and evaluating candidates/staff developers and plenty more.  Under the heading of coaching, I can help your group out with agile transformations, implementing and selling external stakeholders on accepted best practices (automated testing, continuous integration, TDD, automated builds and deployments, etc), mentoring/teaching developers, performing code reviews, speaking to your group etc.  But beyond that, I’m happy to put my money where my mouth is beyond just coaching; if you want to hire me to clean up your group’s build, move you over to a new source control scheme, refine your ALM tooling, etc, that’s an excellent fit for me.  And, if any of you reading are not in a decision-making position but would like to see these changes implemented in your group, I have a knack for selling management on change and sidestepping Expert Beginners.  We can talk and see if maybe we can’t get a meeting with your management and the winds of positive change blowing through your company’s halls.

Those are the arenas in which I see myself being most valuable to prospective clients, and I really enjoy working with developers and people in the industry, so I’d be happy doing that sort of work.  But really, I’m open to anything that sounds interesting.  If you have an idea for a project you’d like to work on with me, a pitch for a startup, a full time position you need filled (I’d probably really only be looking for leadership roles if I were going to consider W2 work), some writing or developer evangelism (but only if I believe in the product) that you need help with, or really anything you can think of at all, please don’t hesitate to reach out.  I’m always up for a discussion.

I don’t doubt that I’ll have more refined messages about what I’m doing later, and certainly I’ll have posts about my experiences, struggles, and learning moments.  My goal here was just to make a quick announcement of what I was doing and invite those interested in possible arrangements to reach out so that as many interesting opportunities as possible presented themselves.  Someone recently asked me what kind of working I was looking to do, and my eyes sort of widened and a really obtuse response came out before I could stop myself: “interesting work.”  This was actually an intense bout of honesty, though, and I don’t know that I’m looking for too much more than that, in terms of the work.  I’m looking for an opportunity to be autonomous, diligent and creative, and to solve challenging problems.  Beyond that, I kind of grow where I’m planted.  I could be happy working on implementing programming language, detangling a nasty legacy code base, selling your management on the virtues of iterative approaches, cranking out code for a product idea, writing an interesting story about a compelling developer tool, and just about anything in between.  So please don’t hesitate to reach out with anything that you think might be interesting, fun or challenging, and I promise in return, I won’t hold back on relating anything interesting about my experience, even if it’s lessons that I learn from embarrassingly stupid or naive things that I do as a fledgling business owner.


Starting to Unit Test: Not as Hard as You’d Think

I happened to read a post by Dror Helper the other day, in which he said:

I believe TDD and “unit tests” has been done a great injustice by not giving it a cooler name – preferable one that doesn’t have the word “test” in it – because it’s a PR disaster!

Wow, that had never occurred to me, and yet he’s spot on. “Unit test” is a wretched name for anything. It seems somehow to combine all the worst elements of propagating uncertainty in arithmetic with lab measurements and double checking all of your answers on a scantron exam. I just bored myself half to death typing that sentence, so it’s little wonder that the concept of a “unit test” is often met with a visceral “ugh.” I mean, we could at the least call the test suite a “verification checklist” or something, implying that you’re marking progress as you complete things. It’s not exactly a skydiving trip, but it has to beat “unit test.” But I digress.

The lack of appeal of the name, the feeling of already being pressed for time without taking something else on, and the natural resistance to the unknown all create barriers to entry when it comes to unit testing. In order to get started yourself, or especially to convince those around you to do the same, it’s necessary to overcome those barriers. I have a good bit of experience with this in a variety of environments and from a variety of roles. Over the last year, I did a string of blog posts that were essentially my talking scripts for a series of power point/demo talks I gave. These were meant to be an introduction to unit testing.

The series actually became pretty long, and as I was finishing it, I decided to put it into E-Book format. So, with the help of my editor, we turned it into fluid book, and with the help my publisher, we published it in all major E-Book formats for a cost of $4.99. Here is the book on the publisher’s site, and here is a link directly to Amazon
for Kindle readers (full disclosure: I’m experimenting with affiliate links, and that’s why I’m specifically linking Amazon directly).

The title of the book is “Starting to Unit Test: Not as Hard as You Think,” and I feel that the title really captures it. My goal was to trade practice purity for reducing the barriers to entry. In other words, the message was, “don’t feel like you have to start full bore with 100% coverage, TDD, and anything less is a failure — if you just introduce a few tests into a few places in your code, consider that a win.” I also did something else that I haven’t seen others do as much, which is to explain that some types of frameworks and code present unit testing nightmares, and that newbie unit testers should avoid them until they reach a higher belt.” What I’d like to see people take away from this book is a feeling of satisfaction from experiencing a sequence of small but real wins.

For you mythology buffs, this is Sysiphus actually making it to the top of the hill.

For you mythology buffs, this is Sysiphus actually making it to the top of the hill.

By and large, you could get this content by reading through my blog posts on the subject, but if you want it in a compact format, here it is. Not to mention, if you’re trying to sell your team on the merits of unit testing, a book is probably going to have more cachet than a series of blog posts, and the one link to the book is going to be easier to distribute than the giant collection of links for the individual posts/chapters. So get it if you’re interested, and encourage your team to get it if you’re trying to introduce the concept, especially since I close out the book by making a business case for unit testing (this making cases for best practices is actually going to be a theme of mine in the future).

Enjoy, and thanks for reading (the blog and, hopefully, the book)!


Introduction to Home Automation Course Now Live

I have received a comment or two here and there over the last year, asking whatever happened to the home automation posts I used to do. These were admittedly sporadic, largely because I work all day, then I moonlight at night with freelance gigs and Pluralsight, and then I blog regularly, and only then do I split my time between many hobbies. Only one of those hobbies is home automation. But, enough excuses, I decided a few months back. I’d merge two of these interests and optimize my life.

The result has been a few fun months in the making. I have created a Pluralsight course, now live, that is a detailed introduction to home automation that’s far more comprehensive than anything I’d have been able to convey on the blog easily. I think that this course probably makes up for a whole lot of posts that I otherwise may or may not have done. If you have a Pluralsight subscription and are interested, please go check it out and give it a good review if you like it. If you do not have a subscription, but are interested, email me at erik at daedtech and I’ll send you a free 7 day trial so that you can watch it and any other courses that interest you.

For this course, I used X10 and a Raspberry Pi. Some might ask why I’d do this when things like Google’s Nest are all the rage. The reason I chose this for a “fundamentals” course was for the same reason that programmers might start out with C if they’re serious about programming — it’s the original tech, and it’s an excellent platform from which to grow and really understand the various principles involved. Depending on how this course is received, I may opt to do others where I get even more advanced with X10, where I bring in other, similar technologies, or where I start expanding out to use more polished, turn-key products as part of a broader solution. We shall see.

If you’re not sure whether home automation will interest you or what, exactly, home automation is, this course will cover you. It goes into the back-story and it assumes you know absolutely nothing about the topic. Within a few hours of course time (and probably a week of real time since you’ll need to order some equipment), you can go from knowing nothing about home automation to making REST calls that turn on a light in your house, using your favorite HTTP client. And the cost of all of the infrastructure that you’ll need for this will have an upper bound of $100. But heck, watch if you’re just curious — you can always decide whether to order the stuff and follow along later.

I’ll leave you with the introductory section of my script to give you a feeling for the course.

What is Home Automation?

Let’s talk a bit about what home automation actually is.  You’re an intelligent person, and I have little doubt that the words “home” and “automation” used in succession probably conjure up an image in your mind, even if you aren’t already familiar with the term.  And whatever it is you’re imagining is quite likely accurate to some degree and at least a subset of what home automation is.

We all do a lot of manual things around the house.  When the sun goes down, we walk over to a wall switch and turn on a light.  If we suddenly feel cold, we go downstairs and adjust the thermostat.  If it hasn’t rained in a week and the garden plants are wilted and unhappy, we go out to water them.  If it’s too dark and depressing during the day, we open the blinds.  We dust, we vacuum, we scrub, and we clean.

Home automation is the process whereby we stop doing all of that manually.  We automate tasks around the house to varying degrees, either through mechanisms like remote control or through a centralized computer programmed with triggers and actions or even machine learning algorithms.  When the sun goes down, the house senses growing darkness and turns on the lights.  If we suddenly feel cold, we say into our phones “turn the heat up 2 degrees” and go back to whatever we were doing.  If it hasn’t rained in a week, the sprinkler system is smart enough to know the garden plants need water.  We needn’t bother opening the blinds because the house knows we prefer them open on sunny days and does this automatically.  We don’t dust, vacuum, scrub or clean because we have devices that do these things for us.


There are various terms for the concept of home automation.  It’s been called “Domotics” when it involves some form of domestic robotics, or having a “Smart Home.”    Lately, the idea of an “Internet of Things” has had some overlap with the concept of home automation, though there is nothing that requires any of the automation be exposed to a broader network.  Here are some of the many concepts that fall under the broad heading of home automation:

  • Controlling the lighting inside and outside of the home
  • Temperature and HVAC, or heating, ventilation, and air condition, control
  • Media management, such as music and movie playing
  • Shading, which includes the drawing and opening of curtains, blinds, etc
  • Home security, including, but not limited to door locking, intrusion detection, and monitoring systems
  • Communications systems such as intercoms
  • Cleaning devices, of which the Roomba is probably the most iconic example
  • Appliance triggering and status monitoring

Needless to say, the subject covers a lot of ground, but it can be loosely summarized as the idea of automating previously manual household tasks.

A Quick History of Home Automation

If you are somewhat familiar with the concept of Home Automation, what probably comes to your mind is recent commercials such as one for an iPhone app that lets you turn your house’s lights off when you’re not at home or else perhaps Google’s recent foray into the market with the purchase of the Nest learning thermostat.  But it goes back a lot further than that.

The absolute precursor to any concept whatsoever of home automation was the introduction of electricity into the home, which happened on a widespread scale in the early 20th century.  In the same timeframe, RF remote control technology was first introduced by Tesla and would lay groundwork for later home automation in earnest.  The first half of the 20th century was accompanied by a couple of other important advances on the front of media: radio, and later television.  Still, by the 1950’s the most significant advances were largely in the imaginations of people who uses phrases like “home of tomorrow” to describe what they thought would be possible, though some remote operation of various devices was possible, and concepts like mechanical timers for lights and thermostats did exist.

In the 1970’s, a landmark first step toward the modern concept of home automation was taken with the introduction of the X10 protocol.  The concept was simple but groundbreaking and elegant – existing AC wiring in homes could be used to transmit signals between electronic devices.  In the late 1970’s, this idea had been realized with the introduction of a command module, an appliance module, and a lamp module that allowed lights and appliances to be controlled from a centralized point in the home.  It wasn’t long before these became available for retail sale.

Since that promising development, however, progress has not been nearly as rapid as a 70’s home automation enthusiast might have hoped.  Various niche commercial devices such as The Clapper have struck the public largely as curiosities rather than game-changing developments.  More elaborate home automation systems have remained largely the province of tech-savvy hobbyists and millionaires with consultants that setup boutique, custom arrangements.  Retail brands emerged, such as X10, which was named after the protocol, but also Z-Wave, Insteon, Zigbee, and others, but none of these has been able to last in retail stores, and the X10 corporation actually wound up going bankrupt in the early 2000’s.

In spite of its disappointing lack of movement over the last 30 years or so, the home automation market is showing some signs that it may truly be about to take off.  Of course, enthusiasts have been saying that for the last 30 years, and companies like IBM and Honeywell have tried without success to capitalize on this line of products, but these days, Google, Apple, Comcast, and ADT are all pushing products that are gaining more widespread adoption.


I personally think that this is a very exciting time to get into home automation as a hobby.  As a society we’ve enjoyed such stunning technological advancement that phones we carry in our pockets have made maps, calculators and separate cameras virtually obsolete in one fell swoop, but we still turn our lights on and off in largely the same way that people in the late 1800s did.  I’d like to get a lot smarter about that and see it change, and I think that being a home automation enthusiast right now is probably comparable to being a personal computing enthusiast in the late 70’s and early 80’s.

So, Check it Out!

I’ll return to this subject matter here and there, the way I do with my other Pluralsight courses, so if you prefer the blog medium, you’ll still get to see some of the static content.  But what I won’t be doing is posting any of the video demos that are property of Pluralsight, so if you want the full experience, I definitely suggest checking out the course.  I take you through literally every nitty gritty detail of ordering parts, Linux command line setup, implementing REST with Python, and configuring Apache on the Raspberry Pi.  End product code is also up on github and downloadable through Pluralsight.



A Blogger Grows Up: DaedTech Year in Review for 2013

Last year, I made a retrospective post, and I titled it “A Blog Grows Up: DaedTech Year in Review for 2012.” I think I did this because a lot of other bloggers seemed to do it. And one of the big themes of last year’s post was that I was becoming a real, non-faking-it blogger. This year, I’m making a retrospective post largely because of my own personal neurosis when it comes to symmetry and gamification. In other words, I’m doing it because it presents an opportunity to evaluate myself and compare metrics.

This sort of odd introspection is telling, and it’s the reason this year’s title is exactly four characters different from last year. One character change is in the year (2013 vs 2012), and the other three differences go to “blogger” instead of “blog.” Last year, the DaedTech blog grew up; this year, I grew up as both a blogger and as a person who maintains a blog. The blog itself isn’t a lot different. I’ve updated a few plugins and changed the theme of the blog to be more mobile-friendly. I won’t win any UX awards, but I’m staying reasonably current in the limited time that I have. There have been no real game changers in terms of the way the blog looks.

And yet, the results from blogging is once again dramatic. In 2011, my followers were in the tens. In 2012, I was proud because I had changed that to numbering in the hundreds. I had gone out and interacted with other people, exchanged ideas, created a social media presence, improved my posting cadence and all sorts of other things that I mentioned in the linked post. I had figured out how to bolster my readership by doing all of the right things — all of the things that an experienced blogger will tell an inexperienced one to do. In a sense, I had faked it until I made it.

This year, I’m humbled and flattered to report, my regular following went from hundreds to thousands. Last year, I was ecstatic to report that 2012 had resulted in a tripling of my traffic, but in 2013, it increased by a factor of 10 from 2012. If the trajectory of readership in 2014 realizes even half of gains of previous years, next year will see DaedTech record a million unique visitors. Whereas last year I attributed this kind of growth to all of the effort that I had put in to figuring out how to attract followers, this year I attribute it to a variety of factors, not the least of which are persistence and luck. I’m fortunate in that some of my posts have become extremely popular and also in that I have a great base readership that’s very supportive. (Thanks, everyone.)

Ebooks and Course Authorship

Last year, I talked about a number of improvements to the blog. These were things like social media interaction buttons, tagging scheme, feed provider, etc. These improvements were invaluable, and they set the stage for the blog to be taken seriously. This year, I focused instead on improving the brand behind the blog. Actually, scratch that “brand” talk. I focused on improving myself and my credentials. I established a relationship with Pluralsight and began authoring content for them. I have two courses that are aimed at a relatively advanced .NET developer, which, in spite of their narrow focus, are highly rated. I am also starting work on a third course about home automation, and I’ve booked arrangements for the Pluralsight author summit later this winter in the hopes of trading tips with other authors to improve my course quality. If you aren’t improving, you’re rotting, as I once said in one of the Expert Beginner posts (more on that later).

Speaking of expert beginners, I also have put out a couple of ebooks. One was a simple republish of the “How to Keep Your Best Programmers” post. The other came as a result of my editor’s and my effort to restructure a series of posts into an actual, polished work intended for the ebook format. Both of these ebooks (and another one coming soon from my “Intro to Unit Testing” series) have been published by my friend Zack through his Chicago, 1071-based startup, Blog Into Book.

In last year’s post, I used an unordered list to outline all of the things I’d done to make DaedTech have a more successful blog. This year, I’ll just say that starting to author courses for Pluralsight and publishing ebooks have been huge successes for me. These things, combined with my own career transition, have significantly impacted the blog. I’ve recently made the jump from a developer and architect to CIO, and I feel that this has helped me offer an interesting voice on subjects running the entire technical gamut.

Expert Beginners and Optimism

A major catalyst for the blog’s popularity has been the Expert Beginner series and subsequent ebook. A fairly large number of you, to whom I am extremely grateful, have supported my by purchasing the ebook. A jaw-dropping number of you have read the series of posts and offered encouragement and positive feedback. I’d be misrepresenting the situation if I said that this series wasn’t the lion’s share of the reason that the blog has grown so much in the last year.

I’m honestly thrilled about this. I’m thrilled that so many people recognize what I’ve described as “expert beginnerism” to be one of the most subtle yet important impediments to progress in our industry. I’m also encouraged to think that I’m not crazy in thinking about this, since it’s resonated with so many people. At the time that I wrote that first post, I seriously thought that I might roundly be dismissed as some kind of malcontent and crank. I thought the expert beginners against whom I was railing dominated our industry to such a degree that my opinion would be unpopular. And yet, it was widely popular, instilling in me a sense of intense optimism that probably seems out of place from someone that wrote such cynical posts. The fact that all of you see expert beginnerism and have disdain for it means that we’re on the right track to stomping it out.

And it isn’t just readership or purchase of the ebook that encourages me. It’s the fact that my Twitter alter-ego, the Expert Beginner, has such an enthusiastic following. It is from this account that I tweet some of the most alarming, depressing, maddening, amazing, infuriating and downright surreal things that I’ve heard in my time in the industry. The fact that hundreds of people commiserate with me, including people with industry influence, cheers me up immensely on a daily basis. The more frustration I express with stupid things I’ve heard in the industry, the more that people express implicit solidarity. It renews my faith in developer-kind.

Blogging Lessons Learned

This year, I’ve learned that nitty-gritty posts about technical details tend to bring hits to the blog, but not regular readers. Regular readers, at least of this blog, seem to be drawn in more by posts about office politics, broad ideas, interactions and other big picture items. However, to have any cred as I write the latter style of post, I think some of the former style of post is necessary, lest people ask, “is he technical?” I need to learn where the sweet spot is here, but the main thing I’ve already learned is that I’m more of an op-ed blogger than one writing instructional posts. At least, that’s what I’m doing when my posts are best received.

Fun Facts

Below are my most popular posts of 2013 in terms of readership. In this post from 2012, there was a dead heat between instructional posts and op-ed style posts. This year, not so much.

  1. How Developers Stop Learning: Rise of the Expert Beginner
  2. The 7 Habits of Highly Overrated People
  3. How to Keep Your Best Programmers
  4. How Software Groups Rot: Legacy of the Expert Beginner
  5. Getting Too Cute with C# Yield Return

Here are the countries in which DaedTech is most popular:

  1. USA
  2. United Kingdom
  3. Canada
  4. India
  5. Germany
  6. Australia
  7. Russia
  8. Sweden
  9. Netherlands
  10. France

This year, I’m omitting the referrals except to mention them anecdotally.  The stats don’t appear to be especially accurate.  For instance, Hacker News referrals don’t always register properly in my analytics for some reason.  I can tell you that the biggest sources of traffic that aren’t regular readers or RSS feeds are Reddit and Hacker News.  I get a good bit of referral traffic from social media as well, and still plenty of hits from googling.

Finally, A Word of Thanks

In the end, I’d just like to thank you all for reading. Everyone has precious few hours in the day, and I’m flattered that you choose to spend some of them reading my blog when there are plenty of other things you could be doing. I’d also like to welcome the influx of traffic resulting from my recent stint at Hacker News and thank those readers for subscribing to the feed; giving my posts a chance; and for all of the retweets, mentions, upvotes and comments. I haven’t necessarily had time to respond to everyone the way I like due to the of volume of traffic/comments, but please know that it is nevertheless very much appreciated.

So thanks again, and have a great 2014!

Acknowledgements | Contact | About | Social Media