Skip to content


Dear Reader,

Amateurs practice until they get it right. Professionals practice until they cannot get it wrong.

— Unknown

In scuba diving, the skills a student learns are important, they could save their life. New divers are taught skills to “proficiency”, they can successfully perform the skill on-demand. They can’t teach others, but they can save their life, or the life of another diver.

When training Dive Masters, it is a different story. Dive Masters have to be able to perform a skill to to “exemplary”, they have to be able to perform the skill so well that the presentation is an example to other divers. Then, and only then, can they begin to teach that skill to others.

Tech on the other hand, has the mantra of “the best way to learn a new skill is to teach it”. It is fine to present to others what you have built or learned, and inspire them to experiment with your ideas. This is proficiency. This however, is not teaching. Teachers should be able to perform to exemplary, not simply to proficiency.

Learn your important skills – life and career – to exemplary. Then – and only then – go out and teach them to others.

Until next time,
I <3 |<

I love writing code!

Dear Reader,

If you do what you love, you’ll never work a day in your life.

— Marc Anthony

I love writing code. I love writing code that makes computers do things. I discovered this love when I was 14 years old and it has never left me.

These days I get paid to write code, It is awesome. Even so, I’ve written code when I didn’t get paid, I’ve written code that I can’t/won’t sell, I’ve written code that no one else will see, just for the sake of writing code. I LOVE WRITING CODE.

Because I love it, sometimes I am overzealous in the pursuit of writing code. I’ve worked 80-120 hour weeks before. (Whether for my employer or for my own person projects does not matter.) I’ve stayed up all night writing code, I’ve sat down in the morning to write code, looked up only to find that I had forgotten to eat a meal, take a shower, or even interact with another human that day. It’s not the healthiest thing I’ve done but it was fun! It was fun because I LOVE WRITING CODE!

I’ve been told personally, privately and by some less than clever people in sub-textual tweets that I need to stop working more than 40 hours a week because I am setting a bad example for others. Newer programmers who may not know how to balance their life might see me talking about coding straight through the weekend  and think that it’s ok. I wonder, did anyone ever tell Freddy Mercury, you need to stop playing instruments, singing, writing songs, and performing because you are setting a bad example for others? Did anyone tell Sir Edmund Hillary that mountain climbing was an unhealthy lifestyle and that he should stop glorifying it?

I get it, I am blessed. (I am not privileged because of my birth. I am not lucky. I am blessed by God) I get paid to do something that I love. If you are not in that position, if you program computers and then go home and have other interests, that’s wonderful, more power to you. I celebrate you because programming allows you to live the lifestyle you choose. But don’t come down on me because computers are my other interest. Don’t tell me that I can’t continue chasing a problem long after you’ve given up and gone home because this isn’t your passion, it’s your paycheck. Honestly, that’s your problem, not mine.

If I decide to put in an 80 hour week because the problem I’ve been given to solve is interesting,  you don’t get to decide if that’s healthy or not. You don’t get to tell me to stop because my work ethic is setting a bad example for others.

For 12+ years now I’ve been helping people become developers, and become better developers.  I’ve advised countless people to ‘follow their passion’, well, this is what that means. I am following my passion. If you are blessed to love programming as much as I do and you get paid to do it, pull out all the stops, chase that problem for as long as it takes. When you solve it – and you will solve it – smile at the inner peace you have because you solved it in large part because you love what you do, and persisted in doing it long after others gave up because they have other interests. Be proud of yourself, because you really are living the dream.

Until next time,

I <3 |<

I will not draw Tippy!

Dear Reader,

I write this as an unemployed programmer. This is not me looking down from above on those looking for a job and passing judgement. This is me out there on the mean streets looking for a job.

I’ve had more than a few interviews in the past month and have more coming up. Only one of them though has required me to complete a “programming task”. I am ashamed to admit that yes, I took the test, I submitted my code for an asinine task so they could review it. I have no idea if it was because of my code, or the interview but they decided “to consider other candidates”.

That’s it for me. I will continue to look for a good job. I will continue to do contract work untl I find the right job But I will no longer “Draw Tippy“. (Sorry, I couldn’t find a Creative Commons version of the picture to include)

I am a developer with a public body of work. If you want to see how I solve real-world problems (and not something contrived with the fibonacci sequence) then check out my Github repo. There’s enough code there to give you a good idea of my skills.

More than just wasting hours of developers time though, as someone who has hired developers before I do not see the value in a coding test. Yes, I know Joel Spolsky uses them and he has hired a lot more developers than me. Still, we’ll have to agree to disagree on this. I’ve hired developers before, I’ve built great teams, and never once have I had to resort to the crutch of a programming test.

A hiring manager should be able to complete the following tasks for any serious candidate.

  • Clone a repo
  • Read the code
  • Understand the problems being solved
  • Determine if the developer did a good job

If you can’t do that, you shouldn’t be hiring developers, period. Also, if you personally can’t do these tasks, I’m probably a bad fit for your team.

So that’s it. As much as I want a job and want to work at a great company. I will not draw tippy for you. On the fence about me? Offer me a 30 day contract. (I used to do that as part of the hiring process I describe in “Nerd Herding”)

If you are still interested in hiring me, email me, find me on twitter, or irc. I’m all over the place. I’d love to help you build great software.

Until next time,
I <3 |<

Who do you look to?

Dear Reader,

When you get stuck, who do you look to? I’m not asking in the spiritual or existential sense, I mean, in real life, when you hit a problem, do you have someone you can ask?

A lot of you who read this are developers – mostly PHP developers. When you hit a wall programmatically, do you have a person you know you can turn to and ask for help? Or even just ask an opinion? If not, that should be a priority for you.

One of the great things about the PHP community is that the members are so giving. I have been a member of several communities revolving around programming languages and have to say that the PHP is by far the most open and giving. It is one of the great assets of the language.

In the past year, I started getting more connected to my local tech and social media community here in Nashville. I am nowhere near being a Social Media expert so I am always looking to add people to my list of people I can look to for help. Lucky for me in Nashville we have a lot of really smart marketing people who are willing to share what they know.

Harvey MacKay summed it up nicely in the title of one of his books, “Dig Your Well Before You’re Thirsty: The Only Networking Book You’ll Ever Need“. Start getting to know people now, even if you don’t have questions.

Until next time,
I <3 =C=

…of influence and klout

Dear Reader,

Both of you that read this blog regularly know that I’ve been playing around with the Klout API. For a while now Klout has been my new shiny. Last week I started actually hitting their API and gathering info. At first, I just wanted to see what they had available. However, as I started to see the data come in, I started to find out some interesting things. (A little side note, their API is run by the cool folks over at Mashery. /me waves oh hai to Kirsten and Rob)