<?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>freelance | Jay Huang</title>
	<atom:link href="http://www.jayhuang.org/blog/tag/freelance/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jayhuang.org/blog</link>
	<description></description>
	<lastBuildDate>Wed, 24 Sep 2025 01:20:18 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>Outsourcing overseas</title>
		<link>http://www.jayhuang.org/blog/outsourcing-overseas/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=outsourcing-overseas</link>
					<comments>http://www.jayhuang.org/blog/outsourcing-overseas/#respond</comments>
		
		<dc:creator><![CDATA[Jay Huang]]></dc:creator>
		<pubDate>Mon, 06 Oct 2014 18:02:15 +0000</pubDate>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[outsourcing]]></category>
		<category><![CDATA[projects]]></category>
		<guid isPermaLink="false">http://www.jayhuang.org/blog/?p=477</guid>

					<description><![CDATA[<p>I find this is a question that comes up very quickly to business owners looking to hire a developer/freelancer. Why would you hire a developer from North America when you can outsource to someone in India or China? I briefly touched upon this in a previous post about things you should know about freelancing, and I [&#8230;]</p>
<p>The post <a href="http://www.jayhuang.org/blog/outsourcing-overseas/">Outsourcing overseas</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I find this is a question that comes up very quickly to business owners looking to hire a developer/freelancer. Why would you hire a developer from North America when you can outsource to someone in India or China? I briefly touched upon this in a previous post about <a href="http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/">things you should know about freelancing</a>, and I will explain this a bit more in detail based on my experiences.</p>
<p><strong>Time differences</strong></p>
<p>For starters, let&#8217;s say you&#8217;re in San Francisco and your work hours are 9~5. There is a 12.5 hour difference between you and your developer if you were to outsource. This is ignoring the fact that many <a href="http://www.jayhuang.org//blog-pages">freelance</a> workers can work obscure hours, including myself. However, more often than not, you will find that nearly all of your communication with an outsourced developer will be via asynchronous communication, which can be extremely problematic when tackling projects of higher complexity. It also means that any urgent issues will take at least 24 hours to resolve (if you&#8217;re asleep and your SaaS comes back online, it&#8217;s not completely the same as you seeing it come online and getting a chance to make sure everything is in order).</p>
<p><strong>Cultural differences</strong></p>
<p>Before I continue, I&#8217;d like to point out that I have worked with freelancers in India and China both directly (hired by myself), and indirectly (hired by my clients). Not everyone is aware that there are significant cultural differences between North America and India. One of the most notable ones I like to use as an example is that developers in India tend to be &#8220;yes (wo)men&#8221;.</p>
<p><span id="more-477"></span></p>
<p>There are many times where project requirements can be vague, the developer may be having issues, but these things will not be clarified/communicated with the client. Throughout the project, you will often get the impression that everything is sailing smoothly, and it won&#8217;t be until the project is coming to a wrap, or when you get a demo of the project at regular intervals (you should be asking for this) that find you out a lot of things may not have turned out as you expected/imagined. Of course this varies from person to person and happens in North America too, and I&#8217;m not sure why this seems to be more prevalent in freelancers from India. Perhaps it&#8217;s because they consider asking questions and bringing up technical challenges a sign of incompetence.</p>
<p><strong>Communication challenges</strong></p>
<p>This is actually not as big of an issue if you can find a developer with a good grasp of the English language. Though most freelancers in India are knowledgeable of English to some degree, more often than not, the challenges with communication begin to surface as you get into more detailed parts of the project. This, combined with the 2 points above, make it very difficult to move a project along and adapt to changes smoothly/efficiently.</p>
<p><strong>Maintenance and code quality</strong></p>
<p>Okay, this one is highly subjective and really happens within North America too. Often times, you will find that the code delivered by an outsourced developer works. Maybe you find a few bugs, and they get fixed. Great, right? The challenge is not actually getting everything to work. A huge issue that clients don&#8217;t consider when choosing to outsource is code maintainability. You might say, &#8220;I don&#8217;t understand code, and I don&#8217;t write code, so why should I care?&#8221;. Really, you should care a lot. Many times, instead of working with the client through technical challenges and pointing out that the deadline may be too rushed, outsourced developers will come up with &#8220;hacks&#8221;, and many of these combined end up making the product extremely brittle and prone to breakage. Breakage aside, any developer who has to work on this product further down the line will have to battle themselves whether to retroactively clean up those &#8220;hacks&#8221; and risk breaking things that appear to be working, or just building on top of the <a href="http://en.wikipedia.org/wiki/Technical_debt">technical debt</a> that has already been accrued. As the technical debt builds up, you will find changes taking more time, and (seemingly randomly) breaking other unrelated parts of the product. A quick hack can cause many headaches and become very expensive in the (near) future.</p>
<p><strong>Cost</strong></p>
<p>By and far the number one reason to justify outsourcing overseas is the cost savings. Many small business owners who are not technical and have not had prior experience outsourcing projects overseas are not aware of the risks and headaches that come with outsourcing. It&#8217;s not uncommon to have someone contact you about estimating a project and having them scoff at your rate then talk about how they can hire someone in India for $5 an hour (to be fair, these kind of clients are on my never-ever list too). And to get a good developer in India, even $5 is too low.</p>
<p>However, as mentioned in one of my previous posts, the math doesn&#8217;t usually work out the same way you&#8217;d expect it to. On one hand, the developer from India might quote you 700 hours at $5, which ends up at $3500. Someone local may charge you $150 an hour, but only bills 30 hours, which ends up only being $1000 more than the alternative. This is a bit of an extreme example, but it also disregards the savings from avoiding the issues related to outsourcing overseas. This discrepancy in hours billed may be caused by a different skill level, or they may simply be billing dishonestly (which can occur anywhere). Hourly rate is not a good indicator of value provided. This is the reason why some of my clients are charged based on blocks of time (think day/week basis). In fact, the working relationship between client and freelancer is also incredibly important. Someone who has worked with your company for an extended period of time likely has a better understanding of your business and is able to provide solutions that are tailored specifically towards your business needs. From personal experience, there have been times where I would propose a different solution, one that would make me less money, but would ultimately be a better choice for the client.</p>
<p><strong>Okay, but when should I outsource overseas?</strong></p>
<p>As someone working mostly in North America, my opinion is definitely biased. But while I have seen first hand the many issues that come up with hiring someone overseas, I do believe there are instances where it can make sense for your business. Projects that are smaller in scale and more isolated from the critical parts of your business, which have clear requirements specifications, may be a good choice for overseas labor from a cost perspective. The issues listed above may still apply, but having a smaller project, along with clear requirements specifications will go a long way towards helping mitigate/lessen the impact of the those issues. Depending on your budget, it may be your only option.</p>
<div class='shareaholic-canvas' data-app-id='9490350' data-app-id-name='category_below_content' data-app='recommendations' data-title='Outsourcing overseas' data-link='http://www.jayhuang.org/blog/outsourcing-overseas/' data-summary=''></div><p>The post <a href="http://www.jayhuang.org/blog/outsourcing-overseas/">Outsourcing overseas</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>http://www.jayhuang.org/blog/outsourcing-overseas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>The HackerNews effect: Hitting #2 on HN</title>
		<link>http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-hackernews-effect-hitting-2-on-hn</link>
					<comments>http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/#respond</comments>
		
		<dc:creator><![CDATA[Jay Huang]]></dc:creator>
		<pubDate>Sat, 09 Nov 2013 20:58:48 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Reflection/thoughts]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[HackerNews]]></category>
		<category><![CDATA[job]]></category>
		<guid isPermaLink="false">http://www.jayhuang.org/blog/?p=355</guid>

					<description><![CDATA[<p>2 days ago, the latest post about my experience at my previous job hit the front page of HackerNews. It&#8217;s been a while since I left that job, and I held off on writing the post for as long as I could. Partly because I was busy, partly because I was trying to stop from [&#8230;]</p>
<p>The post <a href="http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/">The HackerNews effect: Hitting #2 on HN</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>2 days ago, the latest post about my experience at my <a href="http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/">previous job</a> hit the front page of <a href="https://news.ycombinator.com/">HackerNews</a>. It&#8217;s been a while since I left that job, and I held off on writing the post for as long as I could. Partly because I was busy, partly because I was trying to stop from thinking about it all, but mostly because I wanted to write about the experience as objective as possible (for someone who experienced it firsthand, probably not very objective at all).</p>
<p>In fact, the first 800 words or so were already written a month back, hence some of the &#8220;flow&#8221; in the writing seemed broken. Writing that blog post was an attempt at finally allowing myself to find some closure and write it off as an experience that will make me better equipped to deal with (heaven forbid) similar issues in the future.</p>
<p>As it&#8217;s probably quite apparent, I quit that job without having another lined up. And for some reason, I&#8217;m perfectly at peace with that. In fact, I&#8217;ve made very little effort to look for another full-time job; I&#8217;ve done an on-site interview with Amazon (rejected), a phone interview with Facebook after solving their coding puzzles, and a few others which I decided wouldn&#8217;t be a good fit (I&#8217;m much more wary of potential red flags now after that experience).</p>
<p><span id="more-355"></span></p>
<p>The time since leaving that company has been mostly a recharge, reflection period, sprinkled with continued freelance work with my clients. I wasn&#8217;t aware at the time, but I&#8217;ve felt the burnout hit long after I quit that job, and I finally feel &#8220;well&#8221;.</p>
<p>Now, about actually hitting #2 on HN. I&#8217;ve always been curious what being top 3 on HN looked like, and I will say the response to my post has been mind-blowing (336 points, 201 comments as of this writing). I expected a few people to skim through it, write it off as another typical poor experience in the industry, then fall deep into the abyss where posts never get past the &#8220;newest&#8221; section. For the first hour or so, the post was stuck around 2 points. By the second hour, it started to pick up and sit around 30 points, with still no comments. At this time it was already #10, and I thought that would be the end of it. I left to go play badminton with some of my friends from my previous-previous job at SAP.<a href="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/10-on-HN1.png"><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-366" alt="#10 on HN" src="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/10-on-HN1.png" width="673" height="393" srcset="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/10-on-HN1.png 673w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/10-on-HN1-300x175.png 300w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/10-on-HN1-624x364.png 624w" sizes="(max-width: 673px) 100vw, 673px" /></a></p>
<p>That&#8217;s when the post started shooting up. I received texts from friends saying my blog post was #4 on HN (I don&#8217;t have a data plan). &#8220;Well, it&#8217;ll die down soon, kind of wished it would hit top 3 though&#8221;, I thought to myself. I couldn&#8217;t be more wrong. 3 hours later, my post was sitting at 80 points and 23 comments, and I was starting to worry if my site would crash while I was away.<a href="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/2-on-HN.jpg"><img decoding="async" class="aligncenter size-full wp-image-357" alt="" src="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/2-on-HN.jpg" width="540" height="960" srcset="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/2-on-HN.jpg 540w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/2-on-HN-168x300.jpg 168w" sizes="(max-width: 540px) 100vw, 540px" /></a></p>
<p>When I got home a couple hours later, it had already accumulated more than 200 upvotes, and a ton of helpful comments to look through. A bunch of comments on my blog (yes, even the one saying I sound like a boring wanker), and some tweets from bots and actual readers. My inbox had exploded from <a href="http://hnnotify.com/">HNNotify</a>, along with some nice people who reached out to see if I would be up for coffee/looking for a new job at their company. The new comments were coming in so frequently that I had to install the <a href="https://chrome.google.com/webstore/detail/hckr-news/mnlaodleonmmfkdhfofamacceeikgecp">hckr news</a> Chrome extension to help my eyes filter the new ones. I&#8217;d been looking for something to help me track new comments in HN threads, and this time, I had enough incentive to.</p>
<p>For most of the night, my site had ~300 concurrent visitors; the most I saw was around 349. From Thursday night (the time of the post), to Friday night, my site received 31,960 unique visitors and 79,447 pageviews. This traffic was more or less all from HN, I don&#8217;t actually have many humans reading my blog. I haven&#8217;t seen this many people reading my writing since my Windows7Center days!</p>
<p><a href="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors.png"><img decoding="async" class="aligncenter size-large wp-image-359" alt="Beginning of the traffic spike" src="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors-1024x185.png" width="625" height="112" srcset="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors-1024x185.png 1024w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors-300x54.png 300w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors-624x112.png 624w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Concurrent-visitors.png 1643w" sizes="(max-width: 625px) 100vw, 625px" /></a></p>
<p><a href="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike.png"><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-360" alt="Traffic stats for HN spike" src="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike-1024x201.png" width="625" height="122" srcset="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike-1024x201.png 1024w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike-300x58.png 300w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike-624x122.png 624w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Traffic-stats-for-HN-spike.png 1415w" sizes="auto, (max-width: 625px) 100vw, 625px" /></a></p>
<div id="attachment_377" style="width: 317px" class="wp-caption aligncenter"><a href="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Alexa-ranking-after-HN.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-377" class="size-full wp-image-377" alt="Alexa ranking jumps by 21 million." src="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Alexa-ranking-after-HN.png" width="307" height="177" srcset="http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Alexa-ranking-after-HN.png 307w, http://www.jayhuang.org/blog/wp-content/uploads/2013/11/Alexa-ranking-after-HN-300x172.png 300w" sizes="auto, (max-width: 307px) 100vw, 307px" /></a><p id="caption-attachment-377" class="wp-caption-text">Alexa ranking jumps by 21 million.</p></div>
<p>The response on HN has been tremendous, not only in helping me recognize the different options available to me at the time, how other people may have dealt with it, and the stories of many people who have been in (or are currently in) similar situations.</p>
<p>I have received many requests to expose the name of the company/PM. I do not wish to reveal that information because:</p>
<ol>
<li>I do not wish to start a witch hunt, and I do not wish to taint their name forever as there&#8217;s a possibility they will change (I hope).</li>
<li>For reasons <a href="https://news.ycombinator.com/user?id=jacques_chester">jacques_chester</a> has <a href="https://news.ycombinator.com/item?id=6700424">pointed out</a>. More trouble than it&#8217;s worth.</li>
</ol>
<p>That said, I understand there are people who may live in the area and would like to avoid a similar situation. Contact me privately and I will let you know, your discretion is appreciated.</p>
<p>And with that, I can say I have found my closure.</p>
<p>P.S: If you or your company is hiring, or you just want to have a chat, feel free to <a href="http://www.jayhuang.org/contact">reach out</a>.</p>
<div class='shareaholic-canvas' data-app-id='9490350' data-app-id-name='category_below_content' data-app='recommendations' data-title='The HackerNews effect: Hitting #2 on HN' data-link='http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/' data-summary=''></div><p>The post <a href="http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/">The HackerNews effect: Hitting #2 on HN</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>http://www.jayhuang.org/blog/the-hackernews-effect-hitting-2-on-hn/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A culture of beer and overtime</title>
		<link>http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-culture-of-beer-and-overtime</link>
					<comments>http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/#comments</comments>
		
		<dc:creator><![CDATA[Jay Huang]]></dc:creator>
		<pubDate>Thu, 07 Nov 2013 22:27:56 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Reflection/thoughts]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[commitment]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[overtime]]></category>
		<category><![CDATA[quitting]]></category>
		<category><![CDATA[startup]]></category>
		<guid isPermaLink="false">http://www.jayhuang.org/blog/?p=343</guid>

					<description><![CDATA[<p>I quit my my last job after a little more than 2 months. Why? Did I jump into a position I was not excited about? No. In fact, I faced major struggles trying to persuade myself NOT to take that offer (and ultimately, failed). I had been looking for a job after my second contract [&#8230;]</p>
<p>The post <a href="http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/">A culture of beer and overtime</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I quit my my last job after a little more than 2 months. Why? Did I jump into a position I was not excited about? No. In fact, I faced major struggles trying to persuade myself NOT to take that offer (and ultimately, failed). I had been looking for a job after my second contract at SAP was about to come to an end in May. By the second week of April, I had 3 offers lined up, 2 of which I was giving some serious thought to.</p>
<p>One would mean I would be moving to Palo Alto, California, where I would be joining a well-known, highly successful, technology company. The pay was great, and working there would make any future job hunts virtually non-existent. The only possible downside to it was having to move. A few weeks prior, I had just completed the final steps of becoming a homeowner, and moving to Palo Alto would mean having to put my place back on the market within a few short weeks. Nevertheless, I was not too concerned. Having lived for extended periods of time in Taiwan, Australia, and Canada, I&#8217;m very open to moving and even embrace the thought of living in a different country, with major differences in culture.</p>
<p>The other offer would mean staying in familiar old Vancouver, in a company that had one claim to fame (a relatively impressive one at that), and noticeably lower pay. If that were it, I would have moved to Palo Alto in a heartbeat. But that wasn&#8217;t all. The product that I was offered to work on was something that I was extremely excited, and passionate about. In fact, it was something that I had been giving a lot of thought prior to hearing about, and not only was I excited to hear about its existence, I was even more excited to be one of the two developers working on it.</p>
<p>After weighing my options and deciding that I didn&#8217;t really want to pass up the chance to build something I was so passionate about, I happily took the lower pay (and prestige) to join the team. I was not too concerned about money because it was something I had been dreaming to build. I certainly did not think about much else at that time, I just couldn&#8217;t wait.</p>
<p>The team consisted of 5 people. The PM, copywriter, UI/UX designer, myself, and the other developer. Everyone else in the company was working on other products. In terms of the executives, they were very much detached from the operations of the team.</p>
<p>And so began my short 9 weeks at the company. Within days, a big red flag was placed in front of me, but I was still so oblivious and excited that I shrugged it off and pushed it aside.<span id="more-343"></span> Two unfamiliar names were mentioned in passing a few times. Curiosity kicked in, and naturally, I asked who those two people were. It was always glossed over with something like &#8220;they used to be here&#8221;, and very little more. After a couple meetings, I was able to slowly piece together some information about those two people. One had worked for around 3 months, the other worked for around 5 months. No one was able or willing to drop hints as to whether they left or were fired. But either way, after the first one left, the second one came, then when that one was about to leave, the other developer I worked with came along.</p>
<p>It seemed weird to me at the time, that for whatever reason, people were coming in and whether quitting or being fired, leaving a product that was solving a big problem, with quite the market &#8212; so soon. But I didn&#8217;t worry too much about it, as all I could do was speculate and probably come to the wrong conclusion.</p>
<p>Soon after, there was an &#8220;optional&#8221; beer party. It was a Friday (I believe) night, and this beer party was from 5~9. My mother being in poor health, I stayed for maybe 45 minutes, spoke with a few people so as to not leave so abruptly, had some water (I don&#8217;t drink), and left. It was a pretty tame party anyways; there were maybe 8 people sitting at the kitchen table (including our PM), talking loudly about random gossip, 2 or 3 people re-filling their beer cup, 4~5 people around the ping ping table, and the rest were just sitting at their desks browsing whatever they were browsing, and looking bored. After all I thought, it was an optional beer party, it wasn&#8217;t celebrating anything within the company in particular, and I already saw some other people leave. Surely it was perfectly fine for me to leave around 6 to look after my sick mother? Apparently not. A few weeks later I would find out that this party wasn&#8217;t quite &#8220;optional&#8221;, but more on that later.</p>
<p>So the next week, it was more code, code, code, preparing a working demo for our investor, code, code, code, racking my brain and its terribly short term memory on what I worked on the previous day for our daily morning scrum meeting. Near the end of the week, we had another push from the development to staging environment. After doing some testing and resolving some bugs, I came across a XSS vulnerability in the product. Now, depending on the vulnerability, XSS may or may not be a huge issue. However, our product was dealing with large amounts of money from customers&#8217; bank accounts, and this vulnerability made it possible to break large portions of the application. Most importantly, it allowed the transactions of users to be skewed, allowing malicious users to cause other users to essentially lose money, or worse yet, put them in a potential dispute, and ultimately, cause our product to lose customers.</p>
<blockquote><p>&#8220;Stop fucking around and get shit done.&#8221;</p></blockquote>
<p>I brought up the discovery of this vulnerability, how critical it was that we resolve it, and the horrifying impact of it. But no one seemed to really care. The other developer said we don&#8217;t really have time to fix it, but it was clear he also recognized the potential dangers (and at the same time, the PM was pushing us hard to make more &#8220;pretty stuff&#8221;). The PM said &#8220;stop fucking around and get shit done&#8221;. Those were his exact words. Another red flag just whacked me in the face. At this point, I was frustrated, but what was I supposed to do? If I went ahead and allocated time to fix it, I would have to deal with an already ticked off PM who seemed to think fixing critical vulnerabilities is &#8220;fucking around&#8221; and non-productive. I decided to put it on the back burner and bring it up again when an opportunity presented itself.</p>
<p>Code, code, code, demo, meeting, code, code, code, meeting, code, code, code. On it went. Deep down, I felt that something wasn&#8217;t quite right, but I continued to ignore the red flags that seemed to constantly appear. But hey, at least the work life balance seemed okay. I mean everyone was leaving after 8 hours a day, and sometimes I would work a bit longer than everyone else, but that&#8217;s okay, because it&#8217;s on my own will and it&#8217;s usually a feature or bug that I just<em> have</em> to get done.</p>
<blockquote><p>&#8220;You are not 100% committed.&#8221;</p></blockquote>
<p>A few days later, the PM says he wants to speak with me. What I thought was going to be a nice conversation turned out to be anything but. One subjective issue, and 3 questionable points. &#8220;You are not 100% committed&#8221;, he said. Weird, I don&#8217;t understand how that can be. Surely I am the best judge of whether or not I&#8217;m committed? And it&#8217;s quite apparent to me that I am 100% committed and truly care about the product. He would repeat this 2 times before finally enlightening me on why he felt I was not 100% committed:</p>
<ol>
<li>Apparently, I wasn&#8217;t committed because I had not updated my LinkedIn profile since starting this job a mere 8 weeks ago.</li>
<li>My website is still up, and my website is (still) selling my freelance services to clients.</li>
<li>I also haven&#8217;t been working overtime on a regular basis (aka every single day of the week). &#8220;I&#8217;m not saying you should be working 80 hours a week, but 70 is not ridiculous to ask, and if you were committed you would do more&#8221;.</li>
</ol>
<p>I didn&#8217;t understand this at all. I asked him if he felt my performance was lacking. No. So somehow, these 3 points are telling him that I am not committed. Here&#8217;s my problem with these &#8220;points&#8221;:</p>
<ol>
<li>I hadn&#8217;t yet bothered to update my LinkedIn, because it takes up more of my time, something I&#8217;m not yet ready to do, and I&#8217;ve been told that updating your LinkedIn tells an employer you are on the hunt for a job again. I definitely did not want to give that impression. Furthermore, being a co-worker, he stalked my profile multiple times yet never added me? That seems more of an issue to me than anything. The other developer, who I worked quite well with, added me the day I accepted the offer. I&#8217;m not saying adding someone on LinkedIn should be a requirement, but if you&#8217;re going go off worrying about my profile, wouldn&#8217;t it make sense to send me an invite to connect? To each their own I guess.</li>
<li>Why would I take my website down? It&#8217;s part of my brand and it gives people easier access should they need to contact me. As usual, it hasn&#8217;t been re-designed for a while, because I simply do not have the time. The simple truth is I do work with clients as a freelance developer, so why would that not be on my website? The funniest part about all this, is when I was discussing the offer with the HR lady (the PM was also present), I brought up the topic of side projects outside of work, and my freelance work. As I do have some clients on retainer, it would be impossible for me to suddenly end my agreement with them. They both said &#8220;Oh no no, we definitely do not want you to stop your freelance work, in fact, most of us in this company have side projects outside of work, and that&#8217;s something we love and embrace&#8221;. I&#8217;m not kidding. That was part of the reason I didn&#8217;t move to P.A too. Yet in a short 8 weeks, that&#8217;s suddenly a problem.</li>
<li>I&#8217;m not new to this industry. I&#8217;m well aware that overtime happens, and in fact, it&#8217;s quite common. I&#8217;ve worked till 10:30 PM once or twice when I was at SAP. And sometimes some critical bug or release has to be finished at all costs. I get that. There is a reason for the overtime, usually a good one. But what my PM was talking about, wasn&#8217;t about any release in particular. It was simply &#8220;you&#8217;re not committed because you&#8217;re not working 70+ hours a week&#8221;. It&#8217;s been proven time and time again that <a title="Working overtime, what it really means" href="http://thatextramile.be/blog/2010/06/working-overtime-what-it-really-means/">constant overtime produces less value</a>, and in fact, may even cause you to break more than you build. It&#8217;s simply impossible for someone to code for 70 hours a week and not break things and eventually shutdown due to burnout.</li>
</ol>
<p>I tried to address these points with him in an amiable manner, but it was impossible. All he would say was &#8220;well&#8230;&#8221; then go back to talking about how I am not giving him the impression that I am committed. He also brought up the fact that I left the beer party early and that further reinforced his idea that I wasn&#8217;t committed.</p>
<p>A few days prior to this incident, I had already been thinking about that job. And the red flags I previously mentioned, plus a couple other things, made me wonder if it was even a good fit for me at all. It&#8217;s against my nature to not work at resolving issues, but in this case it seemed he wasn&#8217;t receptive at all to my opinions, or simple logic, for that matter. After this &#8220;discussion&#8221;, I went home and thought a long time about it. I would speak with him the next day, and try once again, to resolve the issue. If he was still not receptive, I would give notice to leave.</p>
<p>The following day, I worked hard to make sure that if I were to leave, I have left my work on the product in a good place, then I went to speak with the PM again. He was completely unwilling to discuss anything, and repeated the same accusation of me not being committed and the 3 feeble points to back up his statement. At that moment, I submitted my resignation. He was indifferent. He said &#8220;well if you don&#8217;t hand off your work, some people are going to be fucking pissed&#8221;. I told him that I had every intent to make sure all of my work was accounted for and that there would be no difficulties to progress without me. I had already documented large portions of my work, and it was all very transparent. He said come in tomorrow to do a knowledge transfer.</p>
<p>That night, I was going through my email, Trello board, and JIRA issues to see if there was anything I still needed to hand off to the other developer. While I was looking through my email, I was suddenly disconnected from all services (Google Apps, Trello, JIRA, Bitbucket). This left me a bit confused as to whether my fob still was able to get in the door, I did not want to travel 1.5 hours just to realize I was locked out. But I went the next day anyways, assuming he was just trying to protect company resources.</p>
<p>The next day during scrum, he announced to the team that I would &#8220;no longer be working here&#8221;. I did not care much about it, but it brought me back to thinking about the 2 previous developers on the team. I guess that would be how things would be explained to the future developer too. When I sat down at my desk, he told the other developer to make sure I didn&#8217;t make any code changes. At that point, it really felt like he was giving the impression that he had fired me. But I chose to remain as professional as possible, doing my knowledge transfer, not causing any drama explaining to people why I am no longer working there. Around noon, everything was done, and he told me to leave, and give my (personal) password to the other developer. I told the other developer that I would like to wipe the desktop myself (with his supervision of course), and change the password, then give him the new one.</p>
<p>It was time to leave, and the HR lady came to me and said I would have to sign a release letter and send it back within 2 work days (the following Monday was a holiday), otherwise I would not get any of the remaining pay, including my &#8220;stock options&#8221;. Apparently instead of full-time as stated in my offer letter, I was a &#8220;Contractor&#8221; and the agreement between us was &#8220;terminated&#8221;. I guess that&#8217;s to protect them somehow. And the &#8220;stock options&#8221; that she said I would be paid amounted to $0 (as expected).</p>
<p>To this day, it remains difficult to explain to people why I left that job after a short 9 weeks, and I make sure not to paint anyone in a bad light, and not name the employer or anyone else. Yet somehow, I feel that everyone else besides the PM thought that I was fired instead of leaving. I&#8217;m pretty sure that&#8217;s what he&#8217;s been telling people anyways. Oh well.</p>
<p><strong>Join the discussion on HN: </strong><a href="https://news.ycombinator.com/item?id=6693066">https://news.ycombinator.com/item?id=6693066</a></p>
<div class='shareaholic-canvas' data-app-id='9490350' data-app-id-name='category_below_content' data-app='recommendations' data-title='A culture of beer and overtime' data-link='http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/' data-summary=''></div><p>The post <a href="http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/">A culture of beer and overtime</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>http://www.jayhuang.org/blog/a-culture-of-beer-and-overtime/feed/</wfw:commentRss>
			<slash:comments>43</slash:comments>
		
		
			</item>
		<item>
		<title>Things you should know about freelancing</title>
		<link>http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=things-you-should-know-about-freelancing</link>
					<comments>http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/#comments</comments>
		
		<dc:creator><![CDATA[Jay Huang]]></dc:creator>
		<pubDate>Sun, 02 Jun 2013 05:08:15 +0000</pubDate>
				<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[business]]></category>
		<category><![CDATA[clients]]></category>
		<category><![CDATA[contract]]></category>
		<category><![CDATA[flexibility]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[scope]]></category>
		<category><![CDATA[value]]></category>
		<guid isPermaLink="false">http://www.jayhuang.org/blog/?p=290</guid>

					<description><![CDATA[<p>I&#8217;ve noticed that being a freelancer generally brings a lot of interest among friends, family, and acquaintances. There are a couple questions that I&#8217;ve been asked so frequently that I&#8217;ve decided to answer them in a blog post. Whether you are someone who has lots of experience in your field and want to break into [&#8230;]</p>
<p>The post <a href="http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/">Things you should know about freelancing</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve noticed that being a freelancer generally brings a lot of interest among friends, family, and acquaintances. There are a couple questions that I&#8217;ve been asked so frequently that I&#8217;ve decided to answer them in a blog post. Whether you are someone who has lots of experience in your field and want to break into freelancing, or if you or someone you know is looking to begin freelancing to start a career with little experience, I hope some of the things I&#8217;ve learned will help you.</p>
<h4>&#8220;Where do you find clients (or how do I start finding my first clients)?&#8221;</h4>
<p>The majority of my clients come from referrals. Previous clients usually have connections who are in similar fields of work, or are starting new businesses. If their experience with you has been good, they will not hesitate to refer you. This is why establishing a good relationship with my clients has been a big focus in my work.</p>
<p>If you are just starting out and do not have previous clients to work as referrals, start by letting people know you are looking for freelance work. I generally do not like taking close friends/family as clients, but these are the people most willing to vouch for you as a person and a professional if you do not have existing clients. <span id="more-290"></span><span style="line-height: 1.714285714; font-size: 1rem;">Also focus on contributing to communities where your (target) client base will be. Be present in these communities, actively provide suggestions and feedback, and have your work or information easily accessible if they would like to contact you. Reach out to businesses and entrepreneurs with insightful feedback that will help their business. All of this relies on you to have a strong existing skill set, so if you are not confident with your skills, work on establishing them first!</span></p>
<h4>&#8220;How do I compete with offshore workers, like people in India who charge $5~$15/hour?&#8221;</h4>
<p>This is a very common worry among newcomers. The truth is, depending on where you are, you already have a huge advantage over cheap, offshore labor. Major businesses will want to be able to communicate and work with you during business hours. They don&#8217;t want to have to deal with language and cultural barriers that often come up dealing with offshore labor. That&#8217;s something that cannot be fixed when it comes to offshore hiring.</p>
<p>Also, you will often hear complaints about the low quality of work delivered from offshore workers. There are many talented people, even in places like India, China, etc, but more often then not, clients do not get anything near the quality they expect. The cost of living may be lower offshore, but often the low hourly rates come with a cost. It may take 20 hours for them to do what you do in 1 hour, which means the client has to spend $100 just to get 1 hour of work done. In addition, the offshore clients may be inexperienced, they may be delivering low quality work, and they may be billing work dishonestly (which could happen anywhere, really). On top of all that, it&#8217;s generally expected that when you hire someone offshore, you give them specifications and they do exactly that. Miss any details, or run into any problems, and they will bring in hacky solutions, so they don&#8217;t need to ask clients questions over a 12 hour timezone difference.</p>
<p>How do you differentiate yourself from offshore workers and command a higher rate? Easy. Take advantage of the existing differences between yourself and someone offshore. You don&#8217;t have a 12 hour timezone difference, you can provide instant feedback and lower turnaround times. But that&#8217;s not what will bring in the big money. Focus on <strong>why </strong>you are being hired. Does this client just want a new website for the sake of having one, or is there a need they are trying to fulfill? Do they really just want a new billing system? Or do they want to save the additional costs they are paying by using a 3rd party solution? Do they want to lower the turnaround time between transactions? Do they want to bring in more customers to their business? Often times, clients will think they want one thing, but if you dig deeper, you will find a bigger need. Explain how you will resolve this need, and what impact your solution will bring to the business. Focus on the <strong>value </strong>being provided to the client, not how many lines of code you are writing, or how many memory leaks you fixed. Businesses care about reputation and money. Until you can recognize the value you bring to the business, you are an expense. An expense easily mitigated by hiring someone else offshore.</p>
<h4>&#8220;How much should I charge?&#8221;</h4>
<p>How much you should charge is dependent on a few factors. What are your costs for doing this work? Is the client expecting you to be available outside of reasonable hours? How much expertise do you have with this work, and would your expertise bring additional value to the client? Similar to my response for the previous question, how much value is your work bringing? If doing this project will bring the client $400k in additional revenue, it&#8217;s certainly logical for you to charge a higher rate, especially if the client can&#8217;t earn as much hiring someone else. Also keep in mind that you should <strong>almost always be charging more</strong> as a freelancer than you make at your typical day job. The reason being that as a freelancer, you do not have any benefits; no bonuses, no stock options, no healthcare coverage, no perks, no vacation days, no sick days, nothing. The time it takes for you to go to the washroom is (probably) money wasted. As a freelancer, you market yourself. For free. You discuss projects with potential clients. For free (sometimes). You pay for any books, conferences, training, tools you need to advance your skills. Every aspect that is taken care of for you in a typical day job is now your responsibility. Taking these differences into account, most freelancers will charge between 80% to 150% more than their day job. Some freelancers will charge more when they find out a client is difficult to deal with, or the project is not something they particularly enjoy. Some will raise their rates if they constantly get more projects than they have time for. I do not do this, but hey it&#8217;s your business, charge what you like.</p>
<h4>&#8220;What is the schedule like?&#8221;</h4>
<p>As a freelancer, you will have a lot more flexibility than any job you could take. This is what attracts many people to do freelance work full-time in the first place. Don&#8217;t feel like working today? Sure. Want a 3 month vacation in Australia? Been there, done that. Want to read during the day and do work at 4 in the morning? Why not? You are your own boss (of course, you still need to show your client respect and be a team player if you work with their employees), set your own schedule, do what you want, just stay accountable to your clients and keep them informed. You will hear some freelancers go through &#8220;dry spells&#8221; where they can go weeks or months without any work. Given the nature of running your own business, this is normal, and there can be many reasons for that. Their rate may be so high and they only serve a certain niche of clients. Maybe they don&#8217;t have a lot of clients to begin with. There may not be much demand if what they do is &#8220;seasonal&#8221;. They may have pissed off all their clients (ouch&#8230;?). There might not be any clear reason, maybe they just don&#8217;t have any work right now. Being a freelancer, it&#8217;s important to recognize that this may happen to you. You might even have a car accident and can&#8217;t do any work at all. Anticipate large influxes of work, or none at all; if you&#8217;re able to manage that, you will be fine.</p>
<h4>&#8220;How do you deal with unreasonable or difficult clients?&#8221;</h4>
<p>I&#8217;m sure we&#8217;ve all run into difficult people. Since you are not a salaried employee, whether you work with this client is your choice. You should be able to pull out of a project if need be (you do have a contract right?). Maybe they have too many unreasonable demands. Maybe they&#8217;re calling you at 4 in the morning (again, contract?). Maybe the scope of the project keeps increasing and you are not being paid to account for that (need I say it again? Scope should be in your contract and if the scope increases, you can talk it over with your client). I generally get some information regarding the client&#8217;s expectations, the project, the people working on it, the timeline, and any processes they may have. You should be able to fairly accurately gauge how working with the client is going to turn out before you sign a contract. If I sense that the client has unrealistic expectations and they are unable to discuss the expectations with me civilly, then this is an early warning sign. There are many other warning signs I look for, but in terms of a difficult client, they generally appear in the form of attitude, behavior, and expectations. I will respectfully let them know that I don&#8217;t think we are a good fit for each other, and move on. No amount of money should be able to buy your happiness and dignity (hopefully).</p>
<h4>&#8220;Do I really need a contract?&#8221;</h4>
<p>I don&#8217;t think I am alone when I say you should <strong>always</strong> have a contract with the client in place. A contract is a nice, legally binding agreement detailing the people involved, the scope of the project, any timelines, payment terms/costs, non-disclosure clauses, termination of work, and how to deal with unexpected issues that arise. Unless you are a student and are making websites for $500, and don&#8217;t really care about getting paid, you need a contract (even if you are, you should get one). Don&#8217;t just write it up yourself, hire a lawyer (yes, they can be expensive, but not having a contract will cost you much more). A good contract will save you many headaches down the road, including clients refusing to pay, scope creep, intellectual property rights on deliverables, terminating contracts, etc. There&#8217;s a good talk by<a href="http://muledesign.com/about/mike-monteiro/" target="_blank"> Mike Monteiro, Co-founder of Mule Design</a> called &#8220;<a href="http://vimeo.com/22053820" target="_blank">F*ck you. Pay Me.</a>&#8221; about the importance of having a good contract in place.</p>
<p>Hopefully that clears up some common questions about doing freelance work. If you have any questions about freelancing, feel free to <a href="http://www.jayhuang.org/contact">reach out to me</a>.</p>
<div class='shareaholic-canvas' data-app-id='9490350' data-app-id-name='category_below_content' data-app='recommendations' data-title='Things you should know about freelancing' data-link='http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/' data-summary=''></div><p>The post <a href="http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/">Things you should know about freelancing</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>http://www.jayhuang.org/blog/things-you-should-know-about-freelancing/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Is this what your resume looks like?</title>
		<link>http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=is-this-what-your-resume-looks-like</link>
					<comments>http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/#respond</comments>
		
		<dc:creator><![CDATA[Jay Huang]]></dc:creator>
		<pubDate>Thu, 02 Aug 2012 04:24:24 +0000</pubDate>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[resume]]></category>
		<category><![CDATA[web development]]></category>
		<guid isPermaLink="false">http://www.jayhuang.org/blog/?p=23</guid>

					<description><![CDATA[<p>A few weeks ago I had a client who was well funded but did not yet have a team of fulltime web developers as part of their arsenal. Working with this client gave me the opportunity to take a look at how developers may see me when I am only represented by my resume. This [&#8230;]</p>
<p>The post <a href="http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/">Is this what your resume looks like?</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>A few weeks ago I had a client who was well funded but did not yet have a team of fulltime web developers as part of their arsenal.</p>
<p>Working with this client gave me the opportunity to take a look at how developers may see me when I am only represented by my resume.</p>
<p>This particular client wanted a revamp of their current website, which was still fairly new. They had their own UX team onboard which really helped with the outcome of the product.</p>
<p>Anyways, since they did not have their own team of web developers, they asked if I could help find another freelancer who would be suitable to work with me and their UX team on the project. Given a generous contract, I went and posted free postings in many job boards seeking for someone who was experienced in the technologies used for this revamp. I posted a fairly generic ad, much like many of the ones looking for a fulltime developer but I made sure to state that it was a short-term contract with great pay.</p>
<p><span id="more-23"></span></p>
<p>Not only was I looking for a great team member to work with, I wanted to see what kind of competition I would be up against from a skill set point of view, and which resumes failed to grab my attention so I would have a better idea how my resume would look to an employer.</p>
<p>I received a total of 56 resumes over 5 days, 9 were generic letters from hiring agencies (these were ignored).</p>
<p>Here are some of the traits of resumes that made it hard for me to hold onto:</p>
<ol>
<li><strong>Too much information/clutter.</strong> If your page is 80% text with thin margins, it may be too much effort to read.</li>
<li><strong>Few or none of the relevant skills are highlighted.</strong> Make sure your key strengths are easily identifiable.</li>
<li><strong>Listing FAR too many technologies that the applicant is experienced in.</strong> If you&#8217;re listing out so many technologies, it&#8217;s hard to grasp how comfortable you are with all of them. I saw one resume where the applicant had 3 years in web development, and claimed expertise in about 20 technologies while project experience highlighted no more than 5.</li>
<li><strong>Suggesting that they are &#8220;not good enough&#8221; for the position. </strong>If you&#8217;re going to point out that you do not have a college diploma, don&#8217;t make the recruiter think that makes you any less capable. There are many amazing developers who do not have a diploma/degree. Show WHY you are a great fit for the position or don&#8217;t apply.</li>
<li><strong>Vague or no description regarding each of the past projects. </strong>If you&#8217;ve created a CMS for the company, or implemented a system for sales tracking, put that down. Don&#8217;t just give a generic URL and expect that to make you a great fit for the position.</li>
</ol>
<p>Surprisingly, almost all the resumes had little or no grammatical/spelling errors. Errors have actually been fairly common in some of the other times I&#8217;ve had to look at resumes. Grammatical/spelling errors really stand out and say something about your attention to detail.</p>
<p>I ended up finding a great fit for the position (yes this person had a degree) and have enjoyed working with them. The UX team was also amazing, huge thanks to them for such an amazing and successful site revamp!</p>
<div class='shareaholic-canvas' data-app-id='9490350' data-app-id-name='category_below_content' data-app='recommendations' data-title='Is this what your resume looks like?' data-link='http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/' data-summary=''></div><p>The post <a href="http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/">Is this what your resume looks like?</a> first appeared on <a href="http://www.jayhuang.org/blog">Jay Huang</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>http://www.jayhuang.org/blog/is-this-what-your-resume-looks-like/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
