<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>schmichael&#039;s blog &#187; webdev</title>
	<atom:link href="http://blog.schmichael.com/tag/webdev/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.schmichael.com</link>
	<description>good good study, day day up</description>
	<lastBuildDate>Sat, 05 Nov 2011 23:13:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Web Developer Contractor Rates</title>
		<link>http://blog.schmichael.com/2009/11/18/web-developer-contractor-rates/</link>
		<comments>http://blog.schmichael.com/2009/11/18/web-developer-contractor-rates/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 20:15:35 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[$$$]]></category>
		<category><![CDATA[benjamins]]></category>
		<category><![CDATA[billing]]></category>
		<category><![CDATA[contractor]]></category>
		<category><![CDATA[navel gazing]]></category>
		<category><![CDATA[rates]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=752</guid>
		<description><![CDATA[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 &#8230; <a href="http://blog.schmichael.com/2009/11/18/web-developer-contractor-rates/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>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 <a href="http://lofiart.com">Lo-Fi Art</a>.</p>
<p>A really rough table of my rates as a contractor:</p>
<table>
<tr>
<th>Language</th>
<th>Experience</th>
<th>Rate per hour</th>
</tr>
<tr>
<td>PHP</td>
<td>Entry Level</td>
<td>$8-20</td>
</tr>
<tr>
<td>PHP</td>
<td>Experienced</td>
<td>$20-65</td>
</tr>
<tr>
<td>PHP</td>
<td>Specialist</td>
<td>never got here with PHP (thankfully <img src='http://blog.schmichael.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</td>
</tr>
<tr>
<td>Sysadmin</td>
<td>Slightly Experienced</td>
<td>$45</td>
</tr>
<tr>
<td>Python</td>
<td>Entry Level</td>
<td>$25-35</td>
</tr>
<tr>
<td>Python</td>
<td>Experienced</td>
<td>$35-65</td>
</tr>
<tr>
<td>Python</td>
<td>Specialist (Django)</td>
<td>$65-85</td>
</tr>
</table>
<p>However, I think I&#8217;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 <strong>$100/hr for new contracts by the end of 2009</strong>.</p>
<p><strong>Important Notes</strong></p>
<ul>
<li>All of the experience levels and rates are really rough estimates, please don&#8217;t read too much into it.  I just wanted to give people <em>some</em> idea of what rates are floating around.  (I also have a terrible memory, so these numbers could be way off.  Mea culpa.)</li>
<li>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.</li>
<li><strong>Experienced</strong> means you have a few &#8220;serious&#8221; projects under your belt (not the meaingless &#8220;5 years of experience&#8221; so many job descriptions call for).</li>
<li><strong>Specialist</strong> is a poor term, but I needed someway to describe the shift from &#8220;I&#8217;ll do anything if it&#8217;s PHP or Python&#8221; to &#8220;I&#8217;m a Django&#8221; developer.  My guess is that <em>real</em> 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).</li>
<li>I started with PHP first (2000-2006), so I was just less experienced in general.</li>
<li>Not only does supply &#038; demand help Python devs fetch a higher rate (reasonable demand, with low supply), but also a Python developer knows how to write code.<br/><br />
  A PHP &#8220;developer&#8221; could just be someone who has setup a few WordPress or Drupal sites and maybe done some theming.  I think you&#8217;d be hard pressed to find a web developer who couldn&#8217;t be described as having PHP &#8220;experience.&#8221;</li>
<li>My entire career in the &#8220;Specialist (Django)&#8221; 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.</li>
<li>These numbers are also rough estimates because I&#8217;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 <a href="http://en.wikipedia.org/wiki/Damage_per_second">DPS</a> for you MMORPG freaks).</li>
</ul>
<p><strong>So I&#8217;m {ripping off,getting ripped off by} my clients?</strong></p>
<p>I don&#8217;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&#8217;s experience.</p>
<p>Right up until I took my full time job at <a href="http://www.yougov.com">YouGov</a> my <em>favorite</em> client was still paying me at my $35/hr rate.  In fact sometimes <strong>I wonder if there might have been an inverse relationship between hourly rate and job satisfaction.</strong></p>
<p>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).</p>
<p><small>* Ok, so it looks like I brought it up&#8230; but I&#8217;d like to think it spawned some good discussion.</small><br />
<small>Left off the Python category as that gets syndicated on Unofficial Planet Python, and I don&#8217;t think this post is high enough quality to deserve that.  <img src='http://blog.schmichael.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2009/11/18/web-developer-contractor-rates/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Chrome Frame</title>
		<link>http://blog.schmichael.com/2009/09/22/google-chrome-frame/</link>
		<comments>http://blog.schmichael.com/2009/09/22/google-chrome-frame/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 19:40:19 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[chrome frame]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=729</guid>
		<description><![CDATA[I maintain a web application that must support Internet Explorer 6, so I was delighted to hear about Google Chrome Frame. Unfortunately their warnings of its alpha status seem to be well founded. The 2 show-stoppers I ran into fairly &#8230; <a href="http://blog.schmichael.com/2009/09/22/google-chrome-frame/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I maintain a web application that must support Internet Explorer 6, so I was delighted to hear about <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.</p>
<p>Unfortunately their warnings of its alpha status seem to be well founded.  The 2 show-stoppers I ran into fairly quickly were:</p>
<ol>
<li>Flash is difficult to install.  (Tip: Try visiting: <a href="cf:http://www.adobe.com/software/flash/about/">cf:http://www.adobe.com/software/flash/about/</a>)</li>
<li>The Location bar did not always change to reflect the current page.</li>
</ol>
<p>I&#8217;ll definitely be following this project closely as it may allow corporate users stuck on IE to use a different browser relatively easily.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2009/09/22/google-chrome-frame/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Join #webdevpdx on Freenode</title>
		<link>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/</link>
		<comments>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 17:59:33 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=433</guid>
		<description><![CDATA[Chris just created a channel for web developers in Portland, OR on Freenode, so if you&#8217;re a web developer (or sysadmin or dba or designer or manager forced to deal with us webdevs) come on in! #webdevpdx on irc.freenode.net New &#8230; <a href="http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/chrispitzer/status/983462380">Chris just created a channel for web developers in Portland, OR</a> on Freenode, so if you&#8217;re a web developer (or sysadmin or dba or designer or manager forced to deal with us webdevs) come on in!</p>
<p><a href="irc://irc.freenode.net/webdevpdx">#webdevpdx on irc.freenode.net</a></p>
<p>New to IRC?  Try one of these clients:</p>
<ul>
<li><a href="http://pidgin.im/">Pidgin</a> (but not really <a href="http://trac.adiumx.com/wiki/InternetRelayChat">Adium</a>)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/16">Chatzilla</a></li>
<li>and of course <em>The Client of the Future:</em> <strong><a href="http://www.irssi.org">irssi</a></strong></li>
</ul>
<p><small><strong>Update:</strong> I should have mentioned I&#8217;m <em>schmichael</em> on IRC.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript Collation Fail</title>
		<link>http://blog.schmichael.com/2008/07/14/javascript-collation-fail/</link>
		<comments>http://blog.schmichael.com/2008/07/14/javascript-collation-fail/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 19:10:19 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[localecompare]]></category>
		<category><![CDATA[unicode]]></category>
		<category><![CDATA[utf8]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=320</guid>
		<description><![CDATA[In JavaScript, the localeCompare method on Strings seems like a great way to properly sort strings, but its not: Hint: The last line should all look the same. At least I expect Firefox and Opera to agree. You can&#8217;t expect &#8230; <a href="http://blog.schmichael.com/2008/07/14/javascript-collation-fail/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In JavaScript, the <a href="http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Global_Objects:String#Methods_2">localeCompare method on Strings</a> seems like a great way to properly sort strings, but its not:<br />
<a href="http://michael.susens-schurter.com/files/localecompare-x-browser.png"><img src="http://michael.susens-schurter.com/files/localecompare-x-browser.png" alt="localeCompare Javasript method in 4 browsers" /></a><br />
<em>Hint: The last line should all look the same.</em>  At least I expect Firefox and Opera to agree.  You can&#8217;t expect much from IE6.</p>
<p>For kicks <a href="http://michael.susens-schurter.com/files/localecompare.html">try out other browsers</a> and post the final sorted list in the comments (hopefully my blog supports unicode).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/07/14/javascript-collation-fail/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

