<?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>kate mats &#187; technology</title>
	<atom:link href="http://katemats.com/blog/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://katemats.com/blog</link>
	<description>bringing style and technology together</description>
	<lastBuildDate>Thu, 20 Aug 2009 16:40:08 +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>Good Stuff: Adobe ConnectNow</title>
		<link>http://katemats.com/blog/2008/09/11/good-stuff-adobe-connectnow/</link>
		<comments>http://katemats.com/blog/2008/09/11/good-stuff-adobe-connectnow/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 17:13:21 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[desktop sharing]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[productivity]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=157</guid>
		<description><![CDATA[I am a big fan of working globally.  I love the way technology has revolutionized the way we can manage our teams and you can find the right people with the right skillset when you need it.  There are lots of great tools that have been developed that allow desktop sharing and collaboration.  Both WebEx [...]]]></description>
			<content:encoded><![CDATA[<p>I am a big fan of working globally.  I love the way technology has revolutionized the way we can manage our teams and you can find the right people with the right skillset when you need it.  There are lots of great tools that have been developed that allow desktop sharing and collaboration.  Both <a href="http://www.webex.com">WebEx</a> and <a href="http://www.gotomeeting.com">GoToMeeting</a> are pay-for-services I have used in the past&#8211;being able to show your desktop and share your environment is a great way of doing remote presentations and demos.  Recently I came across Adobe&#8217;s <a href="http://www.adobe.com/acom/connectnow/">ConnectNow</a>&#8211;which is a lot like the other two services, but has one major advantage&#8211;it is free. And unlikely some of the other desktop sharing programs it works equally well on both Macs and PCs since it leverages Adobe&#8217;s flash technology.</p>
<p>Check it out, it is very cool!</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/09/11/good-stuff-adobe-connectnow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why All Tech Companies Should Cater Meals</title>
		<link>http://katemats.com/blog/2008/08/22/why-all-tech-companies-should-cater-meals/</link>
		<comments>http://katemats.com/blog/2008/08/22/why-all-tech-companies-should-cater-meals/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 12:52:54 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[meals]]></category>
		<category><![CDATA[perks]]></category>
		<category><![CDATA[startups]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=119</guid>
		<description><![CDATA[I have always thought that the reason places like Google catered food was because it was a nice perk for the employees.  A year ago I would have never thought that I would be advocating this practice for all start-ups.  So how did I change my mind?  Let me tell the story.
Not [...]]]></description>
			<content:encoded><![CDATA[<p>I have always thought that the reason places like Google catered food was because it was a nice perk for the employees.  A year ago I would have never thought that I would be advocating this practice for all start-ups.  So how did I change my mind?  Let me tell the story.</p>
<p>Not all that many months ago we were working towards a deadline (for those of you new to this blog I work at a phenomenal startup, <a href="http://www.delvenetworks.com">Delve</a>, where I lead the engineering organization) and we started ordering dinners to provide an incentive for people to stay late.  Food would arrive between 5-6pm and most people would stay until 7 or 8.  Almost everyone ordered meals.  When people might normally leave around 6, we found most people staying at least 1-2 hours longer than they had in the past because of the dinners (part of this was the guilt trip that if you order food you really ought to be staying late).</p>
<p>One day we were pushing against a tight deadline and the whole team was planning on getting up to go to lunch.  So I said &#8220;Hey guys, let&#8217;s work through lunch and I will go pick up food for everyone.&#8221;  The team was excited by this and everyone stayed through lunch (and later dinner) excited by the lure of free food.  We decided to keep doing lunches for the next couple of weeks until our milestone.</p>
<p>We were able to hit our deadline with ease (something that we thought was unlikely) and it quickly came apparent that these meals were drastically increasing our productivity as a team.  Of course part of it was because people were working more hours, but lunches had a much bigger impact than dinner ever did.</p>
<p>Why was free lunch so important?  Well our team would all go pick up or eat lunch together.  Even if it wasn&#8217;t the whole team it was usually more than 2-3 people, and that is a lot when we only have a 10 person team.  By moving lunches in the office everyone would stay.  Everyone would work through lunch and even though they were eating at their desks, people would eat together and socialize a little bit (we sit in an open space so it is easy to visit one another without getting up).  Not having people leave the office to go pick up food made a huge impact on our productivity as a team.</p>
<p>So after our glowing success I considered suspending the program (since getting food from restaurants isn&#8217;t always cheap).  However when I started working the economics, I reconsidered:</p>
<p>Developer Salary:    about $75k    or $35/hr<br />
Average cost of a meal:    $20</p>
<p>Cost savings in 1 year:    $15 * 5 days * 48 weeks (assuming 4 weeks vacation) = $3600<br />
With two meals:    $7,200<br />
over a team of 10:    $72,000     or about 1 full time developer</p>
<p>So even though the meals are an increased cost, I believe that doing them is giving us close to the benefit of an extra head.</p>
<p>Although besides the cost benefit it also makes the developers really happy.  They always talk about free meals being a great perk of the job.  I also thinks it helps team unity since people spend more of their social time together as a team (lubricating relationships and making collaboration more efficient).</p>
<p>I would strongly suggest that you try it in your office with your team&#8211;at least for a while before a milestone and see if it works for you.  I would have never believed it made this much of a difference if I hadn&#8217;t seen the impact with my own eyes (we have been doing this for about 9 months now with much success).</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/08/22/why-all-tech-companies-should-cater-meals/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>S3 Outage This Weekend</title>
		<link>http://katemats.com/blog/2008/07/21/s3-outage-this-weekend/</link>
		<comments>http://katemats.com/blog/2008/07/21/s3-outage-this-weekend/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 21:42:41 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[operations]]></category>
		<category><![CDATA[outage]]></category>
		<category><![CDATA[s3]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=58</guid>
		<description><![CDATA[So Amazon&#8217;s S3 had a major outage this weekend.  There service dashboard had the service unavailable for over 6 hours.  This of course was bad news for all the startups that rely on S3 for their applications, as most were crippled with this outage.
I am a big believer in cloud computing and feel strongly that [...]]]></description>
			<content:encoded><![CDATA[<p>So Amazon&#8217;s S3 had a major outage this weekend.  There <a href="http://status.aws.amazon.com/">service dashboard </a>had the service unavailable for over 6 hours.  This of course was bad news for all the startups that rely on S3 for their applications, as most were crippled with this outage.</p>
<p>I am a big believer in cloud computing and feel strongly that all new software should be built leveraging these new architectures, but when they have outages (and of course they will) it is so important to build your application to handle these sorts of issues&#8211;in a sense to fail gracefully.  Regardless of if you use cloud computing or you host your own servers most outages are inevitable.  There will always be the chance that there are natural disasters or that hardware could fail&#8211;both of which are impossible to predict.  By being able to trust and leverage a service that has experts in storage it allows you to build your business on that expertise in a cost effective way.  Also chances are that a company with a large operations team is going to be able to respond and diagnose issues quicker.  In addition in Amazon&#8217;s case&#8211;they have several data centers and redundancy that is only available to businesses on a very large scale.  There are very fewer startups that would want to spend their precious capital buying hardware in two geographical locations for increased redundancy (nor would this be a smart use of one&#8217;s capital).  I would like to believe that because of Amazon&#8217;s large infrastructure and expertise in storage that their outages would be fewer and far between than if I was relying on my own storage solution.  Although only time will tell if this is the case.</p>
<p>One thing though, is that this does present opportunity.  If someone could build storage on top of amazon&#8217;s or could promise higher up-time some companies would pay a premium for that higher guarantee.  This could be a good business.  And one could leverage a bunch of different cloud computing offerings underneath their abstraction layer.  Google has a storage service, <a href="http://www.nirvanix.com/">Nirvanix </a>is another competitor, and as this model becomes more popular I am sure others will emerge.  There is still work to be done with cloud computing but it is an economical and game changing development in technology.  I think that in a few years there will be computing services, storage services, etc and only a few companies will control all the hardware.</p>
<p>So what do you do if you have built your application using S3 and it goes down?  Make sure you address your customers&#8217; experience.  This is the most important thing you can do.  If your application is inoperable, provide your customers a means to reach your tech support.  If part of your application can still work, make sure it does.  Try to segment your applicaiton so your customers aren&#8217;t blocked.  And finally, if possible, build a back up method for storage.  Maybe it is using another web service, or your own local servers to keep things functioning.  Then customers can still add new data, they just may not be able to access the old data.  Or if you cache some stuff, try to write a smart service that will look in the cache first.  The main thing is: focus on the user experience and make sure that they don&#8217;t encounter a dead application.</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/07/21/s3-outage-this-weekend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Pick a CDN</title>
		<link>http://katemats.com/blog/2008/07/15/how-to-pick-a-cdn/</link>
		<comments>http://katemats.com/blog/2008/07/15/how-to-pick-a-cdn/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 17:44:01 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[CDN]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=55</guid>
		<description><![CDATA[In talking with some of my CTO friends, one of the things that has come up is what a pain in the butt it is to choose a CDN.  There isn&#8217;t any widely available testing tool and there are so many different things to think about when negotiating a contract with these people.  [...]]]></description>
			<content:encoded><![CDATA[<p>In talking with some of my CTO friends, one of the things that has come up is what a pain in the butt it is to choose a CDN.  There isn&#8217;t any widely available testing tool and there are so many different things to think about when negotiating a contract with these people.  While this list is hardly comprehensive, here are some things I wrote down to think about when we were evaluating CDNs.</p>
<p>What you know:<br />
We want to spend as little as possible per GB.<br />
We know we are going to be using more bandwidth month over month.<br />
We don’t want to be locked into a contract that requires a high usage per month though, in the event we don’t hit those numbers.<br />
We need to offer a reliable solution to our customers</p>
<p>Here are the elements of the contract to consider:</p>
<p>Contract Length<br />
- Our usage is going to change as our business grows so we need to make sure our contract allows us to take advantage of that.<br />
- We also do not want to be locked into a fixed amount of usage in the event we are not able to ramp up quickly enough.</p>
<p>Minimums<br />
- For certain prices most CDNs have minimum usage requirements.<br />
- Some will offer roll over (just like cell phone minutes) where you have a 12 month period to meet your minimums (which works nicely as your usage and bandwidth grows)<br />
- Some allow ramp up times before you are required to meet your minimums (so you only pay for what you use for the first 90 days as an example)</p>
<p>Cash Flow — what is the payment plan associated—do we pay monthly, quarterly, etc.</p>
<p>Per Gig Pricing  &#8212; Obvious the lower per GB the better.</p>
<p>Quality<br />
- CDN quality is hard to quantify (there aren’t studies or things you can reference and all of them seem to have tip top keynote metrics).<br />
- Once we have implemented a CDN we should run our own set of tests and determine their ability to deliver high quality content.<br />
- We can look at examples of their other video customers, etc to get a feel for different levels of quality.<br />
- Do they have different “quality” pricing?  This is not an issue now, but could be at much higher usage levels.</p>
<p>Reliability<br />
- Backup vendors: Do we need to offer a fall back CDN to customers?  If so, is it worth employing a pay-for-what-you-use relationship with a CDN to fall back on if our primary CDN goes down?</p>
<p>Multiple vendor<br />
- If we use two vendors then it is harder for us to achieve a bulk discount for higher volume.<br />
- Using multiple vendors can allow us to get better results—comparing quality post implementation.<br />
- More referrals from vendors for more customer leads.</p>
<p>SLAs<br />
-Evaluate and negotiate on penalties and ramifications for SLA and service failures.</p>
<p>Termination<br />
- Make sure we understand the conditions under what we can terminate the contract.</p>
<p>Feel free to leave comments if you think of anything I might have missed! <img src='http://katemats.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/07/15/how-to-pick-a-cdn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great Article on Open vs. Closed Platform</title>
		<link>http://katemats.com/blog/2008/06/11/great-article-on-open-vs-closed-platform/</link>
		<comments>http://katemats.com/blog/2008/06/11/great-article-on-open-vs-closed-platform/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 20:11:30 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[closed]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=43</guid>
		<description><![CDATA[I came across this article which articulates some of the challenges of having a great, easy to use product, and an open platform where other can innovate on top of your technology (enabling all sorts of useful applications and if you monetize it correctly additional revenue streams).
When I was at Windows this was one of [...]]]></description>
			<content:encoded><![CDATA[<p>I came across<a href="http://bits.blogs.nytimes.com/2008/06/06/the-hidden-danger-of-gmail-labs/"> this article</a> which articulates some of the challenges of having a great, easy to use product, and an open platform where other can innovate on top of your technology (enabling all sorts of useful applications and if you monetize it correctly additional revenue streams).</p>
<p>When I was at Windows this was one of the problems in developing Windows 2000.  We had opened up our platform to allow hardware vendors to write software and hardware.  They were supposed to use our finite set of APIs to access things (such as writing to the registry), however since APIs were limited in early versions of windows, people would  muck around the code and figure out how to achieve what they needed with their application (or sometimes were even given those instructions from Microsoft employees so we would have more hardware that was compatible with our operating system).  This later lead to lets of problems because applications built on top of the OS could overwrite bits, leak memory, and other bad things all of which could cause things like the blue screen of death.  Microsoft took control of this situation by creating more APIs, more documentation, and creating &#8220;trusted&#8221;software programs that assured a user the software they were about to install was a trusted application.  At the time I worked in Windows (many years ago), one of the selling points (say above a Macintosh) was that it was compatible with so much software and hardware.  This was because Windows (whether it meant to be or not) was largely an open platform.</p>
<p>Apple on the other hand is the King of User Experience.  I use an  Apple Powerbook and it seldom ever gets restarted.  I rarely have a problem with any application I run.  Apple is known for being a closed platform.  Apple gives developers a finite set of APIs to work with&#8211;APIs  that are well protected so they can ensure applications don&#8217;t affect the over all Apple experience.  They are doing this with the iPhone now too.  Developers sometimes complain that they are limited with what is possible on the Apple platform, but as a user I like the simplicity and consistency between applications I use and install.</p>
<p>In my opinion, web services are the crux of the next generation of software&#8211;where you never install anything and everything runs seamlessly through your broadband connection.  With this new technology and new paradigm for building software the whole open platform idea has a whole new life of its own.  Amazon AWS opens up the basic things: computation power, storage, and messaging&#8211;what you need to build any web application.  Increasingly more and more companies are building their software on services.  Using Flex (the technology we use at my company for our front end development) one of the primary ways to power an application is web services based.  So then as a business if your software is built this way, when do you open it up for innovation?  How do you let users build on top of your platform so that is controlled and you still have a great user experience?</p>
<p>Facebook got lots of hype and developer fanfare over their open platform, but most of the applications annoy me&#8211;when I logon and see a bunch of junk.  While I have a bunch of them installed on my profile, it was more because of apathy for removing them than the fact I actually use them.  Facebook is a great distraction and I like the entertaining aspect of social networks, but I do not find the rate your friends, vote for who is most popular (maybe because I never was?), or kick your friends in the head applications all my friends seem to have installed.  But with each of these applications people are spending more time on Facebook, and increased engagement means more money.  So are they really wrong here?</p>
<p>So how do you get it right?  I think the jury is still out.  The debate is interesting though and definitely something I am thinking about a lot.</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/06/11/great-article-on-open-vs-closed-platform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiring: Why Interviewing Should be Technology Agnostic</title>
		<link>http://katemats.com/blog/2008/05/30/hiring-why-interviewing-should-be-technology-agnostic/</link>
		<comments>http://katemats.com/blog/2008/05/30/hiring-why-interviewing-should-be-technology-agnostic/#comments</comments>
		<pubDate>Fri, 30 May 2008 22:28:43 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[]]></category>
		<category><![CDATA[agnostic]]></category>
		<category><![CDATA[interviews]]></category>
		<category><![CDATA[technical]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=40</guid>
		<description><![CDATA[There are a lot of hiring managers and potential employers who somehow managed to get stuck on &#8220;we need a person who is an expert in xxxx technology&#8221;.  Sometimes, you may have a business case why you need a specialist or a specialized set of skills, but for the majority of circumstances I would argue [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of hiring managers and potential employers who somehow managed to get stuck on &#8220;we need a person who is an expert in xxxx technology&#8221;.  Sometimes, you may have a business case why you need a specialist or a specialized set of skills, but for the majority of circumstances I would argue it is much better to hire an individual for their raw intellectual horsepower and attitude than their knowledge.</p>
<p><strong>Objection #1: </strong>We are working in Java, so I need someone who can be productive quickly and write code in Java.</p>
<p>Yes, if you have someone who has experience with the technology they may be able to ramp up a bit quicker (typically measured in weeks) than a candidate without (even though, in my experience, this has not always been the case).  However, they will still have ramp up time (learning your business, code and technology base, any specialized software, developer tools, etc.).  If you aim to hire someone smart, they will be able to learn on the job (since any new hire will have to do get up to speed quickly).  Candidates who have experience with different technologies are often able to pick up new ones quickly as they are able to apply patterns or methodologies that are familiar to them from past experiences.  This is particularly important because technology changes so much over time.  Ten years ago C was the language to know (followed shortly by c++), whereas now, most interviewers are interested in C# or Java.  You have to be able to jive with the times and continually stay abreast of the tools and technologies that make your skills better.  It is like that saying &#8220;It does no good to have great knife skills in a gun fight&#8221;.</p>
<p><strong>Objection #2:</strong> Interviews should be given in the language we use.</p>
<p>I always have to ask &#8220;Why?&#8221;  What is the reason that a person needs to write Java because you use Java?  Most interview questions that require candidates to write code are all about the candidate being able to demonstrate how they think.  I am almost always most interested in learning how a candidate solves a problem (are they smart enough to figure out an answer without getting flustered) and then is able to translate their idea into code. Since I know a bunch of different languages I can almost always understand what they write (every once and while there will be the smart ass candidate who wants to write a solution in some obscure language&#8211;but thankfully I have dabbled in a bit of those too).  By letting a candidate write a solution in a language they are most comfortable in, chances are they are going to produce a better solution.  And when you are trying to judge a thought process and general smarts&#8211;doesn&#8217;t it make more sense to let the candidate use the tools they are most proficient in?  So as long as you are smart enough to read the solution, you should let the candidate use the language they think they can perform the answer best.</p>
<p><strong>Objection #3: </strong>Why should I pay for someone to learn on my dime?</p>
<p>Well, first making an investment in your people is <strong>*never*</strong> a bad thing.  But most of all, good hires are hard to find!  There is a reason the recruiting industry is as profitable as it is.  By limiting your frame of vision and looking for such a specific candidate you may be overlooking and missing some incredible talent right beneath your nose.  It is worth training your team on how to interview and calibrate for super bright and talented candidates.  You would be amazed at how many more &#8220;qualified&#8221; candidates you might find.</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/05/30/hiring-why-interviewing-should-be-technology-agnostic/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon Announces Premium Support for AWS</title>
		<link>http://katemats.com/blog/2008/04/17/amazon-announces-premium-support-for-aws/</link>
		<comments>http://katemats.com/blog/2008/04/17/amazon-announces-premium-support-for-aws/#comments</comments>
		<pubDate>Thu, 17 Apr 2008 20:02:27 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[s3]]></category>
		<category><![CDATA[sqs]]></category>
		<category><![CDATA[start ups]]></category>
		<category><![CDATA[web serivces]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=22</guid>
		<description><![CDATA[So Amazon just announced that they will be providing premium support for the web services (EC2, S3, and SQS).  They are including a service level dashboard to keep users up to date on issues and the health of their services.  This is very exciting news, since it shows Amazon&#8217;s commitment to web services [...]]]></description>
			<content:encoded><![CDATA[<p>So Amazon<a href="http://www.amazon.com/b/ref=sc_fe_c_1_3435361_1?ie=UTF8&amp;node=566801011&amp;no=3435361&amp;me=A36L942TSJ2AJA"> just announced</a> that they will be providing premium support for the web services (EC2, S3, and SQS).  They are including a service level dashboard to keep users up to date on issues and the health of their services.  This is very exciting news, since it shows Amazon&#8217;s commitment to web services and providing a firm foundation for people to build businesses on top of their platform.</p>
<p>There is no reason not to use AMZN&#8217;s web services platform if you are building any sort of website.  They have made their platform secure, easy to use (and if you don&#8217;t think it is easy they now have premium support), and because you only pay for what you use it is very cost effective.  In the past when someone has wanted to start a website or build an application you had to commission servers, and you paid the same rate whether they were in use or not.  Moreover you had to have a system administrator, or member of your development team, be responsible for monitoring and regulating the health of those boxes.  This means you could end up paying for hardware and people that you didn&#8217;t always needs.  This is especially true for any startup who is just building out their service.  Until you have lots of users you are essentially paying for idle resources&#8211;which is never a good thing when you are watching every dollar.</p>
<p>Using a web service platform also gives you a lot of free things you can&#8217;t get with just using your own boxes.  You get things like scaling for free.  Need to store more data, just upload to S3&#8211;you don&#8217;t need to worry about how many boxes the data is on, or what happens when a hard drive fails.  Amazon handles all of that for you.  This is one less thing for you to monitor (which means freeing up resources to do other things).  And Amazon has a whole army of people with pagers watching these things for you&#8211;all for about the same cost as the hardware you would end up paying for anyway.  While Amazon&#8217;s web services doesn&#8217;t take away the need for monitoring (and you should *always* be monitoring your end user&#8217;s experience with your application), it means you don&#8217;t have to worry as much about hardware failures, network outages, data centers losing power, etc.  Amazon offers you the commercial level reliability that was once only available to enterprise websites like their own website, <a href="http://www.amazon.com">Amazon.com</a>.  And now that they are broadcasting their uptime one can be more confident building their business on top of their platform.</p>
<p>Needless to say I am big fan of Amazon&#8217;s web services and we use them extensively <a href="http://www.pluggd.com">where I work</a>.  We have been nothing short of happy with using them, because we can have 100 servers at a moment&#8217;s notice, and we only pay for what we use.  So if you are thinking of building any sort of new technology on the web, look into one of the web services platforms for your application&#8211;that way you will be able to get the most bang for your buck <img src='http://katemats.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/04/17/amazon-announces-premium-support-for-aws/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why All Interviews Should Involve Writing Code</title>
		<link>http://katemats.com/blog/2008/03/27/8/</link>
		<comments>http://katemats.com/blog/2008/03/27/8/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 04:52:23 +0000</pubDate>
		<dc:creator>kate</dc:creator>
				<category><![CDATA[career]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[interviews]]></category>
		<category><![CDATA[job]]></category>

		<guid isPermaLink="false">http://katemats.com/blog/?p=8</guid>
		<description><![CDATA[As a hiring manager I have done a lot of interviews.  As you talk with other hiring managers about hiring engineers there seems to be this debate about whether candidates should write code in an interview.  I believe that any candidate who expects to work on my team better be able to write [...]]]></description>
			<content:encoded><![CDATA[<p>As a hiring manager I have done a lot of interviews.  As you talk with other hiring managers about hiring engineers there seems to be this debate about whether candidates should write code in an interview.  I believe that any candidate who expects to work on my team better be able to write code on a whiteboard in an interview.  I am not talking perfect code, and I am not even saying the code has to be written in a specific language—but in order for a candidate to be hired into a software engineer on my team that is a minimum bar.  I am sure some people are thinking, well that means that you might miss out on the good candidates—so I will elaborate as to why I do not believe that to be the case.</p>
<p>For any person in a software engineer role, I would expect that a substantial amount of their time would be spent writing code.  I am not going to get into the philosophical argument about design time versus coding time (I can save that for another entry), but I will say that building their piece of the product is a basic I expectation.  And in the case of my team, our product is software, and that means any engineer better be able to write code and make their contribution.  So I believe it is fairly clear the ability to write code is a job requirement and therefore should be tested, measured, or quantified in some way during the interview process.</p>
<p>There are a series of objections one typically hears about coding in interviews:</p>
<ul>
<li>Writing code on a whiteboard, or notepad isn’t comparable to writing code at a terminal as one would do in a job.</li>
<li>When you are writing code at your job you have all sorts of resources (books, Google, your peers, etc.) at your disposal.</li>
<li>If a person has accomplished so much on their resume, and they have xxxx certifications, then they can do the job.</li>
</ul>
<p>It is a true statement that if a person can write code at their computer it is much different than standing up nervous in front of a whiteboard. That is also why I don’t ask people to implement a metrics system in an interview. I ask them to solve simple problems—most of which can be solved in one white board (so not more than 20 lines of code max) to illustrate how they translate their thought into code (I promise to post some of my favorite interview questions at some point).  If they can algorithmically solve a problem, and have a solid understanding of data structures, then isn’t it important that they be able to turn those solutions into something that can be compiled?</p>
<p>Sometimes people are concerned that the standing up thing throws people off their game and hurts their performance, which is why I adapted the write the code on a pad of paper approach.  This is also great because I can take their code sample into our debrief meeting and discuss their approach with the other interviews.  The questions that are asked in these coding interviews do not involve complicated libraries—they require the syntactical knowledge that most students receive in an Introduction to Programming course.  Furthermore, I will encourage students to write it in the language we use to do development (because then you can also assess at a basic level that person’s knowledge and style with a particular and relevant technology) but I always let them pick their language (I do try to make it object oriented though, since that is the type of development we do here) and I do not fault them on choice.  This also allows them to be comfortable and be able to perform the best they can on a problem.  But as an interviewer it means sometimes brushing up on languages you don’t love to use (for me that would be Python and Ruby).</p>
<p>As for resources, if a person wants to use a library but can’t remember the syntax (as is often the case for hash tables in interviews) I tell them to write out the APIs as they would implement them in the library.  This means that the candidate doesn’t get blocked on the fact they can’t remember the parameters to pass into some API they barely remember, which allows you to focus on the problem at hand—but it also demonstrates how they might design an interface.  Often times, senior candidates can even articulate all the interesting aspects of interface design and what are the pros and cons of their approach.  Another thing you can ask candidates is where they might go to find information.  Resourceful people are the type of people I want on my team.  In other words, the resources aspect of the argument is easily overcome if you are a savvy interviewer and make sure to remove this as an obstacle for your candidate.</p>
<p>And finally, regardless of what a resume says, you should always approach candidates with the assumption everything isn’t always true.  It sounds mean to assume that people would lie—but many do, and many more embellish.  Understanding what is on the resume and how it translates to your business and your team is an important and necessary part of the interview process.  Plus, if worse comes to worse you can compare what all those accomplishments really mean in comparison to other candidates and your own team on a set of baseline problems.  In my opinion there is never a reason a candidate shouldn’t be able to write code.  Your job as an interviewer is to set the stage in such a way so they can clearly demonstrate their ability and put their best foot forward.</p>
<p>Another stylistic thing I do is I almost always ask them (once they are completed with their first pass at the code solution) to explain it to me (since being able to explain your code is an important skill).  Then if there are bugs I try to see if they will catch them, if they don’t I will suggest they walk through an example, if they still don’t I will let them know there is a bug.  I like to see that people can identify and fix their own mistakes with a little help (since this is a reality in the life of a software engineer—everyone should know the basics of debugging).  I then follow up with a question about testing.  Good software engineers should have some basic ideas on how they would test their solution.  And then finally, since the code is usually messy (because of the medium), I ask them what they would do if it were production code (some people say comments, formatting, moving methods around etc.).  A lot of people will also delve into running time, performance, space usage, etc—all informative lines of questions that can help you understand more and more about the candidate, their approach to problems and their experience thinking about their code.</p>
<p>There is a ton of value in doing this line of questioning.  I would not judge a candidate on these type of questions alone (since it takes a lot more than being able to write code to be a successful engineer), but I believe any good software engineer should meet a minimum bar.</p>
]]></content:encoded>
			<wfw:commentRss>http://katemats.com/blog/2008/03/27/8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
