Skip to content

Why you should blog

This is something I tell everyone I run into (because I think everyone has an interesting story to tell), so I wanted to outline my thoughts once and for all.

If there is any area of your life (professional life, hobby, future career) that you care about and of which you want to improve your understanding, you can do no better than to blog about the topic as regularly as you can.

Now, this isn’t the golden age of blogging, when you could be the only tailor/wine merchant/banker/etc blogging, and blog your way to fame, conferences, and riches.  There are countless blogs out there now (almost 1.3 million, according to technorati).  But you can still differentiate yourself from most by blogging.

I believer there are many many reasons to blog, but the strongest are:

  • you demonstrate tremendous credibility when you blog.  This credibility isn’t earned immediately, but after you invest some time (a year or so), you’ll have credibility when someone searchs for you on the web, or when you tell a prospective employer/customer/client “oh, I encountered that problem, let me send you an article about that” and you do.  A blog works for you even when you are sleeping–I’ve had random people contact me about a blog article, and I’ve had people I know say “I was searching for topic yyy and ran across your blog”.
  • you will learn more about the subject you are writing about than you thought possible.  I never know something so well as when you can explain it to someone else.  In addition, as you write post after post, you’ll find new dimensions to your subject, new people to interview (a great way to build content for your blog and to make connections), new questions to ask, and new organizations or companies relevant to you.
  • it is free, except for your time.  Other than opportunity cost and some thought, a blog doesn’t cost you anything.  This makes it a low risk marketing effort.

One bonus benefit: you own all the content you create!  Unlike what you post on twitter, which is ephemeral, or what you post on facebook, which is hard to export, most blogging software lets you import and export with relative ease.  There are services out there that will help you package your blog as a book.

Here are three objections that you may have to blogging.

  • Aren’t I giving my knowledge away for free? — Well, yes, if you solve the exact same problem that someone else has.  In my experience, it is much more likely that someone will have a similar problem, in which case your post is an advertisement for your services instead.  And if you solve someone’s exact problem and never see a dime for it, that’s good karma.  Now, I wouldn’t encourage someone to blog about a trade secret or an entire idea for which they are trying to get a patent, but they might blog about the process of getting there, or about a similar idea that they investigated but found lacking.
  • I can’t write — This is a two part answer.   One, you should get better at writing, since it is a key part of business today.  And practicing on a blog is one great way to do it.  Two, if you can’t write or don’t feel it is applicable to your skill set (you are, say, a photographer) and I can’t persuade you that it is *still* a good idea to write well, then you can blog using other media.  Video blogging, photo blogging and audio blogging are all options to which all of the good points I’ve made above apply, and none of them require you to write a word (I don’t have experience with those typs of blogging, but a quick search should help you find a platform).
  • I don’t have the time — Ah, finally, a good objection!  A blog does not have quick payback; it can be a year of writing a post every ten days before you get 20 visitors a day.  If you choose to invest in your career in another way (writing open source, if you are a programmer, toastmasters if you are a salesman, volunteering at a daycare if you are interested in childcare, etc, etc) I admire you.  I think these other investments shine in other ways, but they lack the scalability, reach and timelessness of a blog.  So, consider your priorities, and if blogging’s benefits aren’t enough to justify a time investment, I wish you well.

Ok, I have convinced you to blog, right?  Three next steps:

  1. Sign up for an account on blogger or  Spend 10 minutes picking a look and feel and setting up an about me page, but don’t spend more than that.  It’s very easy to get obsessed with how your blog looks and ignore the content!  (You can always go back in six months and change your look.)
  2. Write your first blog post!  Don’t have it be an ‘about me’ post; jump right into the meat of what you want to explore, be it Tanzanian politics, the economics of ‘How I Met Your Mother’ or space technology.
  3. Decide how much time you want to spend on your blog going forward.  How much time should you devote?  Enough so that your blog is active, which I define as a post a week (your mileage may vary).  More if you have time.  Also, realize that you will have good months and bad months.  I’ve been blogging for over 8 years and have had months where I struggled to get one post up (and sometimes failed–I’m looking at you, November 2011), and others where I posted every other day.  I also suggest writing a bunch of posts when you have the time and/or urge.  These you can then schedule so that when you don’t have time, you can still be putting new content out there.

And a bonus step: find other bloggers out there, using Google or your search engine of choice, and comment on their blogs.  This brings you into a conversation and avoids ‘shouting into the wilderness’ syndrome of a blog that no one but you visits, which can be so disheartening.

Go do it!

Calling GWT code from javascript

There are lots of snippets out there on the internet telling you how to run GWT code from javascript.  Here’s the canonical one.

I recently did a fair bit of this, calling GWT code from jquery.  Two things jumped out:

  • Make sure your jquery method is run in $(window).load(), not $(document).ready(). If you use the latter, your GWT code will not have executed and exported the javascript method to the window object. More on that.
  • I couldn’t find a list of valid java type signatures (even in the JVM book) for the longest time, but here they are, at long last.

Update, 2/26: I ran into some issues with using $window.load().  What you have to do instead is create a gwtonload function and call it from your gwt loader via jsni.  This ensures that GWT code is fully loaded, which $window.onload() does not.

Using Munin To Track Business Values

Munin is a great piece of software that we use at my company to track overall trends in disk usage, CPU and other system purposes.  Now, we don’t have a ton of servers, so I’m not sure how munin scales for many machines, but it has been invaluable in troubleshooting problems and giving us historic context.

One thing we’ve started to do is to incorporate business specific metrics into munin.  This is good because it ties the technical operations more tightly to the business, making us aware when there are issues.

Anything you can run a sql query or do a wget for, you can graph in munin.  (Here’s something I wrote about writing munin plugins a year ago.)

I don’t think that munin is acceptable as a general purpose dashboard.  I’d probably look at Google Analytics if I was web drivingdriven (updated Feb 25 2012), and at statsmix if I needed to integrate a bunch of disparate services.  But for bringing additional business awareness to a technical team, writing a few custom munin plugins that will graph key business metrics can be very useful.

Hiring Tips

I’ve only hired a few times, but I just wanted to jot some notes about what worked for me in this process.

  • Use a bug tracker or issue tracker to keep track of resumes, emails and interactions
  • Respond to every person – there were some outsourcing firms that I didn’t respond to, but every other person got a response from me
  • Use Craigslist.
  • Use an email alias on your Craigslist post
  • Use other mailing lists (rmiug-jobs, cu cs jobs, even local neighborhood lists)
  • Ask your networks for candidates, but don’t expect too much of them
  • Pre-screen with a set of email questions if possible.  Don’t ask candidates to do too much, but asking them to do some work will allow some to self select out
  • When doing an interview, set the candidate up to succeed, by telling them what you are planning to ask them to do
  • Set deadlines for yourself, and share them with the candidates
  • Follow up with every candidate when you make a decision – I don’t think that it is fair to do otherwise
  • If you can point job seekers at another position, do so.  I recently did this with a QA position – in my search, I discovered another firm that was looking to hire, so I pointed all the candidates that didn’t work for us to that firms job posting
  • The web is full of sample job interview questions – use them!