Posts Tagged ‘navel gazing’

Web Developer Contractor Rates

Wednesday, November 18th, 2009

We just happened* to start chatting in the #pdxdjango IRC channel on Freenode about what the rates web developer contractors charge today, and I wanted to post my experiences after leaving the contractor world a few months ago after 2 years of more or less successful contracting either individually or via Lo-Fi Art.

A really rough table of my rates as a contractor:

Language Experience Rate per hour
PHP Entry Level $8-20
PHP Experienced $20-65
PHP Specialist never got here with PHP (thankfully ;) )
Sysadmin Slightly Experienced $45
Python Entry Level $25-35
Python Experienced $35-65
Python Specialist (Django) $65-85

However, I think I’ve billed pretty cheaply, especially for Python work. If I had continued in the contracting world I think I would have been aiming for north of $100/hr for new contracts by the end of 2009.

Important Notes

  • All of the experience levels and rates are really rough estimates, please don’t read too much into it. I just wanted to give people some idea of what rates are floating around. (I also have a terrible memory, so these numbers could be way off. Mea culpa.)
  • The sysadmin job is a career oddity for me and consisted of mostly doing Active Directory / Exchange setup (snuck in a Debian server of course). That being said I still enjoy sysadminish type work today.
  • Experienced means you have a few “serious” projects under your belt (not the meaingless “5 years of experience” so many job descriptions call for).
  • Specialist is a poor term, but I needed someway to describe the shift from “I’ll do anything if it’s PHP or Python” to “I’m a Django” developer. My guess is that real specialists (contributors to major projects or popular plugin/module authors) fall into the upper end of this spectrum and can often charge well over $100/hr for highly sought after specialties (Anything + Facebook might be a good example of that right now).
  • I started with PHP first (2000-2006), so I was just less experienced in general.
  • Not only does supply & demand help Python devs fetch a higher rate (reasonable demand, with low supply), but also a Python developer knows how to write code.

    A PHP “developer” could just be someone who has setup a few WordPress or Drupal sites and maybe done some theming. I think you’d be hard pressed to find a web developer who couldn’t be described as having PHP “experience.”
  • My entire career in the “Specialist (Django)” range was in Portland, OR which has a vibrant web related economy (at least as far as my untrained eye can tell). All other rates fell at least partially into time periods where I lived in Illinois (and not Chicago), so that could account for some of the upward shift in the my rates.
  • These numbers are also rough estimates because I’ve done flat per-project billing, retainers, and a variety of other crazy ways of exchanging money for labor. Dollars per hour is still what it all comes down to in the end (like DPS for you MMORPG freaks).

So I’m {ripping off,getting ripped off by} my clients?

I don’t know, but I doubt it. If anything my rough estimates should show what an inexact science billing is. It probably varies more on project factors than on the contractor’s experience.

Right up until I took my full time job at YouGov my favorite client was still paying me at my $35/hr rate. In fact sometimes I wonder if there might have been an inverse relationship between hourly rate and job satisfaction.

This could be a quirk of me being a pretty neurotic person and therefore feeling more pressure when working at a higher rate. At lower rates I generally worked more hours and spent more time tweaking designs, writing tests, and doing other tasks other than putting my head down and coding. Thus at the end of the day, the more hours I worked on projects I liked, the less money I made (relative to working fewer hours on less enjoyable projects).

* Ok, so it looks like I brought it up… but I’d like to think it spawned some good discussion.
Left off the Python category as that gets syndicated on Unofficial Planet Python, and I don’t think this post is high enough quality to deserve that. :)

Man Babies

Thursday, May 8th, 2008

Right after I graduated from college, I taught 2 low level CS courses over a couple of semesters. Two of my students created some sort of chat program where you could punch your friends in the face if I remember correctly. It was awesome.

Now they’ve graduated and brought something even more amazing into this world: ManBabies.com

I could try to describe it, or respond to it, but I really think you just need to see it for yourself.

I’m so proud.

New WordPress Plugins and Updates

Saturday, September 1st, 2007
WordPress Screenshot

I just added the Subscribe to Comments WordPress plugin. You should now be able to get e-mail notifications when new comments are posted. This should make flamewars and trolling much easier. ;)

For what its worth I also installed the Google Sitemap Generator plugin which seems to work alright. My main gripe is that the author uses a blog post dated June 5, 2005 as the home page for the plugin! I actually passed it up and kept looking the first time I hit the page because I assumed the plugin was old.

I have to admit, sites that use a blog like a full-fledged CMS usually annoy me. Of course tons of sites probably do it without me noticing, so I suppose if its done well, I don’t mind. :)

A while ago I installed the WP-Syntax plugin. Here’s a snippet of Python to test it out since I haven’t gotten around to posting any code lately:

d = {'test1': 'hello world'}
d.setdefault('test1', 'goodbye world')
d.setdefault('foo', 'bar')
print d['test1']
print d['foo']

This prints:

hello world
bar

becase setdefault() only changes the value of a dictionary key if the key has no value. Very handy.

My final bit of WordPress hacking has been to switch to using Subversion to update WordPress. Juggling files to do updates is just annoying. With Subversion I just checked out http://svn.automattic.com/wordpress/branches/2.2 and run svn up whenever an update is released.

I suppose I could just schedule running svn up with a cron job. It would even automatically e-mail what files it updates because cron e-mails stdout by default. But considering how much I love automatic updates on Windows, I think I’ll hold off on that… ;)

Update: Grrr… Now if only I could convince WordPress not to convert my <div> tags to <p> tags when editing posts and messing up my whitespace when saving!

Vista not a Dud…

Tuesday, July 24th, 2007

its just irrelevant. The operating system you use doesn’t matter much anymore, and arguably it shouldn’t.

I’m not defending Vista. In fact it seems like the perfect example of how Microsoft doesn’t understand where the computer industry is headed.

By the time Windows 7 is released the operating system should just be a minor personal preference like choosing Gnome vs. KDE.

Of course video games and specialized software will keep people on Windows. Luckily at least specialized software is migrating to the web very quickly. Video games will hopefully become more cross-platform in order to remain popular in a world where there’s actual competition in the operating system world.

I haven’t posted in a long time, and this is a really lame way to start posting again… expect some much more interesting posts in the near future.

Sponsors!

Wednesday, June 13th, 2007

I’m excited to announce that I’ve (yet again) sold my soul to devil and agreed to put some sponsored links on my blog! The sponsors were very nice to work with and allowed me to clearly mark every ad with a fieldset:

Advertisement

Read my blog!

The following posts now have sponsors:

  • Me vs. Vista – this is kind of a whiny post about Vista, but it really was quite frustrating to realize what kind of a beast I’m going to have to support for years to come.
  • Feisty Fawn Update – I’m happy to report wireless is still working flawlessly on that IBM Thinkpad T30 with Ubuntu Feisty Fawn. In fact Ubuntu handles it much better than the flaky drivers IBM provided for Windows XP (and XP doesn’t support it out of the box).
  • ATI Proprietary Driver Annoyance – Since writing that post I’ve found out most of the Linux community is frustrated with ATI’s terrible Linux support. I suggest simply living with the open source drivers or buying an nVidia card.
  • Lost in a Sea of Web Frameworks – I’m still lost in that sea. I’m currently using CherryPy for one project and Drupal for two others. I guess I still haven’t been able to get PHP out of my life!
  • Hurling Chairs – This is an ancient post about Steve Ballmer throwing a chair. Still makes me laugh. I’m a bit harsh in the article though… I have a feeling someday I’ll regret making fun of bald white males. ;)
  • My Thoughts on Consumer Electronics – The article I link to still makes me laugh.
  • IT Horror Story – So is it stealing to get sponsored for a somebody else’s story? “Steve” — I owe you a beer… or root beer if you’d prefer.

For anyone concerned, here are some advertising schemes I’ll never buy into:

  • Pay to post — I will always clearly mark what is an ad and what isn’t.
  • Those stupid little pop-up JavaScript ads on words. I hate those.
  • Pop-ups — but only because they’re soooooo 1999.

However, if anyone would like to sponsor a Punch-the-Monkey-to-Win-an-XBox, I’d be more than happy to put it on every post. I have a room full of xboxes from those ads… ;)

My Thoughts on Consumer Electronics & Gadgets

Tuesday, March 6th, 2007

…as summed up by Joel Johnson. (Thanks to Aaron Colflesh for the link!) Children be warned that our good buddy Joel uses some grown-up words to describe the stuff you’re throwing tantrums to get every Christmas.

For anyone too lazy or squimish to read the article, let me sum it up for you: Gadgets suck.

In other news I thought I might be a neo-luddite for hating gadgets, DRM, and people who pretend tags are new when they’re just keywords which have been around forever. A quick skim of the Wikipedia article on neo-luddism made me realize I’m not that extreme, but rather, just grumpy and sleep deprived most of the time.

Advertisement

Hopefully you can apply an Electrical Engineering degree to something more productive than just gadgets.