I burned out at BigCo.  Am I a fool for thinking I can avoid this at a startup? - <AUTHOR> (been on HN for half a decade, but posting anonymously because I could be perceived as damaged goods and hence unemployable)
The story is a familiar one to readers here, so I'll spare the details.  Abusive management, perpetual "crisis mode," promises repeatedly broken, entrenched technical incompetence, smothering bureaucracy, vomit-inducing organizational politics -- the whole nine yards.
I started as a wide-eyed youngster desiring to prove myself, went through the denial phase, and ultimately suffered a total loss of motivation.  Since then I've left the job to spend some time recovering, soul-searching, and gathering what I can as lessons learned.
Right now I'd say that I have the (financial) risk tolerance to work at a startup, as well as the desire to work on challenging and meaningful tasks, especially with growth and learning opportunities and a level of ownership such that I can take pride in my work.  But I doubt I have the dedication or interest in the business aspects necessary to start a company of my own, hence my willingness to give the startup employee route a shot.
However, given my experience with burnout, I feel that I may be excessively skeptical of what any employer would have to offer.  Of the problems I mentioned before, everything other than the red tape could just as well happen in a startup.  The obsession with "rockstars" and "ninjas" who have unwavering "passion" just smells like a search for naïve, exploitable labor willing to give up evenings and weekends for foosball games and beer.  The prevalence of social bubble-worthy companies whose value propositions are little more than "cat pictures" suggests an inflated sense of self-importance among the founders, and I can't expect to keep my level of enthusiasm in line with their irrational exuberance.  And while I don't need much job security, having the specter of financial instability looming over the office tends to be at minimum somewhat distracting and most likely quite demotivating.
Perhaps a startup that has gone through the vetting process with YC would have less of these issues, but even then I have some doubts.  I'm not in any position to question PG's judgment, but after seeing some of the announcements of companies funded and the infamous "YC company seeks brogrammer" job post, I have a feeling that his evaluation metrics for founders may significantly diverge from mine.
I recently passed up an opportunity at a very high-profile technology company mainly because everyone on the team was required to carry pagers.  It just didn't feel right, especially for an established business that claimed it was being run like a lean startup.  But it did get me thinking -- why would an actual startup not require the same?
tl,dr: Can I expect to find a position with the potential professional rewards of working at a startup, while still setting strict boundaries on work to preserve my sanity?  Or am I trying to have my cake and eat it too? <comment><USER2> I went the opposite direction, burnt out by startups and went to a BigCo.

I have never been at a startup where you could remotely set strict boundaries on work. You have to be available at all times to deal with whatever crisis is happening.

Moving to a BigCo, they treat me way better than a startup, and there is less day to day stress. I have weekends and my time off work really is "off" again.

I couldn't be happier with the switch. Do I miss things about working at a startup? Sure.. but being treated like a professional and having a life again is more important than the chance at glory, money or being "the" guy to fix this critical unsolvable problem.

Now I'm one of many many people solving problems no startup I've been in could dream of solving.

Just my experience, I'm sure many people have divergent experiences.

Edit:

I would also like to add a key driver to my happiness is that I'm in a position of change at the BigCo. It's not just endless meetings, and I have a great deal of autonomy, and am working on exciting things.

I had this in startups too... so I didn't trade usefulness for constant meetings.

Thought that was important to add, I'd feel differently if I didn't have a useful, interesting and rewarding job at a BigCo... which I could have never gotten without working in startups for the beginning of my career.

<comment><USER3> How did you go about finding that BigCo job?

Perhaps its down to the job market in the UK and .NET that everything is handled by recruiters that hide lots of details about BigCo jobs or make them sound dull.

</comment></comment><comment><USER4> The last time I did a job search, one of the questions I started asking in interviews was "what distinguishes an employee at your company who meets your expectations from someone who is truly outstanding"? If the response was phrased in terms of hours per week, I knew that was not the company for me.

<comment><USER5> I'm not surprised that employees are judged by hours worked, but I'm very surprised that an interviewer would have the awareness and honesty to say so in an interview. Was it at least rare?

<comment><USER4> I (fortunately) didn't build up a very large sample size, but there was one junior guy I spoke to who started his answer with "a normal engineer will show up at 9:00 and leave at 6:00...". He did backpedal a bit when I questioned him more closely about the time expectations, and I had other reasons for choosing not to work for that company.

</comment></comment></comment><comment><USER6> You talk of startups like they're only run by 20-something brogrammers. Find a small company that isn't, then work there. Find a company with a CEO / founder who's in their 30s, 40s, or 50s and has a family. There's tons out there. You'll find a better work/life balance and less foosball.

Don't be the first hire, be the 10th, after they've established themselves but are still small enough that it has that startup vibe. Don't expect stock options but the pay should be market rate by then.

At small companies, you ship. Or you go out of business. You also probably won't read about 99% of them on HN. Ignore HN (except for the who's hiring) and get to work building something awesome!

<comment><USER7> In the last year I left BigCo for the kind of company you describe. It's been mostly a positive experience so far. I've gone to a lot less meetings and learned a ton about technologies I never would have touched at my BigCo job.

 _At small companies, you ship. Or you go out of business._

This is important to keep in mind mainly because many people have a hard time with that sort of stress. Small companies, even profitable ones, have small margins of error. The upside is that in a small company you should have a lot more contribution to the success or failure.

</comment></comment><comment><USER8> Startups have their own pathologies, but I'm going to point you that if you think "perpetual crisis mode" is somehow a big-company problem, you're going to be disappointed. Especially at a startup that isn't profitable yet, you're essentially continually in "crisis" given that if you don't achieve profitability or sale, you're going to be out of work. It's a whole different grade of pressure from a big company where "crisis mode" rarely actually results in anyone losing their job.

Also, re this comment "The prevalence of social bubble-worthy companies whose value propositions are little more than "cat pictures" suggests an inflated sense of self-importance among the founders, and I can't expect to keep my level of enthusiasm in line with their irrational exuberance." ... I think you're over thinking this. There are silly startups because people (for one reason or another) are willing to invest in them, and generally those folks aren't the founders. Whatever startup you go to, you'd better believe in what they're doing, because you're going to be taking a huge financial risk and going through a lot of stress attempting to play out that belief.

If you don't believe in a startup, don't work there - but also don't denigrate whatever vision they're trying to implement, at least respect that they're trying.

<comment><AUTHOR> > There are silly startups because people (for one reason or another) are > willing to invest in them, and generally those folks aren't the founders.

I don't think I'd be happy at a company whose own founders don't believe in their mission and are only in it for the money. Built to flip, right?

<comment><USER8> Well, I was really just trying to point out that the fact there are companies whose "mission" he doesn't personally value doesn't mean that their founders have an "inflated sense of self-worth." It's the nature of startups that there are going to be a lot of long-shot and far-fetched ideas involved... if he happens to not disagree with the mission of a particular startup (or its valuation), he shouldn't then jump to the assumption that the founders are arrogant or self-important. He'd only be hurting himself to do that -- they could be perfectly nice people who happen to have stumbled onto a bit of a bubble in the market, and may be willing to help him out even if he's not going to directly get involved in their particular business.

It's just the nature of the Internet, and anything related to consumer entertainment, that there are going to be some really fluffy / inane things that become ridiculously popular / valuable. As long as the folks behind them realize they're not the new Shakespeare, there's no reason to assume they're any different from people working on more mundane or serious problems.

</comment></comment></comment><comment><USER9> It sounds like you turned down Amazon, which was likely an excellent decision. (Full disclosure: I work at an Amazon competitor and I routinely hire Amazon refugees.) Amazon is (from my perspective) an environment that does not value the individual: their engineers are not permitted to blog or otherwise describe their work -- and participating in an open source project is so outside their culture that no one dare even ask the question. The good news: Amazon is the exception, not the rule. Other environments (large and small) empower the individual -- and I think that that is the essence of what you're looking for. So the questions to ask: will I be allowed to reasonably discuss my work at conferences, in blogs, etc.? Will I get the opportunity to work on open source projects? Will I get the opportunity to open source original work I develop here? If the answer to those is a verifiable "yes", you are likely headed to a generally supportive environment (be it established company or startup); in software engineering (as in government) sunlight tends to disinfect...

</comment><comment><USER10> It sounds to me as if the causes of your burnout are not related to overwork and long hours, but more about poor management, too much bureaucracy and resentment. However, different companies have different attitudes to work boundaries, and it's up to you to find out what they are and whether those are aligned with your own attitudes or not. What are you willing to do?

In terms of general advice, coming back from burnout to a new job:

I'd advise you in the first instance to look for a workplace that is as free of assholes as possible. This is easier to accomplish in a small company just on a sheer scale basis, but there are still plenty of small companies that are full of assholes. When you interview, remember you are interviewing your coworkers as much as they are interviewing you. I chose my current job based heavily on this criterion, and I have never regretted it.

Next up, remember the three key things required for job happiness: autonomy, mastery, and purpose. You will generally speaking get more autonomy in smaller companies, although some medium - large companies have worked hard on maintaining this. (See the recently leaked Valve employee handbook for an example.)

Mastery - assuming you like to learn new stuff - is something you will be forced into at a startup, where everything is your job. It's mastery or failure.

Purpose depends on the company you choose. Basically this amounts to doing something you personally think is important. (I'd advise you to choose carefully here: I personally couldn't summon up enough passion to work on advertising-related products, for example.)

Spend time researching your options, and I hope you find something that makes you eager to get to work each morning. Best of luck to you.

</comment><comment><USER11> I went through the same thing.

All the problems you mention could also happen at a startup, but it is less likely, it really comes down to the people. My advice is when you interview with companies, ask a _lot_ of questions and if something doesn't feel right to you ... keep poking and poking until you get a clearer picture about the questions you have.

Trust your gut and if you don't feel all the way good about it, then don't join. What I've learned in my career is that those little things you overlook at the start of that shiny new gig have a way of growing into massive problems.

Over all things, try to find a place where you really really care about the work, where you're excited to go to work in the morning, or something close to that. And if things go sour, don't waste time trying to 'fix' things, cut the cord and move on. Staying will only make you resentful and tarnish your image/reputation as the quality of your work suffers.

I'll leave you with a quote that has come to summarize my world view these days.

"Life is too short not to do something that matters" \--- Hugh Mcleod

Good luck.

<comment><USER12> Can anyone recommend a resource or list of good questions to ask in addition to or similar to what's posted here?

Thanks a lot for this.

<comment><USER11> It really comes down to you and the things you care about.

\- For example, I'm a night owl so a company like github that doesn't care about hours appeals to me _greatly_ , <http://zachholman.com/posts/how-github- works-hours/>, I'll ask about their attendance policy, how late is late? How much do they frown on lateness. More importantly how does the guy supervising you feel about it.

\- I hate forced pair programming, so that's the first thing I ask. if they pair program even 40-50% of the time, I'm out.

\- I don't like companies that scrimp on developer tools, so I ask about the equipment they get for developers. What the budget is for each dev? How often they replace the equipment? Do they pay for developer conferences or books or their employees have to take PTO and pay their way?

\- I don't like walled gardens, where devs can't influence product design, you know ... just-code-this-spec devs ... So I'll ask things like, what was the last feature a developer suggested that made it into production? This one usually stumps the fakers, you know the people who try to recruit rockstars and turn them into code monkeys?

\- I ask Devs when they get time to catch up on HN and read blogs, or play around with new technology and from their responses I can usually tell if doing that stuff at work is frowned upon (No bueno) or encouraged.

\- I also ask what sideprojects they're working on. just like that. If the dev looks shocked, I run. If they say something like ... "I have so many ideas and after mentioning them to x they usually become product features" ... that warms my heart. If they say something like, "I have some stuff I'm working on, but I'm still trying to see how to get it in front of people", then I'll dig deeper.

Just ask about everything and take time to actually interview the company, on the things that matter to you.

I have a prepared list of questions in evernote that I add questions to and delete stuff from as they pop in my head reading HN or just hanging out, one list for the devs, another for the managers and another for the higher ups (if I get a chance to talk to them). I have cultivated it over 2 years and it really helps me get a feel for how I'm going to get along with my potential employers, whenever I sit down to talk to anybody.

</comment></comment></comment><comment><USER13> Startups are hard work, but infinitely more rewarding than BigCo. If you burn out, it will be on the work and not the politics (if you choose carefully).

But this post is a lot like the myriad "I am just getting out of a shitty marriage... Can I ever love again?" posts on the internet.

Of course you can. Job security for a programmer is a ridiculous thing to be concerned about (assuming you're in a startup/software hub). You can fall out of bed and land in three recruiters. You will never miss a meal.

That means you have infinite freedom compared to most other folks. So start interviewing! Don't interview at places that suck. Have drinks with folks at 6pm to see how many people are still in the office. Different companies drink deeper of the workahol than others.

And re: your judgement of YC companies. I know stereotypes are a real time saver, but why would you judge 400ish companies by the actions of a few? YC invests in a pretty wide range of folks.

<comment><AUTHOR> I'm not painting with a wide brush here, I'm just acknowledging that blind faith in PG's stamp of approval is insufficient to make any determination of whether a particular company is worthwhile or not. I'm sure there's quite a few well-run YC-funded startups; I just have to make that call myself.

<comment><USER13> Totally reasonable. YC chooses companies based on a 1 page app and a 10 minute interview. Their hit rate (in terms of good companies and good human beings) is astonishingly good, but there are bound to be some misses.

</comment></comment></comment><comment><USER14> > _Abusive management, perpetual "crisis mode," promises repeatedly broken, > entrenched technical incompetence, smothering bureaucracy, vomit-inducing > organizational politics -- the whole nine yards._

Your choice here doesn't seem to be 'startup vs BigCo', it seems to be 'shit job vs good job'.

You may well find a startup that, on the surface, is compatible with your own wants and needs, but after a short period of being there, it's just the same annoyances that got you down in the last job.

Conversely you may well find a BigCo job that is the polar opposite of what you experienced in the last one.

I don't believe that answering your question with a basic 'yes, startups will be better' or 'no, stick to BigCo' will really help you.

What you really need to do is selectively apply for jobs once your research into the company (big or small) satisfies you enough. Read their website, blog, Twitter feed, employee opinions (if possible) and so on, and strike from your list any potential job that doesn't tick all your boxes.

After that it's up to you to ask these questions about a day in the life at the office to your interviewer, and to assess the working environment if you're interviewed on-site. If you're not happy, leave it. If you are, weigh it up against any other interviews you've had.

Remember that, in the bigger picture, you're after a good job for _you_. Whether that's startup or BigCo depends entirely on the impression you get from them.

</comment><comment><USER15> I don't think you're mature enough to handle a startup.

There, I said it.

Startups aren't shangrilas devoid of problems you saw at a bigco. In fact, they amplify those problems in a small team. And you're going to be dysfunctional going forward dealing, accepting, and working around those problems.

Yourself.

Without HR, perfs, buses, or fridges full of Odawalla to soothe your pain. Maybe even without steady pay and health coverage. So yes, grip those cat meme pics tight, often it'll be your only distraction from being inside a fire.

Check your attitude first. Get that it's not you joining a startup it's equal parts a startup joining you. You decide where to cut the red tape--then deal with the political fallout of seeing the same 4 or 5 people every day. You decide when and where the crisis mode starts--then deal with the project failures. You decide the level of technical incompetence and smothering bureaucracy--then deal with the dilution.

Also get that YCombinator isn't just a vetting tool but rather a homework club. Passing out notes from upperclassmen and tips from product to launch to marketing to even... when to hire and not hire people that don't get it.

Be do go out and keep working. Find intelligent people working on problems you find interesting in a company that you can be proud of. Those are the real criteria, not labels, you'll need to worry about.

It'll take awhile though, and you're going to need a couple stumbles and wrong turns to figure out where that is.

Best.

<comment><AUTHOR> I'll take your assessment at face value. What you said needed to be said, though I assure you that I harbor no illusions of startup-land being a worker's paradise.

That said, I'm not sure I understand -- what level of "maturity" do you expect from prospective startup employees, and how do you determine that?

</comment></comment><comment><USER16> I just went through a similar thing two years ago (burnt out from a startup that became a big company). I ended up taking off about 6 months and then pin- balled through a couple companies before finding something that makes me feel like Im on the road to being back on my feet. From that experience here is my 2 cents.

### If you are already burnt out, I would absolutely avoid the following...

\- A startup that is doing something that is not all that exciting to you (no matter how cool the company is or how great their potential is)

\- A big co. in the same industry as your past company (while not always, competing companies in the same segment tend to usually have similar operating procedures)

\- Any company under financial pressure... that could be an over-promising startup with not enough funding/revenue or a big co. that is starting to tilt in the wrong direction.

### What I would suggest:

\- If possible, any company that is doing something you find exciting. I'd probably lean more towards a larger organization in that the risk of getting doubly burnt out in a startup is probably higher. If it isn't somehow interesting or exciting, don't take it or quit after a week of trying it out. Also look at non-SV type companies. There are lots of interesting opportunities for technical folks in energy, education, etc. that after years of working on the typical startup stuff I've realized is way more interesting to me.

</comment><comment><USER17> I've been in both worlds, and I can tell you they both suck equally. It all comes down to are you happy doing what you are doing, regardless of company size.

The people I work with, passion is expected. Because when you are no longer passionate, you are no longer happy, and nobody wants to see that drag out. However we understand people have lives outside of work. The only people "on call" are the CTO and myself (the ops guy). You might get a phone call if your project explodes in production, but I think that is reasonable in any work environment.

Shoot me an email at email@example.com if you are interested in working at a sane startup.

</comment><comment><USER18> I am a student who hasnt even landed a summer internship, so take what I am about to say with a grain of salt.

I take "I have the (financial) risk tolerance to work at a startup" to mean you have some savings built up. Why not just take your time job searching? All companies aren't the same. Instead of focusing on looking for a "startup" instead look for any company that fosters the type of environment that you want to work in.

</comment><comment><USER19> You're confusing the issue that you have. From what you describe, you worked in an environment that is simply toxic to you.

I think you need to write down the things that you want in a job, wait a few days, and see if those things still make sense. Then figure out how you are going to get a job where you can have those things.

I've worked in small companies, fortune 500 and government. My satisfaction at these jobs had/has very little to do with the type of organization. It's a combination of the culture of the organization, quality of management, and where you are in life. The things I loved about working in a late stage startup at 21 are things that I would _hate_ today as a 33 year old father.

You need to find the right role. You can even find gigs in government with a fast pace and minimal bureaucratic nonsense or hardcore operations roles that demand overtime and pagers.

</comment><comment><USER20> > The obsession with "rockstars" and "ninjas" who have unwavering "passion" > just smells like a search for naïve, exploitable labor willing to give up > evenings and weekends for foosball games and beer.

Yes, that's right. I've worked at these companies. Avoid them.

Keep in mind that small businesses that have been around for a decade can be just as bad as some startups. I had a terrible experience at one where I worked 80-100 hour weeks for months before I quit.

I've worked at several startups and small companies, and it's a mixed bag, but none of them have been perfect. The main thing to keep in mind is that the personality of the founder is the single most critical factor in your happiness.

My best work experiences have been at companies that are out of the startup phase and profitable, with around 50-70 employees. They have the HR and reimbursement processes worked out, they don't flagrantly break employment laws, and the hours are closer to 40-45 a week. Just keep in mind there's an expiration on these jobs; eventually they inevitably become big, bureaucratic companies. When a mid-sized company starts hiring vice presidents the clock starts counting down.

Right now I work in a remote office with five other people, and the main company (60 or so employees) is in a different state. It's pretty much the best of both worlds.

</comment><comment><USER21> It depends on the source of your burnout.

Are you feeling oppressed by endless meetings and the sense of being rendered ineffective by mountains of bureaucracy? You will get much more actual work done at a startup.

Are you feeling like you want to spend more time drinking beer at home? Startups are not for you.

</comment><comment><USER22> "The prevalence of social bubble-worthy companies whose value propositions are little more than "cat pictures" suggests an inflated sense of self-importance among the founders, and I can't expect to keep my level of enthusiasm in line with their irrational exuberance."

i totally loled :)

organizations that expect unreasonable working hours from developers or sysadmins are a bad place to work. the only places i consider it somewhat reasonable to work employees over 50 hrs / week are professional services firms where the firm is actually gaming the billable hours of the employee involved.

remember that you have a choice about the amount of hours you work: don't let yourself get into a position where you're being chided to work countless hours. a good manager knows that working most employees over 40 hrs / wk leads to lower quality work product, but as i mentioned above, the only place where this consistently translates to revenue is a prof services firm. ppl are more likely to commit errors and generate crap product once you push them over an 8 hr work day. this is not to say some ppl can't work a 16 hr day and be nearly twice as productive as an 8 hr day worker.

don't get discouraged and don't let ppl push you around with respect to the hours you clock. i'm sure you'll find somewhere that fits you better than behemoth X.

</comment><comment><USER23> TL;DR Yes you can find a rewarding, sanity-preserving job. And, it depends.

There's

\- a 90% chance that you're in a bad environment,

\- a 70% chance that you're a cynic,

\- a 40% chance that you'll criticize _any_ environment, and

\- a 100% chance that you can improve your situation.

First set aside your anxiety about making the perfect decision. There is no silver bullet that will make your life perfect. Your next job need only get you closer to understanding what you want. Follow the 80/20 rule. Make a good decision. There's some great advice in the responses here.

Avoid binary decisions. Job involves carrying a pager? What percent of the time, and how often does it go off? If you wear it one week a month, and the pager only goes off once a quarter, you are joining a well run company. If the pager goes off twice a night, run like hell. Ask several people. Does the manager give a candy-coated answer? Walk away. You learn about the company by drilling in.

No place will be perfect. Ask yourself, do I want to work with these people? Can I learn from them? Are they intellectually honest? Only you know the things that matter.

You'll find a healthy environment that lets you work 45 hours a week. Not perfect, but in time you will recognize it if you are able to set aside cynicism. I learned to set aside cynicism, and you can too.

EDIT: When you ask about the pager, be careful not to sound like you hate pagers. Make it a question about their systems and processes, not a "lifestyle" question. Even in a place with a great lifestyle a reasonable working hours, it looks bad when an employee focuses on it.

<comment><AUTHOR> Thanks for your input, I do appreciate your insight.

I will argue that it's not just a 70% chance that I'm a cynic -- I'll admit that I _am_ a cynic. It's something that I'll have to work on.

</comment></comment><comment><USER24> If you're still struggling with burnout and concerned your motivations and desires aren't going to line up with the company founder(s)' motivations, then listen to your gut! You know you the best, and you seem to be saying--via your post--you're unsure about jumping into the startup world at this point in time.

I understand where you're coming from, I've worked at BigCo. as well. If you want an opportunity that offers learning opportunities, task ownership, growth potential, and some policies of an established business (work/life balance, for instance), why don't you take a look at a small, growing "post-startup" company with <50 people? For purposes of clarification, post startup being defined as: Has at least one viable product or service being sold to and used by customers, established sources of revenue, corporate financial stability, been in existence for several years, and some level of defined business/HR practices. You get the benefits of working for a small company without the stresses of being in constant start up mode.

Such companies do exist, the industry they work in might not be glamorous and you will have to dig to find them, but if you find one you mesh well with, you'll learn alot. The most important part of this whole process is to ask questions about issues you care about and if you don't like the answer they give, ask a more penetrating follow up. Always make sure to ask to speak with someone you'd be working with, they'll have a trench level view of the system. And, at the end of the day, if you don't feel comfortable with the place and don't think you'd jive with their work environment, you don't have to take the gig. :)

tl,dr: Such places do exist, they just probably aren't startups, and you're going to have to dig to find 'em.

</comment><comment><USER25> I've been in jobs like you've described. I've found that often the feeling of being "burned out" had a lot more to do with what I was working on and who I was working with rather than how much time I was spending doing it. There are limits to that, of course, but I find myself willingly doing extra on my current job because I love it so much.

Sure, I'm in a great location, but I had a window office at my last job and have 1/8th of a table here. Still, I'm sitting next to seven really smart people who all seem to "get it" in terms of work and technology, so I don't miss that office.

That brings me to your comment on PG's judgement, what he and YC seem to mostly do is make investments based on people. If you're with good people, you're off to a great start. There are certainly other things that matter, but in my opinion, coworkers are the core of the work experience.

Edit: to note that the quality of the people involved, and how you mesh with them matters at all sizes and ages of companies. You may be just as happy at a different "BigCo" as I have been happy at some very large companies and most of what I remember is who I worked with.

</comment><comment><USER26> Boundaries and stability are unlikely to be found in a startup. Not my area of expertise, but it sounds like a med/large company with a positive work culture and less-toxic politics might serve you well for a few years.

Best of luck!

</comment><comment><USER27> Pick startups which are run by experienced management (i.e., they were loved, respected, and very effective at their previous job) and backed up by top-tier VCs (Mayfield, Sequoia, etc.).

Basically, I learned that it is not about bigCo or startup: it is all about people.

And if a startup is correctly managed you will have 40-45 hour per week average with great potential to grow.

</comment><comment><USER28> Being willing and able to walk away from it all to become an early employee is actually even less common than people who do it all to become a lone entrepreneur, so don't sell that aspect short.

Getting institutionalized in a toxic work environment is a good thing to escape, but it's important to recognize that making the transition to a startup requires casting a lot of the baggage associated therewith overboard; some of it doesn't even feel like baggage.

Many startups (like mine) don't crack the whip and force you to work outside the bounds of reality or past your optimum productivity. Just gotta seek us out.

</comment><comment><USER29> My experience with startups (and started up and made its) has been pretty negative with respect to mental health and work life balance: I've got to tear myself away from the perf charts, server logs and IntelliJ to make sure I don't miss my sons growing up.

If you'd like a reasonable work-life balance with a lot of smart people, I can recommend my ex-employer, Guidewire. They don't work crazy hours and have a fairly adult work environment, and their recurring revenue model guarantees a level of stability underneath the technical innovation.

</comment><comment><USER30> Burnout can take many forms and you need to identify what it is you are exactly burned out on. Is it the environment, the lack of recognition, the colleagues, lack of challenge, or it may just be simply you are actually needing a break.

If it is the last one, going to a startup isn't going to change things.

That said, not all startups are the 7-day a week, sleep under your desk slog. But, there are ones that are -- sometimes it is because you are all young, trying to run, and want to do so; other times it can be for reasons as you experienced -- poor management and poor planning. I've experienced both, and walked away from the latter when I realized it was the best thing for me.

If you are in an area with a diverse startup ecosystem, get out there and talk to people. Identify companies that might be interesting for you, network a bit, and see if you can engage the people in a conversation about their companies in a social (rather than interview) environment. Try and find out what the environment is like, how management treats the individual contributors, etc.

That said, startups will generally take more time and may be more challenging than a larger company. If, however, you are working with people you like and on something you enjoy, it may not be as noticeable.

All the same, as others have mentioned, there are startups out there where people do have life/work balances. For instance, Treehouse was mentioned last month -- <http://news.ycombinator.com/item?id=3883268>

Take the time to identify what you want and the type of people you want to work with, do some leg work, and see how it goes. Good luck.

</comment><comment><USER31> After experiencing burnout many times, i've come to the following conclusion: if you want to avoid burnout stay away from toxic, crisis-mode management. Take things easy, and remember it doesn't matter if things take longer than you expected.

Given the realities startups however, this is not always an easy thing to avoid.

</comment><comment><USER32> So basically you want all the upside of a startup without putting in any of the hard work/long hours required to make it a success?

As harsh as this may sound, working at a startup is often chaotic, if you can't deal with high pressure, it is probably best if you go back to being a cog at a BigCo.

<comment><AUTHOR> I'm not saying that I can't handle pressure, but I firmly believe that just calling yourself a startup does not give you latitude to overwork your employees.

 _It is now 6:45 pm and there are only 12 people in our office. We have 65 people that work here in Seattle. This is totally unacceptable.

This company has far too much very important work to do to have virtually empty offices at 6:45 pm. If anyone thinks that everything we need to do as a company can be accomplished within an 8 hour day, then I think they fail to understand the scope and complexity of our venture. Anyone harboring such illusions should seriously consider a career change. I am sure that I could point to tasks for every single person in this company that would merit working past 7 pm every single night.

...

This is not a bank; this is not Boeing. This is a start-up and we are all expecting to be rewarded for taking the risk of a start-up. But, there will be no rewards without exceptional effort.

Given the severity of the situation, I am putting strict office hours into effect immediately. Until further notice, all employees are required to be at their desk from 8am until 7pm, with 30 minutes for lunch. There are no exceptions._

\-- excerpted from email from MyLackey ([http://web.archive.org/web/20070318005206/http://www.fuckedc...](http://web.archive.org/web/20070318005206/http://www.fuckedcompany.com/extras/mylackey_letter.cfm))

Sadly, I fear that situations like this are not an exceptional case in startup-land.

<comment><USER32> Perhaps that's the case at some startups, but my own and several others I know of are very flexible. Work the hours you want, from where you want. It's more about what you get done rather than how many hours you work. Someone smart can probably get twice as much done in the same time.

However, sometimes critical situations arise whereby you may need to work a few more hours or on a saturday. If you flat out refuse to do this, then it would come across that you don't care about the startup's success.

These critical situations are rare and often members of a startup will be more than happy to pitch in to solve something quickly when it goes wrong.

When you have a consumer facing product used by hundreds of thousands of people, you can't really wait till Monday when things break on a Friday night. Every hour counts.

My friends at investment banks often work 18 hour days and have a terrible lifestyle/hate their job compared to people I know working at startups.

I'm sure there are great BigCos and startups to work for, like everything in life, there is a good and a bad side.

</comment></comment></comment><comment><USER33> I work at a startup that's been around for > 5 years. At this point, we're stable enough to not require back-breaking hours (of course, people give a shit and work hard, but no one's sleeping under his desk).

So far we've managed to avoid the morass of bureaucracy/red tape that tends to creep in when organizations grow. Case in point, no mandatory meetings for engineers -- meetings happen when stuff needs to get discussed. And it's par for the course for engineers to have ownership over the product/feature they're working on.

Feel free to contact me if you'd like more info.

</comment><comment><USER34> Find a startup with financial backing and a significant runway (like 2 years). They have usually put out enough fires already to have some stability. With enough runway, the focus will shift from day-to-day to long term code stability and design decisions. It will still move quickly, but the likelihood of put-everything-on-hold-and-pull-an-all-nighter decreases. Avoiding burnout is a priority, as the founders came pretty close just to get the money. You won't see a simple 9-5, but you will see keeping weekends free and keeping a balance between home and work.

</comment><comment><USER35> I think your gut is right-on; the issues you describe aren't just endemic to BigCo, you'll find them anywhere and everywhere...but...if you have the financial risk tolerance to work at a startup, why not start your own company instead? These days, it's really easy to get going and self-fund with very little capital if you can save up living expenses & tighten the belt for a year or so.

Set goals and a drop-dead date (i.e., if I'm not making money within $65_percent_living_expenses_depleted, time to head back to work) and I suspect you'll be happily surprised by the outcome...

<comment><AUTHOR> > if you have the financial risk tolerance to work at a startup, why not start > your own company instead?

I don't think I'm ready for that yet, and I'd like to think that working at a startup will better prepare me for starting my own.

What really sent me down this path was PG's comment suggesting that "you can titrate the amount of startupness you get in your job by the size of the company you join." (<https://news.ycombinator.com/item?id=1346224>) It's not a binary decision, but a sliding scale.

</comment></comment><comment><USER36> The key to happiness when working for someone else is the happiness of your co-workers. Specific technologies and projects are just a minor consideration. Happy people can be a sign of decent management, decent hours, decent pay etc. Not a guarantee but a good litmus test.

Unhappy co-workers can ruin anything. Doesn't matter if your job is printing money on a yacht in the Caribbean. No amount of sunshine, drinks or swimming can chase away the awful feeling of seeing the same unhappy people day after day.

</comment><comment><USER37> Is there any company that has the rewards you desire and has strict boundaries on work time?

I would get specific with the things you want, then you can analyse opportunities against those criteria.

The first company I worked at freaking sucked as well, it's soul destroying I agree, but you live and learn.

Lastly one of the biggest lessons someone pointed out to me is we teach other people how to treat us. If someone calls you at 10pm at night and asks you to do something and you do it. You have just confirmed to that person this is ok.

<comment><AUTHOR> > Lastly one of the biggest lessons someone pointed out to me is we teach > other people how to treat us. If someone calls you at 10pm at night and asks > you to do something and you do it. You have just confirmed to that person > this is ok.

So true! I still did it after vehemently expressing my displeasure and taking my manager's word that it was "just this time only" -- then he did the same thing the next week!

After that experience, I'd much rather risk getting fired than subject myself to that sort of abuse repeatedly.

</comment></comment><comment><USER38> Very similar experience. Burnt out at BigCo, started looking at startups last year. After a few interviews realized this will again be the same ending just a different storyline.

I am now working for a much smaller company (less than 200 people). Have direct impact on the bottomline so can see my usefulness very easily. Minimal bureaucracy and fight for visibility. And sane hours, most people have families so the balance automatically shows. And compensation is competitive. So far, am very happy.

</comment><comment><USER39> My current employer is a midsize corp, and we are fairly 'sane'. We have hundreds of engineers and there are cubicles. We're not into rockstars, ninjas, or exploitable labor. Some groups do run in crisis-mode too much, but that isn't preferred. We are founder-run and take pride in high-quality work... our industry demands it, among other things. :-)

We're not a startup: we're not going to IPO or get acquired.

We _are_ hiring, and have been growing for years.

Feel free to email me for a link to the careers page.

</comment><comment><USER40> I found a blog post a few months back that made a lot of sense to me - basically they said that Burnout is caused by resentment. The more you resent your work (i.e. working too many hours, dealing with idiots, anything frustrating), the faster your will burnout. You should check out the post, its pretty short.

[http://iamnotaprogrammer.com/Burnout-is-caused-by- resentment...](http://iamnotaprogrammer.com/Burnout-is-caused-by- resentment.html)

</comment><comment><USER41> Good call on the pagers, although I didn't know anyone used pagers anymore.

You'll never know until you try it w/a startup. However, being composed of people, like big company's are, all the human failings are evident there.

The upside to startups over big co is not having to deal w/bureaucracy and usually (but not always, lotta big egos in startup founders) more of an egalitarian vibe.

Other than that, I think they are all over the map, just like bigco, some of which are very nice to work at.

</comment><comment><USER42> We don't wear pagers in Startups because we're always connected. We use new forms of communications & technologies to make life easier (Twitter, SMS, Shit... even emails). The great thing about being in a startup is that you have the power to build things in anyway you want, which usually means in a way that will make your life easier, thus you don't have to carry a pager.

Also, I don't even know where you would buy a pager anymore...

</comment><comment><USER43> it sounds like you need a break...perhaps you should take six months off and do some consulting, relax and then wait for the right opportunity.

</comment><comment><USER44> No, but be prepared to walk away if it stops being fun. There are times it will suck (that just happens) but there is an intrinsic fun to working at a startup. But on that day when you can't see the end goal anymore and can't be convinced that it exists, get out. Maybe slightly before then, but that part's tricky.

</comment><comment><USER45> Sympathize entirely with your situation, been there before many times. However putting up with this sort of environment for more than a few weeks in the current market for dev work is completely incomprehensible to me. Everyone is hiring, and they're happy if they can get fizzbuzz and a pulse.

</comment><comment><USER46> Here's a nice article on figuring out what's important for you when you are looking for a job: <http://ceklog.kindel.com/2012/04/26/the-job-decision- matrix/>

</comment><comment><USER47> Here's what works for me - jobs at small, established companies who want to Do It Right. Corporations are too burdened with bureaucracy, startups are too stressful (unless they make it worth it with a decent share of the business).

</comment><comment><USER48> Short answer: yes.

Long answer: talk to a lot of people in the kind of role you want. Find out what their work life is like. You need to get this information from employees, not from employers-that's how you'll get honest information.

</comment><comment><USER49> As someone else also mentioned, you're not comparing BigCo with a startup, but a shitty job with a good job.

Take it this way: what doesn't destroy you makes you stronger. Just take a break and find another job/project.

</comment><comment><USER50> The problem is not the company you work at.. the problem is that you care.

To be happy at any job: Respect your self,Respect others, respect your work.

If you respected yourself from the beginning you would hav quit long time ago :)

</comment><comment><USER51> Yes, go into academia. Do some research. That's the most comfortable job one can ever have. You have to like research though. Do masters in something you like. Just anything related to academia.

</comment><comment><USER52> 'It just didn't feel right'

If I had trusted this I would have dodged some 'bullets'

Likewise only by ignoring good advice have I learned to ignore bad...

</comment><comment><USER53> Try a week long vacation with no laptop or phone. You'd be surprised what a week away from work can do for burn out.

</comment><comment><USER54> Now it's late, you should read <http://www.jailfreebook.com>

</comment><comment><USER55> Your health and your life are infinitely more important than any job in the universe.

</comment><comment><USER56> You'll actually care about your startup. That's the main difference. The end.

</comment><comment><USER57> Sorry - a bit OT but... who carries pagers anymore let alone startups?

<comment><USER58> Last time I checked, which was awhile ago, Blackberry was the only non-pager that could guarantee delivery within a known time-frame. You can't run server alerts over SMS, since it might take an hour (I've heard of a 12 hour delay around New Year's), or it might not be delivered at all.

<comment><USER59> Seems like there might be a market here for an app which acknowledged receipt and publication of a message to the target's phone, coupled with a service which escalated to a phone call to the target if it times out waiting for the acknowledgement.

<comment><USER60> I think the guarantee is the tough part; you have to own the hardware and have at least some control over the infrastructure.

Anyway, I find Georgie's comment fascinating. Sounds like there's a way to guarantee SMS delivery, though. From Wikipedia on SMS/SS7[1]:

> Therefore, it is possible to avoid delays and message losses, offering full > delivery guarantees of messages and optimized routing. This model is > particularly efficient when used in mission-critical messaging and SMS used > in corporate communications.

[1]<http://en.wikipedia.org/wiki/SMS#SMS_gateway_providers>

</comment></comment></comment></comment><comment><USER61> Yes.

</comment><comment><USER62> Pensive?

</comment><comment><USER63> Shitty jobs happen. People don't always admit to them, but they're common. A lot of the most successful people seem to have pristine careers and nothing bad to say about any company where they've worked. That's called rewriting history. People _want_ to be perceived as having an unbroken string of successes, but almost no one this in their actual track record. You had a bad job, and now you're depleted, and you probably think your situation is a lot worse than it actually is. No. This is not unusual, and I think 90% of the people reading this thought, "man, that could have been me at one time".

You're not "damaged" because you had a terrible job. This is as common as dirt. Don't take it personally and don't let it affect you emotionally. Almost everyone has had one. If you can afford to take two months off to do recover, do so. If not, then find a job that will allow you to work 9-to-5 and recover on your own time.

On work hours: most startups will have _occasional_ spikes, but well-managed ones will try to keep a 40-45 hour per week average. When people are working 70 hours per week, the quality of work deteriorates quickly. It's a really short-sighted strategy. There are a lot of startups that push people to work 70 hours, but most of those are going to crash and burn.

Also, what happens to most people as they get older is that they have mostly negative work experiences, because most companies are badly managed, and they learn things to avoid. People learn things with experience like, "Working 70 hours per week for months on end doesn't actually work out well." IMO, that's what the 20s, for the smartest people, are actually about: watching people in power fuck up so you know what not to do when you're in charge. Eventually, you'll be in a position to do things properly. It might take a while.

Some things to avoid, going forward: (1) Don't take jobs where the company isn't willing to tell you what you'll be working on. That usually means you're going to be allocated to the least desirable projects. (2) Stay away from the VC darlings, which have (as of 2012, mid-bubble) been infested in MBA culture and are companies in which you're likely to get some insultingly low (~0.01% equity) "profit sharing" offer while making 60 percent of market salary. (3) Don't take an offer just because it's "a startup". Most of these hot startups won't exist in 5 years. Evaluate the job based on the people you'll be working with and the type of work you'll get, not the size of the company. (4) Don't think you're desperate or that your negative experience makes you less qualified for the types of jobs you actually want. Negative experiences are very common, and it gets easier to recover from them as you get older. (5) On job interviews, don't discuss the negative experiences or the bad employer. At all. Bad job experiences are too common to deserve the "silent shame" stigma, but nonetheless, a job interview is just not the place for that. Keep the conversation positive and focused on the future.

For the record, I don't think it actually matters what size of company you work for. There are groups within large companies doing amazing things, and there are awful startups. "Bureaucracy", in the toxic (rather than mildly annoying) sense, is about power dynamics and I've seen dysfunctional relationships in small companies and much as large. In 2006, it was pretty clear that startups were the place to go if you wanted to learn a lot quickly, because we were coming off a bust, startups were undervalued by labor as much as investors, and there were a lot of challenging technical problems in small companies. I don't think that's as true now as it was then. In Real Technology, yes, that's still true; but most of these VC darlings in "social media" are a joke and you won't learn much in them.

What seems to be a trend, in 2012, is that a lot of large companies are developing small and mostly-autonomous groups that I think of as akin to "honors colleges" in order to get a level of talent that would otherwise go exclusively to academia, finance, and startups. Right now, I think the VC startup scene is played out and these honors colleges are a better avenue.

<comment><USER64> _On job interviews, don't discuss the negative experiences or the bad employer. At all._

I've been asked point-blank for critiques of past employers before. What is the best response?

<comment><USER65> This is pretty comparable to being asked to be critical of yourself (e.g. "What's your biggest weakness"). Generally speaking this is a bit of a trap and your main goal should be to not take the bait and move on to another topic ASAP. If they really press the issue focus on issues where there's nobody to blame and there's not that much that's going to be held against anybody (e.g. Old Co become very big which was fun but now I'm looking to be part of a smaller team). The key thing is to keep things positive and move on to why you want to work for them instead of why you don't want to work for your old employer.

<comment><USER66> I don't know about the question being a trap. If you don't try to be too sly about it, you might even turn it into a plus for you. If it were me interviewing, my biggest concern would be that the OP is burned out, and thinks that working at a startup will be nothing but sunshine and lollipops.

Instead try being a bit more concrete: "I didn't like BigCo because of <specific, observable and especially non-judgemental facts go here>. Some people like that, but that's just not what I enjoy. I'm curious to hear if you feel I'll run into the same problem working for you."

If a candidate said that, I'd be more convinced that:

1\. The candidate is willing to leave the BigCo world behind.

2\. The candidate has realistic expectations of what a startup will be like.

<comment><AUTHOR> For the record, I think I wrote enough in the original post to show that I'm highly skeptical of startups that claim to have awesome work environments. That said, the community response has definitely been helpful for me to figure out some realistic expectations.

<comment><USER66> Let me reframe what you just said. Yes, your post _does_ show that. But do you plan on showing that post to any potential employers? It's just as important for you to demonstrate that to potential employers as it was for you to demonstrate it to us. You have to skirt a very fine line between demonstrating that you want to work for them and demonstrating that this want is reasonable and not based in fantasy.

<comment><AUTHOR> > But do you plan on showing that post to any potential employers?

I probably won't say it in the way I wrote the post, since I think it will be open to misinterpretation that might close some doors unnecessarily. But I will definitely bring up my expectations as a matter of concern.

Indeed, a fine line to walk.

</comment></comment></comment></comment></comment></comment></comment><comment><USER67> I'm the CTO at a startup (which happens to be hiring frontend, mobile, and backend people I might add!) and we don't look for "rockstars" or "ninjas".

We look for competent engineers who are naturally curious people that will fit in with the team. Fitting in with the team isn't important because we want you to spend all your free time with your coworkers (god no, go get some fresh air!), but because we want people to naturally want to help and teach each other.

My point is that decent people are out there. Not just in startups, but in a variety of environments. Just make your next company one you pick because of the cool people you met in the interviewing process, not because they offered $5k more than the other guy. Your sanity isn't worth losing over that.

If you're a frontend, iOS, or backend (Open to anybody willing to learn Python) engineer who wants to work with people who work sane hours and still get things done, contact me. :)

<comment><USER59> In firefox 3.6.23, when I hit the "F.A.Q" link on the front page of Nutrivise, the FAQ page is displayed for a second or two, then the front page is displayed again. The problem may be that /faq/ is redirecting to /#faq/. HTH.

<comment><USER68> Out of curiosity, why are you using FF3? I've seen lots of people use IEold for corporate policy reasons, but it's much less common to see users of FFold.

<comment><USER67> I'm told FF3.6 is pretty nice on ancient hardware, especially if you're tab- happy.</comment></comment></comment></comment>


Ask HN: What would make this worthy of Show HN? - <AUTHOR> I don't understand Show HN. Reading the rules and looking through the submissions doesn't clarify anything for me. Please "explain it to me like I am 5."
My earned income is made online. It helped me get myself off the street recently, in part because it is earned online, so it is portable. This allowed me to move someplace with rent in my price range.
Unemployment in this town  is high and there are a lot of homeless. I want to somehow help people here learn to make money online. I am going to public meetings and people just don't seem to be all that plugged in. They don't seem very internet savvy. My life is very much online and I feel like an alien here.
I see an opportunity to give some pushback against the general trend that jobs are concentrating in the big cities and small town America is getting left out and left behind. But I am having trouble figuring out what comes next.
So, what makes a site a Show HN? What do I need to do to make this a "project" in the eyes of the world and not "just a website."
I submitted a page of this site as an article earlier today in hopes of getting some kind of feedback:
http://independentdigitalworkers.blogspot.com
What are some next steps I can take?
Thank you. <comment><USER2> There is almost no difference between a ShowHN and a normal submission, so don't care too much about it. (I'm not sure if you would get more visits for a ShowHN.???)

Originally, the idea was that the ShowHN must be a playable project, but the rules are not enforced unless it's a fragrant violation, or at least they are less strict that what I'd like. I think that the original idea was that the project was a online app, or an easy to download app, but it's difficult to extend this to other projects like books, videos, github repositories. Currently even a blog post that is written by the submitter and has original content will survive. (I'm not a fan of this extension, but whatever.)

Currently the ShowHN only is a signal that the submitter is also that author and want some feedback. But most HN threads have unrequested feedback anyway, and in small projects many times the author comes when there is a big spike in the visits.

An alternative to a ShowHN is to write a small comment in the HN submission, something like "Author here. Any feedback is welcome."

Some feedback about independentdigitalworkers:

It has too few text! It's not clear that I must click "1099", "remote", "monetize" to see the content.

The collection of links is too terse, I'd try to add a small description of the advantages of each site. (Something like a listicle, but a good listicle.)

For example "monetize" has 5 links, but each site has a very different spirit, they are not interchangeable, and for someone that don't know them it is difficult to understand the differences and which is better. (What is the difference between Zazzle and Etsy?)

It would be nice to collect some real use case, some kind of interviews with people that has a similar profile. (For example a loot of Youtubers are using Patreon and Teespring to complement the ad revenue from Youtube.)

<comment><AUTHOR> Thank you very much.

It was set up this morning. It is try number 3, and is pivoting another project, so I drew some content from that older project, then killed it.

I decided I didn't like the first name too much. My first try was Digital Independents and I quickly realized that if I am telling people that verbally, they will probably hear Digital Independence. The next was Digital Independent Workers and then this.

I want to figure out how to reach out to people locally. I am going to a lot of public meetings and making connections on the ground. I feel that is going pretty well and it led to this idea. I initially was just handing out flyers for my Write Pay site, but I want it to be broader than that.

I could add a Google Group to the site as an embedded forum. My concept is that it is kind of a water cooler for people who work from home.

</comment></comment><comment><USER3> Worst case you can post the website just as a normal link, without the Show HN.

Re actual project: this seems like a valuable thing to do... but your target audience, the people who aren't Internet savvy, aren't likely to find it on their own. So maybe the site is more of a reference at this point, and start by pointing people to it in person? E.g. teach a free class, and then point people at this when you're done.

Our local library has Internet access (wifi, and computers for people without computers), and community rooms you can get for free; perhaps your local library would be a good place as well.

<comment><AUTHOR> Yes, I am connecting with people locally on the ground and that is going fairly well, well enough to help me get this far. But I need the site and concept better developed and locals cannot help me there.

I could have agreed to do a presentation next Wednesday at a local weekly meeting, but I declined because I only have a half baked idea so far. I don't have anything to present. December is booked, so it will probably be January before they have another slot, but I just don't have this fleshed out enough.

I had flyers for my Write Pay site. The library won't post them. Some places have posted them, but some people think it is a scam, the same thing that gets said about it when I have posted links to it on HN under a now retired, very well established handle. Personal reputation here did little or nothing to get the site taken seriously.

People here accuse me of being a shill for the service I work for. The person on HN who recommended the site to me will not vouch for me. In fact, he dragged my name through the mud for repeating his advice on HN and suggesting it to someone else here a few months after he recommended it to me. When I blogged about that years later and someone else posted that to HN, he denied it. Saving face for himself was his only concern.

There is no good way for me to deal with things like that. Saying nothing means my name remains mud. Saying something means I am guilty of talking trash about respected men. The utter and complete lack of respect for me involved there makes no ones radar. I can't get out from behind nonsense like that.

Anyway, I need a thing -- a site and a program -- that people will not look askance at as a possible pyramid scheme. I need more than a hand wavy "I have a dream" blurb.

I did post it here already as a link this morning. It got zero upvotes and zero comments. Thus, this Ask. Just posting my own writing on HN mostly does not go that well. Once in a while some piece gets well received. The rest of the time, I end up feeling like it was mistake.

I very often feel it is an excuse for people who don't like me to justify their negative opinions and their accusations that my participation is somehow nefarious. It often leaves me feeling like poor people and women are not allowed to want financial success. It often feels like it is against the rules to try to figure out how to succeed in accomplishing anything.

So with the feedback in another comment here, I am fleshing the site out more. I hope to post it as a Show HN soon.

Thank you for commenting.

</comment></comment><comment><AUTHOR> Clickable: [http://independentdigitalworkers.blogspot.com](http://independentdigitalworkers.blogspot.com)

</comment><comment><USER4> your other account has a karma of 25k. claiming you don't understand hn seems a little disingenuous.

<comment><AUTHOR> It is not disingenuous. I am a woman and, no, I simply don't have the kind of social connections here that the guys typically have if they have that kind of karma. Which means, no, I don't understand subtleties here that prevent me from accomplishing things I want to accomplish.

This kind of dismissiveness is actually par for the course.

I read the rules for Show HN and it says it needs to be something "you can play with." I see blog posts with some smidgeon of data. I write the mods in good faith and say "This doesn't look to me like a Show HN." I get told that, _arguably_ , the spoonful of data in it qualifies it.

I blogged about that on an old blog. I am not going to post it here because that would be drama.

I am just looking for a good faith answer to my good faith question and feeling increasingly like the crime of being the first woman on the leaderboard shall never be forgiven. Because it does not appear to have done squat to help me figure out how to get my work taken seriously or my questions answered in good faith.</comment></comment>


How to get an internship in a London tech startup for students - <AUTHOR> https://medium.com/@EdvardNore/how-to-get-an-internship-in-a-london-tech-startup-for-students-4124b9bc7d89

<comment><USER2> I always recommend [https://www.siliconmilkroundabout.com](https://www.siliconmilkroundabout.com) for a pretty good list of London startups.</comment>


Userland traffic shaping with OpenBSD and Lua - <AUTHOR> http://www.tedunangst.com/flak/post/userland-traffic-shaping

<comment><USER2> I'm a developer and not a networking guy, so I'm curious; is dropping packets like this a good idea or is there a better approach? It would seem to be a bad idea to me.

<comment><USER3> Traffic shaping shaping implies dropping packets. You could try to buffer some of them to send them later when bandwidth is available, but you would run out of buffer space very quickly. Buffering and flow control is best left to the endpoints. Packet loss is common on the internet and protocols are designed to handle it well.

In this example I would rather be worried about the additional latency/overhead of copying all the packets to user space and back.

<comment><USER4> I don't think latency is the primary issue here, as you're probably really far from your users and the hop is a mild cost compared to transiting the internet.

In my mind the bigger issue is limited throughput, packets per second are fundamentally limited by this approach (tun devices, at least in linux, are generally limited to a single packet per read). Ted even alludes to a 25% reduction in traffic, though it's unclear to me what the link speed is (likely 100M or 1G). In my experience, even with the latest and greatest in linux, you're not going to see reasonable packet rates, and you're still better off doing this type of stuff in the kernel.

That said, tun devices are super cool, and a great tool for anyone to have if they need to do weird stuff like low-level network testing, so I think this is a really cool post. You can read more about it for linux here: [https://www.kernel.org/doc/Documentation/networking/tuntap.t...](https://www.kernel.org/doc/Documentation/networking/tuntap.txt)

<comment> X-Istence Why does Linux make a difference here? The example uses OpenBSD, does OpenBSD have the same limitations?

</comment></comment></comment></comment><comment><USER5> Wow... This is really useful!

I've also always thought it would be cool to have a drag-and-drop connect-the- dots UI like OS X's Quartz Composer for network shaping stuff. It probably would be manageable to write one for this system.

Are there any similar systems that give you packet-level control instead of byte-level control?

<comment><USER6> [http://read.cs.ucla.edu/click/click](http://read.cs.ucla.edu/click/click)</comment></comment>


Ask HN:  Is voting on social news sites rude?  It would be in real life. - <AUTHOR>

In real life, if people were to vote anonymously in real-time as to how interesting someone's comments are, it would be considered rude.<p>So why is this practice acceptable online? <comment><USER2> Voting is not the point. The point is to bring to people's attention things they will be interested in. HN/Reddit/etc do this through voting. Twitter does it through retweeting, which is similar to how it happens offline.

So, it's acceptable because it's part of the medium.

</comment><comment><USER3> We implicitly "vote" in real life through our verbal and nonverbal reactions to the comments of others.

</comment><comment><USER4> Its a different medium from real life hence the different mental model (You don't go around poking people in real life but there it is on facebook right?)

Think of it as a public discussion about the article and when someone 'likes' a comment, they're just nodding in approval ... which does actually happen in real life.

Lots of head nods just means you're winning over the crowd.

</comment><comment><USER5> In real life, you are very unlikely to be interacting with your 60k closest friends. Things that work in a setting of 5, 10 or 20 people don't work so well on a very high traffic website like this one. This level of interaction is basically unprecedented, so the world is still kind of fumbling around trying to figure out how best to manage it. If you come up with some brilliant alternative that works better, fabulous! Otherwise, I see no reason to dismantle it and no reason to try to compare it to "IRL" interactions. It's just not the same.

Peace.</comment>


Wc in D: 712 Characters Without a Single Branch - <AUTHOR> https://dlang.org/blog/2020/01/28/wc-in-d-712-characters-without-a-single-branch/ <comment><USER2> Perhaps I'm just being pedantic or maybe I am misunderstanding.

The author claims to be IO bound toward the end. But they are comparing to two versions that are faster.

It is my understanding that IO-bound means that the IO subsystem is the thing which limits run time of the program. But the author clearly demonstrates that the IO subsystem of their machine is capable of supporting faster wc binaries.

So what am I missing here?

<comment><USER3> > So what am I missing here?

The Haskell program is multi-threaded (I don't know about wc's official implementation, but I assume it is as well), while the D program is single- threaded.

<comment><USER4> GNU coreutils' wc (which is the reference) does not seem to be using threads, no.

At least not at all obviously. No obvious header included and no mention of threads. I only checked the code [1] very quickly, though.

[1] [https://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;...](https://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=blob;f=src/wc.c;h=d18eaee6c33e1a67b65f1e62bb427e8777bc0aed;hb=HEAD)

</comment></comment></comment><comment><USER5> Gave myself a quick D lesson just to understand the approach to flags here (Yes.keepTerminator rather than just a meaningless bool). Turns out D lets you define a template with any args you like, in this case taking a string for a name of a Flag type, which in turn contains an enum with 'yes' and 'no' boolean values. This means that you can only use the right type of Flag, with a matching name, and its yes/no value. But the syntax is a bit icky (Flag!"keepTerminator) and so _another_ nice feature of D appears to be that you can intercept field dispatch in a struct. And so the 'Yes' struct does this, captures the 'keepTerminator' as a string, and creates the correct type of flag.

For whatever reason I found all this rather cute (and apologies to any actual D programmers if I've misread this whole situation).

<comment><USER6> Spot on! :) With the help of opDispatch (the catch-all member function temlate), it's possible to drop the string from the use site. (I don't know a way of dropping it from the type name.)

      import std.stdio;
      import std.typecons;
      import std.string;

      // This type's opDispatch removes the need for string in the flag name.
      struct FlagFromBool {
        auto opDispatch(string flagName)(bool value) {
          mixin (format!q{
            return value ? Yes.%s : No.%s;
          }(flagName, flagName));
        }
      }

      // A convenience function to remove the need for empty struct construction parenthesis.
      auto flagFromBool() {
        return FlagFromBool();
      }

      // Unfortunately, the type name still requires string flag names:
      void bar(Flag!"foo" flag) {
        writeln("called with ", flag);
      }

      void main() {
        // However, the expressions don't need a string:
        bar(flagFromBool.foo(false));
        bar(flagFromBool.foo(true));
      }

<comment><USER7> Both your convenience function and the quotes in the type name can be removed via the use of static opDispatch:

struct FlagImpl(string name) { bool value; alias value this; }

struct Flag { alias opDispatch(string name) = FlagImpl!name; }

struct Yes { static auto opDispatch(string name)() { return FlagImpl!name(true); } }

struct No { static auto opDispatch(string name)() { return FlagImpl!name(false); } }

void fun(Flag.foo a) {} // Look ma, no quotes!

unittest { fun(Yes.foo); fun(Flag.foo(true)); }

</comment></comment></comment><comment><USER8> "without a single branch" I thought it meant actually a branchless version of wc. Turns out it's just no explicit if statements.

<comment><USER9> If you were careful, it seems pretty plausible to be able to use some indexing tricks and CMOV to write a jump/branchless version of wc. You are basically counting newlines and runs of whitespace.

<comment><USER10> CMOV aside, I remember it was proved MOV itself is turing-complete.

<comment><USER11> slightly related, does embedding arithmetic in mov instructions go faster than explicit ALU operations ?

<comment><USER12> Depending on the arithmetic, it seems that yes it can! I've noticed gcc using LEA instructions for arithmetic of the form (x * a + b), where 'a' and 'b' fit with the instruction.

<comment><USER9> Using LEA (load effective address) for calculation seems to be pretty common in most programs for both gcc and llvm. You basically get smaller code, and it used to schedule them better across more execution ports. Not sure if the CPU can fuse the ADD+MUL now.

</comment></comment></comment></comment></comment></comment><comment><USER13> I believe I'm missing something here or my day was too long, but in Clojure this can be squeezed in 13 lines and 435 characters keeping things fairly readable (for Clojure & Lisp developers ;)).

        (defn wc [^String file]
          (with-open [rdr (clojure.java.io/reader file)]
            (apply (partial printf "%d %d %d\n")
                   (reduce
                    (fn [[nl nw nb] ^String ln]
                      (let [words (count (.split ln "[ ]+"))
                            bytes (alength (.getBytes ln "UTF-8"))]
                        [(inc nl) (+ nw words) (+ nb bytes)]))
                    [0 0 0]
                    (line-seq rdr)))))

        (defn -main [& args]
          (wc (first args)))

I haven't tested how fast it is, but startup time can be optimized by compiling it with GraalVM.

<comment><USER14> Neat! I wonder if the character decoding & regex usage has noticeable performance impact. My Common Lisp version was sped up somewhat by switching from a character stream to a byte stream: [https://git.tazj.in/tree/fun/wcl/wc.lisp](https://git.tazj.in/tree/fun/wcl/wc.lisp)

You can try this one via Nix with:

      nix-build -E '(import (builtins.fetchGit "https://git.tazj.in") {}).fun.wcl'

<comment><USER15> It's been a while since I last wrote CL but I think your program can produce any counts between zero and the correct one – you need to use eql instead of eq if you want this to work in standard common lisp.

<comment><USER14> Ah, you're right of course - fixed. Though that still won't make this portable, as I'm using an SBCL-specific way of accessing argv.

<comment><USER16> `unix-opts` is in available in quicklisp -- it's small, and has a portable `argv` wrapper function.

<comment><USER14> Thanks for the tip, added that: [https://git.tazj.in/commit/?id=10e2e56b67b41eb6315fdc4cc1bc1...](https://git.tazj.in/commit/?id=10e2e56b67b41eb6315fdc4cc1bc161f43440dad)

</comment></comment></comment></comment></comment></comment><comment><USER17> There's also a wc in rust (of course) with more code (120 lines) but quite more efficient: [https://medium.com/@martinmroz/beating-c-with-120-lines- of-r...](https://medium.com/@martinmroz/beating-c-with-120-lines-of-rust- wc-a0db679fe920)

<comment><USER18> In the blog post you linked, a library for parallelism is used.

<comment><USER19> It's an additional two lines of code when they add it (and probably one more to pull it in above), and only happens at the end of the actual work, after they've matched C's performance and beat C's memory footprint. Using the parallelism library at the very end hardly invalidates the rest of the exercise.

</comment></comment></comment><comment><USER20> A couple of points with comparing coreutils,

* recompiling with -march=native can give significant wins over more generic binaries provided by linux distros.

* parallel processing helps with bigger files, and it's easy enough to leverage the existing wc binary to process in parallel.

Both points are discussed at: [https://www.pixelbeat.org/docs/unix-parallel- tools.html](https://www.pixelbeat.org/docs/unix-parallel-tools.html)

</comment><comment><USER21> I'm wavering between D and Rust for which one could be used as a better alternative to C++. (Though I don't see C++ getting replaced anytime soon.) Even if Rust is getting most of the attention, D also seems to be a strong candidate.

<comment><USER22> Rust is definitely more difficult but it has it benefits, I guess? For me as a Python guy D was just easier both concept wise and syntax wise. I could write a relatively complex algorithm after 2 weeks of reading a D programming book with just standard ops. And it was definitely faster. Maybe not as fast as C but I felt efficient. Personally, I liked that D does pray FP like Scala while also being a multiparadigm language. Aaand it is definitely more readable.

<comment><USER22> *does not pray FP

</comment></comment></comment><comment><USER23> Fairly elegant code. Using a library that splits the line into words makes it pretty simple.

</comment><comment><USER24> This is ridiculous: of course there are branches, but you don't explicitly write them. This is purely aesthetic.

Edit: i simply wish the author illustrated why this is good or desirable—conditionals are not difficult to read.

<comment><USER25> The aesthetic aspect is insignificant, it's about the semantics -- and thus reasoning about the code and other such properties. So nothing ridiculous about it.

It's like Haskell code "of course has" anything C has, as underneath the both run assembly instructions full of gotos and state manipulation, you just "don't explicitly write it".

<comment><USER26> Branches aren't hard to reason about though. The only* reason anyone cares about branches is that branch misprediction is expensive.

<comment><USER27> I think branches are actually harder to reason about, we're just used to doing it since all of us have done it for so long. However I do believe that branches are less straightforward than "linear" code and add to mental complexity on larger projects.

Of course there is no data to back this up, but I think one of the next trends in programming beyond the adoption of functional styles, immutable data, "functional core / imperative shell" will be abstracting away from explicit conditional/branching logic in higher level code.

Obviously people can come up with pedantic/extreme cases where the abstraction does nothing to hide the complexity, or even makes things more complex but im not taking about that. I mean more simple abstractions like what was used in OP, or a filter() abstracting over a while and if combo.

I'm convinced based on personal experience that it makes for cleaner code and will become more widely adopted over the years as people explore it.

<comment><USER26> How is it possible to reason about filter() without thinking it through as effectively a conditional? How is that easier than being explicit about it?

<comment><USER27> Why is separating pure functional code from imperative / side effect causing code easier to reason about? You still have to have the side-effect somewhere.

Why are immutable data structures easier to reason about? They still produce the same results.

None of the above are proven facts, but they are generally agreed upon principles that a number of people have observed. And I happen to believe them as well.

Overall my opinion of why it's easier is that like most optimizations it reduces the number of states/cases you have to think about in the "common path". With a solid abstraction you rarely need to think about the internals, with explicit code you need to check and think through all of the edge cases.

filter() (or map, or ...) is probably the best simple case I can think about. There is more room for bugs in an explicit (ex. for (int = 0; i < ...) {}) than in a filter over a collection / enumerable. When reading the code you need to think through base and termination conditions as well as confirm aggregation is happening correctly. With a filter() you don't have to do it / be explicit about it. Obviously you still need to know what filter means (which means you know it's implementation) but you don't need to focus on the details, only the filter condition: the signal amid the noise. The rest is pushed behind a solid reusable abstraction. Again thinking about it in isolation if someone just introduced the filter function to you you might look at it an say it really doesn't add much and if anything obscures my code I don't see the value. But after adopting it, and it's related family of monadic collection operations, code can now be written at a much denser, fewer off-by- one errors, higher signal to noise, level of abstraction. It's provided structure and common abstractions to unstructured iteration. To the point you begin to think in these abstractions (which I think is a benefit).

Another example are parser combinators. There is nothing that parser combinators do that can't be done by hand. But one of the primary way they simplify coding is by hiding away conditional (and looping logic). "?*.." , | and & concepts. Parser combinators also benefit in simplifying things by building an algebra for users to work in with nice closed operations. But again that only became possible by abstracting away the conditional and looping logic and making these nice simple abstractions that can be easily combined.

So my summary is, my view is that abstracting over control flow code does a lot to simplify logic. A lot of logic involving looping has already been abstracted over and included in languages and libraries (in general "functional programming" styles). Now that the low hanging fruit has been incorporated I think next will be the next layer of non-looping conditional logic.

</comment></comment></comment></comment></comment></comment><comment><USER28> I find D easier to grok coming from a Java/Python background.

<comment><USER29> My only issue is that it's far more complicated than Java and for a language that fills that same niche it's hard for me to justify putting my resources into learning it even though I do like a lot of the features.

<comment><USER21> In what way is more complicated than Java?

<comment><USER30> well, java isn't really complicated. it's just verbose. but my understanding is that d has many of the features of c and modern cpp. that alone makes it more complicated than java...

<comment><USER31> You can also write verbose code in D. The language doesn't prohibit it.

</comment></comment></comment></comment></comment><comment><USER32> I'm no D expert but this seems to assume one file to count given as one argument on the command line. The wc in coreutils takes any number of arguments or will happily count STDIN.

</comment><comment><USER33> Every time I see a post with some D source, I think the language looks great; but for some reason I never try to learn it...

<comment><USER34> That's ok, one of these days you'll try it and then wonder what took you so long :-)</comment></comment>


A forgotten Anglo-Saxon colony on the north-eastern Black Sea coast (2015) - <AUTHOR> http://www.caitlingreen.org/2015/05/medieval-new-england-black-sea.html <comment><USER2> The Crimea is a funny old place. Last vestige of the Goths, possible Anglo- Saxon colony.. interesting stuff. Makes me wonder if those peoples ever met. They might have at least had a common ground for communication. I don't know enough about the area to know how closely they were geographically. It might make a wonderful novel is any aspiring writers feel like using it as a basis.

<comment><USER3> Not quite the Crimea, but you might like the novelist Amin Maalouf. He primarily writes historical novels set in the medieval Islamic world -- with protagonists who travel a lot, so you see some of the (more-or-less accurate) interactions of different places and people.

'Samarkand' is my favourite of his novels, or 'Leo the African' is probably his most well-known.

</comment></comment><comment><USER4> How tragic! Their homes taken from them by a foreign conqueror, their people overthrown and enslaved, they flee to a foreign land, establish a colony … and eventually they're wiped out by the Turks. Sad to think of the cousins of the Beowulf poet, of Ælfric and of Cynewulf expiring on the Anatolian coast.

<comment><USER5> I imagine that the people they displaced during the process of establishing that colony would have just as dramatic a story, about having their homes taken from them by a foreign conqueror... I wonder what happened to them afterward?

</comment></comment><comment><USER6> It's like repeating the Flight of Aeneas from Troy in backward direction but then missing destination a bit.

</comment><comment><USER7> Off-topic: Why is Crimea classified as being on the north-eastern coast of Black Sea? It is on the Northern coast.</comment>