<?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>shazow.net &#187; Work</title>
	<atom:link href="http://shazow.net/blog/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://shazow.net/blog</link>
	<description>The cake is a lie</description>
	<lastBuildDate>Sun, 23 May 2010 22:13:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Considering offers? A checklist in alphabetical order</title>
		<link>http://shazow.net/blog/2009/03/07/considering-offers-a-checklist-in-alphabetical-order/</link>
		<comments>http://shazow.net/blog/2009/03/07/considering-offers-a-checklist-in-alphabetical-order/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 21:42:28 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[work startup employment contracts]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=168</guid>
		<description><![CDATA[
Every offer you get will include some details and omit others. To perform a proper comparison between multiple offers and reach a good decision, you&#8217;ll need all the details for all offers.  After numerous back-and-forths with several companies, I composed a checklist ideal for anyone on the verge of deciding the next stage of [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center"><img src="http://shazow.net/blog/wp-content/uploads/2009/03/ballpit.jpg" style="border: 0;" title="My next job better have a ball pit!" /></div>
<p>Every offer you get will include some details and omit others. To perform a proper comparison between multiple offers and reach a good decision, you&#8217;ll need <em>all</em> the details for all offers.  After numerous back-and-forths with several companies, I composed a checklist ideal for anyone on the verge of deciding the next stage of their career.</p>
<ul>
<li><strong>Benefits</strong><br />
Medical, dental, vision. Yes, you&#8217;re young and healthy, but root canals are much more painful when you&#8217;re paying for them out of your pocket.</li>
<li><strong>Bonuses</strong><br />
Sign-on bonus, moving bonus, refresher bonus, performance bonus, yearly bonus. Some companies have them, others don&#8217;t. This affects your &#8220;total compensation&#8221; per year.</li>
<li><strong>Career opportunities</strong><br />
What positions are available in the event that you earn a promotion? What is the procedure for promotions and raises? Some companies require a strict number of years of experience or qualification before you can reach specific positions.</li>
<li><strong>Equity</strong><br />
Stock options and restricted stock units are two that I&#8217;ve encountered. Find out the vesting conditions (when the stock actually becomes yours), and more importantly find out its value. For publically traded companies you can look up the value of each share, but for private companies 100,000 shares means nothing if you don&#8217;t know how many shares there are in total. Ultimately, you want to find out what portion of the company value you are getting in the event that there is a buyout. Large and VC-funded companies will usually have less stock floating around for new hires, while smaller privately-funded companies will usually offer more stock for a lower salary. It&#8217;s up to you to determine how much you think that company (and thus, your stock) is worth.<br />
I highly recommend reading <a href="http://venturehacks.com/articles/job-offer">Venture Hacks&#8217; writeup on considering offers from startups</a> if you find yourself in that boat.</li>
<li><strong>Hours</strong><br />
What is the company culture regarding the number of hours they&#8217;re expecting you put in? Is it a 60hr/wk sweatshop, or do they not care how late you stumble in and how early you bust out as long as your work is getting done?</li>
<li><strong>Leaving</strong><br />
You never know when your life might change and you have to jump ship. Keep an eye out on leaving conditions and consequences, such as having to pay back your bonuses. You don&#8217;t want to find yourself in unexpected debt.</li>
<li><strong>Perks</strong><br />
Free lunches, gym access and trainers, public transit pass, housing assistance, commute shuttles, relocation assistance, company events, corporate discounts. They don&#8217;t pay the bills, but they don&#8217;t get taxed and make you a little bit happier even if you refuse to admit it.</li>
<li><strong>Salary</strong><br />
This is heavily proportional to the location and its cost of living. Your salary is worth a lot less in California than it is in Seattle where the cost of living is half, and there is no state income tax.</li>
<li><strong>Starting date</strong><br />
How flexible is your starting date?</li>
<li><strong>Telecommuting</strong><br />
What is the policy for working from home? What about workign abroad during an extended trip?</li>
<li><strong>Title</strong><br />
You might not think it matters right now, but it matters to your <em>career</em>. That, and salaries are often proportional to your title. Find out what positions are available in your branch of specialty and figure out what bracket they&#8217;re offering you. Big tech companies often have things like Software Engineer Level 1 (new graduate), Level 2, etc.</li>
<li><strong>Vacation</strong><br />
How many days of vacation per year? Personal days? Sick days?</li>
</ul>
<p>What did I miss?</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2009/03/07/considering-offers-a-checklist-in-alphabetical-order/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Employment status: differently abled</title>
		<link>http://shazow.net/blog/2008/12/23/employment-status-differently-abled/</link>
		<comments>http://shazow.net/blog/2008/12/23/employment-status-differently-abled/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 23:45:34 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Work]]></category>
		<category><![CDATA[work opensource unemployment sushi]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=133</guid>
		<description><![CDATA[

Today: My final day of work at Idée Inc. I wrapped up documenting and handing off my projects, returned my key and notebook, cleansed my hard drive of incriminating evidence, and headed off with my co-workers to celebrate my departure by consuming unhealthy quantities of delicious sushi at New Generation Sushi on Bloor. Tea, rolls, [...]]]></description>
			<content:encoded><![CDATA[<div style="margin-bottom: 1em;"><img src="http://shazow.net/blog/wp-content/uploads/2008/12/ceiling_cat_leave.jpg" title="Header of my going-away card, drawn by my co-worker and friend, Melina." width="480" height="360" style="border: 0; margin: 0; padding: 0;" /></div>
<p>
Today: My final day of work at <a href="http://ideeinc.com">Idée Inc</a>. I wrapped up documenting and handing off my projects, returned my key and notebook, cleansed my hard drive of incriminating evidence, and headed off with my co-workers to celebrate my departure by consuming unhealthy quantities of delicious sushi at New Generation Sushi on Bloor. Tea, rolls, teriyaki, and dirty jokes were had by all, suffixed  by ice cream and a heartwarming going away card.
</p>
<p>
Two weeks ago: I declared my intent of resignation. I learned freighter-loads of knowledge-units at Idée, especially in the first several months, but I realized that my growth has plateaued and it&#8217;s time to move on to a new environment which will yield novel challenges and new experiences. It was hard saying good bye to everyone, especially knowing that I will be back on Wednesdays and Fridays to mooch Idée&#8217;s free food and beer. I met great people and formed important friendships, and I&#8217;m not abandoning that!
</p>
<p>
What now: Take some time and indulge in my interests which were not discarded but merely supressed by my dive into adulthood. I will focus more on contributing to open source projects, such as those I&#8217;ve started in my free time while being employed (<a href="http://workerpool.googlecode.com/">workerpool</a>, <a href="http://s3funnel.googlecode.com/">s3funnel</a>, <a href="http://urllib3.googlecode.com/">urllib3</a>) and those I use on a daily basis which hold a special place in my heart (<a href="http://pida.co.uk/">PIDA</a>, <a href="http://pylonshq.com/">Pylons</a>, <a href="http://gentoo.org/">Gentoo</a>, and <a href="http://www.kde.org/">KDE</a>). Maybe I&#8217;ll also dabble in some game development.
</p>
<p>
Alas, sooner or later, bills will start piling up and I&#8217;ll have to seek new employment, or at the very least some freelance/contract work. So tell your friends and neighbours that a Python ninja (and Javascript slayer by night) with wicked webapp and database experience is available for hire.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2008/12/23/employment-status-differently-abled/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Misconceptioned Memcached</title>
		<link>http://shazow.net/blog/2008/04/22/misconceptioned-memcached/</link>
		<comments>http://shazow.net/blog/2008/04/22/misconceptioned-memcached/#comments</comments>
		<pubDate>Wed, 23 Apr 2008 02:27:16 +0000</pubDate>
		<dc:creator>shazow</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://shazow.net/blog/?p=121</guid>
		<description><![CDATA[
You&#8217;ve heard of memcached, haven&#8217;t you?
Made by Livejournal to sustain millions of angst-ridden teen diaries, now used by web giants like Slashdot, Digg, Wikipedia, Facebook, Youtube, and countless more. Even this very Wordpress blog supports it.
The same misconception seems to haunt all those unfamiliar with the memcached: it&#8217;s some sort of magical layer that sits [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center; padding: 1em;"><img src="http://shazow.net/blog/wp-content/uploads/2008/04/memcached.png" alt="The magical memcached layer" style="border: none;" /></div>
<p>You&#8217;ve heard of <a href="http://danga.com/memcached/">memcached</a>, haven&#8217;t you?</p>
<p>Made by Livejournal to sustain millions of angst-ridden teen diaries, now used by web giants like Slashdot, Digg, Wikipedia, Facebook, Youtube, and countless more. Even this very Wordpress blog supports it.</p>
<p>The same misconception seems to haunt all those unfamiliar with the memcached: it&#8217;s some sort of magical layer that sits between your database and your application layer, and somehow it makes things faster.  The magic is scary. How would something know what it needs to speed up from the database? It must require all sorts of nasty configuration, all sorts of nasty corner cases to cover?</p>
<p>Admit it. The thought of using memcached terrifies you. Well, I have good news for you: That&#8217;s not what memcached is. Are you read for it?</p>
<h2 style="text-align: center">Memcached is a hash table.</h2>
<p>No, seriously. It&#8217;s <em>that</em> simple. It&#8217;s a hash table that sits in memory, that can scale between multiple servers. All you do is launch the memcached daemon on your server with <code style="border: 1px dotted #ddd; background: #eee; padding: 0 3px;">memcached</code>and you can use it!</p>
<p>&#8220;<em>Well obviously that&#8217;s not all there is&#8230;</em>&#8221; you say. It is! As far as the server is concerned, that&#8217;s all the configuration it needs.</p>
<p>Now, the client side&#8230;</p>
<p>How does the hash table work? It&#8217;s just like a dictionary. To save data: you send it a key/value pair, and it saves it. To retrieve data: you send it a key, and it gives you the value. Explicit. Simple. Efficient. It supports a handful of simple operations like <code>set</code>, <code>get</code>, and <code>replace</code>.</p>
<p>Here&#8217;s how to use 3 distributed memcached servers to cache a huge query in Python:</p>

<div class="wp_syntax"><div class="code"><pre class="python python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> memcache
...
<span style="color: black;">cache</span> = memcache.<span style="color: black;">Client</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'192.168.1.100:11211'</span>,
                         <span style="color: #483d8b;">'192.168.1.101:11211'</span>,
                         <span style="color: #483d8b;">'192.168.1.102:11211'</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
...
<span style="color: #ff7700;font-weight:bold;">def</span> get_post<span style="color: black;">&#40;</span>post_id<span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;Return data associated with post with given post_id&quot;</span>
    result = cache.<span style="color: black;">get</span><span style="color: black;">&#40;</span>post_id<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> result:
        <span style="color: #808080; font-style: italic;"># No cache, perform potentially costly SQL query</span>
        result = model.<span style="color: black;">Post</span>.<span style="color: black;">get_post</span><span style="color: black;">&#40;</span>post_id<span style="color: black;">&#41;</span>
        <span style="color: #808080; font-style: italic;"># Save result in cache for next time</span>
        cache.<span style="color: #008000;">set</span><span style="color: black;">&#40;</span>post_id, result<span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> result</pre></div></div>

<p>Do you see what they did there?</p>
<p>Yes, it&#8217;s not magic. Yes, you have to cache things explicitly. Yes, this is incredibly powerful. Now go. Go make a Slashdotting-proof web service, that&#8217;ll show them.</p>
]]></content:encoded>
			<wfw:commentRss>http://shazow.net/blog/2008/04/22/misconceptioned-memcached/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.582 seconds -->
