How I became a code ninja - <AUTHOR> http://startupmyway.com/my-dev-story-part-2/ <comment><USER2> Dude is writing database interfaces on Windows. He's not doing ninja things.</comment>


Looking for Peer Developer for Simple Game Idea and Learning Together - <AUTHOR> Hi Folks,
I have one idea for a simple game.
I am looking for a peer developer. I am a web programmer and feel like if i have to learn game programming i may take a couple months. I would like to get my idea of the ground sooner than that. So looking for some game programmer at advanced beginner or competent stage. Not looking for experts though who may finish the game in a day and take the fun out of it.
Would prefer to join and learn the techniques of game development in this process with this peer developer.
If interested in working together please connect with me at firstname.lastname@example.com.
Thanks, Artha <comment><USER2> What technologies and platform are you targeting and what kind of games. If you have a year to spare you must watch [https://handmadehero.org/](https://handmadehero.org/)

</comment><comment><USER3> I also created a simple game that I can play in the terminal, but hell, I will not do the graphic design, I don't know yet how to do the graphical interface. And nothing about mobile platforms. It looks like its easier to do game development in a team.

<comment><AUTHOR> That is true. Its good to work as a team. Let me know what game you built previously.

</comment></comment><comment><USER4> Did you mention what platform? Also, the genre of the game?

<comment><AUTHOR> I am thinking of getting it up in below platforms in given order.

1\. Mobile Web 2\. Web 3\. Android 4\. IOS 5\. Others

Genre would be Sports, but i dont think it would be limited to it as its a simple one and with little tweaks i can imagine many fun ideas around it.</comment></comment>


Ask HN: Is it possible to transition from corporate job to self contractor? - <AUTHOR> Hi all,
I'm a Full-Stack web developer with 5+ years experience and am trying to transition into contract/consulting work.  I've read alot of posts on this topic (and _all_ of patio11's blog) but am still struggling to come up with ways to find clients.  My dilemma is that I don't want to price myself too low (I can find lots of projects for 20/hr or less), but I'm not sure how to get the larger jobs without doing this full-time.
Has anyone ever transitioned from the enterprise world into contracting successfully?  Is it possible to do it over a period of time? (keep current job and moonlight freelance gigs).  What did you do to get your initial clients? <comment><USER2> I price quite high as a freelance react specialist. I worked at a javashop building enterprise pharma apps. I made frontend technology decisions and bet on /early adopted React when it first came out in 2013, open sourced some stuff to fill in holes in the ecosystem since it was still immature, spoke at a couple conferences, gave a few workshops. With this portfolio it is really easy to land clients at high rates from the HN whoishiring threads. I have had zero successful leads from linkedin and recruiters, it always falls apart when we talk about rates. I've learned that your common recruiter and linkedin manager cant differentiate between okay talent and high end talent. CTOs read HN whoshiring threads and those are the people who can tell the difference. [https://www.linkedin.com/in/dustingetz](https://www.linkedin.com/in/dustingetz)

TLDR: make predictions about the future, specialize, be right.

Edit: I post in the HN whoshiring freelancer threads and potential clients reach out to me, for example [https://news.ycombinator.com/item?id=9998249](https://news.ycombinator.com/item?id=9998249)

Edit: I have a friend who does wordpress freelance for local small businesses, her business is extremely different than mine as is her story, there are many approaches that can work, the key is to understand your market

<comment><USER3> Great to hear! I'd like to fill a similar role in my country, which is always delayed a few years in relation to US: Rails is strong here now!

Related: do you lose sleep worrying if you're going to have to transition to mobile development or something? I suffer from that all the time - the cure is probably Real Clients Paying Money...

<comment><USER2> No, I have time/money to re-skill if/when I mis-predict the future, I worry more about getting older

</comment></comment></comment><comment><USER4> It all depends on how unique and in-demand your skillset is. I did it over a year ago, but had the benefit of working at a company which was basically a consulting firm itself. When I had already decided I was leaving, one of the clients I had worked for expressed an interest in retaining my services. With the blessing of my former employer, they became my first client. After that, my former employer realized how difficult it was to replace my skillset and I essentially became a subcontractor for them. This may not sound great, but I set my own hours, worked from home when I wanted, and was payed about 1.75x what I made as a FT'er. I've able to spend more time with my wife and infant son, work less, and make more money than I did as a 9-5 'er.

However (and I say this not to brag, but as an important piece of information), I only believe this was possible because I was in the top X % (where X is maybe 5? 10?) with respect to my peers. I've seen other people attempt this and fail and it is because they were more replaceable than I was. So a lot of it comes down to where you are located (e.g. supply) and how many prospects there are around (demand).

Over a 1.5 years now I've had about 5 clients (not many), but they all knew me personally beforehand. Your personal/professional network is your biggest asset. Use it.

<comment><AUTHOR> Yeah, everyone is telling me to rely on personal/professional network. The problem is that most of them are fellow "enterprise" type programmers without any actual work to give (ie. not hiring managers). Also.. the big issue I have now is finding evening and weekend/part-time jobs. It seems pretty easy to find a decent contract at a company if I transition, to say, full-time for 6 months or whatever they offer.

When you say you were top X% , was that in a specific tech stack or niche industry? I'm really good at certain tech stacks (JavaScript world - Node+React+AWS, or Java/Scala world - Spring, Play, etc..). How do you actually find work that will help you "level" up, per se. And more importantly, show others that you're an expert in the field? I can do _awesome_ work for some people but it might not be broadcasted to the rest of the world if it's just known internally.

<comment><USER4> Starting on evening and weekends is tough. I know one of my clients is alright with that, because our relationship is more casual, but I don't think the rest would be comfortable with me operating so casually for their business (they want me to be available for calls, e-mails, etc. during the business day). The thing is, the kind of service I provide is not just "let me go away and program something for you", it walks them through the process from conception all the way to deployment. I'm in a niche field (medical), but the people I'm dealing with are generally non-software folk. To them, I am a product guy, project manager, developer, architect, etc. all in one.

When I say top X%, I don't mean in a pure technical sense. I mean in the sense of, from management's perspective, if they had a project that they valued highly and knew they wanted to deliver on, who would they pick as the technical lead for that project. Which technical person would they put in front of the customer? Who would they want to be alongside them during the hiring process to find more technical folk? Those are the ways in which I've found I've been valued. I feel like I am a good programmer (who doesn't?), but I'm not the best programmer in the room. It's a more rounded skill-set and a willingness to do valuable non-programming things. A perfect example is a guy I used to work with - excellent programmer and very well-versed in computer science (whereas my background is engineering). In terms of speaking about best practices, patterns, development philosophies, etc. - he was very good, better than me (truthfully some of that stuff bores me). However, in terms of getting a project done in a high quality way, with predictability (estimation, scheduling, etc.), those are the things he didn't really care for, but I paid attention to. He's a great programmer and a good asset to any organization with a team, but I don't think he's do well on his own. Make sure you are confident in your estimation skills before going it alone.

<comment> UK-AL I don't think I've worked with an organisation, or a PM that could actually estimate well in software without using padding.

I think the prevalence of story points, and probability based estimates(markov), proves that hard deadline estimates just don't work. I don't trust anyone who says they can actually do it on large projects, because they're either padding or lying.

<comment><USER5> Padding is not a bad thing if done right. The group I worked most recently with had an estimation target of +/\- 20% and we were usually much better than that.

It takes a lot of discipline and detailed time recording to get to the point of being able to accurately estimate a task. Padding becomes useful when you know that you always estimate 15% low. Then after you finish your "real" estimate, add 15% and you will be close to the actual value.

I like to think of the estimation process as being analogous to Feedback Control theory. It requires good input data and negative feedback to stay on track.

<comment> UK-AL How you can predict the future estimates based on recording now?

What makes software estimation so difficult is that it's like maze. How long will take you to complete a maze?

You don't know what's coming up in a maze, and you cant give an exact estimate. And trying to work out details to work out what is coming up, takes almost as long actually programming it.

This is why I promote the idea that variation should be inbuilt into methodology. Remove the assumption software can be accurately estimated, build methodology around the fact it's hard to predict.

I use guestimates of 'effort', but I don't hold people to it.

<comment><USER5> Prediction only works for what you know. Seems obvious, but people have a way of "forgetting" that. So you estimate within the parameters of what you know about. If what you know changes, then your predictions have to change.

There are various points on the predictability curve. I used to work in an environment that was extremely predictable: projects with well-defined scope that took years to complete and changes were tightly managed. If scope changed, the stakeholders understood the cost to the schedule. An environment like that is perfect for using past time estimates vs. actual time taken to estimate future similar or dissimilar-but-related tasks.

In other environments I worked in, it's more chaotic. Things change frequently, so estimates change frequently. Often you your long term vision is compromised by firefighting, so that vision has to be adjusted constantly. If you have a deadline, then tasks need to shift to meet the deadline.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I know through how my former contracting employers have hired me out at vastly different rates that almost everything is up to three things in the end: 1\. Your target customers' pocketbook 2\. Their belief that you can solve their problems 3\. The business value those problems have

It does you no good to try to find mom and pop shops that need a small brochure website for their little restaurant with a budget of about $100 for the website... unless you find several of them at a time and can build up a lot of work that way. Customers will pay more if their budget simply allows for it. I've priced myself out of even enterprise contracts / FTE jobs at rates that most people in the Bay Area would balk at, and those are generally pretty bad contracts to be on. For example, I know of a enterprise companies budgeted such that they can't even afford to pay $75 / hr for someone with a highly sought after skillset in a critical leadership role but are willing to shell out $500k+ / yr to vendors for random software? Waste of time almost always if you want to grow with those kinds of penny pinchers.

Most recruiters on LinkedIn I've seen in my subgraph are talking about really poor contracting rates for gigs that I know typically go to consulting companies at about $130+ / hr but these spammed contracts are for $40 / hr people that know VMware (with VCP!), OpenStack, Chef / Puppet, 2+ scripting languages, have actual experience in production environments, be the helpdesk for everything, and are willing to do on-call with this stuff. What kind of companies are these that think they can find someone like that?

I did hear a recruiter near my desk once that he had a position for a TS/SCI cleared sysadmin job with RH certs and CISSP in the DC metro area for... $45k / yr in 2013. What the hell, I think janitors with TS/SCI get paid more than that and it's starting to skirt close to what background investigators get and they're among the lowest paid high-clearance individuals ever.

</comment><comment><USER7> Yes. That's how I got started.

Find an acquaintance who already runs a consultancy, and arrange to subcontract for them for odd-jobs, or take a 2-week vacation and spend it on one of their projects.

<comment><AUTHOR> That's actually what I had in mind. Read this on one of the blogs and it seemed like probably the best option. The main obstacle (for me anyway) is getting "acquainted" with others who run a consultancy :) I guess i'll try to go to more meetups and be more social, reach out to friends to see if they know people, etc...

Do you think it's frowned upon to cold-email people that you're only vaguely acquainted with? Say for instance, I make a very politely and concisely worded email, asking them if they have any extra work that they could off-load.

<comment><USER7> It's not frowned on, but a higher-yield strategy is to meet as many people as you can for coffee and advice getting started consulting.

<comment><AUTHOR> I actually hadn't thought of that :) Thanks for the tip!

<comment><USER8> Don't forget local industry groups/communities.

Consulting is all about networking... odds are very good you'll get far more work via referrals than through bidding or similar processes.

The quicker you can build up that network, the quicker you can start building up that queue of projects, and in the meantime, it's a good way to find someone to sub for while you get yourself started.

</comment></comment></comment></comment></comment><comment><USER9> I was strictly a full-time corporate guy until about 2 years ago. I got an email out of the blue from a tech recruiter guy, asking if I was interested in freelance. I hadn't given it much thought at the time, but figured I'd at least ask what the rate was.

$100/hour.

My eyes bulged out my skull. My highest fulltime salary to that point had been $120k/year (about $58/hour). My wife has benefits so it seemed like a fairly small risk to jump out of the fulltime pool and try my hand at contracting.

I've since been freelance-only, getting as much as $180/hour for a 6-month commitment. I haven't been unemployed at all during that time. It's just been word-of-mouth. In one instance an ex-fulltime employer needed someone to come in and work on some code. In another a previous co-worker at a fulltime gig recommended me to just consult on the codebase and that led to my current gig.

All positions have been work-from-home except for the first one, that was about a 30-min drive 2 days a week.

I'm a full-stack dev, Ruby on the backend (almost 10 years experience with Rails). I'm not too shabby a designer, either, so I'm lucky that I can kind of fit in with any dev team or become a company's sole development resource if needed (which is my role at my current gig).

My advice would be to hit up several recruiters and get them looking for jobs for you. At one point I had 3 separate ones hitting me up for positions on a daily basis. They only get paid if they get people hired so they're very motivated to find you a job ASAP. I always figured that becoming freelance meant you had to spend your days marketing yourself, schmoozing people on LinkedIn, etc (all stuff I hate). It's turned out to be nothing like that. When you're a month or so from the end of a contract let the recruiters know you're available and the offers come rolling in. In my experience, at least.

<comment><USER10> >>$100/hour...My eyes bulged out my skull...My highest >>fulltime salary to that point had been $120k ($58/hour).

Not sure if that $100/hour was a 1099 type rate or a W2 type rate.

Either way, it does still likely beat your $120k/year salary, but perhaps not by as much as you think.

Either way (1099 or W2), you aren't getting the benefit of any company paid medical, 401k, paid vacation, sick days, etc.

If it happens to be 1099, you also have to account for the self employment taxes you'll have to pay.

Using a spreadsheet I keep around for this purpose, assuming $120k salary with $600/month worth of company offset health insurance, a 100%-up to 6% salary 401k, 3 weeks vacation, and 10 paid holidays...the 1099 equivalent to $120k/year would be $80.90 per hour.

Or in short, for anyone considering making the move, don't forget to calculate the benefits that come with full time employment before you set your rate.

<comment><USER9> 1099 here. My wife has great health insurance through her employer so I was okay. If I had to purchase our insurance I'm not sure I would have been as quick to make the leap.

</comment></comment></comment><comment><USER11> Read this book: [http://doubleyourfreelancing.com/rate/](http://doubleyourfreelancing.com/rate/)

Brennan's book is mind-expanding, especially for someone who doesn't have any clients at all.

For the record, I just finished my first 12 months of independent work and it's been amazing. It's definitely possible.

<comment><USER12> _it 's been amazing_

Could you please share more? What kind of work, how many hours a week do you work and the like?

<comment><USER11> Sure! I generally take on Ruby on Rails work, sometimes with a Stripe-specific or email-specific bent. I have two major clients. One is a large Rails app where I do general maintenance and feature development two days a week. The other is as a part-time CTO for another consultant and his businesses, probably 2-3 days a month on average. They both pay me on a regular monthly retainer.

Over the year I've also taken on Django and PHP projects as they come up, but going forward I'll probably stick with Rails.

I actually wrote a book about how to handle the business side of freelancing, but that's not super relevant to what the OP is asking. Here's the link if you're interested anyway: [https://www.petekeen.net/handle-your- business](https://www.petekeen.net/handle-your-business)

<comment><USER12> Thank you for answering. How did you find the first two clients?

<comment><USER11> Networking :) I was invited to join a tiny community of product bootstrappers a few years ago, which led to me helping them out with various things, and them in turn helping me out quite a bit with my own stuff. This led to some paid engagements, which then led to the retainers.

</comment></comment></comment></comment></comment><comment><USER13> I've been in and out of consulting work for a couple of decades now, and at times have worked for consultancies/contracting shops. What has been by far the most successful strategy for me:

* work for free, or work for a lot, but DO NOT WORK FOR CHEAP. What is meant by this is that your rates should reflect not only your value but should force your client to respect what you do. They very easily dismiss what they don't have to pay much for as a commodity. (I've seen this idea from many people in different forums, but I don't remember who/where I read the phrasing above.) If you work for free, ensure your "client" understands you're doing them a favor. In my work, what I mostly do "for free" is take a meeting or provide some advice. I almost never do actual work for free.

* your network does all the heavy lifting for bizdev. Go to your meetups. Write a lot. Become an expert at something, even if its a kind of niche area (even better if it is, actually) because the people in that niche will become your most reliable source of referrals. The meetings you take and advice you give for free will lead to work over time.

* Have a cushion in your bank account. Calibrate your working week to about half what you think is reasonable (e.g. plan on working 15-20 hours a week and set your rates accordingly.) all that extra time is great if you can bill it, but things come up.

* Don't take bad work. The first thing I do when I meet a (potential) client for the first time is hear the 10k-foot view of their idea. Then I tell them what it is I do, and that primarily is talk clients out of hiring me (or anyone else) because their project is A) just plain bad. or B) not ready for development. (I usually look for a tactful way to say those things!) Sometimes I'll work with them to shift the idea into something I think could work, but those are almost always conversations that end with "call me when you're ready." They usually appreciate the honesty and me not taking their money. I appreciate not wasting my time with a client who isn't going to end up having money to pay me with.

* Do your best to help potential clients get their needs met, even if that means referring the work somewhere else. If the job is too big for you, don't try to bite it off. If its too small to waste your time with, don't take it. But do try to find someone who can help them if its not you.

This is what worked for me—lots of other people have had a lot of success with other paths.

</comment><comment><USER14> > Is it possible to do it over a period of time? (keep current job and > moonlight freelance gigs)

Yes, but you may need to pick a different job as an intermediate step: find a job that will let you interact meaningfully with wider open source communities.

The recipe is deceptively simple: (1) build things, (2) tell people about it, (3) repeat. You need a job that lets you do step 2.

I will also add that projects around "20/hr or less" are not just quantitatively too low-paying, they are qualitatively the wrong kind of projects. A $300/hr consultant is not just a more expensive version of a $20/hr web developer -- it's an entirely different job.

The actual technology layer involved in either case might be the same, but the "interface" between you and your clients is different. The high-priced consultant exposes a much higher-level interface that is closer to the business problem domain.

<comment><USER15> How is a $300/hr consultant a different job? I'd love to learn more about what people do to get those kinds of rates / contracts. Do you know of any links / good blogs?

<comment><USER14> patio11's stuff is pretty much spot on.

You need to solve business problems that people don't necessarily know how to solve by themselves. Generally you do this by applying your technology expertise, but that is not what matters to the client.

Don't model your business on the freelancers at oDesk. Model it on McKinsey, Accenture, Bain, etc. Look at how those companies describe themselves. You will necessarily be operating at a smaller scale than them. But that still leaves an awful lot of room.

One key point is that the client does not hand you a spec to implement. The client only has a problem, they don't know how to solve it, or are unsure of how to decide. You come in and teach them what's possible and then help them do it.

I find my clients through networking. Mostly it starts through people who know my open source work and appreciate that I've been helpful to them already, but also some random meetings with entrepreneurs who were looking for technology advice. From there, one project leads to another as people talk to each other or change jobs.

<comment><AUTHOR> >Don't model your business on the freelancers at oDesk. Model it on McKinsey, Accenture, Bain, etc. Look at how those companies describe themselves. You will necessarily be operating at a smaller scale than them. But that still leaves an awful lot of room.

Thanks for mentioning this comment. I didn't think to do this, but I'll start reading a bit on these companies and try to model myself a bit more like them.

</comment></comment></comment></comment><comment><USER16> When you say full stack, what exactly is your stack?

I know a lot of full stack engineers that are IIS > ASP > HTML and cant find anything, while other friends that are Linux > PHP > > JS >HTML/CSS are drowning in proposals right now.

Finding a steady stream of consulting work is never easy. Some consultants rely strictly on referrals, while others take the paid route and drive leads via PPC or email marketing. There are obviously other routes such as forums and job boards.

One router I see a lot of consultants taking right now is blogging. Blog about the projects you are working on and turn them into a live portfolio. Market your github profile.

With 5 years of experience if you truly are a full stack programmer (with decent communication skills) you should have no problem at all finding work. Good luck!

<comment><AUTHOR> I have about 3 years Java world (Tomcat/Webstorm + JEE + Oracle/PLSQL, and Spring, Hibernate all that jazz). And about 2 years in Node + Angular/React + AWS. My question was more how to get good rates and still do it as a part-time side gig since I work full time. I've already had offers for full time work :) Yeah, after talking with a bunch of people from this thread I _will_ be blogging/marketing my github profile/give lightning talks. For the moment, I'm trying to network as much as possible without sounding needy and putting in as much time as I can into open source to get experience, have something to show the world. My goal now is to become the expert of 1 or 2 domains in my local area so people are basically forced to notice me.

</comment></comment><comment><USER17> In this topic: A lot of people humblebragging about their success and not a lot of "simple actionable steps to take". (Not all of the answers, but the top comments were like that.)

I don't think OP cares about your success. Focus on the answer please. Signal, noise, etc.

Patrick started to answer this on his Twitter feed if OP is interested:

[https://twitter.com/patio11/status/661998764119363584](https://twitter.com/patio11/status/661998764119363584)

I for one will not be disclosing my personal success story.

</comment><comment><USER18> The work you do as a contractor/consultant will be different from what most FTE developers do in that you're likely to have more autonomy and responsibility for setting the direction of your work. Your clients will hire you because they believe you can solve some kind of problem for them. In a roundabout way this provides an answer to how to find clients: Meet as many people as you can and see if you can find ways to give them useful advice from your experience. Don't worry about selling, instead focus on understanding how your skills relate to problems that other people have and what kinds of people you might want to work with. In my experience once you get that figured out the paying work will present itself and you'll be able to figure out what to charge. On moonlighting: My advice is don't do it even if your employment contract permits it, it's hard to do your best work on a side job and your best work will be more satisfying for you and pay dividends in the future. Finally, remember that being a FTE saves you from a fair amount of the time overhead that comes with managing a business. Feel free to e-mail me if you have more questions.

</comment><comment><USER19> If you can't find clients, you can always try and have clients find you. Recruiters are all over LinkedIn looking for candidates. Update your profile to say you are seeking contract assignments, and give some detail on what you are qualified for / interested in/ locations, etc.

This might be a bit more difficult as a moonlighter if you don't want your current employer to know you are moonlighting, but recruiters and agencies will find you.

Once you get a few projects under your belt, you should start making connections to get work referred to you - other contractors who aren't available will refer people to you if they know you do good work.

I know lots of contractors who pass off work to others and rarely (if ever) have to approach people to find work. They turn down more work than they can handle.

</comment><comment><USER20> Former contractor here.

At some point you have to commit to what you want to do and do it. There's some good suggestions in this thread for finding your first full-time gig.

One thing that I want to point out is that before you make the leap, you should save at least 3 months of living expenses. Most contracting gigs I had were billed at the end of the month with net 30 terms. That means from the day you start, it will be 60 days before you get paid (and net 45 terms are not unheard of, which is even worse). The key to successfully transitioning to contracting is to be able to make up that 2+ month gap in income.

Having savings is also important because you will rarely find yourself 100% utilized, so you need to be able to survive the lean times between contracts.

<comment><USER15> Why would you take those terms (unless you had no choice, but you probably do if you have 3 months living expenses)? Seems like a crazy risk where you could end up working for 2 months and not getting paid. What about installments?

<comment><USER20> Sometimes you can get better terms but where and when I was contracting they were pretty standard.

</comment></comment></comment><comment><USER21> This something I did and so far has been working pretty well for me.

Look for companies that have contracts with others for short amount of times. The more they send you on jobs, the more website you work on, and the richer your portfolio becomes.

Once you have a good chunk, it is much easier to get consulting work. Sometimes companies I have worked for a month or two contact me directly for more work and a higher rate.

The more items you have on your portfolio, the more people will accept your rates.

</comment><comment><USER22> I went from agency/dotcom work to independent contractor. I worked mostly on- site contracts anywhere from 3 to 18 months. Some jobs were through recruiters, some friends/network. All gigs paid significantly better than full time positions. I did this with an outdated stack, ColdFusion, from ~2005-2010.

</comment><comment><USER23> _My dilemma is that I don 't want to price myself too low (I can find lots of projects for 20/hr or less), but I'm not sure how to get the larger jobs without doing this full-time._

Consider doing some of the "low paying" but readily available work to get started. This looks to me like a problem you are inventing -- the work is available, you just don't want to take a "paycut" to get your foot in the door, even though it would actually be extra money since you are still working full time.

<comment><USER24> I expect the "low paying" offers are a signal of a bad project. It's likely that your customer will never be satisfied with what you deliver. Even if they are, it likely won't achieve their expectations.

<comment><USER23> That may well be true. But from what I have read and seen in life, people with secure, well paid jobs who don't actually need the money very frequently put up all kinds of self imposed barriers between themselves and making something entrepreneurial happen successfully. They turn their noses up at work they could be doing or avenues for making money that are, in fact, currently open to them, while waiting for something better that fits their narrow parameters of what is _acceptable._ Sometimes nothing better ever does show up. They are sometimes turning their noses up at the only avenue that will ever start them down the path they state they wish to take. When nothing shows up that meets their picky standards, they often then complain about how baffled and frustrated they are that they just can't seem to make it work.

There is nothing wrong with saying "I only want to make this transition if it meets thus and such conditions because I am basically happy where I am at, so it needs to flat out be an improvement of my current situation or I am not interested at all." But that isn't usually the position these people take. They usually express extreme bafflement and frustration at how impossible it is while actively throttling any hope of success because their expectations are simply too high.

All I am saying is "Well, you actually _can_ start doing side work _right now_ and are choosing not to. First, recognize that it is a _choice._ "

The OP can make that choice if they so desire, but people are usually happier with their lives and also more effective when they recognize that, no, really, they are _making a choice._ Doors aren't actually barred and locked to them. They just don't happen to want to go through the ones that are currently open and do not feel compelled to because they are pretty comfortable.

Not everyone is that comfortable. Sometimes, people who are comfortable fail to recognize that is the actual problem. They have no perspective. I am just offering perspective.

"Duke Nukem Forever" comes to mind. The company was fat and happy. They didn't really need the money. So they dicked around and dicked around and dicked around _forever,_ until it became a running joke in some circles.

</comment></comment></comment><comment><USER25> Yes.</comment>


Humble Book Bundle: Computer Music by MIT Press - <AUTHOR> https://www.humblebundle.com/books/computer-music-books <comment> jim-jim-jim Shame that The Computer Music Tutorial isn't offered here. I reccomend it to anybody looking for a massive, language-agnostic overview of computer music. It doesn't really offer step by step recipies, but you can flip to a random page, read a blurb, and get inspired to code something up.

</comment><comment><AUTHOR> Remember to pick a charity of your liking and adjust the sliders for how your money is divided.

For example, The FreeBSD Foundation is one of the charities that you can choose to give to through Humble Bundle, and there are a lot of others as well.</comment>


History of China's Nine-Dash Line - <AUTHOR> http://time.com/4412191/nine-dash-line-9-south-china-sea/ <comment><USER2> What's ironic about this article of "History of Nine-Dash Line", is that it mentioned ROC (Republic Of China) 0 times, and only mentioned Taiwan twice (in either cases related to the actual history). The fact is that the original Eleven-Dash Line/Nine-Dash Line was established by ROC (now Taiwan) who still holds the claim, and is furious about the recent "ruling". I guess nobody gives an F what Taiwan thinks in this matter is probably because... well who cares about Taiwan, when we are talking about the Big Bad China, right? Sarcasm aside, if you want to talk about history, at least get the actual history part right: [https://en.wikipedia.org/wiki/Nine- dash_line](https://en.wikipedia.org/wiki/Nine-dash_line)

<comment><USER3> This recent ruling is absurd in that it redefines the concept of island. For example, the largest island in South China Sea, Taiping Island, which has natural fresh water, and is continuously populated by Taiwan since WWII, is no longer considered an island. If this ruling is to be followed, many countries claims on islands all over the planet would be null and void, including some of USA's.

<comment><USER2> I'm no international law lawyer, and didn't really look too much into the details of the "ruling", which I think, as any law, would be pointless unless there's enforcement (by whom?). It just baffles me that an article about the "history" of something didn't mention one of the first questions regarding the history of anything: where does it come from? It's not that hard to look up, it's right there in the first sentence on wikipedia....

</comment></comment></comment><comment><USER4> The UN tried to standardize offshore claims with the International Law of the Sea treaty. China is a signatory, but the US is not.[1]

Most of the problems come from areas which have many small islands off a continental coastline. An island in the coastal zone extends ownership. In the South China Sea, there are many islands which are in the coastal zone of more than one country. Hence the problem.

[1] [https://en.wikipedia.org/wiki/United_Nations_Convention_on_t...](https://en.wikipedia.org/wiki/United_Nations_Convention_on_the_Law_of_the_Sea)

<comment><USER3> International Law of the Sea regulates issues related to the seas, not lands (including islands). Countries signed the treaty on the understanding that the treaty does not cover sovereign claims of islands.

What creative about this new arbitration ruling is that it redefines the concept of island, so many islands are now classified as rocks, in order for them to fall into the jurisdiction of the Law of the Sea. However, I don't think this works, as a law about seas cannot unilaterally defines what constitutes lands.

</comment></comment><comment><USER5> The nine-dash line is self-evident absurdity. One glance at it on a map is enough to know it's ridiculous. It's like if Spain claimed the entire Mediterranean Sea all the way to the Suez Canal. I'm sorry if China is upset by this Hague ruling, but the historical conditions of 500 years ago don't mean they get to extend a giant territorial pseudopod into a body of water and muscle out five other countries, many of which have more coastline on it.

<comment><USER6> Two questions: First - are the armies of the countries bordering south china sea able to win armed conflict with China?

Second - is the US willing to risk war with nuclear armed China over that?

If the both answers are No - then this is neither self evident or absurdity.

Might makes right. And China probably has enough of it.

<comment><USER7> China appears to be testing if they can push this far. It's not just a matter of military power; China's economy depends on their exports to Europe and Northern America (so sanctions can really hit hard), and shipping through the South China Sea is a big deal to Europe, Northern America, South Korea, and Japan.

China is actively trying to influence the situation with soft power as well. The Chinese ambassador in The Netherlands paid for a full page advert in a national newspaper to publish a letter condemning the 'illegitimate' court that ruled on this dispute with The Philippines. The fact that he couldn't get his letter published normally (and for free) in the op/ed sections of _any_ Dutch newspaper is telling though.

I suspect they are going for an absurd claim in order to 'graciously' come to a compromise of about half of that (certainly including the Paracel Islands) after a while, but the situation is certainly unique. They are more than likely strengthened in their confidence by the lack of consequences of the Crimean annexation by Russia (although the economic sanctions hurt Russia quite bad).

<comment><USER8> Imo they are ideologically strengthened for historical reasons. You can't grab pieces of the world for two centuries and subvert democratically elected governments with military dictatorships that are favorable to you and then once a strong contender appears tell them its the 21st century now and not how things are done anymore. They aren't stupid and they know that might makes right.

China is on an upswing trajectory and their people know it from increases in real income for vast majority of the population. It was the strongest country in the world for centuries, and they'll regain that title again, eventually.

Russia lost too much brainpower in the past 25 years. Too many Russians and Russian Jews emigrated to US to use their PhDs to make money on Wall St. They're not coming back, and it will take another 25 years to grow a new generation of minds to lead Russia. Yes, Chinese students go to foreign universities but in general China doesn't have a brain drain problem, and thats why they'll win.

<comment><USER9> They're on the upswing until the bubble pops, anyway. They've got some demographic issues coming down the pike at them, as well.

I hope things don't deteriorate into massive bloodshed and revolt when the music stops and the economy backslides, but that's what has tended to happen in the past, and Chinese history is more cyclical than most...

<comment><USER8> And they're very proactive in handling their issues. I do agree with you that history moves into cycles - some of the most most powerful entities that were at least in part democracies (athens, poland, etc..) were bested by absolutist regimes , which afterwards were overcome by democracies themselves.

Top-down approach doesn't always work, but did wonders for them for the past 30 years. Meanwhile members of the British working class have voted for Brexit to protect their interests (good for them), and US might follow soon with Trump. How confident were they in things getting better compared with the Chinese?

</comment></comment></comment></comment></comment></comment><comment><USER10> Journalists these days really love "tell, don't show" don't they. In case anyone else wants to actually see what the Nine-Dash Line looks like:

[https://en.wikipedia.org/wiki/Nine- dash_line#/media/File:9_d...](https://en.wikipedia.org/wiki/Nine- dash_line#/media/File:9_dotted_line.png)

<comment><USER11> Link to the file page, for those who can't stand Media Viewer.

[https://en.wikipedia.org/wiki/File:9_dotted_line.png](https://en.wikipedia.org/wiki/File:9_dotted_line.png)

<comment><USER12> I'll I'm surprised "those who can't stand media viewer" isn't everyone. Thankfully, Wikipedia falls back really gracefully without JS, and if you block JS you don't get MediaViewer or modal dialog during the pledge drive, even when logged out (almost cancelled my recurring donation over the modal dialog).

</comment></comment></comment><comment><USER13> see also, "great wall of sand": [https://en.wikipedia.org/wiki/Great_wall_of_sand](https://en.wikipedia.org/wiki/Great_wall_of_sand)</comment>


Tell HN: Namecheap monopolizes attractive domains for itself? - <AUTHOR> As of right now, Namecheap claims "safari.dev" was registered in 2019 and is unavailable for purchase, whereas it is available for purchase on Google and Godaddy and possibly other registrars.
Proof: https://imgur.com/a/F2c1SQE
Or ... am I mistaken? <comment><USER2> I'm getting the same results. Clicking on the dollar icon to buy takes you to a page you can put in your offer. Quite strange.</comment>


The Dutch are threatening Google with an $18M fine - <AUTHOR> http://qz.com/312733/the-dutch-are-threatening-google-with-an-18-million-in-fines/

<comment><USER2> Threaten is one way to phrase it. Here is another: "you have been speeding on this road for over a year. We told you months ago, and we have been talking about it for months, but it doesn't seem you have changed. If you don't change behaviour before March, we will fine you".

In the end, this is "compared to the USA, in the EU, the government tends to side with humans more than with companies". That discussion has been beaten to death.</comment>


Show HN: My weekend project (split screen surfing) - <AUTHOR> https://chrome.google.com/webstore/detail/aeafbnpnnbfjkngleojanpckkjhkdkdj I wanted to surf the 'net with my girlfriend, so I built this. <comment><USER2> is there an app like this that is more general split screen share? or split terminal share?

i don't like how screen shares (skype, webex) are one-way, and require passing a baton back and forth. when you sit next to someone, you can each look on each others' screens seemlessly.

<comment><USER3> GNU screen supports this functionality and it is very useful. A google for '"gnu screen" "multiuser on"' should turn up a number of tutorials that explain in detail how to use it. To also split the terminal into multiple screens you should search for '"gnu screen" "split screen"'.

<comment><USER4> or tmux, which is does the same thing as screen.

</comment></comment></comment><comment><USER5> Do you really want to provide yet another way to "goof around in class?" :)

<comment> steve-howard Can there ever be enough ways? Then again, when I goof around in class it's because I'm zoning out the textbook regurgitation in favor of whatever idea strikes me. 90% of the time it's HN or reddit anyway, but every now and again I try to build something.

</comment></comment><comment><USER6> _Ever wanted to surf the Internet, but with someone else in split screen?_

No, actually, not with someone else. With myself.

I recently began the process to hack on Chrome to add proper split screen support (I don't believe it can be done well with an extension), but the development process was so involved and the codebase was so much more massive than I'm used to dealing with that I decided to put this off until I have much more free time...

</comment><comment><USER7> What happens when person A is logged in to say, gmail? What does B see? A's gmail or B's gmail?

<comment><AUTHOR> Currently, the extension will show B's gmail to person B, and A's email to person A. All that's being transferred is URL and position data.

</comment></comment><comment><USER8> yeah doesn't seem to work for me. Keeps "Waiting for connection"...

<comment><AUTHOR> My server has had issues using websockets to connect to clients with high latency, so if you're faraway from where I'm hosting it (Northern California), it may not connect. Also, I haven't done load testing, so this may be a cause as well.

<comment><USER9> Doesn't work well at all in Europe... Keeps saying "Waiting for connection". Was trying it with my gf, and she was connected to someone random...

</comment></comment></comment><comment><USER10> doesn't work for me. When I start a session it keeps saying waiting for connection, when someone tries to join it doesn't respond at all (no new window or anything).

</comment><comment><USER11> Could be another nice user testing tool

</comment><comment><USER12> You should add a 'random' option.

<comment><USER5> Browsing roulette -- I like it. Startup idea? (Actually, jokes aside, a randomized split screen browsing service where you have some background on who you browse with sounds kind of interesting. It would be like a two-way human stumble upon)

</comment></comment><comment><USER13> What's the backend look like?

</comment><comment><USER14> Do they match users with passwords? Because someone can see your browsing while you're waiting for your friend and your password is a simple one.</comment>


Why your startup should never release numbers - <AUTHOR> http://www.giftrocket.com/stealthy-speedy

<comment><USER2> I release numbers and have had my businesses cloned, extensively. That isn't a terribly large competitive threat -- if you can't totally paste someone trying to knock off your hairbrained strategy from 12 months ago, what are you doing in this industry?

If I was to argue for keeping numbers secret, and you'll notice I'm kinda circumspect with regards to certain ones, it might be because you have multiple audiences. Numbers everyone knows are boring to some audiences. Secret numbers, though, secret numbers are a very valuable currency.

<comment><USER3> At the risk that hairbrained is another one of your plays on words, there may be a typo in there ;)

<comment><USER4> At first I thought it was an eggcorn (look it up), but it turns out that both hairbrained and harebrained have long histories, so if it is an eggcorn, it is an old one.

</comment></comment></comment><comment><USER5> I've had a lot of success on the Android Market, but I'm frankly scared to release my numbers. I dwell over it a lot, but I can't figure out how it would help, other than to possibly make myself more popular on the web or to motivate others who are on the edge, thinking about entering the Android Market. I don't think I would get any new sales of my games from doing it, but I do think I'd increase the amount of competition I have, and the more competition I get, the harder it is to make money in this space.

Basically, I agree with the opinion in this article when it come to startups. I think releasing numbers is dangerous, especially when just starting out. I'm not signing up for a business tool online if I see the creator isn't making a profit. I don't have the time to invest in something that won't be around tomorrow.

</comment><comment><USER6> Hi HN, I'm Paul Hontz (the guy who wrote the article that was linked to) and I'd like to correct some core things that Kapil got wrong.

Kapil's first mistake is that he misses the context of my post and insinuates that I'm always for releasing numbers. That is not the case. The post he linked to was titled "Make your Startup ridiculously easy to write about. Put Together a Great Press Pack". The meat of the article was saying "Sharing numbers with journalists can be a very good way to demonstrate traction and get them interested in you".

It doesn't matter if you have an amazing idea (or product) if no one uses it.

The numbers game works indirectly as well. If I haven't heard of a startup before, but I know a lot of people use it, I'm more inclined to reach out with an interview request.

All that said, with the limited time I've spent with Kapil (in an interview), I believe he's a good guy, he just missed the mark on this post.

<comment><AUTHOR> Hi Paul,

Sorry to call you out so publicly. I really like what you're doing with Startup Foundry. I actually think the post overall was great, and as a result of it we put together a set of assets on our press page.

The problem is that most journalists have an interest in sharing how well a startup is doing, because that is inherently interesting information and makes their article better. But in most cases it isn't in the interest of the startup to divulge that information for the reasons I outlined in the article.

Thus, founders who haven't had much experience with press (e.g. me 9 months ago) might make suboptimal decisions in the face of pressure coming from journalists. Some give honest numbers. Some lie. I'm just advocating not giving any numbers at all.

<comment><USER7> I think the negative responses are trying to tell you what you've missed: If, 9 months ago, you had no serious press or startup experience, you have _no idea_ what the startup should do "in most cases". At best, you have a not-yet- validated idea of what your own startup should do. At worst, you have a mistake you'll reflect upon later.

</comment></comment></comment><comment><USER8> Sorry, but this is lame. Why worry about this stuff - worry more about plowing ahead and just cranking.

This, to me, comes from a mindset of 'lack in the universe'. Basically that's saying that there are only unique and limited ideas. The reality is completely different. Startup ideas are a dime a dozen and, for instance, Facebook wasn't the first secret social network. Think they obsessed over whether or not to release numbers when they were small?

If you have the mindset that everyone is going to fuck you over, then yes, hold your cards close and never say anything. But if you believe that human inspiration and inventiveness (which I tend to believe in) is limitless, then just go with your gut.

I'm working on a 'stealth' startup now. The worst thing I could do is toil away in obscurity and not say anything to anyone. Instead, I want to tell as many of my friends as I know everything about it. I want to hear about what sounds right and what doesn't. And if an investor wants to know numbers (when I actually _get_ numbers), then I'll tell him flat out. Whatever, let him try to clone it. I bet he couldn't hire a team as passionate and on track as mine to do a better job. That's how confident I am in our vision and execution.

Like Clint said: you either get busy livin or get busy dyin. Worrying about releasing number to me is 'lack' and that's busy dyin in my book. Good luck..

</comment><comment><USER9> It depends of your strategy.

If the numbers give your start-up a competitive advange, I say go on use it. It will attract customers, make you trustworthy (social proof kind of, be honest though) and scare the competition (or stimulate it, it depends on the strategy).

In the other hand, if your strategy is to make a big BANG at your launch, that you, for example, sell your product/services to small amount of customers, then now, being a ninja is the good way to go. And by small amount I mean an amount you can reach by phone for your start-up to be viable.

There is no such thing as good and bad decision. It depends on, oh.. wait.. your strategy.

<comment><USER10> > _make you trustworthy_

Only for those that believe marketing, ie the gullible.

<comment><USER11> That's a lot of us.

Social proof is important, see joshfraser upthread mentioning Sendgrid's numbers give him confidence: <http://news.ycombinator.com/item?id=3371877>

They do nudge me too.

See also: [http://techcrunch.com/2011/11/27/social-proof-why-people- lik...](http://techcrunch.com/2011/11/27/social-proof-why-people-like-to- follow-the-crowd/)

<comment><USER10> > _That's a lot of us._

Proof by assertion, again, which is what the numbers-advertising game is all about.

</comment></comment></comment></comment><comment><USER12> I understand this is just someone sharing an opinion but most of the time when I read articles about startups people seem like they're talking about opinions and subjective thoughts as if they're hard facts.

What works for some companies in a given environment may not work at all in another situation. Sharing a scenario is good. Making as rules based on anecdotes isn't so good.

</comment><comment><USER13> In general, I agree. I think a good counter example is sendgrid.com. The fact that they have sent a bajillion emails installs a lot of confidence when I'm considering becoming a customer. Note, they pick the biggest number they can show while still hiding their number of customers & actual revenue.

</comment><comment><USER14> I think you should either not bother, or make a big deal out of it - make it part of your marketing, ala Balsamiq. In between seems like the bad space to be: not attracting any interest because of the numbers, but still giving them out to people sniffing around your business that you don't necessarily want to know everything.

</comment><comment><USER15> Never trust advice that uses the word always or never.

<comment><USER16> Never trust advice that contradicts itself. :)

</comment></comment><comment><USER17> Looking good raises personal and sector status, but someone can come and steal your thunder or undermine you, but if they fail, that can be used to your advantage (they give you ideas and customers) or else one can more easily fail upwardly at that point.

Reminds me of the album title: "100,000,000 Bon Jovi Fans Can't Be Wrong"

Seeing a bunch of me-too bands could be good for Jon's ego if he can laugh at those wannabes, but alternatively being seen as niche and undiscovered might be better.

For me, I think releasing numbers (of a social network) would be more about conferring legitimacy more than anything else, and secondly, increasing competition, which I think is good if you can win.

Fred Wilson: "We like category creators — people who are the first to develop a company and a market — as opposed to copy cats." [http://www.women2.org/a-vc-fred-wilson-talks-on-building- mob...](http://www.women2.org/a-vc-fred-wilson-talks-on-building-mobile- startups-with-founder-labs/)

</comment><comment><USER18> Releasing your numbers is just asking for trouble. If you are small, someone that has more resources can come along and put you out of business.

<comment><USER19> I wouldn't be worried about "someone with more resources" putting out of business "someone with small numbers".

I would be more worried about my numbers attracting a _very_ talented startup team into my market.

</comment></comment><comment><USER20> I could not disagree more.

</comment><comment><USER21> Maybe it depends how large the numbers are? Google kept their (amazing) numbers hidden as long as possible. When they filed for IPO, their AdWords revenue numbers blew everyone away.</comment>


Unapologetically build your startup technology in C# - <AUTHOR> http://www.sirchristian.net/blog/2014/06/21/unapologetically-build-your-startup-technology-in-c-net/ <comment><USER3> I strongly agree with the author's conclusion, but I strongly _disagree_ with many of his points. Notably, with his recommendation to consciously go all the way with the Microsoft vendor lock in.

Our startup's backend is made in C#, and we're very happy with the choice. We use Postgres, we host it on Docker containers on Linux, and our devs are equally spread over Windows, OSX and Linux. MonoDevelop is a remarkably great IDE for something with so few users, for example, and great open source like Dapper and ServiceStack.OrmLite make it super easy for us to interface with Postgres and use all of Postgres's unique features (Json as a first class data type, multiple-cursor result sets, stuff like that).

The author seems to propose "get all the free Microsoft goodies when you start, and once you really need the paid versions you're probably successful enough that the cost doesn't matter much". It is Microsoft's strategy that companies do this, and it's a valid one, but it's really not what I would do. Microsoft might've become a whole lot more open these days, but tying yourself in so much with a single provider sounds, well, dangerous no matter what.

For example, if you develop your C# app for Azure, moving to a different provider is a lot of work (much like if you want to move your Rails app away from Heroku, but with less open source out there to ease the road). If you develop your C# app to work platform-independent (or at least cloud-provider- independent) from the outset, then you're free to move whenever you want.

<comment><AUTHOR> I agree "get all the free Microsoft goodies when you start, and once you really need the paid versions you're probably successful enough that the cost doesn't matter much" is one fair conclusion to the article. However I don't believe that's the only conclusion. Mostly I want .NET to be a consideration as an option when building out the technology in a startup.

I'm concerned about vender lock-in as well, just less concerned then I used to be. Microsoft's gone to great lengths to reduce some of my concerns. The fact that you are using C# with Postgres demonstrates that there doesn't need to be complete lock-in.

Do you mind sharing more about what your C#/Postgres app looks like? This combination is one option I'll be looking at for my next venture.

<comment><USER4> We've recently started down this C#/Postgres route. One of the main decisions to use C# was static typing, so I wanted to keep this with the data access layer as well. I've decided to use dotConnect for PostgreSQL so I can use EF. I figure I can use dapper or another micro ORM after I get into performance issues.

Our biggest problem with Postgres is actually the lack of a good GUI. I'm using 0xDBE for the amazing auto complete and PgAdmin for everything else.

<comment><USER5> LINQ to DB (not LINQ2SQL; it's an OSS library) is also a good option to talk to Postgres while keeping type safety and performance.

</comment></comment></comment></comment><comment><USER6> There are two people talking in my head while I read this post. One says :

Too many people obsess about backends. Yes, build your startup in C# and a .NET stack if that's what your familiar with. The backend ultimately doesn't matter, and the faster you can create and then iterate on your product, the better off you'll be. The primary factor that will decide whether your startup is successful or not is if people like your product and actually use it. None of your users will know or care what you built it in, be it .NET, RoR, Django, Yii, whatever.

The other person in my head is saying. "OH MY GOD NO". I've used the .NET stack and various OSS stacks to build complicated web applications. From this experience, I've concluded that the .NET stack sucks. Yes it works, but almost any OSS Framework will provide a much better developer experience. Better while developing the initial product, and better when maintaining and extending it.

<comment><USER7> "but almost any OSS Framework" \- are there real choices that do not involve the dynamic typing maintenance nightmare while giving you a C#-quality language? Maybe just Scala + Play.

<comment><USER8> You can also do Java + Play. And Go's out there now, and it comes with most of the stuff you get from Play out of the box (and for the other stuff, getting it is easy enough).

<comment><USER9> > And Go's out there now, and it comes with most of the stuff you get from > Play out of the box (and for the other stuff, getting it is easy enough).

Any link? That seems to be pretty much wrong.

<comment><USER8> Which part? The coming with most of what you get from Play? Look at Go's template/html and net/http.

If you don't like those, pango2 aims to provide django-esque templates for go; things like martini, gin-gonic, and negroki provide nicer routers; and Gorilla aims to provide a good deal of web-server-y things.

</comment></comment></comment></comment></comment><comment><USER10> Is your post about C# or the .NET stack? I can (somewhat) relate to using C# over some other languages. However what I cannot relate to is being trapped with the .NET stack.

And a trap it is. You need expensive Windows Servers to host your stuff and Windows just disqualifies itself as a server platform (my subjective opinion). Having to use a powerful latest-tech machine and very recent OS version (2012?) with loads of patches, newest .NET framework just to host a super simple REST service with the almighty IIS is OVERKILL in every sense of the word.

Some people even use this approach when all they do is run an AngularJS powered, single-page javascript web application.

And my bullshit-meter just spikes when I see this kind of ____(use your imagination).

I agree that Visual Studio is a good choice for Windows software development and that SQL Server is (maybe) a good choice, when you use VS.NET (or .NET at all). But that's just a dependency when you opt for the Microsoft world. Stay clear of it and save yourself some hair.

Just my 2 cents! ;)

Best regards and good look with all that you do, Steviee

<comment><USER11> > You need expensive Windows Servers to host your stuff and Windows just > disqualifies itself as a server platform (my subjective opinion). Having to > use a powerful latest-tech machine and very recent OS version (2012?) with > loads of patches, newest .NET framework just to host a super simple REST > service with the almighty IIS is OVERKILL in every sense of the word.

This is true, I definitely agree.

I am , however, excited to know that they are taking steps to change this. ASP VNext is the next generation of asp.net applications: standalone, framework bundled, cross platform.

[http://www.asp.net/vnext](http://www.asp.net/vnext)

<comment><USER12> > newest .NET framework just to host a super simple REST service with the > almighty IIS is OVERKILL in every sense of the word.

Then you are happy to read about Owin :-)

using (WebApplication.Start<Startup>(url)) { Console.WriteLine("Server running on {0}", url); Console.ReadLine(); }

<comment><USER10> We'll see. Hopefully it is not as half-hearted as the other technologies Microsoft tries to establish and then forgets about. They will need to put a lot of effort into it to have something even remotely equal to Node (or other micro servers). And when they deliver, the Node hype could be gone already! ;)

</comment></comment></comment></comment><comment><USER13> So here is my take:

I'm currently working on a SaaS product built on .NET running on Windows Server, IIS, and SQL Server. We're not really a "startup" anymore, but we're still very small. I wasn't here when the first version of the product was built so I wasn't part of that decision.

If I were building this product from scratch today as a money-poor startup, I would probably go with tech stack included Java or Python and PostgreSQL. The primary motivation being cost (as in money).

Each developer is technically required to have an MSDN/VS Pro license (renews for just under $1000 per year). This is not very expensive if you're generating revenue, but if bootstrapping it is not cheap. You could cheat and just share a single license; you definitely won't get caught.

Windows Server licenses, compared to other datacenter costs, are relatively inexpensive. Windows Server has a few advantages; particularly in it's easy to administer and there are plenty of sysadmins out there than know it well.

The elephant in the room, at least for a SaaS product, is SQL Server. The features of Enterprise Edition are so compelling for SaaS (HADR, unlimited RAM, online index operations, compression, and encryption) that it's practically a requirement. But this will quickly become one of the most expensive costs in your datacenter.

But in my experience, SQL Server has some real advantages that I haven't yet discovered for PostgreSQL. The "community" around SQL Server is huge and has a ton of great people who love to help (often for free!). For instance check out [http://brentozar.com](http://brentozar.com) or [http://sqlblog.com/blogs/adam_machanic/](http://sqlblog.com/blogs/adam_machanic/).

There are programs like Bizspark which can bring the initial software license investment down to nearly $0. But if you're not generating significant revenue after three years, the licensing costs could hurt.

So like everything in world, it depends. But the bottom line is that, in my opinion, if you're bootstrapping then costs matter and Microsoft products (SQL Server in particular) are a huge cost which have real viable alternatives.

<comment><USER14> If you have outgrown Bizspark but are still relatively small the Microsoft Action Pack Subscription may be suitable for you.

<comment><USER15> Right. Eventually your business grows, you're doing $3M in revenue, and have 8 employees with a total burden of $1.5M. How much will it cost to run with per core fees for various components? Was the ease of use and maintability worth it (at this point, one can start to calculate but it gets murky)? Will it add or subtract from the infratstructure costs? I don't know, but I'm not going to go down a proprietary path to find out.

EDIT: Of course, it always depends on where you are coming from. If you are in a large corp. with MS tech already entrenched or come from that environment, it makes sense (as it seems many are that are weighing in). Or, if you are building to flip, and are most productive in this ecosystem.

</comment></comment></comment><comment><USER16> I work at a company where we have built one of our products (a large distributed system that tracks television content worldwide) completely on .NET. I love C#, it's a very decent blend between a whole lot of languages and additions of LINQ and async/await kept it relevant. Visual Studio is the best IDE I've worked with, not because it's such a good editor but because it has a sane debugger that is actually helpful.

I still wouldn't run my startup on .NET though, for a number of reasons. Mono simply isn't there yet. Code that works fine on Windows mysteriously stops working on Mono due to threading or GC vagaries (yes, even in the latest version). This isn't a dealbreaker, but it is pretty annoying especially since debugging these kinds of problems are of precisely the kind that I don't want to debug.

The ecosystem is really quite poor compared to, say, JVM or Node. For all the faults of either, there is a LOT of stuff going on and there is a LOT of innovation that is sorely lacking from the .NET world. .NET usually catches up eventually but it's either late or half-hearted (just look at the progress of NHibernate vs. Hibernate).

I think ASP.NET vNext is a step in a very good direction and I hope to be able to change my opinion sometime next year.

<comment><USER11> > NHibernate vs. Hibernate

As a counter argument to that (specifically), we don't really need NHibernate when we have Entity Framework.

<comment><USER10> As a counter-counter point: You absolutely need NHibernate (or something else) when you use EF.

Steviee

<comment><USER17> The proof is in Orchard CMS.

</comment></comment></comment></comment><comment><USER18> It's important to remember that C# does not imply .NET

Xamarin has done some great stuff lately, for example you can use C# to make a native 3-platform mobile app. This is still proprietary tech, but it isn't Microsoft and it isn't .NET

In my eyes the best thing about the .NET ecosystem is the tools, if you like me fancy a polished IDE like IDEA, then VS is definitely one of the best ones around. In my eyes tools are more important than platforms, languages and licenses. The productivity hit of poor tools is much more expensive than anything else.

Also, if you are looking at C#, don't forget to consider F#.

Compare a minimalist service built on Node/AWS with one built on F#/Azure and it's not too different in cost but a much nicer language and better tools.

<comment><USER19> C# does imply .net, just as it implies windows.

Yes, other solutions exist, no those solutions aren't hugely popular in the grand scheme of things.

<comment><USER18> This has changed a lot, especially over the last couple of years, a lot due to the F# project.

You should look at self-hosted NancyFx or ServiceStack with F# as a good alternative to Node.js

The fact that the "other solutions" aren't popular is probably just because C# is the go to language in windows/.NET shops that already have knowledge and infrastructure. It's not that they are technically inferior.

</comment></comment></comment><comment><USER20> IMHO the problem in not a programming language choice, but the entire ecosystem that you should support if you will use microsoft. Today for ex. linode and digital ocean have a very cheap entry price around 5$, with the power of entire open source lib, and the power of the community of every open source project.

</comment><comment><USER21> there's nothing in that post that gives C# a measurable advantage over say, Java.

Visual Studio Express? still way behind JetBrains IntelliJ (the community edition is FOSS). Visual Studio is unusable without JetBrains Resharper, which isn't cheap.

Azure? AWS

Bizspark? not required for Java dev as everything's free and OSS anyway.

Popularity? most popular .net libraries/tools (NUnit, NAnt, NHibernate) are all clones of popular Java projects

Scalability? those Windows licenses will cost you a fortune once you're out of bizspark

Vendor lock-in? well it's still there with MS, just you're not paying them for three years (Bizspark)

<comment><USER22> In my experience C# is just a better language than Java (which isn't suprising, as C# was made just to be a better Java clone). Things like

      * value types (instead of boxing)
      * no type erasure
      * runtime exceptions
      * dynamic/duck typing
      * operator overloading (try working with arbitrary length decimals in Java)

just solve a lot of the small headaches of everyday programming.

That said, I still prefer Java because of the ecosystem and newer JVM languages like Clojure and Scala might just make Java irrelevant.

<comment><USER23> I've worked with C# and .NET for years. I agree that C# is a great language. I prefer working with the JVM and Linux ecosystems, though. On my latest project I decided to use Scala for the backend. I have access to a wealth of great libraries and services, and I actually prefer working with Scala than with C#.

</comment></comment></comment><comment><USER24> I always wondered why computer languages and economy becomes religion and dogma.

We use multiple languages and multiple OS in my company.

When you have a company you have your own interest and your customers interest in mind.

Some times those interest are not the same of Microsoft, Apple, Google, IBM or Oracle.

Just developing on a single proprietary language from a single company on a single OS (and yes I know Mono and I don't have a good opinion on it) is a huge red flag for me.

We use whatever is necessary for solving our customers problems. Some times it means using C#, most most of the times we use better alternatives.

<comment><USER10> I agree. My experience (and please tell me when I'm wrong) is that Windows developers for the most part stick to their choice of framework while multi-OS (Windows included) developers are more open to the wonders of the world.

So statistically the .NET guys may be more narrow-minded regarding development stacks.

Steviee

<comment><USER11> > So statistically the .NET guys may be more narrow-minded regarding > development stacks.

While true, .net developers don't need to venture out very far, I don't believe its solely because of narrow-mindedness (sure you'll find these developers everywhere, I can argue that node developers are narrow minded with node + express + mongo for example... hell people still write PHP =) ).

With .NET the reality is that there is no reason to consider anything else within the stack. Everything is standard, and most companies have them as part of MSDN. Majority of established .net enterprise environments use SQL Server with either ASP.NET webforms or MVC.net running on IIS + Win Server. What open source considers "vendor lock-in" is considered "standardised technology" in enterprise environments. When considering client work the first question is: "right what do you need to do?" and not "right, what stack are you using".

With Java, one client I have to learn Struts, another client I have to learn Play, then another client I have to learn JEE. I know Gradle in and out, but another contract requires me to know Maven, while another contract requires me to know Ant. Standalone server? Or Tomcat / Apache / WebSphere?

With Node, everyone has their own templating language (Jade or Handlebars or other). Some use CoffeeScript over plain Javascript. Some use SASS/LESS/ or just plain CSS. Some forward proxy using Haproxy, others NginX.

The point is: while the .net stack is pretty narrow, we know it works in the majority of use cases. And that's usually enough.

</comment></comment></comment><comment><USER25> Man, 6 months ago I would have agreed with you. Hell I even have a year old BizSpark membership.

I just couldn't get over the thought in the back of my head that I'm making the wrong decision investing in Microsoft's development platform. C# is literally my favorite language, but I felt trapped and missed open source... Both the freedom it brings and the community. Maybe I spend too much time on HN.

I even tried to go 'indie' .NET. I moved to RavenDB (fuck MSSQL and it's overpricedness, and EF) and stuck with Azure, so really my only costs after my 3 years would be an MSDN license per developer. But in the end I just gave in to my worries.

One weekend I just rewrote the damn thing in NodeJS and I'm pretty happy. No need to boot up my Windows VM anymore either.

I think the talent pool is also what put me off. There seems to be - in London at least - a lot of career developers who pick .NET.

</comment><comment><USER26> running 30+ windows servers

Microsoft has become much better, but still not sexy. Don't ever think they can fix everything for you, find out what they do well and what suxx and then do workarounds. Still too much microsoft and too little webstandards.

They upgrade more and fix more bugs, but this also break more stuff. Asp.MVC upgrades can be a pain..

.Net Core, C#, Linq, etc.. all very cool. Can make some stuff that performs very well, but can be very tricky to scale.

Asp.net i still too slow and too heavy.. taking >1min to start a asp.mvc site? It feels like some old grandpa compared to Node.js, Go and even PHP.

Powershell is still behind

Window Server administration can be very slow, .. how can it take 30seconds to draw an Event log ? Really miss ssh or even telnet.

Windows Services and schedules can be a pain. How can "access denied let the service run forever without notification??"

The license system is crap, they make their costumers feel stupid when they cant figure out how to renew they Action Pack's, etc..

And their crappy sales ppl, trying to push Sharepoint because they hear the word software and web.

So I really regret working with microsoft, althought I like some of .Net and C#, but what does one do for a good project and a salery.

Next project will not be .net for sure..

<comment><USER7> >> "Node.js"

If you need an HTTP Reactor pattern implementation in .NET, there is one coming soon. Patterns are not hot or old, they are just different for different needs.

</comment></comment><comment><USER27> the article seems to be saying C# is cheap and fast because it has a really good set of libraries. i have no problem believing this. the question in a startup is, is it more important to have good libraries or a powerful language? e.g. lisp is the most powerful language, but its library ecosystem isn't reliable enough. whereas java is a weak language but has great libraries. (that's why clojure's awesome!)

i'm not trying to start any kind of religious war here, but this is personally why i (and i suspect many others) code their web apps in python. it's a reasonably powerful language with an excellent set of libraries to go with it.

</comment><comment><USER28> I did my Masters thesis in Computer Science in C# (data visualization). No apologies. A couple of people around the Institute have looked at me funny, but it's turned out to be a very good choice.

</comment><comment><USER29> I'm currently working on my own startup. But didn't go the full Microsoft stack route.

I use C# and Visual Studio for development. I think right now nothing beats VS for pure production output. I do all development on a Windows box.

All frameworks work on Windows and Linux.

      Nancyfx - web framework
      Cassette - asset optimization
      Mongodb - <USER2>

      Production server uses Ubuntu + Mono + Nginx.
      $20 VM on Digital Ocean.

Provides a nice balance of best of bread tooling and cheap production costs.

</comment><comment><USER30> By all means, unapologetically build your startup with C#/.NET.

Every Linux/OSS based startup you will be competing with agrees with this recommendation.

</comment><comment><USER31> When you're choosing a tech stack in a startup there's a _very_ important factor to consider that this article neglects to mention. It's likely, if you have any measure of success or you go down the investment route, that you'll be expanding your technical team quite early. The availability and cost of developers is critical at the beginning. Building in languages like PHP, JS, Java, and to a lesser extend Perl and Python, means you have access to lots of cheap devs. Especially in the case of PHP and JS. Those languages will scale reasonably well to the tens of thousands of users, by which time you'll probably be raising a Series A and you'll be able to afford to shift the important bits of the code to a more appropriate language.

While it might be 'right' to build in C# or Erlang or Haskell or Brainfuck or whatever, if you have to pay a premium to get your first engineer you'll be shortening your runway, and that's pretty much the worst thing you can do. It's _much_ better to build in the 'wrong' stack to start with and give your startup time to get traction. At the end of the day, no one using your product gives a damn what it was built in.

<comment><USER32> man, I agree with your recommendation, but strongly disagree with your reasoning.

Cheap devs don't pay off. Seriously, I have hired a lot of developers and one good dev (at twice the rate of a cheap one) can easily do 10 times the work, while minimizing technical debt.

If you're doing a prototype with the full intention of throwing it away, that's one thing but please don't go cheap. Get less devs and pay them more.

As for languages, a startup wants to be cheap. Most of them are doing web stuff. Unless you have a specific need, go ruby or python. People who are interested in either generally are passing on php / javascript for a reason i.e. they're not good languages. Maybe pick go if you want to do systems stuff or performance is critical.

The reasons NOT to pick C# are 1) cost 2) lockin 3) flexibility

<comment><USER31> In my experience, in the case of people wanting to work in a startup, cheap usually means 'lots of competition for the job' rather than 'is bad at code'.

</comment></comment></comment><comment><USER33> Another equally potent idea is to build products which integrate with Microsoft's own, popular products. For example, the popularity of Excel caused me to build this: [http://activemesa.com/x2c](http://activemesa.com/x2c)

</comment><comment><USER34> I had a hard time getting past:

> In reality Microsoft doesn't want your money until you can afford to give it > to them.

Building your business on that premise seems very dubious at best.

</comment><comment><USER35> I use C# for work and it is a nice language to work with. However mono runs dog-slow compared to C# and is practically unusable. So you are locked in.

<comment><USER36> > However mono runs dog-slow compared to C# and is practically unusable

Did you file a bug about this? What version of Mono were you using?

</comment></comment><comment><USER37> I'm getting a 404 error. Is there a cached copy out there?

EDIT: The blog's front page has a full copy of the article at the top. (As I write this at least.)

<comment><USER22> But it still being DoS'ed by HN traffic. Google cache: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.sirchristian.net/blog/2014/06/21/unapologetically- build-your-startup-technology-in-c-net/)

</comment></comment><comment><USER38> Not saying it is the case here, but blogs praising ms tech always raise some flags with me, as with [http://www.pcworld.com/article/2365060/microsoft- caught-astr...](http://www.pcworld.com/article/2365060/microsoft-caught- astroturfing-bloggers-again-to-promote-internet-explorer.html)

</comment><comment><USER39> The throwaway comment is this: who cares about backends? Go make something people want. Every second you spend chatting tech is wasting your time. Make something people want _even if you have to do it with a pencil and paper_. Worry about the tech when you've figured out step one. 99% of startups don't do this.

So for all of the armchair startup warriors out there, the guys eager to hear if Facebook is really running MongoDB or what their sharding plan looks like, let's look at the tech.

I'm a MS hound from way back. I made a bet -- a very good one -- back in the 90s that MS was going to own the PC market. And it did. And life was good. Microsoft sold tools and apps, I came in and programmed using those tools and apps. Many times I came in after the local yokels had already screwed things up. This meant a higher bill rate. Life was nice.

But I started noticing something: there was a certain arrogant-jerk-inbred- echo-chamber feeling to the MS community. MS pimped tools to the developers. Developers ate it up. MS pimped new servers to their MVPs. The MVPs sold them to corporations, consultants came in and collected. It was all fine and dandy, but over time there just got to be more and more tools and apps, and more and more servers and experts. Any small reasonable thing you'd like to do, like set up an email server, involved books, certifications, special servers, learning the acquisition history of all these small companies, and so on. It was ludicrous that any one person could be an expert enough to maintain the small set of tools that most folks would need. Microsoft was adding complexity -- unneeded complexity -- into everything it touched.

More troubling, once I started learning more about startups, I saw developers obsess over new Microsoft tools or third-party components instead of making things people wanted. Microsoft's interests was in creating and maintaining this ecosystem of selling servers and tools, not in helping people make things other people want. So I'd see these projects that were supposed to be solving a simple problem. They'd use all kinds of fat, bloated, feature-laden _junk_ strung together in a huge pile of tech. Then somebody would start down the "happy path" of making a "hello world " app work. Very soon, however, developers ventured off the happy path, and then they had to learn javascript, html, SMTP, SQL, and so on.

So development consisted of salivating over new stuff, eagerly installing it, and then wandering around in the weeds trying to hook all the pieces together. And oh, by the way, the user was supposed to like it. But, let's face it, screw the user. We're here for the tech, right?

I still love the CLR and several other things Microsoft has created. But I'm not part of the ecosystem any more, and I won't spend any time at all learning whatever new version of Silverlight they'll have out next year. I'll also stick to my command line and bash, thank you very much. I've been burned too many times, and I've seen too many development teams destroy their productivity by getting lost in the Microsoft ecosystem.

</comment><comment><USER40> Its weird that the HN crowd just seems to assume that the advice to use linux and mono just has to be a better idea than using windows.

If you haven't looked at windows since 2003 you really need to take a look at server 2012 R2. The default installation mode is server core. It requires dramatically fewer patches. Management with PowerShell is incredibly powerful. IIS has seen many, many improvements.

Also, "developing your app for azure" is a weird statement. If you develop for Azure Websites you are literally just writing an asp.net web app or api. it runs in IIS in a VM. It just has some management wrapped around it so that you don't have to take care of the VM(s). It has autscale, monitoring, and all the stuff you would expect from a cloud provider. Writing your app to use SQL Azure, or Azure storage, or something like that is just like using the comparable services from Amazon. It's like anything else...you should implement its usage as an interface so you can swap it out if need be.

Some people on HN have accused me of working for MS just because I use their stuff. I'm not, nor have I ever been, a MS employee. I'll admit that I started looking into windows a couple of years ago because I was bored with Linux and Unix. I've found that if you put the time in to understand how it works its incredibly productive and thorough. If you try to make it work like unix it will suck. If you learn PowerShell and stay away from the "clickety-clickety" thing it's awesome.

From a development standpoint I actually like the total stack approach...but that's me. If you need to use best of breed components you can still do that with .Net. For me though, my interests shifted to C++ a while ago, so .Net stuff for web api's get's the work done when I have to do it. I would like to see more stuff like openstack in the .net world, but system center is fine. The stuff that I do ends up being important enough for enterprises that getting funds for that kind of thing is just part of the package.

That's another thing. I'm completely uninterested in startups. I've worked at startups in various roles in the past and I'm just over it. Any startup that I built would have to be something that I could run by myself that immediately made money that I would keep. Investment funding is shit. It's a hassle that is super crazy. Dealing with "business" types that aren't technical enough to understand the challenges is also completely off the table. If you did choose to work with a VC then it's much better to be making money and talking about selling out totally instead of implanting them in your life. Shudder.

The one thing that I think Windows needs is a container style app deployment model. The coolest thing going in large scale app building is CoreOS. Its the future of how a large scale app will be built and deployed.

The new, and much loathed, metro applications are actually a good starting place for building a container system. They use feature called "app containers" that was first introduced in Vista. Add to that an app package that installs and uninstalls as a unit, called APPX. They haven't made any noise about using the new app model for servers, but it would be a great idea. It uses an API monitor that stops calls to things like LoadLibrary or GetProcAddress and all the other API's that let you bootstrap malware. Anyway, like I said, they haven't made any noise about it...it would be cool though.

<comment><USER41> I was also enamored with UNIX and later on GNU/Linux as a cheapest way to get UNIX at home. After already some years experience with *-DOS, Netware, Windows and Amiga systems.

But from the point of view of technology stack, innovation seems to be standing still on the UNIX side of things.

Microsoft seems to innovate more in terms of how modern OS stack should look like, in terms of full stack, whereas UNIX clones hardly offer more than "portable" POSIX cli and daemon model APIs.

<comment><USER40> I agree completely. I would add however that CoreOS or NetBSD rump kernels are really very innovative.

<comment><USER41> I agree somewhat, as I meant the whole stack.

</comment></comment></comment></comment><comment><USER42> Interesting how the post completely ignores the _quality of the language_. Most people I know don't use C# for the same reason they don't use Java: Because it's often feels bloated, over-engineered and too verbose for building stuff fast. It has nothing to do with Microsoft, Azure or scaling, they just prefer whatever dynamic language they're comfortable with.

<comment><USER43> I've only ever heard good things about C#. I believe C# has first class anonymous functions, makes async operations easy, and a combination of VisualStudio and JetBrains resharper you have a pretty amazing development environment. I haven't programmed much with C#, but like I said I've only heard good things.

<comment><USER44> C# is a fine option if your choices are C# or Java. On the other hand, F# is safer and 3 times more concise language that can do everything C# can It interops perfectly with any C#/VB.NET libraries. I'd think long and hard when writing any new C# code, and defend why you need to reduce your possible solutions to only those C# supports, when you could have the ability to do everything C# does and more with F#.

<comment><USER45> For me personally, conciseness of F#, it's tendency to use short words, cram things together and overload operators actually make it less readable. I like many of the features F# has and am happy to see how they are slowly migrating to C#.</comment></comment></comment></comment>


The man who destroyed America's ego - <AUTHOR> https://medium.com/matter/94d214257b5

<comment><USER2> Fascinating story. As a child of the 80s, I remember the self-esteem movement. My parents always made fun of the idea that you should love yourself even if you haven't done anything particularly great. Glad to see that it's falling out of favor.

</comment><comment><USER3> Ha ha ha! The big headline has an upside-down apostrophe, maybe one of those stray Microsoft "smart quotes" in "America's". That's the way to lead with your chin, guys.

</comment><comment><USER4> Sooo interesting!</comment>