Hacker News new | past | comments | ask | show | jobs | submit login
Extremely disillusioned with technology. Please help (gist.github.com)
1527 points by throwaway839246 29 days ago | hide | past | web | favorite | 714 comments

I have also experience close to burnout and recovered multiple times, in the process I have lost very precious relationships, and entire years were spent in darkness. I also have friends who have been in tech for close to ten years, and are close to burning out though they would never admit to such. This is the nature of the beast, all things that appear glamorous on the outside ( Hollywood, Finance, Tech, many nonprofits) is very rotten on the inside.

You can't change the past, but you can recalibrate your expectations and medidate on what went wrong. Here are some thoughts, and I will be very harsh:

1. Your co-workers may be amazing, but they were never your friends. You ran a business and rented their years to help them build a nest egg, of which you would claim the majority share had it hatched. Alas, the business failed and thus, you no longer add value to each other's lives. Move on.

2. There's what you love, and there's what you do. It's best to keep some distance: because no one cares about what you love. VCs are vultures and this is well known, but they are also reflecting the reality of the market. In the market you're just a vendor. Think about all the food stands that you have walked past in your life, within each stand is an immigrant family who slave away for decades hoping for a better life. Have you ever thought about them and gave them time/money for their suffering? No, you only cared them inso far as they can cook for you. This is how others saw you.

3. Big companies, and indeed most big institutions is made by a silent majority of the defeated. Many have experienced what you have said and have long made their peace. They found joy elsewhere, and found distance between themselves and their work.

4. Find self worth and self-love outside of your role in the machine, there's the product you produce to trade time for money, and then there's you. They are different things. Imagine Instagram influencers who post pictures of themselves but feel depressed when they don't get enough likes. This is you right now, you're looking for external validation from how big your integer is in some database. You have to look elsewhere.

All accurate and objective and good for everyone to know early rather than late. Moving a bit further from the specifics, it's worth noting that this is not a natural state of affairs. Humans evolved to be in groups of about 30-100 people who they knew their whole lives and thus making catastrophic deception nearly impossible. Likewise vast sums of wealth did not exist nor total social and fiscal isolation surrounded by the complete opposite that characterize our city streets and daily life.

My point is that human psychology did not evolve in the context of our current world and will have enormous difficulty dealing with its bad sides. Although the specifics will vary, the number of people in the poster's position is undoubtedly enormous, with the vast majority too tired or ashamed of discussing it or just blaming themselves. This being the case, it would be nice to have serious study of it and resources to address it more effectively. Not to criticize any poster, but it is unfortunate than seeking advice from the web is currently the best one can do.

I agree with the OP comment, and also with this one. It is important to understand two things in coping with the state of the world in my opinion.

1) The reality is you need to find validation and fulfilment outside of work, because in our current society you are just a drone.

2) Don't be depressed because it seems like this is how it's always been. It hasn't. Our work culture is broken. People never used to be so far removed from their work. Trying to combine work and life is a natural thing, because people used to be tied up in it. Working the land, being close to home, running a family business, belonging to a small town of people you all known, having the social safety net of many people that are close to you and your family, being an independent contributor in the town's economy, etc. etc. This is how things were a few hundred years ago. Yes, there was less high tech gadgetry. There were corrupt officials, plagues, bad people. There will always be some element of this.

I really get the sense that so much of the first world's unhappiness right now is due to compartmentalising (the containerising if you like) of our lives. The solution to burnout at work is to create greater separation between work and home. But the problem itself is that we even need to do this. People can't live to enjoy what they do any more. You need to trade the majority of your waking hours for money you need to live. And when you do live, you're dreading returning to work and feeling burnout anyway. How depressing.

This is why the working-from-home trend that I hope COVID will kick-off is going to be a good thing. While we may still be working for the same companies, having a tighter integration between work and home is actually good for our mental health. Issues will be resolved faster. Nobody wants to be constantly angry in their own home. So if you're angry all the time while WFH, maybe you'll be more likely to look elsewhere. Taking breaks from work while at home is so much more refreshing. I can't think of anything more depressing that spending my lunch break in a work cafe with people I don't want to talk to, being flooded with fluorescent light, and thinking about how the rest of my working life will be spent in places like this.

> Working the land, being close to home, running a family business, belonging to a small town of people you all known, having the social safety net of many people that are close to you and your family, being an independent contributor in the town's economy, etc. etc. This is how things were a few hundred years ago.

Let’s not overglamorize rural poverty. This life came with 20–40% infant mortality and a very high rate of maternal death in childbirth (play 5+ rounds of not-quite-russian-roulette and the odds get pretty grim). Starvation and disease were ubiquitous. Many people suffered some now-trivial injury and ended up as lifelong cripples. The work was literally backbreaking and elderly people’s (i.e. >50 years old) bodies were just wrecked after a career of hard manual labor, assuming they lived that long at all. People’s indoor time was spent in small dark rooms with an open hearth worse than the worst second-hand cigarette smoke you can possibly find, and unbelievably uncomfortable beds. In the best case food was mediocre (mostly bread or porridge or similar) and everyone was slightly malnourished, especially in the winter. People generally just shat outside near their houses and hoped the dogs would take care of it. If they wanted water (for drinking, bathing, ...) they’d have to carry it on their heads/backs from the nearest well or stream; water is very heavy.

People had to make literally everything in an extremely labor-intensive way from scratch: clothes, food, housing, furniture, toys, tools, etc. Raising sheep (or finding some other fiber) and then carding the wool, spinning the wool, weaving every piece of fabric on a hand loom, sewing fabric into clothes takes unbelievable amounts of human time. Making a small hut by hand takes weeks if not months of work (and the result is usually drafty, leaky, and not very comfortable). Making bread by hand including growing the grain and grinding it is nearly a full time job for everyone in the society.

If for whatever reason you were different from the expected norms (or just got unlucky and crossed the wrong gossipy neighbor) the rumors about you would mercilessly destroy your social life, and possibly result in exile or death if neighbors decided you were (e.g.) a witch.

The local nobles took every liberty with peasants: robbery, beatings as sport, rape, murder. The roads between towns were plagued with bandits.


There’s a reason that the world has now experienced several centuries of dramatic migration away from rural peasant farming and toward horribly exploitative urban factory labor.

Nobody's glamorizing rural poverty, the point was that our over-compartmentalized work culture is a relatively very recent phenomenon with negative consequences for many people such as decreased work satisfaction, decreased sense of social safety net/community, and loneliness.

It's kind of annoying how every time someone discusses aspects of society that may have regressed from the past, somebody chimes in to remind us that technology has advanced so life is better today. Well obviously, what's your point? Nobody's claiming we should get rid of 21st century technology and start living like medieval peasants.

There are a lot of negative aspects to a career spent «working the land» and «living in a small town where everyone knows everything about you, anonymity/privacy are impossible, and you depend on your neighbors for survival» even if you leave aside the «before modern technology» part.

But the previous commenter was explicitly talking about the supposed golden time of rural life a few centuries ago. In practice it was a hard and stressful life both physically and socially.

The summary of the downsides of peasant life was:

> Yes, there was less high tech gadgetry. There were corrupt officials, plagues, bad people. There will always be some element of this.

This is a dramatic understatement, to say the least.

> in our current society you are just a drone. [...] Don't be depressed because it seems like this is how it's always been. It hasn't.

Rural peasants have been treated much more like “just drones” for the past 8 (?) millennia since large-scale civilization built on agriculture than any modern office worker. (Hunter–gatherer societies are different in many ways, though also often precarious.)

Rural peasants do not lack for work anxiety. Or anxiety in their interpersonal relationships. In rural peasant societies many people feel alienated. Domestic abuse is rampant. And so on.

There are many beautiful and nostalgic things about historical rural life. But we shouldn’t get carried away.

> But the previous commenter was explicitly talking about the supposed golden time of rural life a few centuries ago.

No they weren't, like I said in my last comment, they were talking about the negative effects of the modern overcompartmentalization of work. It's not hard to see that there are certain benefits to working for oneself in one's own home vs. being a cog on an assembly line in some factory.

I imagine they were talking about farmers, not peasants. By the way the average medieval peasant had more time off than the average American worker since the work was seasonal. The takeaway there isn't "let's return to medieval technology and start living like medieval peasants again", it's "maybe there's something wrong with our society if despite the enormous technological advances from the past, certain elements of society like autonomy over one's time have regressed, controlling for technology".

Again, the original commenter was not arguing that we should all start living like the Amish. It's a failure of reading comprehension if that's how you interpreted it.

Thanks for this. I find articles like this on HN tend to be full of rosy-eyed nostalgia. It's rather annoying.

>There were corrupt officials, plagues, bad people.

How is this rosy-eyed?

I think many people today use the idea that even though some things are miserable today it ok, because they've been miserable always. It's a sad, self-defeating coping mechanism, a lame justification for how things are.

It's possible for some things to have been better in the past, much like some other things may be better in the present. Progress like regress is unilateral.

But still I would argue, we keep forgetting: - Food - Health - Shelter - Freedom - Family is safe, not killed or taken away by barbarians or the plague or a demon

are pretty much at the top of “things that really stress us when we don’t have them.

I mean, everything else is icing on the cake. Not too long ago, people didn’t know whether they would starve to death during the next winter, their wife would die from childbirth or some local bogeyman would just burn down your house and enslave your family.

GP is talking about pre-WWII civilization, not medieval serfdom.

I’m talking about rural Mexico up through the 1960s, within the living memory of elderly people (with some of the features I mentioned persisting today or only recently changing). The US South was like this at least through the first few decades the 20th century (after WWII the US Federal government made a tremendous effort to bring jobs and infrastructure to underdeveloped parts of the country), as were many parts of Europe. Some places around the world still look largely like my description.

People quickly forget many of the hardships their own great grandparents faced.

Source: my parents are anthropologists and I spent a substantial amount of time as a child in the 1990s visiting an indigenous peasant village, sleeping in a dirt-floored hut with a hearth fire nearby, with no electricity and water carried on people’s heads from half a mile away, high infant mortality, belief that diseases are caused by witches (vs. germs), etc.

The past was fairly horrible, of course, but we've definitely lost elements of it which were good. For example, commerce where both parties know and care about each other on some level like you might find in a farmers market or similar. Remnants still exist, but the mass market replacement, supermarkets, are missing a lot that was once better in the past. We've certainly vastly exceeded any previous material lifestyle, I don't feel like we've exceeded a lot of the cultural aspects of the past. Not, of course, that I want a return to conservative rural culture or something, but there's definitely something uniquely atomised about modern life in the West.

I really enjoy real markets. They can be found in many parts of the world including in developed metropolises, and still existed in many places in the USA within living memory.

Their illegalization and displacement by supermarkets has been at least partly a deliberate political choice, and I don’t think it’s an inevitable part of modern life.

(Working as a vendor in a market stall is not necessarily a great career though.)

> For example, commerce where both parties know and care about each other on some level like you might find in a farmers market or similar.

There are farmers market around my area and my impression is that, if anything, people selling there can be more dishonest than the big chain stores - i.e. they will try selling a batch of bad apples, because they're not wealthy and they just need the money. Whereas big chains have quality standards and will just throw away bad food.

I think that's because at a farmers market you're still trading with somebody completely foreign to you. Pre-industrial societies were smaller, and based around tighter knit communities. Much harder to rip somebody off if they live 3 houses down and look after your kids twice a week, compared to some random person off the street.

@Theorentis said "a few hundred years ago", not "up until WWII".

I mean, @Theorentis is correct, in a way, about what's good about less-industrialized societies. Though it was more true of medieval serfs and classical societies than it was of "a few hundred years ago". But also @jacobulus is correct about the down-sides.

And when you say "pre-WWII", that makes me think of 1850-1950, which I suggest is, overall, literally worst-of-both-worlds. There's virtually no decent medicine until 1928, but industrialization and capitalism are in full jackbooted swing. You get all the psycho-social disadvantages of modernity, with virtually none of the benefits.

I did indeed have medieval serfs and particular feudal society in mind in my comment, and meant 500-600 years ago by "a few". I probbaly should have said "several".

The feudal system is often given a bad wrap, but after reading "The Servile State" (a critique of modern capitalism) I actually think we have much to learn from it that we have lost.

The feudal system (summary: rule by gangs of heavily armed thugs who force their local peasants to work by threatening to kill them otherwise, and take whatever liberties with them they like, including theft, kidnapping, rape, murder, ...) is given a “bad rap” because is was and is horrendously exploitative, leading to very bad outcomes for nearly everyone.

It persisted because there was not sufficient economic surplus or a sufficiently broad distribution of economic/social power to break the control of the armed thugs running things, except sometimes by other groups of armed thugs.

> This is how things were a few hundred years ago.

> In the best case food was mediocre (mostly bread or porridge or similar)

> The local nobles took every liberty with peasants: robbery, beatings as sport, rape, murder. The roads between towns were plagued with bandits.

You are cherry-picking examples that are in no way representative of the life of most humans.

Plenty of evidence shows otherwise.

My “cherry picked examples” are the life stories of people I have personally met (and with high likelihood of your own ancestors and their neighbors within the past 150 years – certainly of my ancestors ~5 generations ago who were European peasants). It obviously wasn’t the case that every peasant was raped and then murdered by a local lord, but such violence was common and a constant threat.

Rural peasants were and are typically a foot shorter than people living in wealthy industrialized countries today (or people in hunter–gatherer tribes for that matter). Almost all of their calories come from staple starches, which they supplement as best they can. Periods of extreme hunger are common enough that most peasants experienced them at least a few times over a lifetime. What kind of good nutrition do you think people have/had?

Life expectancy was under 40 years old. Even life expectancy after age 5 was pretty short.

Which era in history are we referring to here? I feel like you’ve covered a couple.

jacobolus, you have missed the point. He did not glamorize rural living or poverty

Anecdotally, the best professional experience in my 15+ career in tech was one startup. There the founders were very into doing “work-life harmony” instead of “work-life balance”. They made a point to have their friends meet your friends and each colleagues’s friends. Our partners and spouses knew each other. There was a big push to make sure your work is not simply something that you work and leave in the office, but that you’re part of the tribe. They genuinely cared.

It was an incredible experience. Everyone was very passionate. The company grew in revenue 1000%.

Which lead to disagreements between the founders, which inevitably lead to the one guy pushing that culture to quit and it all went downhill from there.

I’m obviously massively oversimplifying here and there were more factors, but the feeling of belonging was very real. And I know it was not just me as we have ex-colleagues gatherings from time to time and the sentiment is shared.

That sounds like a work cult. We're all these families still your friends after leaving the company?

Yeah I admit it was a little bit cultish. Exactly what my partner complained of when I joined the startup. But as time went by it became a lot better.

I mean real cults short-circuit normal human tribal behavior for their own survival. And we usually consider it bad as the stuff the cult demands usually go against the society at large.

But in my case it was a rather productive and a moderately lucrative enterprise for all involved. Its just that instead of “oh honey your off to work see ya in 8hours” it was more “oh say hi to this and that for me” kinda thing. Just more human all around.

Anyway to answer your question - yeah we do stay in touch with some, not all of course.

>Which lead to disagreements between the founders, which inevitably lead to the one guy pushing that culture to quit and it all went downhill from there.

Got a little essay on that:


Nope, not in a hundred years.

I go to work for 1 reason: compensation. I expect to get paid, and get the benefits agreed upon when I agreed to work here. I will be friendly to those I work with, so that I don't hate to come in to work every day.

Does that mean they have the right to meet my SO or friends or things/people/hobbies outside of work? Absolutely not. If I choose to do so, that's on me.

Work != outside of work. That's a hard boundary.

> This is why the working-from-home trend that I hope COVID will kick-off is going to be a good thing. While we may still be working for the same companies, having a tighter integration between work and home is actually good for our mental health.

Alternatively, it extends the reach of companies further into the home environment, and may exacerbate the existing trend for people not to switch off, which in turn makes it harder to achieve a good life-work balance. Imagine having a pressurised call-centre type role from home. Some people may feel greater pressure to appear 'corporate' in the home environment, others might not mind their kids or cats interrupting a Zoom meeting. Not everyone can create a suitable WFH environment in a nice spare room.

Whether this actually happens depends on corporate culture, the personalities and goals of the managers and employees, whether a crunch is on, and many other factors. But I'm not convinced that a tighter integration between work and home is necessarily always going to be a positive, from a mental health perspective.

True. I am hoping for a trend where it becomes normal that a kid interrupts some business meeting, or you talk to your coworker or CEO in a video chat while they are cooking or folding clothes or something. Almost as if you were talking to real people.

Ask a parent (usually mother) what happens if they try to bring a kid to their (non coronavirus era) office because they don't have anyone else to care for the kid that day. Almost always completely unacceptable, for reasons ranging from arbitrary fake professionalism to lack of interest in setting up a support structure and expecting employees to sacrifice their personal lives for the company.

I can only hope this "fake macho work persona" bubble-burst carries forward into post-covid.

I will try to overlook the sexism in your posting. In my company, its not umgingen that someone brings their kid to work. Be it to show the kids what they are doing all day, or because of some logistics thing, or daycare closed or whatnot. Never a problem. Also not uncommon to work from home for the same reason. And it's usually the men who do that (sorry if that doesn't fit into your stereotype).

> Working the land, being close to home, running a family business, belonging to a small town of people you all known, having the social safety net of many people that are close to you and your family, being an independent contributor in the town's economy, etc. etc. This is how things were a few hundred years ago.

I always wonder where and when exactly when people say things like that. Because whatever period I look at, there were wast groups of people who did not lived like this happy ideal.

It is like that right now in many small villages in Italy, Spain, Germany, and possibly other places I haven't visited.

This overwhelming sense of anonymity is in my opinion typical for US suburbs and US mega shopping malls.

Most other countries have smaller and more intimate town squares, optimized for waking rather than driving.

They have huge unemployment.

Let's go further with it and read "Sapiens: A Brief History of Humankind".

Not to spoil too much but those people working land were cripples as well. Hunter gatherers had perfect life because unlike peasants they could enjoy their life instead of returning to the work in field.

Now think about how hunter gatherers were exposed to risk. What kind of stress they had everyday. Look at current animals how they live. It is some kind of freaking horror.

You an see I am not a fan of Harrari's book because it is "earlier it was so much better" without any real stuff in it.

I take issue with this drone nonsense. If you are helping people for money you are doing good with your life. If you are comfortable at work and not being physically or emotionally abused, there's absolutely nothing wrong with being a "drone". Not everyone should be a celebrity changing the world in their own big way. Imagine if the whole world was being constantly reshaped in 7 billion ways!

I think what drone means isn't that working typical office jobs at megacorps is bad and you should rather go and try to change the world, but that you are very replaceable in such jobs and there's not really a personal connection and that is the issue.

>I can't think of anything more depressing that spending my lunch break in a work cafe with people I don't want to talk to, being flooded with fluorescent light, and thinking about how the rest of my working life will be spent in places like this.

This is the best way to put it! It's all make believe and facade. As naive as this sounds, we have to separate our work time and personal time. I don't know if that means we should have dual personalities akin to having different themes/profiles on phones, or we should have a clear separation of activities, but without one, is what leads to OPs path, and I have been there.

> I really get the sense that so much of the first world's unhappiness right now is due to compartmentalising (the containerising if you like) of our lives.

Division of labor is a tragedy. In the long run, it destroys the soul.

And non-division of labor starves the body of actual food, shelter, and medicine.

> Not to criticize any poster, but it is unfortunate than seeking advice from the web is currently the best one can do.

Having experienced some kind of a burnout and depression myself, one of the reasons for seeking out help on the web might be the need to find that help from like-minded people, not just someone with some generic wisdom.

People are quick to recommend professional help, and they aren't wrong. But a person with burnout, depression or other internal turmoil may be in dire need (or at least desire) for camaraderie from people who he considers like-minded. I knew I was. It may be very difficult to find that from mental health professionals, and of course that may not even be a therapist's task. It still leaves a hole to fill.

> Moving a bit further from the specifics, it's worth noting that this is not a natural state of affairs. Humans evolved to be in groups of about 30-100 people who they knew their whole lives

Yup, there are still some anarcho-primitivists who think technology was a bad deal for us humans overall, and that living in a tribal setting of hunters-gatherers is best. The infamous "unabomber manifesto" was broadly advocating for this worldview, albeit with a very negative, nihilistic twist to it as one might expect. Kinda ironic to point that out when you look at OP's nearly-utopian attitude to tech, of course.

UB started with the right observations, but arrived at the wrong means prescriptions. He wandered off alone into the weeds, in both senses.

A wiser realization is that it's those in established power and the rich who are actively or willfully ignorantly sabotaging the planet and condemning billions of people to relatively more poverty, misery, disease, and death.

A million people nonviolently showing up to the seats of power, arresting crooked politicians and their enablers, and fine-tuning what cannot be fixed (by any POTUS, SCOTUS, or COTUS) from within (separation between church and wealth and state, public campaign financing, clean elections observed with exit polls and international observers, de-emphasized celebrity political promotion perhaps by lottery [as the ancient Greeks] rather than mainstream media popularity contest) are the necessary first steps before fixing anything else.

"Nonviolently showing up"? I might or might not agree but let's face it, most of us won't even bother to show up at a voting place on election day. People just don't care. Maybe they'll kvetch to their acquaintances about how bad the other side is, but overall there's a lot of complacency. Similarly, you don't need to arrest corrupt politicians, you just need to not vote for them. Support a primary challenger if they're incumbents. That kind of thing. But of course that's not going to happen either.

> Similarly, you don't need to arrest corrupt politicians, you just need to not vote for them. Support a primary challenger if they're incumbents.

Most of the time, the alternatives aren't any better. That's why some people are apathetic.

That's one excuse.

I think the problem in the current US political system is that a tiny majority of votes wins you everything. If this won you the 49% you deserve, then things would be different.

This is why you should simply strike. 10% of the US population striking would exert immense power and make the ruling class crumble.

10% of the US population is currently unintendedly striking. I don’t see the ruling class crumble yet.

They are unemployed, not striking. Being unemployed means they are not needed by a corporation, thus them not working does not damage the profit of any corporation by disrupting its function. But when you are employed in a corporation and run its functions, then you can strike and exert pressure by disrupting its flow.

If we consider this striking, it would appear that a large portion of the population (I don't know the actual percentage), composed of all walks of life, has decided it's of the utmost important to union bust and push people back to work without really making any attempts at resolving anything, and even with the knowledge that forcing people back to work will result in additional loss of life. "Sure, the mine is collapsing on people and giving you all black lung, but if you don't get back in there the town will shut down".

Doesn't really bode well for any future mass action.

I don't think you can categorize layoffs as unintentional striking. Businesses are capable of laying off a lot of their workforce without crumbling, they just wind up running leaner and pruning some of the growth they had in the last few quarters. Striking means you organize enough of the employees that once they're gone the business cannot operate, no work gets done and there's an active effort by the strikers to advertise that the business is not operating in order to put further pressure on them.

The difference is purpose, and intent. The people not at work right now have been judged non-important, and have no purpose.

If the 10% was distributed differently, in the intent of maximum damage instead of minimum damage, and if they had a clear goal of overthrow, the ruling class would be fucked and the stock market would be at 0.

Of course, having a "strike" where everyone is willing to go back to work and only non-essential people are striking will not do much of anything as far as power relations. That much is obvious to anyone.

A two party system is literally a failure mode of democracy.

People don't show up because they don't think it will work.

Voter turnout was over 50% in 2016 and 2018, even after the effects of voter supppression.

And you don't need 100% turnout for an election to work; you only need a nearly unbiased sample.

The simplest way to accomplish your goals would be through unions integrating and syndicating ultimately culminating into a general strike and overthrowing existing power structures.

In practice however, the national guard will start shooting beforethen (see: Haymarket square massacre, Battle of Blair Mountain), so you better stock up on weapons just in case.

How do you arrest someone without using violence?

How do you compel anyone to do anything with violence?

Many ways.

Arresting carries with it an implicit threat of violence, if the arrestee does not want to comply.

Well, there are the billions who are now alive thanks to modern agriculture and medicine. We are perhaps comparing the best of the past with the worst of the present, which may not be a fair comparison. Best is to collect the best of past and present to create the best future.

Well said.

If we value the ability to experience consciousness ourselves, then surely the fact that 7 billion people exist is valuable in and of itself?

But it also matters how those billions live, and considering that the vast majority live in extreme poverty the picture becomes less rosy. Not to speak of the ecological disasters of climate change and pollution this is causing, which also has an impact on our well being. Modern agriculture and medicine have in a way made it possible for all those people to be alive at the same time. I agree with your last sentence since we obviously can't change the past.

> the vast majority live in extreme poverty

For that matter, the whole point of the primitivist argument is that humans have been quite happy about living in extreme physical deprivation for most of their history. It's only when the social milieu is totally FUBAR that "poverty" as we know it becomes a cause of deep unhappiness and dysfunction. Also as the OP shows, people can also be quite unhappy with their life despite living in a highly developed country and enjoying quite a bit of material wealth.

> humans have been quite happy about living in extreme physical deprivation

Citation desperately needed.

One can have the viewpoint that on average humans were likely happier 30,000 years ago, and that technology was a bad deal for us overall, without advocating that the solution is bombing society back in time.

I don't think technology is the problem. I think the institutions that install or preserve the structures that cause a lot of people misery is the problem.

There's a reason for those institutions, though. Within any social group larger than a primitive tribe, you can't coordinate pro-social behavior or resolve disputes without some formal institutions and structures of sorts. We've got to give the anarcho-primitivists credit where credit is due: at least they understand what it would take to get actual anarchism to work!

Perhaps this will change your mind to some extent


Specifically talks about how Hong Kong protestors have almost no formal hierarchical structures (to avoid the Chinese state arresting the leaders), yet remain highly functional and effective.

To have a group of protestors who volunteer for a commonly accepted goal among them be organized, functioning and effective without hierarchical structures is vastly different from having a whole society functional and effective without hierarchical structures. What every system first and foremost must face is how conflicts are resolved, because conflicts of every level of severity will arise without fail. A group without conflicts, that exists exactly because it is made of people who truly think exactly alike, like HK protesters, is not a good example. ANY group of people who truly think exactly alike is perfectly functional, no matter what it is they collectively value.

It sounds like the problem then is getting everyone to share fundamental values. If everyone has common ground to start from then it's easier to build towards a resolution of conflict.

I agree that any group of people will eventually have some form of conflict but I don't agree that a hierarchical structure is the only way to resolve said conflict. You could just as easily apply any of the methods of governance that humanity has devised to resolve a conflict so I don't think the method of governance is crucial to the resolution of conflict. I think that getting both parties to agree to a satisfactory resolution is what is critical. That can be done with force as in a hierarchy where an external party enforces a resolution on both conflicting parties or it could be done without outside intervention, this obviously happens all the time in a variety of situations.

Ideally, every conflict should be able to be resolved directly by the people involved without additional harm being caused. Maybe there is a way through education or other tools that we can build that would allow people to resolve any conflict in such a manner? Maybe prevention is the best remedy and there exists a way to defuse conflict before it reaches a level that cannot be easily resolved. My point is that resorting to authority or force is not the only solution.

You should watch the talk. She specifically talks about how disagreements and conflicts are resolved.

The institutions are all humans, I think it’s an “us” problem :)

"We have met the enemy, and they is us!"

Then what exactly is one suggesting?

"We all know what is best for us, but I'm not going to actually say what I think we should do."

It’d be a very drastic, but arguably fairly effective solution.

Hmm, just an anecdote (personal): My grandfather was a farmer, rural town in Europe. The village was essentially ruled by three people (just before WWII): the mayor, the police officer and the priest. There was a strict hierarchy (“who owned the most”) and gossip, treason etc. were unescapable. He (and all generations before him) worked up their bodies to the bones only to survive. I think he took a single vacation to Italy when he got married. Work has never been about “realising your dream” until somewhat recently I think... Maybe watch the movie “The Dark Valley”. A big difference may have been (and it is probably still how cultures and immigration clash): how family vs. society are seen. Germans see the government stand above family and all (e.g., government will take care of you, not family). Western societies have (deliberately) broken the family in its function. But that was probably necessary.

Humans adapt, that’s why we became what we are. Not sure I have the desire to “live with 100 people in a village I don’t like” encoded in my DNA.

I don’t want to downplay any anxiety or frustration, but I believe every generation had it/felt it the same way. We push and work ourselves up until we reach the level if anxiety we cannot longer cope with.

Objectively speaking: Who would prefer going back 250 years in history? No way on earth. Not even as a king.

Even at that time, psychopaths were still successful enough to pass on the genes for their trait.


... as were those that think biology predetermines everything

not really sure what point you're trying to make here. You don't believe in biology?

Perhaps it was a reference to nature vs. nurture, and how they can both play a part in outcomes.

That's what I read into it.

While nature vs nurture is fun to speculate on, when raised in criticism of another's work it is usually only speculation and otherwise unproductive. Also often ignored is that they are somewhat conflated insofar as people's nature creates environments that then (not independently) nurture.

I'm not sure this is fair. Nobody really knows to what extent psychopathy is inherited vs caused by upbringing. The problem isn't necessarily disbelief in biology, the problem is nobody actually knows the answer.

Challenging something that's universally challenged seems comprehensible to me.

"Humans evolved to be in groups of about 30-100 people who they knew their whole lives"

When did this happen? A female chimpanzee will grow up in a tribe of 30 to 150 and then at adolescence move to another tribe of 30 to 150, and occasionally, after a tribal war, end up in another tribe of 30 to 150. Each tribe was typically surrounded by 1 to 5 other tribes of 30 to 150, and of course the chimpanzees had to keep track of their enemies, just as any species that engages in territory and warfare will have to keep track of what territory is held by who. So the average chimp has to keep track of several hundred other chimps, as well as tigers, gazelles, monkeys, etc. It's a complex situation.

When you say humans track 30 to 100 people, do you mean 10 million years ago? Because you can't mean homo sapiens? I personally know more than 12,000 people:


You missed the "their whole lives" part and confuse "keep track of" to "know someone".

You are right, I am confused. How would I keep track of someone if I don't know them? This includes not just people but all of the animals that I interact with. My mom used to have a bird feeder and I spent countless hours watching the birds. I got to know several dozen as individuals, I was aware of their injuries and their style of eating (timid, brave, quick, slow). How might I keep track of them without knowing them? Perhaps you might consider that your ideas on this subject are a bit muddy?

Also, you misread the original comment when they wrote "their whole lives" -- they are asserting people never know more than that 30 to 100 people, an assertion which is absurd.

> You are right, I am confused. How would I keep track of someone if I don't know them?

What are you talking about? Just because you have to know someone to keep track of them doesn't mean everyone you encounter you can track or care about.

> Humans evolved to be in groups of about 30-100 people who they knew their whole lives and thus making catastrophic deception nearly impossible.

A plausible just-so story, but still only that.

American Indians and Aboriginal Australians have been living like that well into historical times, and people were around to document their lives and societies - there's no real reason to suppose that humans at the most primitive state of society were living any differently. In a way, it's the one style of social organization that has truly stood the test of time; everything else has been a glorified self-imposed experiment. We're all guinea pigs living in self-enforced captivity.

> American Indians and Aboriginal Australians have been living like that well into historical times...

They're not time travelers from the past. They're our contemporaries, who are every bit as 'modern' as us. They just made a different set of choices along their historical arc.

> ...there's no real reason to suppose that humans at the most primitive state of society were living any differently.

At the same time there's also no real reason to suppose that primitive humans were living any similarly.

We just don't know. Any attempt to frame this differently is just ideology.

Larger number of humans were only made possible after we started farming. Primitives times refer to that old an age.

If these people never went through the social evolutions the rest of the world underwent, they are indeed travelers from the past.

> If these people never went through the social evolutions the rest of the world underwent, they are indeed travelers from the past.

Logical error. That they didn't go through the same social evolutions that we went through doesn't mean they didn't go through any social evolutions at all.

(And indeed they must have; even keeping their societies static takes conscious effort, in the same vein that conservative reactionaries today aren't at all the same people, ethically and sociologically, as the simpler ancestors they try to emulate.)

And what stops one from doing that today? It's not like anyone really knows more than a couple dozen or so people. Just stop taking in any information from outside your circle or town... The approach has got downsides, but damn the peace of mind might be worth it.

This evolutionary take on matters feels like a template

" Unhappy about <MODERN SITUATION> ? Well, in the stone age <MODERN SITUATION> wouldn't have happened, therefore, genes/anatomy not adapted and blah blah.

Addicted to <MODERN HABIT> ? Well, cro-magnons found it hard to <SATISFY NEED> and genes/biology adapted to move us to <SATISFY NEED>. So now that we have solved the problem, you still have these genes that get you addicted to <MODERN HABIT>... "

It was an interesting thought the first few times that I encountered it. Now it feels like a cheap way to sound clever. "Oh, this guy has an evolutionary basis for his opinions, he must know so much about history biology and genetics too"

I propose we slowly let this cliche fall out of fashion.

I disagree, I think it's important to remind ourselves of the inbuilt limitations of our mind and body. The same way you need to remind yourself that even though sugary food tastes good, too much of it will cause a lot of problems (and for the same reasons). We shouldn't leave it at that though, serious thought needs to be put towards how we can overcome these problems.

Thanks for the advice. It's really good.

> Think about all the food stands that you have walked past in your life, within each stand is an immigrant family who slave away for decades hoping for a better life. Have you ever thought about them and gave them time/money for their suffering?

I know what you mean and know what you're getting at. But I feel compelled to point out this particular example isn't quite the same. I never sought the immigrant family out, then told them that my motivation is to support amazing cooks rooted in authentic traditions. I just bought the food.

VCs will lie, literally. They explicitly say they will act in a particular way in a specific situation, and then, protected by nuanced 300 page contracts, will do the exact opposite of what they said they'll do. Assuming you accept that lying to people is unethical, people act transactionally with immigrant vendors, but not unethically in the same way.

Yeah the lying is really gross. It's an odd arrangement in this country where "shareholder value" can literally justify most things in the eyes of those with money. For a more personal anecdote, I have a friend who's been in the VC industry for 5+ years, and we had a very interesting conversation. He was closing a deal with a company and they asked for a higher valuation, and he thought objectively it's merited. But then he thought: "if I give you the higher valuation, then you would have more and I would have less, but I want more". And that's the root of it, human nature. Now assuming these VCs have been in the game for more than 5 years, I would imagine they would lie without a second thought.

Now see it from the VC's perspective, the game attracts all kinds of hustlers who'd lie to investors without a second thought as well. My friend and I were talking about what business culture is like in a certain area of the world, and he said: they oversell everything, so take everything they say and divide it by two, and start from there. So part of it is also a pre-emptive mechanism based on a history of such behaviors from others.

None of this make things "ok", but I'm just sharing an anecdote from the other side.

> It's an odd arrangement in this country where "shareholder value" can literally justify most things in the eyes of those with money.

I think a lot of the problem is not necessarily what the VC's do when it comes to situations, but that they lie, to themselves, to others, or both, about what they will do and at a fundamental level who they are. There's a world of difference between telling someone you're their friend and will protect them and nothing will go wrong when you know there's a good chance it will, and telling (or being) a friend but being up front that your job means you will act a certain way in specific situations, and that may be against the interests of others.

This happens in business, and it happens in personal life. I respect people that are consistent and represent themselves accurately, even if I don't like them or agree with them. People that misrepresent themselves are relying on an information asymmetry that they're creating to give themselves an advantage. This clearly works in many instances, but it also a "burnt-bridges" strategy that only works because of the relative anonymity that modern society provides. In some ways, this could be solved by more information about these people and how they function (which is how the free market works, best with more and more accurate info), but that's hard to accomplish because of their relative power.

Divide it by two? He must be an optimist. I divide it by 10.

100M dollar unicorn!

I have no love for VCs. But let's be real honest. Doesn't the vast majority of startup wealth come from lying? I'm not talking about VCs lying to founders, but founders lying to their customers (selling ads, giving them "free" services while pick-pocketing their data) or exploiting people on the bottom of the food chain (the "gig" economy)?

In other words, everyone should be looking in the mirror.

> You blame everyone but yourself for becoming "soulless". Your very use of this word reveals a great lack of soul. You misuse it to describe working like a machine, an automaton. The nurse who is working like a machine to save lives at great risk to her own has the most wonderful, beautiful soul. What makes you soulless is that you're only thinking about yourself and "new products" (ways to make money) without any hint of a conscience troubled by the decisions made and actions taken in pursuit of those profits, and what that says about who you are. Or maybe the depression was a conscience trying hard to speak out, but it got snuffed by drugs rather than getting heard.

From https://gist.github.com/mGBUfLn9/7cadffcf7c3c23b7376350165a6...

On the other side, VCs want founders who believe. Would YC fund a group that said they had a 10% chance of success, based on YC's own statistics?

nnoitra 29 days ago [flagged]

How old are you?

Why would you be at all surprised that VCs lie?

Please don't cross into personal attack on HN. And please don't cross-examine other users. That's not curious conversation, which is what we're here for.


Projection? As a fairly honest person it took a long time to stop assuming other people were too. The alternative world view is disappointing but you get used to it.

People are generally honest of course but investing is an adversarial setting essentially by definition, where honesty is hard to come by. Sometimes being more honest than needed might even put you at an unfair disadvantage, and keeping some cards close to your chest is just expected.

And of course, it's not like you have to get VC involved in order to run a successful business. You can self-bootstrap, which lets you focus 110% on efficiency and doing more with less. No BS involved.

I don't believe the parent was expressing surprise at this unethical behavior, they were instead pointing out one way the grandparent's example isn't quite equivalent to the situation the OP provided.

For what is worth, "there's the product you produce to trade time for money, and then there's you" is precisely what alienation from labor feels like, and you're advocating that one must just accept it. People have a deep need to relate as full human beings to their work. Trying to be content with finding self-worth only outside of work doesn't solve burnout. Work is a big chunk of our time and energy. Humans need to human.

Yes, I was surprised by that line. I tried to do that. 10 years ago I was a newly minted Ph.D. and my wife and I had to solve the 2 body problem and we compromised with our jobs so we could both be employed together in a nice town with a relatively low cost of living and a great place to raise a family. Our lives outside of work were fantastic! Great friends, nice house, lots of weekend activities, got my first pup (waiting my whole life to have my own place so I could have one), had my twins a year later.

But good God was my job (big company, lots of politics and bad management... the usual) absolutely soul crushing. I thought that I'd be able to make my peace with it in lieu of everything else which was near perfect, but the more time dragged on, the more it crushed me and sucked joy out of the other areas of my life. I will never forget the sense of existential dread that would overcome me every Sunday evening and the relief on Friday evenings.

Fortunately I was able to leave and take up an opportunity at a small startup in the ML/consulting space. It's entirely bootstrapped, so no VC people fucking everything up, and the management are incredibly nice and decent humans, and several of them I count as close friends. I love the work that I do, and I am almost always learning new things. I've been working here for 4 years, and I have never yet experienced that existential dread on a Sunday evening. Work is just another part of my life that I enjoy now, and it is incredible how happy and fulfilled I am with my life. My wife has fortunately experienced the same with the move and change in jobs.

I get hit up by recruiters for the big tech companies all the time and there simply is no reason why I would ever consider working at any of those companies to be another cog in the wheel. No amount of money can ever make up for what I have now.

So I would strongly encourage anyone who is in the situation described by OP or me above to try their best to switch jobs if possible. I can't fathom going through my whole adult life as unhappy as I was at my first job and I wouldn't wish it on even my worst enemy.

I appreciate reading your story. I'm ~6 years out of school having been in large companies and am wondering if it's normal to have the joy sucked out like I'm experiencing. If you don't mind me asking, how did you end up finding the small startup job? When I look at the job boards they're often dominated by the big guns or it's hard to sort through lots of small (oftentimes shady) postings - I don't know where to go to find small-by-design companies or similar mindset jobs.

I wish I had a better answer but like in almost all cases, it ends up being your network. In my case, my brother-in-law had been working for a few years at the company and he knew the founders as a couple of them were his mentors in grad school. So I knew enough about the company and when they needed to hire someone, him being able to vouch for me was enough to get me an interview with them.

That being said, I think places like ziprecruiter / indeed will still have job postings from smaller companies. The challenge, as you mentioned, is trying to figure out the good ones from the sketchy/shitty ones. Small companies can also be challenging if the management isn't great and they have bad culture. So I would definitely place a lot of weight on that if I were interviewing at smaller companies.

Try AngelList, lots of small companies and startups.

Funny enough, I just finished my PhD in December 2019. It's been hard getting interviews in the bay area (I want to stay close to family with older parents). I have great academic credentials but somehow I can't signal that to recruiters. I managed to snag an interview with a company I know I'll dread working for. The recruiter acknowledged it's a stress factory and weekends working where regular and I couldn't care less about their product.

I'm debating if I should take the job, assuming I pass the interview, to set foot in industry or keep searching continue working on a potentially monetizable passion project.

In this climate, I would probably lean towards taking up that job. You have a few good things going for you:

1. You have good academic credentials

2. You are trained in a "hot" field (my Ph.D. was in Physics but I've always loved software engineering and ML, but that was a very hard transition for me to pull off)

3. Getting a year or two under your belt is probably better than a large gap in your career if things continue to go south on the employment front. I suspect a decent number of ML/Datascience people are going to be laid off if they haven't already because they end up being more expensive and it isn't as easy to quantify their net impact / benefit to a company.

Just focus on how you can use your time at any job right now to improve your skills and round out your profile so you are a more attractive candidate for the kinds of jobs you'd like to target in a few years.

Also, if things bounce back in the next year, demand is still going to be high and you should be able to find a better job and switch relatively easily.

I think there's a tendency, when confronted with a person who is upset about having made their work their identity, to swing to the other extreme and advocate complete separation and dispassion.

Like everything else, we need to find balance. I like my job and think that in general I do good work. But I am not my work and my work is not me. It's a part of me, to be sure, and I feel connected to it, but work is a relatively small part of my identity.

It's rare that I can read this. I used to be equating my work to my soul. And it hurts badly when you're not surrounded with people in a similar mindset.

If you find that your skills and career make it unfeasible to find much realisation, then probably your best strategy is making work "just work" - there's a tendency to lying to oneself in this industry. The vast majority of developers are doing the equivalent of assembly line plumbing with a lot of delusions on top. This will hit sooner or later if you are not stupid.

really well put. "People have a deep need to relate as full human beings to their work." And those relationships can be very important - even though they might not outlast the time working together.

I think though that "meaningful work" is different from deeper meaning in life. Confusing the two causes suffering. I have worked at an adtech company with really good people. I helped start a nonprofit publication in Brooklyn full of college friends, artists and academics- which ended up being the sleaziest group of backstabbing grubs imaginable.

I have a manager right now whom I respect. He (CTO) gives good project guidance and makes clear decisions based on rational business reasons... I like him but have no illusions that he would fire me in a second if it were in the interests of the company. Keeping this in the back of my mind helps me modulate my response when I am frustrated or really almost any emotion to the excess.

Its possible to do very meaningful work without being friends. You can even be friendly and go out and drink together from time to time ... but always remember what you are there for.

You can find meaningful experiences out of work. They can even be "worklike". I am an EMT on weekends and I end up thinking about it during the week. The relationships at the corps are important but in the back of my mind I can understand that this activity is not exactly work. It could be but at the moment it is not. I am a systems engineer.

There is a lot to unpack in this. I strongly agree with you that work is about as central to our identity as can be.

I've been miserable at NYC tech companies with unlimited vacation and catered lunches... And a crappy attitude was at least 50% of that misery. (2 months of covid-19 and I find myself missing the commute at times)

When I was in school I worked for the university for free tuition. I was a groundskeeper and mowed and planted. I was outside. I occasionally drove a dumptruck to get loads of gravel or dirt. I worked with a guy who dropped out of highschool and played heavy metal in our truck as we drove around campus. When it rained we would hide out and play chess. He was an interesting dude full of contradictions.

I hated the job because I felt humiliated as a student working a menial job on campus. In hindsight I can see how important a job it was. It enabled me to get through school and afford a place to live. There were fun moments and good experiences (driving a full dumptruck down route18 is its own thrill...)

I was limited mostly by my attitude and a posture - who I thought I was. Dreaming about being somewhere else and avoiding people I knew.

I still catch myself engaging in that kind of behavior.

We do need to relate to each other as humans though work. This requires lots of re-calibration.

> I also have friends who have been in tech for close to ten years, and are close to burning out

I realize the audience here is probably mostly younger folks but 10 years doing anything is not that much time IMO.

I think a 3rd or 4th burnout at 30 years of service is a lot harder to recover from, but I’m biased from my own experience.

Same here. I've been at it for 25 years - I've had at least 3 major burnouts. For 24 years, I've constantly been saying, I gotta find something else that is far more constructive and rewarding.

Yet...Here i am.

This thread has really triggered something in me. I am 63 and recently retired from a gov job, which I hated for years. I just thought I hated my management, which I did. I did recognize symptoms the last couple years (sometimes I was physically unable to work while staring at the screen). My plan was to take a couple months off and then take a contract position doing development. I have been unable to even look earnestly since I secretly cannot stand the idea of going into another enterprise situation. It all seems to me to be utter bullshit. I realize that even though I have had burnout issues a couple times over the last 30 years, this is a major case of burnout that I am experiencing. I have always identified as a programmer, not just worked as a programmer. That was a mistake. I am currently unable to fully retire but now I can think about what else I should do. It is funny how profound this is to me right now all due to simply reading comments.

I burn out and quit on a regular basis, it takes me about 6 months to forget how awful it was and start looking for another contract again... I guess I have short memory.

Would you share yours? I'd really like to hear from an older person. I'd imagine you know 10x of what I do now. It would be incredibly helpful if you could share some of what you've experienced and learned.

My first burnout was pure depletion of energy. I was young, passionate, and believed in doing the best work I could. I was addicted to work and pushed myself to deliver. I did, and built a career. I left after almost a decade at that company and went to a new job that had 20x the employees and was well resourced.

I got to kick back a bit and the job was more about delivering accurately and not delivering volume. I spent the first 3 years in that position recovering from prior burnout while still working. I got bored, so I quit and started a business. I worked myself for years right into the ground, burned out again. I took a few months off and relaxed. I ended up geting bored again before I fully recovered and went back to work.

I changed career tracks and switched technologies figuring this would give me a challenge and excitement. A new profession, systems, and rules of engagement. I was truly excited at first and I worked hard. Then I burned out again, before having recovered from prior burnout. This time it isn't due to lack of work/life balance, its due to lack of technological and social satisfaction.

At first I thought it was a bout of imposter syndrome as it's a new career but as time went on I realized it's more about the industry, the direction it's going, and the effects of people getting into STEM for money and not because they're technologists. It's a lot of younger folks who boast about their adderall abuse, get excited to give presentations, and other stuff that I'm really not interested in.

I'm stuck in burnout #3 now. It’s easier to burn out after the first one. I don't have the ability to make a risky move at the moment, I have people who depend on me. I don't know what my next move is now but as you age and your responsibility grows your options shrink. I think I might ride out the virus and look for a new job in the hopes a new environment will give me a push to keep going.

> as you age and your responsibility grows your options shrink

This is common but not a universal experience. I do have much more responsibility now, but also a lot more options; unlike in our youth, we have no unsecured debt, don't live paycheck to paycheck, and have savings, which gives me the ability to plan ahead.

Mostly guessing, but I think I'm like halfway between you and the commenter you're replying to. I've been where you are, not from the exact same path, but what you're feeling is familiar to me.

My two cents: I find joy doing challenging work on products that are useful to a bunch of people without needing to be "the next big thing". But what I find more joy in is my life outside of work, in spending time with and taking care of my extended family (including my close friends). The most success I've had with this so far has been at a big tech company. This is for a number of reasons: the product I work on is more likely to be useful to lots of people that way (because a lot of the marketing work has been done already), which also makes the work challenging (because scale brings challenges), and compensation and work-life balance are good so I can spend a lot of low-stress time focusing on family. I personally find the most joy working on things that mostly make money through charging people money for services because it feels like the most honest way for my salary to be paid, but I'm not sure how much that relates to this, it might just be a personal preference. Reading your post, I wondered whether you misinterpreted your big-tech coworkers. They might not have been checked out, they might have just been doing their work while having other interests that were more important to them. That is my interpretation of the people I work with (and of myself). I think it can look pretty lame to excited young people, but it's actually the opposite; what's lame is being super into working rather than other better things.

But as a follow-on, something I've been thinking about recently is whether I can take the useful skills I've built through a career in tech and apply them elsewhere, supported by the savings I've been able to build up. I'm not sure what that looks like, but being able to gather, process, analyze, and operationalize data seems important for lots of things, and that's something I know how to do (and I'm not alone here, software is largely about processing data). But I don't know what the most useful thing is to do with those skills; right now what seems important and in demand is epidemiology, but it's probably too late to become useful to this moment. Probably something in the broad sustainability space is more forward-looking. I'm still looking around.

I guess the two points I'm trying to make are: 1. You may be able to find joy by having more modest expectations, and 2. There may be other useful things to do with the skills you built, you should keep your eyes open for them.

Hope this helps a bit, cheers!

i'm about 40 yrs old - been working in tech (with linux) since the late 90s. gave my life to it, lost my physical and mental health; burned out numerous times. can't stand this industry anymore.

moral of the story: 99% of people still don't understand the nature of software. very few people--like rich hickey (clojure), or fpb (mythical man-month)--seem to get it. tech is mainstream and most people are missing historical context and experience.

(the goals of capitalism are typically at odds with building systems of the highest quality--and understandably so.)

the only creative spark in computing i have to sooth myself anymore is reading lisp or unix books from the 80s and 90s, because the content is so thoughtful (given the culture and smaller community at the time). the internet has become ruined by advertising and bloatware, and the culture has largely been ruined by bad habits and misunderstanding, imo.

Thanks for that. I tend to idealize my career but in reading your comment I stopped to think of both the good and bad parts of my working life, from the sublime to the boring and odd job tasks. Working life really is a mixed bag.

You mentioned Lisp. I just retired last year, and just turned 69. I only use Lisp now (three planned projects for the macOS store, one almost done, and all my writing is concentrated on Lisp) and am dropping other programming languages that I used to also love, including Lisp languages that are not Common Lisp.

I also agree that the Internet is not what it could be but I still find value by finding a few people who I really enjoy, follow their writing and podcasts, and ignore 99.999% of everything else. I also find that reading books is much more rewarding that browsing the web.

Sounds exactly like me. My burnout has gotten worse now that tech is mainstream. My current gig is more like a regular business that just happens to develop software. Most of the staff are social first technology second. I don’t fit in at all, and to be frank it depresses me. Not sure what I’m going to do in the future.

I can’t shoot the shit and talk strace or gdb with any of them.

After reading your reply to OP below, I agree we have a super similar path. Especially the beginning:

> My first burnout was pure depletion of energy. I was young, passionate, and believed in doing the best work I could. I was addicted to work and pushed myself to deliver. I did, and built a career. I left after almost a decade at that company [...]

(However, I never found a way to leave "Tech" for another profession--especially once I achieved a certain salary range, and others depended on me.)

> I can’t shoot the shit and talk strace or gdb with any of them.

Know the feeling exactly...

> moral of the story: 99% of people still don't understand the > nature of software. very few people--like rich hickey ? ? (clojure), or fpb (mythical man-month)--seem to get it. tech >?is mainstream and most people are missing historical context >and experience.

This is it. As engineers, we want to build the best can. As managers of a business, we want to product the most profit we can. As marketers, the more income that comes in, the better off we are.

Chose 2 of the 3. Marketing almost always wins one of those slots.

If someone could produce a solid infrastructure to get rid of ads and all that nonsense, but still get a product out in front of everyone, I think that might be the holy grail.

(I hope that if you figure this out - you might give me a .5% royalty) when your successful.

Get collapseos, it has a bundled z80 emulator and some shell. Learn forth and continue doing Z80 coding. It's really fun.

Thanks, i'll give it a try. :)

Also remember gopher is still alive. My gopher list:



































##Usenet is alive too. If you set slrn killing all

##spam, a lot of newsgroups are still bearable.




Lisp software from the 80s is available to play with too, you don't have to restrict yourself to just reading about it.

>I think a 3rd or 4th burnout at 30 years of service is a lot harder to recover from, but I’m biased from my own experience

There is something else going here (or so it was for me). It's not the physical/mental exhaustion as is typically what defines 'burnout'. It's the depressing realization that most people around you are deluded piles of shit, even if they are 'nice' individuals.

Yeah you're absolutely correct. I wish I had more perspective to offer but that's what I got. The OP also sounds younger (I may be wrong), so I hope it is ok.

This is such a defeatist attitude and, I think, completely unnecessary. And saying it as fact sort of perpetuates the whole situation. It doesn't have to be this way. But most people allow it to be this way.

> Your co-workers may be amazing, but they were never your friends.

Anecdotally, I've met some of my best friends by working with them. I have many friends that I haven't met through work, but when you spend the bulk of your day with people you form bonds - and friendships - with them. It's sort of human nature.

> There's what you love, and there's what you do. It's best to keep some distance: because no one cares about what you love.

What you love and what you do don't _have_ to be different. And some people _do_ care about what you love. Most don't, sure. And at most larger companies you _are_ just a cog in the wheel. But that doesn't mean folks shouldn't strive to find meaningful work that they love to do. It may not pay as well monetarily, but it pays in other ways.

> No, you only cared them inso far as they can cook for you. This is how others saw you.

I don't seek out the immigrant family, but I'm friendly and cordial with them. I chat with them and treat them as equals. I pay them fairly for what they provide me. I don't try to squeeze every last cent out of them or negotiate my meal from them, or make them feel like less of a person. And in return they provide the same. Maybe I'm naive, sure. But if so, at least I'm not an asshole.

> Big companies, and indeed most big institutions is made by a silent majority of the defeated.

This is mostly true. I agree. It's unfortunate. But big institutions aren't the only options.

> You have to look elsewhere.

You don't have to. You can, and in some cases you should. But it's not the only option. There ARE people who aren't wholly obsessed with making money at all costs. Unfortunately, in the US at least, a lot of people don't have that attitude and _are_ obsessed with making money at all costs. And our society (at least in the US) has been built in ways that praise that sort of attitude. But there are plenty of people who aren't like that. It's hard to find them sometimes, depending on what sort of circles you run in and the sort of people you surround yourself with - but they are out there.

Everyday I keep reminding myself that I don't really own anything - for every single line of code I am compensated with the money that I could use for whatever purpose. That being said, the illusion of ownership and purpose is fake. You don't really own any thing, and your contribution to the code base only has meaning for the company, but is meaningless for yourself. You just make a deal with the owner of the product, a.k.a. the shareholders of a company, that you agree to sell your time/intelligence/effort to them for money.

> and your contribution to the code base only has meaning for the company, but is meaningless for yourself

An activity can have meaning in and of itself, and it's up to you whether you infuse something with meaning or not.

To me this is one of the themes of "Zen and the Art of Motorcycle maintenance".

Concerning valuing code you write for others, do you value finishing a crossword puzzle or a game of cards? Those activities are of no use other than the joy of doing them. Programming can be the same way, and I believe whether it is like that has a lot to do with your inner state and how you approach it, regardless of whether you're doing it for a company or not.

I think compounding the problem right now is that people can't simply switch or take a sabbatical in this current climate. Those that are contemplating getting away from their current work are thinking twice about it, even if the workplace is already toxic.

> Have you ever thought about them and gave them time/money for their suffering? No, you only cared them inso far as they can cook for you. This is how others saw you.

Well, actually (and I'm deliberately using my sock puppet account to say this as this is one of the things one should just do and not brag about):

For some of us, many of us, but not most of us I'm afraid, we buy stuff not necessarily because we need it or even want it but partially because of who is selling it.

Every time the kids come to sell the newspaper on the weekend I buy it, read two pages that I coild have read online and leave it on the table in case my wife wants to read it. She doesn't so it ends in trash.

Meanwhile I've been part of teaching one kid the value of honest work. My brother-in-law paid for his first Mac using money he earned from selling newspapers in the weekends. He is an amazing producer now and has been working both as a singke man production team with a local TV station where he lives, at international conferences and sometimes with at least one if not two national TV stations.

Maybe I'm giving another brilliant kid a chance now? Based on the fact that they show up every weekend there might be some potential :-)

This could have been a Scandinavian thing, but I know kt exists in the US too. I think I heard about it in an audio book named something along the lines of "400 things cops know" or something:

<something along the lines of>

> As a police officer if you walk by a lemonade stand or (something else I can't remember) you should buy! Even if you aren't thirsty!

Personally, even as a grown up I've had customers telling me in no uncertain terms to raise my prices, and I've heard my boss (or technically, the operations manager, two steps above my boss) telling me again to tell a vendor from a less fortunate country that the contract was fine but the operations manager refused to pay the ridiculously low price they quoted.

I would also like to add that therapy is not just for the mentally ill, and nothing to be ashamed of. Navigating your career, and life in general, is tough and a good therapist can help put it in perspective. I personally went to therapy weekly for about six months to help deal with the impact of burnout on my life. I think I came away from it a more capable person.

I have an odd fear of going to a therapist in the bay area - when all my issues are caused by being yet another bay area stereotype.

Do you think therapists get tired of dealing with people who are just unhappy with their job in a bubble?

My experience in therapy mostly focused on taking responsibility for my emotions. Usually the therapist would ask what was on my mind, and I would talk for a little while about the usually stuff that makes programmers sad. He would then guide the conversation to show how I could take responsibility not for the situation, but for my emotional response. At least that was my take away, I can’t say for sure that was his goal.

Do I think that your therapist would judge you for your problems? Absolutely not, if they are even an OK therapist. They are professionals, and are not trying to be your friend.

Another thing. The first therapist I went to sucked. She had me doing worksheets and other stuff that just didn’t work for me. I ended up switching (my wife made me switch) to a new therapist and it was a huge difference. If you do end up trying therapy, remember that this is a professional situation. You wouldn’t go to the same bad sandwich shop for lunch every day. If your therapist isn’t working for you, and you have given them a honest try, just switch therapists.

Ultimately, therapy was a leap of faith that I’m glad I took.

I felt bad going to a therapist at first — guilty, self conscious, like I must be so self absorbed. I addressed that early on and tried to be constructive but it took time to get over that. One way to look at it is that even if you are unhappy with your job in a bubble, so what? Isn't that something worth addressing and examining to understand better?

Being unhappy for any reason matters. I discovered I was unhappy for much more valid reasons than I ever imagined and taking that leap to therapy was quite life changing. The key thing was that my burnout had legitimate causes that weren't really my fault or a weakness or flaw in myself (at least not that I could easily control), and I learned a huge amount about how I needed to move forward.

I really don't think I would have done it, ever, without therapy.

Plenty of remote therapists available.

This is a good point. My therapist lives thousands of kilometers away. If you have a good fit, the distance might not matter.

I had one in my city before and he was great too, but he knew a colleague might have more relevant experience. I was doubtful about the distance aspect, but it's been totally fine since day one. It's definitely worth considering.

> There's what you love, and there's what you do. It's best to keep some distance:

Underrated piece of advice. Keep the way you make money and your passions separate. You love photography? Great, do it on weekends. If you become a pro you'll end up photographing weddings and hating your life and the thing you thought you loved.

You can learn to hate anything by force feeding yourself too much of it too fast.

Well said. External gratification won't solve anything.

Any advice to someone new in the industry to avoid burnout?

Work on interesting things or make the things you're working on interesting. Don't work only for yourself; take on the mind of a servant and you'll often be grateful. Don't look for total fulfillment from the things you can see, or the things that pass away. Store up treasures in a place that won't fade away.

It's just a job.

Always leave them wanting more.

(disclaimer: I've been in the industry for over 40 years... these days I avoid burnout by counting the dollars until I retire)

Choose based on what you want to do, not what other people want you to do.

> There's what you love, and there's what you do. It's best to keep some distance: because no one cares about what you love.

Isn't that cultural? Cause I find I care a lot more about what people love than what they "do". Ask someone what they do [for a living], and you say "oh that's cool" and conversation is at a standstill again. Ask someone what they love and you'll get a whole different kind of conversation.

"the silent majority of the defeated"

That's great writing.

In those stern points, there is some farm good existential advice.

This sounds so American to me. I grew up in Eastern Europe and general attitude towards work, life, and friendship is so much different. Some of the best friendships I've made were at the companies I worked for. I've seen cases where people make so good friendships at work that it even makes them postpone switching jobs to move up the career ladder.

Work is not everything in your life. Work is important for sure, but there are other sources of joy in life. I can't help but think that Americans miss so much in life because of their obsession with work, money, and social status. Hence such posts on HN.

OP for the comment here. I'd just like to add that this advice is specific to article OP who was running a business. As an owner/operator, he/she is tasked with the responsibility to allocate capital/resources in an effective way (morality of capitalism notwithstanding, in the current system once you take the job, it's no longer about you). It's one thing to use love and passion as rhetoric, but as an employee I would prefer the person up top made rational decisions, and maintained some distance with each employee. What often happens is that for every employee the boss befriends, many are on the losing side of it.

I think a lot of people are generalizing the comment to people in all positions. I've befriended many people I worked with over the years, but I was not the one paying them, giving or denying them opportunities. I also really loved what I did, but I was not the one making sure it had exchange value on the market. Friendship, "passion", etc are really luxuries the OP wanted in this position, but really could not afford in large quantities.

I’m in the US and my experience is the same as yours. Maybe 50% of my friends are coworkers and former coworkers. I have almost always stayed at companies longer than I otherwise would because I loved my coworkers.

Burnout for me is caused by too much bureaucracy, too many meetings, and incompatible programming philosophies. Only twice in my long career have I left a job due to an insufferable coworker.

> incompatible programming philosophies

This really hits home for me. I'm at my most miserable when working with people who value doing things fast more than doing them well. I suspect those people are also at their most miserable when working with me. I see them as creating work that I'll have to do eventually to clean up their mess, and I suspect they see me as an insufferable gatekeeper.

Do you enjoy cleaning up their mess? If so, is it not the perfect environment, where everyone is doing something they do best and enjoy?

Or do you dislike cleaning it up? In this case, why do you do it? Noblesse Oblige?

Asking because I love refactoring. I also love pushing features fast. But I absolutely dread having to do "perfect code" in the first try. I keep trying to push this idea (inspired by Mythical-Man-Month) here in HN that a perfect team would have people "working fast and breaking things" with people working behind them that love refactoring everything cleaning it up.

> Do you enjoy cleaning up their mess?

Of course not. I may enjoy cleaning up my own messes, but not one that someone else has foisted upon me. The problem with teams like this is that the fast-movers are long gone by the time the impact of their expediency is being felt. They benefit from the accolades of a launch while shirking the responsibility of operating a product.

> In this case, why do you do it?

Because the product sucks and needs to be improved, but it is an unimprovable mess because everything was done expediently instead of well, some of which needs to be fixed in order to move forward. A lot of the hard work at this point is in figuring out the best pragmatic balance of what to fix vs. what to leave alone. A little forethought could have saved a lot of post-facto toil.

I do like iteration, doing things in small iterative chunks. But that is not the same as putting out a huge mess and hoping someone comes along who enjoys cleaning it up.

> The problem with teams like this is that the fast-movers are long gone by the time the impact of their expediency is being felt. They benefit from the accolades of a launch while shirking the responsibility of operating a product.

Yes, :100: :100:

I have seen this happen so many times. It's a vicious cycle of horribleness. The same people always seem to get the new development also because they were "so successful with the last launch" and the people maintaining it are perceived as slow and ineffectual because it takes so long to iterate (ironically because of the person who looks like a rock star).

I feel very lucky in my career that I don't have to put up with this anymore. If I could go back in time I would just tell myself to quit and find a more compatible company instead of suffering for years under a self-destructive system that punishes people like me. Since breaking free from that and starting my own projects, I've been very successful.

I don't mean to imply that I always write perfect code, or even great code, because surely I don't. I do expect some things to be throwaway that end up staying around. But doing something correct rather than fast in general is a much better long term strategy. Vary as necessary (but only when necessary).

I'm not the GP but I fully agree with what he said, so here is how I would answer your question:

I HATE cleaning up people's messy code. It's 10x easier to do it right the first time. Messy code to me is most messy because it's unclear what is being done. It often comes with insufficient tests, which makes refactoring dangerous.

To me it's a lot like walking into a messy house vs. a clean house. If the house has clutter everywhere, or has a smell from being dirty, then it's not comfortable to be in. If I have to work in it, or clean it, I'd much rather start with a well-organized clean house.

Refactoring is also not fun at all for me. I also LOVE pushing features fast. I don't obsess over "perfect code" but I do obsess over following best practices and stopping for a few minutes to think through a design.

My workflow is:

1. Get it working, minimal effort, PoC

2. Get tests written and passing.

3. Refactor to good code. Perfect is the enemy of good, but it doesn't get committed until it's readable, maintainable, tested, documented.

Sometimes I probably am a little slower than I otherwise could be, but people are often blown away at my ability to iterate and add features quickly. This is because my code is well organized, modular, DRY, and well tested. It takes a little longer the first release, but it more than pays for itself speed-wise as tech debt stays minimum and hackability is high. With over 10 years experience now with this method I'm convinced that it's the only sane way to do things. Anything else is sabotaging your own future.

If I really don't have time to do it right the first time, I know it will be hard to iterate on, it will have bugs in prod, and it will never be pleasant to work in. It takes 10x longer to refactor an existing app to be good code than it does to do it during development when it's all fresh in mind. The best hope is that it has a good spec so it can be re-written from scratch.

Maybe you should switch to a different programming domain. For example, embedded systems and security software tends to value correctness a lot more than e-commerce does.

This is less a current problem than a phenomenon I have seen over time. I do agree that different technologies attract different kinds of philosophies and it's definitely something I keep in mind when thinking about what to work on.

You're not alone friend. I am in this boat as well. Hopefully some day we'll work together and we can admire each other's beautiful code :-D

I should say: I have worked with lots of people who have a compatible philosophy, I would even say most of the people I've worked with do. But it really is the quickest and most severe way for me to become deflated by my work, when I come across someone who is constantly pushing against me to cut corners while I argue for them not to. I really think it makes us both miserable; they could usually have fixed whatever I'm asking them to fix in the time they spend debating me about it, but they don't want to, because it's the principle of it or something, and they think I'll go away. But then I don't, so we both waste tons of time without a very positive outcome.

More likely selection bias for people that comment on threads like these. I’ve worked in finance and vc backed tech for my whole career. I don’t agree with any of the sentiments expressed in the threads like these.

I’ve got friends from every job I’ve had in the last 20 years who I still see routinely including some of my best friends.

Sure, I think many of us can claim the same but the difference is you probably weren't the CEO or the boss like in OPs story. I think that changes things drastically. A boss can delude themselves into thinking employees are their friends, some even go so far as to claim employees as family. I generally stay away from small companies that pull this shit. This blurring of lines complicates every aspect of your job and leads to some very uncomfortable situations like asking for a raise, negotiating, etc...

Yeah... companies that harp on the "family" sentiment are either being disingenuous or naive given that they can get rid of you at the flip of a coin without remorse.

I'm 55 and I have mostly worked for three companies in my life: Penn State (10 years, started there 1990), Raytheon (3 years, started 1995), and a small hedge fund (started 1996, 12 years). I haven't worked for Penn State for about 4 years and I have lost touch with about 80% of the people I worked with there, but I still feel a strong bond to them. I have not worked at Raytheon for 15 years, and I've lost touch with 98% of my friends there, but every once in a while I do reconnect with them. I still work for the hedge fund and I do keep in touch with 50% of the people I met there even after they have moved on to other endeavors or retired. About half of my long term friendships came from work relationships.

Penn State (10 years, started there 1990), Raytheon (3 years, started 1995), and a small hedge fund (started 1996, 12 years)

Overlapping jobs like that indicates you are following a very different career structure than most people, so I’d hesitate to generalise your experience.

I have often observed outsiders making sweeping generalizations regarding the shortcomings of the USA based off of a few internet postings.

So many of my friends and neighbors came here voluntarily- They seem happy, but deep down they must be filled with so much remorse!

true. the USA is very big and diverse. no matter what you're looking for, good or bad, you can find it here.

It is probably also industry (and city) dependent, I have found at my job in a midsized city that there are a number of probably life long friends within my company. Also, because it is one of the largest tech employers in the area, many of the intelligent people who want to stay in city (due to family and growing up in the area) want to and do spend their entire career there. We also have pretty reasonable career paths for people who want to only work 40 hours a week and for people who want to work more.

In the US: culture is very important. If you have bad coworkers, no amount of technical excitement can compensate. I am willing to hypothetically trade technical excitement for great colleagues (up to a reasonable extent).

It’s probably just the general HN crowd I think.

It's different because in Eastern Europe you had to rely on your network to survive. Friendships are extremely important in Eastern Europe, N.A. is more individualistic and competitive(especially in the workplace) hence more loneliness, burnouts.

Only about 50% of the HN community is in the US, and many of the users who are came from other countries. You shouldn't assume a poster is American.


I'm having similar issues, and i think i found a way out: stop playing their game. Don't make enterprise software. Don't write unit tests. Don't accept pull requests. Simply write software for yourself and have fun doing it. Forget refactoring code into modules, just fucking code. Don't worry about deployment with k8s, just copy the Python script to your production folder and run it. Fuck all that shit about git branch naming conventions, or how you're supposed to use an object factory, just do whatever you want in the moment, bit by bit, until your software works most of the time then use it. Forget configuration, just hard code values for now. Don't worry about documentation, just do it.

Your expectations, and the expectations of others, are your enemy here.

At least, that's what got me out it. I'm still disillusioned with the world but it's manageable if I can realize I'm making a difference to my son and wife every day, and that's what counts for me.

This is right.

The OP said he is "disillusioned with technology" but I didn't see actual technology being described as the problem with any point. So there's a conflation here happening between technology and "tech" companies. And I can only say the phrase "tech" companies while using sarcasm quotes around "tech", because almost nobody at any of these companies develops actual technology. And that's a big part of the problem.

There's a subculture that's reinvented the merits of software engineering to being as ornate and ceremonious as possible.

It doesn't have to work well, or be bug free, or compatible with the previous version, or address any real world need.

No! Instead it has to use fashionable technology and be extremely complicated so other programmers can see how incredibly clever they are!

Almost like they took a random bug from the issue tracker by looking at last nights lotto numbers and then they opened to a random page of Knuth by letting a fan blow on the pages for 5 minutes and said "alright, I'll solve this problem in that way! Surely everyone will acknowledge my genius!"

It may be a slow lumbering buggy pile of brittle barely functional code about to implode, but boy does it look nice!

I don't agree with this view. I agree with the original commentor's comment. I do this myself outside of work just to enjoy building something without the responsibility of having to maintain it with 20 other engineers for two more decades.

However, even I can see that a team would get burnt if they built an enterprise software the way I code my personal email client. The problem here is that people forget that building software professionally is an engineering job. Like other forms of engineering, there are processes and good practices to facilitate both functional and non functional aspects of a software and the building process. While the extra burden of version control, testability and extendability takes some of the fun away, I would have reservations working with someone who pushes directly to a release branch, does not write test and hardcode values instead of uaing configuration. It's about balance and realising that job is a job.

ok, let's go back to 2014. I was working on a project, a web front end. The ticket was "change color of button". This sounded easy, modify the CSS.

However, the CSS was generated. From YAML. The YAML was generated from JSON. the JSON was pulled from mongo. The Mongo was updated through a strictly validated XSLT that had an enumeration of colors. Those colors did not include the button color we needed.

Don't worry! There was an ability to reroute the xml through the use of ruby mixins and then add the attribute by parsing the dom, editing it, then re-ingesting it later downstream so it gets out to mongo right.

oh and there's a cache layer at every point here. so make sure you invalidate it to see the change. every time.

I closed the ticket and did a few more like this for 6 weeks, mostly in ember - they were even crazier.

The product, an interface to some server software, had basic html with markup like this:

<ul class='links'>

<li><a href=/a>link</a></li>


Like the most trivial stupidest simple code you can think of. 15 minutes of php, at most.

However, changing it to do something else was never direct. 4, 5, 6 maybe 7 different languages, servers, restrictions, databases, input and output formats ... absolute and total batshit.

I left. Company is worth over $100 million today, looks like I'm the loser I guess.

This isn't about having a dev and release branch, this is about endless layers of abstraction and insanity that make easy things 1,000 times harder and almost impossible.

> However, the CSS was generated. From YAML. The YAML was generated from JSON. the JSON was pulled from mongo. The Mongo was updated through a strictly validated XSLT that had an enumeration of colors.

I thought you were exaggerating to make a joke. Sigh.

> I left. Company is worth over $100 million today, looks like I'm the loser I guess.

Somebody played the lottery and won. 99.9999% played and lost.

You are not a "loser" for not playing the lottery.

The idea was that if they were going to port native than wow, we'd have this one amazing way to create all these interfaces on different systems!

As if we'd have 5 or so platforms and a single command to go "presto!" and build on a bunch of devices with a slight button offset change.

I always said "how about, if you want a linux version in qt, you fire up qt creator, drag your mouse around a bit, click a few times, take 20 minutes and that's it. You then literally just walk away because the work is done".

That sounds complicated. Though I'm not sure if this is a valid example to counter my view. I can't comment on the exact situation you went through. It could be that that complexity was a side effect of having to solve far more complex and frequent issues more easily as opposed to doing simpler and rarer things more easily (unless of course changing button colours is a frequent modification). It's also possible that the design was simply bad.

This doesn't mean that you were going to better off without git workflows, code reviews, tests. My experience has been the opposite. It's exactly where there's no good technical leads/technical discussions/code reviews I have seen this kind of mess. Each person goes on and do their own thing with no clear direction or architecture.

At the end of the day, for me, to stay sane in the face of this kind of nonsense(as in bad engineers - unfortunately there are those even at senior positions), so what if the button that could have taken a few minutes to change now takes 6 days if we are paid to do it? As a responsible engineer, you point out the issue perhaps with a proposal for improvement. If they listen, good. If they don't, fuck it. On the other hand, if all I end up doing is changing colors of buttons regularly, each taking a week, then for the sake of my career, just say no and move on - unless of course if the pay is so good that it makes sense to spend a couple years doing it - people have to do far more shitty jobs for less. And spend some of the free time to code like a cowboy :)

No it wasn't!

That's the whole point. What some people consider to be "good engineering" is a different set of standards, a different set of qualifiers.

Let's go back to 2012. I was yet again doing web stuff.

We had this hodgepodge of jasmine, junit, eslint and selenium and couldn't commit unless it all passed

But the tests broke more then the code itself, because it was <far more complicated then the thing being tested>. So more time was spent on fixing and babysitting the tests then writing the damn software.

Alas, we finally released and it totally completely bombed. Why?

Because those test suites don't care if something "feels" clunky or "looks" wrong ...The machine responded to the interface in machine time, it didn't actually test human time, which was the only thing that mattered. We should have relied on human dogfooding, like the business books say to do. I got arrogantly laughed at for suggesting it, multiple times; that simply wasn't "engineering" to this team.

Now of course tests are valuable, sometimes. But "sometimes", that's the important thing. Understanding when to make that call is actually important. When, where, what, why, and how - not just important for journalists.

But instead, like some 18th century royal court disconnected from reality, we did ceremony. So we wrote tests, most of them bullshit. One of the tests was essentially: "Does this image on the page load from s3?"

At least that one usually passed.

Except when AWS was down or our internet went out: "I guess we can't work today, the does_image_load_from_s3 test is preventing the commit." They were a waste of time and got in the way of actual work. But we HAD to have them, we MUST, right? Nonsense.

I'm convinced the tests were there because "doing it right" was about virtue signaling. So we built a salary defending potempkin village composed of pure thought stuff.

I imagine it all like a catholic mass: Men in robes walk around, ring bells, and use special boxes to wash their hands with special cloths; it's all very important if you go to church, but that's the point, it's praxis and faith: we were coding from plato's cave, creating intricate shadows of reality representing actual work.

Symbols passing as tools: like Dumbo fetishizing the feather and being oh so worried when it falls, everything passed the most sophisticated testing I had ever seen yet the program still crashed in the user's hands almost every time. All that work was mere ceremony.

Understanding how modern computing speeds and vc capital has allowed people to be wrapped up in their own bullshit, call it programming and get away with it, is a major insight into why technology sucks today.

It's not just you, everyone agrees. It's lame now.

What's strange is I can also give you examples of how testing code bugs that had been there for more than 3 years (security related mind you) and a company whose release branch didn't compile on my day one because a guy who doesn't believe in any software development process and committed directly to the release branch.

I don't mean, dogmatically follow unit tests (actually my statement wasn't predicated on unit tests). If you have a better approach that can validate the software is correct then I'm all ears. If you have a better collaboration tool than git, I'd be happy to try it. With all due respect, what I can't do is take your word for it that you can build software that works (covers all functional and non functional specs), and they continue to work as more code is added, and is worked on by more than one or two developers, and that you can continue to validate and roll out more software over the years even when the original developers aren't around. It's difficult, costly. It can work, it's just not the best way. The industry will evolve and come up with better tools and processes than we have today as we did before yesterday. Only thing I took from the couple examples you gave is that you've had the misfortune of working in some terrible teams. Though I still don't see how you'd be better off without the rest of the usual practices we have today. The guys who couldn't code the tests, I can't imagine them building a non trivial software well either. I'm not defending any one process. I just don't agree that we don't need any process, and that we should just write code that (seems to) works.

The thing that the parent poster is trying to point out is that our fancy programmer tools, processes, ceremonies and tests are worse than useless if they get in the way of actual work and make you miserable and unproductive. People leave jobs because of this. People burn out because of this. Companies lose money because of lack of productivity.

This is what this whole thread is about.

If tests are "taking the fun away", like you said, they're shit. Simple as that. Tests are a productivity tool, they're supposed to make your job easier by providing faster feedback. If manual test is faster than automated test, your automated tests are shit. If they're causing developers to write the bare minimum of tests it will only generate a false sense of security. This is even worse than saying "ok we don't have tests, let's be careful and test manually".

It's like that stupid saying that bad documentation is "better than nothing". It's funny how people change their minds when they spend four hours or more on a stupid rabbit hole because of outdated documentation.

On the other hand, one of the best jobs I ever had was maintaining shitty web apps written without source control, tests, documentation, patterns. Thousands of lines of code. Some of them didn't even have source code: I had to decompile the production server DLLs. I don't have any coder friend that got burned out by "bad code". Not having autonomy to improve the bad code, on the other hand, made a lot of them change jobs.

I love this. you nailed it. modern tech stack is so bullshit. I won't mention the framework I detest most because that would be flame bait, but this.

> Instead it has to use fashionable technology and be extremely complicated so other programmers can see how incredibly clever they are!

You are describing "CV-driven development", where people want to use heavily marketed technology brands in their CV as a substitute for real skill and experience.

Really well put. It's a combination of this phenomenon and a push for commoditising engineers/makers. Paradoxically it's based on "sound economics" - the clear advantage of commoditising "resources" and the clear advantage of anticipating a future stage (which in a massive asymmetry of information is what checkbox-investment appears to be addressing).

> Don't make enterprise software. Don't write unit tests. Don't accept pull requests. Simply write software for yourself and have fun doing it. Forget refactoring code into modules, just fucking code

I've found a really nice perspective on this recently: An app can be a home-cooked meal [1]

It's okay to build things that aren't popular, that don't scale, or that aren't economically viable, for the delight of a few users.

1: https://www.robinsloan.com/notes/home-cooked-app/

OT: someone close to me never tastes the food they cook, I can't understand that. You don't know how long to cook it, or how to season it, or if the balance of sour/sweet/salt/umami/whatever is right at the point you can fix it ...

But that's more an analogue of "use your program before you release it".

I guess they do eat it though, and then improve the recipe for next time by adjusting what they like. More like an AI approach in that case :D

At least they are 'dogfooding' it and not just letting others eat it I hope :)

When I'm cooking food that I'm going to eat myself I try to limit tasting. If I taste a lot I'm likely to end up with sensory satiation and won't enjoy the meal much by the time I sit down at the table. Just smelling the food while I'm cooking it can trigger this for some dishes (typically curries and other similarly pungent dishes).

If I'm cooking a dish that I've cooked at least three or so times before I generally have a good idea of how things should be going and I can get away with only tasting once or twice at the end.

I am in this place. I have been working for months on an app that perhaps a few dozen people might want (in the semantic web space). If I have a few enthusiastic users who provide some feedback, I am good with that.

Enterprise software is often the epitome of being removed from the results and the fruits of your work, it's a prime example of what Marx was talking about.

You can write unit tests and Spring components with 64 character names all day long but by the end of the day you are completely disassociated from your contribution. Rarely is anybody there to thank you, who is grateful you made their life better, or who has some simple joy over what you created. It definitely happens (e.g. a major release) but it's not a regular event. It often doesn't feel like you just made your community a little better by producing something sensible.

I know people who do hobbies like carpentering and they hand out their (amazing) work as gifts. You can see them oozing with fulfillment when they do and going into their hobbyspace is an escape from the world of work-for-a-living.

This is far from enterprise software: I am planning all three apps to be free on Apple's App Store. I have (or will have) a web site for each, with extra material, terms of service, privacy info, etc. I will have links to my consulting web page and my books page so I might indirectly earn some income.

I have the same attitude with apps as with the books I write: if some people enjoy them and I get to occasionally meet (probably virtually) app users and book readers, then I am very good with that.

re: "going into their hobbyspace is an escape from the world of work-for-a-living": for most people this is really important. For me, I go wilderness hiking every day and have a hobby of cooking so I have several hours a day away from technical interests.

That's a good point.

I have nothing to show for my 14 months at [redacted], but I still use the trivial little app I made years ago to redirect my search queries to different sites. It took all of 5 hours to write.

This is a great point, laced with justified indignation.

As a graybeard, I've seen multiple generations of "how to do software" and the most recent are the least fun. A lot of this is driven by the agile approach. It's tailor-made for dev burnout: from the endless tight cycles that force people into an infinite loop of productivity with scant satisfaction that comes with "completion", to all of the tools and philosophies designed to juice that endless loop to be successful/workable. CI/CD, Git, TDD, etc. These all impose on the developer's creativity, independence, and enjoyment. They turn devs into cogs--assembly line workers who must not stop the line at any cost.

One example: back in the day there was a nightly build, not a continuous one. And, you checked out a file, worked on it, and checked it back in. If someone else needed it they had to wait. That obviously had its limitations and it seems laughable by today's standards. But, it was reflective of a human pace that considered devs as people vs. optimizable assets. That is, it was workable because the expectations on devs weren't insane. But, now we commit and merge. Think of how much less fun it is to spend your time resolving merge conflicts.

More to the point, the approach itself implies a chaotic pace wherein code that meets the standards of a certain box must be produced at all times. Devs must bear the cost of resolving any conflicts (literally) that arise from this chaotic pace.

Likewise, with CI/CD. And don't get me started on the monkey-work that is TDD. You might argue that it improves code quality. But, it's hard to make the case that it improves job satisfaction. If you move more work from the creative, problem-solving bucket into the busy-work bucket, the result will not be personal fulfillment.

Does agile increase productivity for companies? Sure. But, it comes at a high cost that's mostly paid by devs.

The commodification/fungibilty of programmers is the goal. See, also open office plans.

I think the bad started for me (long ago) when the Microsoft style management and so-called MS best practices began to conquer the PNW.

In the late 90's a company I was in started driving to an exit. First they hired an ex-MS Group Program Mgr, whatever that means. Next, came tons of PMs pulling one or two devs into their projects/features. Doing it the MS way I guess (at least the MS way back then).

I was a manager, I refused to dole out my team members to PMs -- everything my team did was run through me. I don't even think I let them enter individual devs into their project plans. Just the team.

This worked well for us (my team) because I knew their capabilities, interests, family commitments, likes/dislikes, etc. I could adjust resources as needed to meet the team commitments. We had successes and failures as a team.

PMs who tried put pressure on my devs behind my back would really catch it from me.

My management style wasn't any new idea, it was what we did in the Army. Assign a team a task, then the team leader ensures the task is completed by the team.

It was a good time, we were the only real team in the place as the other managers embraced the MS way of doing things.

At end (right before dotcom bust) the company started doing some Agile-lite with two-week release cycles absent stories, standups, etc. I did like that enough to put it place at the next company I worked at.

I did get burned out though, mostly because I didn't want deal with what the industry had become as the last startup I was at petered out.

I still love programming but not enough to do it in modern shop.

>The commodification/fungibilty of programmers is the goal

This rings true. It's probably why I have always had a tendency to look sideways at these efforts to turn everyone into a coder. I get it: there's demand, opportunity, etc. But, for me, there's always been a cynical element of devaluing actual coders to it.

The stuff you're talking about regarding your management approach almost seems like a relic from a bygone era at this point. So many companies now allow the process to manage devs. PMs back then frequently over-focused on the work vs. people, but even many of them have been replaced with some version of a scrum master with an even more relentless focus on the never-ending storyboard. They're driving the work over people approach without apology because it's what the process demands.

This is not to say it's 100% the case across all companies. But, there's very much an inhuman element to the process that has manifested to some degree in nearly every place that employs agile.

Reading through this thread, and looking in the mirror, it's reinforcing the fact that I, too, am becoming a graybeard.

> Likewise, with CI/CD. And don't get me started on the monkey-work that is TDD. You might argue that it improves code quality. But, it's hard to make the case that it improves job satisfaction. If you move more work from the creative, problem-solving bucket into the busy-work bucket, the result will not be personal fulfillment.

> Does agile increase productivity for companies? Sure. But, it comes at a high cost that's mostly paid by devs.

I agree wholeheartedly with you. I'm by no means suggesting we move back to waterfall, but I am really enjoying the work I'm doing more and more of lately: embedded. Nominally it's a sort of Agile-type workflow (Kanban-ish), but because there's hardware design and manufacturing in the loop, things get planned out early and the multi-month plan doesn't change very much. New algorithm ideas pop up and get scheduled, new ways of doing sensor filtering pop up and get scheduled, but the direction of the wind doesn't change at the start of every "sprint". There are no sprints, just a prioritized/sequenced task list that gets reevaluated periodically.

(Plus, I get to go back to my old days C-hacker roots. The thing builds with a Makefile and spits out a ~32kB binary that gets flashed onto the device.)

>I'm by no means suggesting we move back to waterfall

I've always thought this was a red herring for scrum people to smack dissenters with. I've never done a strict waterfall with unyielding changes. Before agile, we would do 3 month release cycles. We prioritized what we wanted to get done in the 3 months and what we didn't get finished fell off to the next cycle. This was done in BigCompanyYou'veHeardOf and SmallSoftwareDevelopmentCo.

In my experience, waterfall project plans were never meant to be in stone, they were just a guide to give us an idea of what the project looked like. I've done a 3 year plan too. I'm sure some places implemented it strictly, probably government or heavily bureaucratic institutions.

How did you get into that space? What was your background? I hope you don’t mind me asking.

I don't mind at all! Although I hate the question, because it's not a particularly actionable answer for most.

I started writing out the whole story, but in a nutshell: my formal background is a dual EE/CompSci bachelors, followed by an Masters in CompSci that focused on distributed systems. When I was a kid, I learned to program very young: Basic around 8, C in DOS around 11, C on Linux around 13. I fiddled with electronics some, but didn't really get it. I took the EE part of my schooling specifically because I wanted to learn more about how computers worked "under the hood" so to speak.

From there, I ran a web consultancy for a while, and ended up with a client that had a more math-heavy project. And then another client showed up with a project where a microcontroller made sense, and then another... My business partner was moving across the country, and I was enjoying what I was working on quite a bit more than I was in the web/mobile space, so we decided to part ways. I still do the occasional web/mobile project, but they're generally hardware-related (e.g. the Bluetooth connectivity portion of an IoT-type system). Over the years I've accumulated probably $15-20k worth of equipment and software license, and the customers keep showing up!

That's great, thanks for sharing!

We have similar backgrounds in a way. I started coding as a kid too, at age 9. First Basic, then Pascal. Picked up C in my teens. Also tinkered with electronics and was part of an online robotics mailing list that was a lot of fun. It was very hard for me to get parts, living in the middle of nowhere in rural Southern Brazil, but some folks in the mailing list were super cool and shipped me parts from the US. I live in the US now.

I'm a CS major but took electives in embedded systems in college, and those were some of the most enjoyable classes I took. I'm now working on recalling some of that. Ordered some PIC parts and I'm currently taking an edX course on ARM programming.

My only problem right now is, I have no idea how I'd get into that space having a whole career built on server-side software.

That's awesome. I was an electronic fiddler as well as a kid, CS student, and it landed me a gig building IOT devices back in 2016. Unfortunately that company crashed, and I ended up in "cloud" systems stuff.

If you ever need any new hires... /u/cblum and I would like to have a word


I'd add open office plans to this. It's awful. You never quite get to focus, you don't build the rapport with your team, you don't get to customize your physical environment. Development really became a white collar version of the assembly line.

It's kind of weird by now. They will happily offer you $200k in annual salary, but an office with a window where you could keep a potted plant is out of the question.

"remember that sad library basement with the rows of depressing tables and power strips where you cried during finals in undergrad? welcome to your office for your next 40 years."

If those rows of depressing tables and power strips are akin to open-plan offices and free desks, then the carrel desk is like the cubicle.

I've always loved the carrel desk. It seems perfectly designed to encourage the state of flow in its occupant.


exactly, what the hell is that about?

is it a form of abuse like trying to keep everyone under control? is it a form of psychological conditioning to remind you that you just a resource whose top priority is to be interrupted at any time so knowing that you don't really have any personal space sovereignty or privacy to your own thoughts or creativity but that you must answer and create only for the collective?

I don't feel I have a clear picture on what it's about any insights?

I can't say for certain, but I would guess it has something to do with the idea that all people must be available to each other at all times for the sake of raw productivity. So if there is a problem there is no time to wait. You just walk right up to the person you need to speak with and get it resolved then and there.

Open offices facilitate that feeling of persistent accessibility and production. No closed doors to slow anyone down, and no notion that you are there to do anything but work every minute of every day. So why on Earth would anyone need privacy?

This is full-on agile ethos. And, for the same reason, agile is also responsible for the reversal of telecommute policies at some companies.

You make a valid point. And I believe open office spaces are wrong for the same reasons that I believe agile is wrong: both assume that all work is fundamentally similar.

When I call someone and in the background I can hear 20 other people talk, I immediately assume that the person I called is not considered important in his/her company. Because high-level work needs uninterrupted quiet time.

For agile, it's similar. When you stop having different roles, then you implicitly assume that your lead architect and your junior trainee can do the same work, albeit at different speeds. If your architect has useful experience, that's an insult. Or it means that your entire product is simplistic enough to be built purely by trainees.

So both open office and agile effectively reduce your programmers to expendable grunts.

I have read somewhere that there is often _less_ face-to-face communication in an open landscape than with single offices. Possible reasons include an unwillingness to disturb everyone else, and that people in such situations tend to turn inward in order to isolate themselves from everything and everyone around them.

Also (and somewhat contradictory to the above), I expect that, if your colleagues are _too_ easily available, you'll be running to them with a half baked question in your head, only to blurt it out before realising you didn't think it through, and wasting both their time and your own. But before you go knocking on someone's office door to ask a question, you really want to be sure that you know what you want to ask, and that you understand the problem well enough for the answer to make sense to you. Which leads to a better conversation, less time wasted, and better learning.

In practice, this sucks. I have been both the asker and the reciever of the open floorspace surprise question. The reciever looses their train of thought and will struggle to give a decent answer off the cuff, the asker gets a shitty response as a result, and probably has to ask someone else more questions. Far better would be an email, and definitely not slack.

I understand but I think this is wrong. there's a benefit to asynchronous work and having multiple tasks in your queue that you're chipping away at its like the idea of task scheduling on a single processor I just think asynchronous is fundamentally more efficient for humans because they can maximize their productivity per task. And asynchronous "get back to you" allows there to be like a homeostatic equilibrium of priorities and allows everyone everything to get addressed. like hardware interrupts, and giving everyone that power, when it has a knock-on effect as well to whatever you working on it just doesn't make sense to me as something smart. I think it decreases productivity.

I believe the idea is that you don't notice time passing in an environment with purely artificial light, so you'll stay longer, work more. It's kind of the same reason why casinos and chicken farms don't have windows, either.

It's a cost saving measure justified by facilitating communication evoked by people who do nothing but "communicate" for a living.

Cost saving's probably what is is, eh? Why should the cattle/chattel have their own pens/stables? Let's just put them all in their together.

The crazy extension of this is "free desks" where basically every place is a workstation, and you don't have any space to call your own.

This is something I see people railing against all the time here. I'm young and new to the industry so I've never experienced anything other than open-plan offices. So maybe I just don't know what I'm missing out on but the idea of private offices/cubicles is really unappealing to me. I really like collaboration spaces, being able to see people's faces, being social, bouncing ideas off each other, pair programming etc. If I really need to put my head down and do some quiet work I can put some headphones on or move my laptop to a booth or quiet space. So I really don't see what the problem with open-plan is but I'm open to being convinced I'm wrong.

I have similar views on wfh, fwiw. Like 1-2 days a week is fine for me but full time remote is far too isolating IMO.

Back when I had a cubicle, I had a second chair and a white board in my cube, and people would come for a visit when they wanted to talk about something, and we'd draw on the whiteboard, and we were social and bouncing ideas off each other. Now, I'm in an open floor plan office, and when the guy who sits literally next to me wants to talk to me, he sends me something over slack. I think people don't want to disturb each other in an open floor plan office, so they rely on these IM tools more? I don't know, but I know it's way, way less social now than it was when I had my cube.

But what about the serendipitous things, like the unplanned conversations that lead to fruitful ideas, or the guy you're not directly speaking to overhearing your conversation and solving your problem for you? It seems to me you would lose all of that in an environment where you have to deliberately make the effort to enter someone else's closed space to talk to them.

Those still happen in common spaces, having an office or a cubicle won't eliminate those. The difference is, with your own space you can do deep work on your own terms. No longer is your train of thought constantly interrupted, and if someone does have a question or wants to meet or just hang out and shoot the shit, they can shoot you an email for a good time where you can devote them your full attention. Academia doesn't have this problem of isolation of ideas, and every professor there is has an office. Communicating to your colleagues is a company culture issue, not a physical space issue.

Fresh out of undergrad, open office layouts feel familiar to the long hours spent sitting at big tables in library basements, so I can see why some people like it initially. After a few years, you will be pining for four walls and a door to get anything done.

Fair enough, it obviously works for you. But on just a couple of points:

> The difference is, with your own space you can do deep work on your own terms. No longer is your train of thought constantly interrupted

What's wrong with headphones for deep work? Or appreciate not everyone has these, but where I work atm we have small 'quiet zone' booths where you can take your laptop if you really want to focus deeply.

As for being interrupted, again maybe it's just a company culture thing. Where I work people are generally pretty respectful if they see you with headphones on intensely focused on something, they'll probably just ping you a message on slack asking when's good to talk. But equally if people have headphones off, open body language- everyone feels happy to strike up conversation and there are no barriers in the way of collaboration.

I'm not sure i can convince you, but I can say that going to school in the 70's and 80s was a completely different experience. We did a minimum amount of group work. Homework was not done collaboratively.

So to my generation, this bouncing ideas thing is less of a requirement because we're used to doing our own work.

If you look at scientific papers from fifty years ago, most had just a few authors, now many of them list eight or ten.

The team approach seems to be taking over the world. However, I would point out that most truly great work, think Nobel prize, or truly awesome engineering work (K&R, UNIX) has till now mostly been achieved by individuals or by small teams, and that there was a lot of focused individual effort put into them.

I don't mean to sound condescending at all, because the young are going to win out by default, you guys are the future and we are the dinosaurs. You preferences and work habits will become the correct ones (whether they are better or not).

However, I would suggest that you like open plan environments because this preference has been trained into you since early grade school.

Private offices suck. The environment you want is ~5 developers per office. You get to build rapport with your coworkers, customize the physical space together, collaborate, differentiate yourselves from other teams. But you don't have to deal with Heather in recruiting telling Judy about the details of her wedding dress.

Fortunately it looks like open office plans will be a casualty of COVID-19...

I don't really care about CI/CD (they just run), Git (better than project_name_final-03 on an unsecured ftp server), or TDD (just cheat and write post hoc tests).

What I really hate is filling in form A, which directs you to form B, which you fill in to see whether form C is required. Form B was put in place by a legal team, who don't provide any point of contact, and who are not your friendly local legal team.

Because the process of filling out forms is so time-consuming, your engineering team uses Asana to track it. However, your PMs use an excel spreadsheet, the legal team uses JIRA, your copywriters use a google doc, and the teams that own forms B and C use separate internally created tools. You update your form-filling progress in 6 different places, some of which have bugs and others of which aren't actively monitored, so you also have to use email/slack/skype messages to follow up the right people. Some of the right people are actually the wrong people. Some of the right people reject your proposal because they didn't read it properly. A few of them reject your proposal for reasons that are actually valid, but which you could not possibly have known, because they're based on tribal knowledge which is not documented anywhere.

Filling in the forms and fixing the issues takes literally 3 months and at least 4 group meetings as well as several skype/zoom calls. One day you are finally allowed to write the code. It's 150 lines including tests, across two services, and you're done in two days. Everything that caused your proposal to be rejected would have been found in development. You quietly wonder whether you would have been happier as a bricklayer.

I relate to this so much. At my work I have trying to a create a TABLE in a database for two weeks now. There is now 4 people involved in getting me the proper privileges to create the TABLE. It's weird how trivial things can spin into these horrible processes.

That kind of bureaucracy predates agile, but it may have increased in some places as people try to grapple with the chaos of endless sprint cycles and continuous change. i.e. trying to figure how to manage the madness. But, I don't see how your shop can be agile with that level of bureaucracy?

Anyway, I think my comments on CI/CD, Git, etc are being misconstrued. I'm not saying they don't have value. I'm saying they are frequently part of an ethos that leads to developer burnout.

For instance, your CI/CID process is one you must "appease", along with the rest of the bureaucracy. It may not feel as odious (and may even seem a relief, relatively speaking), but it contributes to your total load.

And, Git is fine. In fact, perhaps even perfect for the current culture (in philosophy, if not always in execution). Each developer has his/her own repo, you can work offline, you merge instead of locking check-outs, etc. But, that's the trick: it feels perfect because it allows you to work in the always-on philosophy of agile. Its popularity sprang up because this world of high burn-out, constant productivity demands it.

So, we can see the utility of these things and even appreciate them. But, the model they enable and expectations they create can still ultimately lead devs to burnout.

> Likewise, with CI/CD. And don't get me started on the monkey-work that is TDD. You might argue that it improves code quality. But, it's hard to make the case that it improves job satisfaction. If you move more work from the creative, problem-solving bucket into the busy-work bucket, the result will not be personal fulfillment.

A lot of the comments in this thread are pretty funny to me. CI systems are awesome when they are working. It is a real pain in the ass not knowing when something is broken or not being able to find out when it broke.

Similarly, writing good tests is really helpful for me. I do this even on my own personal projects.

These things are so helpful to me that these comments are like reading about people who hate source control.

>CI systems are awesome when they are working.

>writing good tests is really helpful for me

I'd wager it's partly generational. If you came up in the agile world, then you likely see the upside but not the down since there's no reference point for the latter. Because, of course it's cool that these CI build processes kick off at commit points (or whatever). And, of course, the near instantaneous feedback that something is broken is more efficient than awaiting a nightly build. OTOH, we were much more cautious about the code we checked in because the stakes were higher and you didn't want to be the heel who broke the build. "Move fast and break things" was not a thing. Instead, "be thoughtful about what you're claiming to be good code" was the ethos.

But, this is not an argument about efficiency or whether these things can be made to work. The argument is about the cost to the developer of all of these things in sum, and the philosophy they serve.

Likewise with TDD. I'm not arguing that tests don't help code quality and I've heard others say they like writing them. YMMV and all that. But, it's more load on the developer and I've definitely seen it overdone.

So, again, without the reference of a "saner" world then you don't likely have the context to fully appreciate these costs. I see them, though, and frequently hear them when people complain about burnout. It's not CI/CD or TDD or whatever that's the problem. It's that these things are frequently used less as tools and more as the instruments of a philosophy that plugs developers in alongside them as just another part of the never-ending pipeline.

I disagree pretty strongly with your analysis. I have experience winging it without tests and CI systems. Of course it's not impossible or all bad, I still did it at the time because it was fun and I didn't know better.

Then I started working at a big company with a good engineering culture, I learned about writing tests and related tools, and had a much better experience. Now working without these things feels like driving without a seat belt, or maybe using a grinder without safety glasses (car accidents are too rare to be similar to bugs being introduced...).

I still have fun writing personal projects. It's just better with tests and CI. It sounds like you are pointing at issues with management styles that just happen to exist at the same time as useful tools like this, but I think they are almost if not completely orthogonal.

I hear you. My point here is not that every non-agile company is better than every agile company.

Not sure I'm getting my actual point across though so, rather than repeat myself, I'll just say the "continuous" part of CI/CD has implications on us as humans that are difficult to fulfill over the long-term. So, maybe really consider that word continuous in this context. We're just not made to be cogs in an automation pipeline that never ends, which is essentially where the philosophy (and its enabling tools) places us.

So, it can feel fine and you can see the merits of the tools, etc. But, none of that precludes the burnout that so many devs ultimately face over time.

I think for TDD, CI and CD really depends. When it makes my job easier? Sure.

A quick test framework that doesn't require too much boilerplate, a Github Actions CI that runs in a few seconds and help me, continuous deliver that has everything figured out for me?

I think those are a net positive.

When it makes my job a living hell? Nope.

A CI that takes 40 minutes to run? A CD that requires manual intervention and has "a line" of builds and you have to babysit your build? Testing that requires multiple lines of boilerplate?

Then I'd rather live without those things.

Now... don't get me started about JIRA and other tools, which are a tool for micromanagement.

Thats exactly what i did while working on dreaded big data. Got myself a microcontroller, implemented a small arm console and write fucking low level C code optimized the heck of cpu cycles for tiny games, no code reuse, no interfaced, no deadlines, no refacto, no security, no network, no politics. Barely version control (with appropriate "update" commit messages). Kept me sane while doing those things at work.

+1 on the small 1-2 weekend tangible projects, that you may have wanted to build before, but never got to, they are great for morale.

This weekend I implemented RS232-powered RGB LED that is controlled attiny85, which reacts to strings sent to that very same RS232. A gross violation of standard, probably, but it works! It definitely added a lot of joy.

I typed “git init” only after I finished the first working version which had a regular One-color LED, and could not yet do blinking :-)

For even more fun with low level breaking of standards, bit-banging rs232 is fun and very doable. Don't use timers for timing either, just spin the cpu the right number of times. :)

This project actually does decode of Rs232 data, with the special prefix triggering the interpreter mode where you can control the color and delay between the cycles. Only ground and TX pins are used to connect. Oh, and no interrupts - poll for the start bit while running the currently programmed light animation cycle :-)

One thing that made the development of it all immensely easier was having a Saleae logic analyzer. Highly recommend it (no affiliation, just a happy customer).

I have a similar dream, but it involves starting from the ground up:

- Implement a CPU and peripherals in an FPGA

- Throw together an OS

- Make a handheld game console

Why? Because it would be fun to remind myself of the "first principals" (not talking physics here) and play around with it.

For now, I'm playing around with Raylib [0] and Allegro [1] which are C game libraries.

Do you have a link to your console hardware?

0: https://github.com/raysan5/raylib

1: https://liballeg.org/

sure : https://github.com/makapuf/bitbox (see also many small repos for games, most of those being unfinished, as expected)

I feel fortunate to have chosen embedded software as the career path. 10 years in industry now and never had a dull moment (though I've had some bad colleagues/clients). I work inside a terminal all day, no GUI (even use GDB TUI), and somehow never get bored of it. I think having a physical entity responding to your code immediately (blinking LED for example) keeps the programmer interested.

> Barely version control (with appropriate "update" commit messages). Kept me sane

Does not sound like it would keep me sane…

Interesting, I’m on the same boat. Embedded systems and low-level coding are my beacons of sanity.

In my field you're describing "playing the game", ironically.

In academia the aim is to get a proof of principal, write a short paper, and move on. If you care about reusable code you are building a foundation for someone else's success, but not necessarily your own.

Neither side is wrong, it's just a different game.

This! (And wait until you figure out there’s a lot of real companies running like that..)

I would say to also work in a domain you care about and like. I don’t like technology for technology sake and never did.

I like solving problems and see technology as a tool to do so. I love the company I work for, the people and the problems we get to solve. I love even more when I solve them without the need to write a single line of code.

This is really, really bad advice. Mutiny is hardly an answer to the problem here. It will certainly temporarily avoid the problems you face but if you are a member of a team and this is truly how you act you will get chucked out very quickly. But since you bring up a few of the issues you are facing it's important to address them. I want to focus on unit tests to start.

When I started my first programming job a couple of years ago I joined a team that demanded 100% code coverage. I hated them so much. I was still learning the ropes at this company and I only saw the unit tests as a barrier to getting my work done and earning my paycheck. My first solution was to create bogus tests that always passed. That was quickly discovered and I was reprimanded. My second solution was to get colleagues who shared my hate for unit tests to approve my PRs before they were reviewed by my team. That too was thwarted.

Then one day I was working with a teammate on a new feature and we discovered a bug. He quickly opened up a test file and wrote a unit test, then he went tried a couple solutions until the test turned green. Then he looked at me and said, "When when you are working in a pile of crap, testing makes you feel more confident about your code." That was my first insight into the value of testing. Eventually I came around and stopped trying to avoid tests. I just did the damn work. Once I established trust with my teammates they began to let the pressure off my PRs and slowly the displeasure of writing tests went away.

You pointed out a few different coding practices that frustrate you. And to be honest, those coding practices are not the gospel and should be deployed only when truly needed. However I think you have a serious problem with what a lot of us call being a good teammate. At the end of the day your goal should be to get the product shipped, once you focus on getting your features out the door, unit testing and pull requests become minor details in that process. At the end of the day those are just a cutesy to your teammates to show them that you are willing to be a responsible and helpful team member. Stop trying to fight everyone so much and maybe you will enjoy your job a little more.

The person you are replying to isn't suggesting to not do these things while working as a programmer professionally.

I don't think the GP's advice is meant for team projects.

> "Don't make enterprise software. [...] Don't accept pull requests. Simply write software for yourself and have fun doing it."

That's how I read it too.

I've recently started doing that and it's been a breath of fresh air.

I don't really like the stuff I work with, which is services. I think I've become good at it given the feedback I get from my peers every review cycle, but I really don't like it.

I felt burned out for a long time because of that.

Recently I've simply been doing what I'm interested in, in my spare time. That's learning about embedded systems, something I had an interest in in college but never pursued a career. And for fun, tinkering with old stuff that makes me nostalgic. I spent this last weekend coding in Pascal and messing around with FreeDOS :)

It's hard to do just the fun stuff because that's not what makes good software. It's the unit tests and pull reviews and such that make the software reliable and covering all the niggling edge cases. And that ultimately is what makes a piece of software good.

Not so sure about that. Unit tests and pull reviews are stopgaps so that you don't have to hire 1000x engineers just to get some work done. The true masters of this craft may not need those things

Believe it or not "all the edge cases" can still be perceived by the right mind. It's just that we as an industry have done seemingly everything we can to push those folks out, just look at OP as an example

I've supported ten-digits-per-year (non-SAAS) businesses without unit tests or code reviews and oftentimes deploying straight to production. As the sole SWE for my codebase. Supporting hundreds of remote installations with nothing more than SSH tunnels relayed through an ancient, colocated linux box. And the software was very good, didn't ship with many bugs (and when it did they got fixed real quick), and there were never any catastrophic, non-recoverable issues, nor ever any questions on the integrity of the system or my reporting. We were never seriously hacked (to our knowledge). Crazy times... not sure I would do it again, but.... it can be done.

My first dev job we did most of our work in vim sessions on the development server, and more than once I was asked to hotfix live code running in production. Through the grace of God and an abundance of caution nothing ever seriously blew up as a result of all this madness. (Though, ask my boss about the time he tried to move our MySQL instance onto some very early SSDs) Again, it can be done. I'm sure most of the old hats lying around have tons of stories like this.

If your expectations are not shipping with many bugs and avoiding serious blow ups then yes that's a fine way to do things. And if we're happy relying on a single SWE (what happens if you get hit by the proverbial bus?) then yes that's fine too. And if we never need to scale then SSHing into 100s of boxes is fine too.

Most of my job is replacing stuff like you describe. And it's definitely not fine. Nobody knows how it works because that single SWE is gone. It can't scale with the business and it's a huge drag on productivity because nothing can change without a massive testing effort to ensure it's not broken.

Agreed, but who can you really get mad at? The lone, inevitably overworked SWE that was asked to shoulder the entire burden of the business he worked for? Or management, who most likely denied that SWE the support he wanted?

In my last job I'd advocate tirelessly for unit tests, code reviews, all that. And it was always denied. Ironic given that the other engineers I worked with were MEs, who had notebooks full of processes describing how they were to work so that engineering issues would be caught. But the software? "I don't care how you do it, just ship the feature"

As an aside, I've always found "nobody knows how it worked because XXXXX is gone" to be kind of funny: the code knows, so go read the code. It'll mean everything takes 100x longer but the knowledge is there.

> In my last job I'd advocate tirelessly for unit tests, code reviews, all that. And it was always denied.

My approach to that is to not ask, just write the unit tests anyways, ask a peer to code review without management permission, etc.

We are professionals. Part of that responsibility is to know the best practices for our craft and put them into practice.

We also need to be good at getting the requirements from the technical and non-technical people we work with, and being able to show consistent, incremental progress, and a willingness to quickly change direction when the requirements change.

But we do not need to get input or permission for the process we use to produce those results.

> Agreed, but who can you really get mad at? The lone, inevitably overworked SWE that was asked to shoulder the entire burden of the business he worked for? Or management, who most likely denied that SWE the support he wanted?

There are plenty of SWEs that just don't know any better. I know because I was one of them while writing a lot of software for a business.

I don’t really expect just to do the fun stuff at work, but modern technology seems to progressively burn me out more and more.

I was drawn to software at a time when it seemed like we had control over things. With the advent of the cloud I feel like that control keeps slipping away more and more. Kubernetes is my new nemesis. I seem to be in the minority that perceives it as unnecessarily complex for most tasks. Someone once commented here on HN that the k8s trend made them think people are trying to pretend their code doesn’t run on hardware anymore, and that really resonated with me.

> I seem to be in the minority that perceives it as unnecessarily complex for most tasks.

My boss recently introduced Kubernetes to our software deployment.

The first thing he said, though, is if you don't absolutely need Kubernetes, don't use it. It is extremely complicated and finicky and difficult to deploy correctly, and can bite you in subtle ways.

Then he went on to describe, for our problems, how Kubernetes was absolutely necessary to scale without constant manual intervention and configuration and deployment processes consuming our time.

I appreciated that he had thoroughly thought through the problem before adding more complexity.

That's really cool of him.

I do think there are options to achieve all of that - scale without manual intervention, etc. - without Kubernetes though. At least where I work, if I look at the deployment issues we have, those are all the product of bad decisions and lack of action due to higher priorities. There's no reason why there couldn't be more automation. They're building something new on Kubernetes which looks promising (though I really hope that as an app developer I don't have to think of Kubernetes things, which just irk me), but the current platform would work well too if investment was made into automating the parts that aren't automated.

> I do think there are options to achieve all of that - scale without manual intervention, etc. - without Kubernetes though.

Indeed. Haven't people been doing that since, well, cloud computing?

Counterpoint: Before the late 90s, neither of these things were common at all, yet great software existed.

> covering all the niggling edge cases

You don't have to always cover all the edge cases. If you write software for fun, you can often just bake-in assumptions and neglect a lot of edge cases.

Yeah, this isn't for work, this is meant to reignite your passion via personal programming.

While I dabbled with python and Delphi for a bit,my first real development was on Salesforce platform with their proprietary language called Apex. The first thing every developer learns on thos platform is that your code has to have at least 75% test coverage before it can be pushed to production.Testing was inevitable and ultimately part of anything I had to write. With time,I started reading more and more about development, tried different languages and etc.It was really fascinating to read how a lot of people hate testing or teams skip them if the deadlines need to be met. What testing taught me is that if the test is hard to write,it means that the code is crap.Every time I wrote some quick hack,it used to take me 10 times longer to write unit test.

But what do you do if your initial codebase is crap. You literally cannot test until you refactor 50% of it into something semi-sensible.

Short version: you find very small things that you can write tests around (pulling messy logic out into testable functions, writing tested utilities that replace dirty hacks, etc.) and start building your testing framework starting with that.

Long version: Working Effectively with Legacy Code Book by Michael C. Feathers

It’s almost always bad as a new guy to come in and start refactoring.

There are lots of weird if checks to deal with a vendor that returns bad data over the api every Sunday night. Your new clean code is going to crash and burn in all of these cases.

That is not an argument against unit testing. That is an argument for applying it from the beginning…

Then refactor 50% of it.

Unit tests are time-consuming and tedious to write, and generally deliver poor effort-per-bug-found except for initial development (especially since they often displace cross-component tests which tend to catch more bugs). And the cases they test simply reflect the prejudices and lack of imagination of the author. A far better alternative IME is to use generative testing (e.g. property-based testing), which automates the tedium of generating test cases, and finds far more bugs to boot. Bonus: you'll understand your code much better after you're forced to identify and formalize invariants ("properties") in order to write your tests!

This is advice meant for personal projects, not work. Sorry if I didn't make that clear enough, but I thought it would be clear from context.

Dang, my question was going to be, if you have found the secret to monetizing that kind of thing :)

I think it is excellent advice for someone who work by themselves and try to find some joy in coding after being in a rut. Yes, some conventions do emerge when being in a large team, it is inevitable, but this is not what this guy needs. Git + Trello is enough for personal projects or small teams. Anything else is a bonus or something you will add down the road and that includes testing or whatever other best practices. There are many jobs, especially in a non tech environments where you can be a sole dev or a part of a very small team, real small and mid businesses that generate value and are much more fun to work for for certain types of personality.

This comment resonates with me. I've been to meetings where we spent hours and discussed these things. I tend to ignore them and do as instructed. The work is pretty boring. But I get paid for it. I think my peers don't like me. I don't blend in. I'm not part of the culture. I will eventually get dismissed. But I'm not mad or angry. I move on to the next project where I contribute more effectively.

We need to accept change. Your company eventually will move you to a new project or dismiss you. They need to put your software baby on maintenance and squeeze out the last bucks before they shut it down. Life continues with or without you. If you become pro-active, you'll have a fun ride with it.

There has been a lot of cargo-culted best practice in the last 5-10 years that is unjustified busy-work. I have a little secret in the same vain. I turn off all email notifications, and have no apps on my phone. Never been an issue. I just check the source when it makes sense during my work day. No more senseless interruptions, no worrying about things that aren't actually on my agenda. A smooth workflow and peace of mind.

Rails was engineered around developer happiness, and I kind of miss those days. And while React is cool I'm still kind of resentful that companies insist on using React and adding a whole Node env when basic jQuery would have done the job.

Web development could be stupidly simple if we wanted it to be. I feel like it got too easy, and suddenly there were waves of bootcamp grads, and a lot of developers resented that.

Well, I refuse to use Javascript because I hate it, and it's ecosystem, and I've managed to do just fine job-wise. I think not doing JS is still an option.

This. and let's add: don't use fancy frameworks (that are cool and popular) that cause many headaches for you down the road.

> just do whatever you want in the moment, bit by bit

I thought we were talking about technology. You gave a recipe for spaghetti.

Sometimes making up a nice plate of spaghetti is just the thing to help get you through a rough time.

Engineering has its place. But you can also make art with an engine lathe, and doing just that every now and again can be a balm to the soul.

I like it. Jean Paul Sartre but for coders.

> Don't write unit tests.

I have written personal projects both with and without tests and every single time I don't write them I wish I had, usually pretty quickly. The time you save by not writing those first few tests always seems to be lost, and then some, pretty quickly in the extra manual testing that is required.

This is the best and worst part about open source dev.

Pro: You can do whatever you want

Con: You can do whatever you want (including things that will bite you in the ass later)

I've also noticed that AI/ML falls into the exact same pit because many folks there are cowboy coding

I think that it would be difficult to keep a job following that approach.

> Don't write unit tests. Don't accept pull requests. Simply write software for yourself and have fun doing it.

There's a careful balance here though right? For most projects your first users or clients are the unit tests. Why not have a future of repeatable client/user tests that insulate from regressions and to be your wingman to navigate future iterations? Also for me, I still review and accept my own pull requests on solo projects, because it is that last step when working on my own where I know I'm at a good point looking at my diffs and the last step in introducing mistakes.

You are sooo missing the point...

Lets change the story to be about an artist being burnt out of art industry. Suddenly he has to deal with all the grant money, politics of the gallery etc. Feels like he doesn't want to do anything with art anymore.

And somebody in the thread suggests the artist just go to the nature and paint and don't think about any art styles and acceptance of peers and trends and etc. Just give yourself to painting and don't think about anything. Just paint with a coal on stones and loose yourself in it.

And you comment would be something like "There's a balance here though, you still need to paint on canvas with acrylic or something, otherwise you won't be able to validate your art in the future for you to progress etc."

But, what if you want to improve? What if you actually want to write better code? Robust code is something you earn.

But what is good code? What is bad code? I know what is slow code and what is fast, but not always fast is good and slow bad. So basically, good/bad code is mainly around maintainability. And if you are the only person that maintains it and can maintain it then you only need the code to be 'as good' as your ability to retain the memory of it's structure.

I don't know how your comment is contributing to the conversation. No one asked about the definition of good code. The definition was assumed to be understood.

Asking "but what if?" without actually making the point you think is implied in that rhetorical question isn't much of a conversation to begin with.

That does not justify an irrelevant answer. If something it not understood then questions should be asked.

But what if all the stuff that you've described is the most fun part of writing software?...

Thats how some places operate by default.

This is awesome. You, sir, took the red pill. BTW, do you work for Tesla? The batteries in your name.

I worked with Tesla grid batteries (powerpack installations) at my last job, but I'm currently looking for work. I just got tired of "engineering" my personal projects, i just "program" them now!

That's a great approach. I personally enjoy coding novel or obscure data structures which I'd never get to implement at work, but hopefully might be useful to someone.

That's generally an unpopular and unwelcome opinion here, but I agree with you 100%. edit: and i'll happily take those downvotes, they are delicious thank you.

Not on this story. Those other folks are too busy configuring stuff, arguing about curl website/script.sh | sh, and building microservices to feel burnt out yet.

you are not getting downvotes because people are disagreeing with you

No unit tests?? You should just recommend never running your code if that's where you're going.

The thing that unit tests are really good for is providing a safety net when you make changes. And I love them. I have a few multi-year projects that sit and do their thing for months at a time with no changes; when I come back to them with a client request, the test suite is awesome for making sure that whatever I just changed didn't break something else (alternatively, the tests point out an assumption I made when writing the tests and the test needs to be changed). Either way, I appreciate it. Especially when there've been changes done by other people that I wasn't aware of.

Buuuuut... a lot of the personal projects I've worked on have zero unit tests. Maybe they have a couple of tests around a complicated algorithm, but mostly... no automated testing. What they do have though is a) version control, and b) a fast-iteration platform underneath them. They're also generally well factorered into small chunks.

As an example, I have a package that takes an org-mode file and extracts time entries to drive into time tracking software a client uses. Written in Lisp, zero tests. Every month I fire it up, look at the table of entries it's about to post, and hit "go". Looking at the table of entries provides two sanity checks: first, that I properly logged my hours that month (I'll occasionally forget to clock out for a weekend and rack up a 48 hour time log), and second, that it didn't encounter a bug while doing the processing. As of around September of last year, this program is done, and does its job perfectly every month.

Another example, also in Lisp, is used for making estimates for my clients. I give it a list of tasks with 3-point estimates, it churns through and calculates all the means and standard deviations, generates a file for Pandoc to consume, and spits out a PDF. I use it every couple of months. No tests, all done inside the SBCL repl. I obviously proofread the output PDF before sending it to a client, but that's again to check for bugs and to check for brain farts.

I've worked on great codebases that have giant test suites, and I've worked on terrible codebases that have giant test suites. And likewise for no test suites. While I appreciate the sentiment, I think it's dangerous to talk in absolutes like that. While I agree there is probably some degree of correlation between whether or not a codebase has a unit test suite and whether it's good code, writing unit tests does not intrinsically make the codebase good, and not writing unit tests does not intrinsically make a codebase bad.

> The thing that unit tests are really good for is providing a safety net when you make changes

In all projects I have worked on, extensive unit tests were not a safety net against regressions, but a safety net against change.

> but a safety net against change

Heh, yeah, that's fair, although I think there's some nuance in terms: accidental changes (to things that were working) is a form of regression in my mind. Depending on how the codebase is structured, changing the tests to match the new desired behaviour might be trivial or might be excruciatingly complicated. These days (mentioned elsewhere in this discussion) I'm working on more embedded stuff, and the only time I'm generally writing unit tests are for things that shouldn't change.

As an example, last year I was working on a custom LoRaWAN stack. As I was building out the various pieces, I was writing tests to verify that the output from generally-pure functions came out as expected. (This packet) + (This key) = (This encrypted packet). Those kinds of tests help a ton for catching stupid mistakes.

Not having unit tests doesn’t imply not testing nor suggest anything about the value of testing.

I think a lot of people miss this point entirely. Before the unit test thing, I would always have a tester project, it just wasn't formal or automated.

I see good value in modern unit tests when you are building some sort of automation engine, rules engine, etc. But I think a lot of people see them as a hammer and everything is a nail.

Yup, in my domain (games) unit tests are common for functionality that is easily applicable to them (e.g. linear algebra libraries) then integration tests are more common for systems (e.g. testing collision systems integration with the game engine, do you get the right callbacks or whatever) but once you hit the game itself automated testing is not massively useful as it's usually painful to setup and maintain and only covers "does this case still work" with no information on how good the end product actually is.

IMO a lot of places have forgotten the value of manual testing in terms of not only finding bugs but actually understanding how the product is used. Games companies prize iteration speed in terms of how quickly you can test a change in situ because we as game makers need to verify our changes by playing the game. I'm making a multiplayer game right now so I need to make sure what I do works on the server and clients which usually necessitates three copies of the game running together. Then we playtest it with a larger group weekly and playtest with even larger groups less regularly.

My impression of a lot of modern development elsewhere is that as soon as automated tests are green the code gets punted into production which seems utterly bonkers.

I think this is a natural reaction to advice being over prescribed and totally agree that in your free time you should do whatever it is you want and this is solid advice.

BUT I think we should also acknowledge that everything that slows you down in your free time has a reason for existing and most of that is communication or knowledge sharing within a team. Naming conventions, unit tests, and general documentation all exist to help other team members keep up with the pace of changes in the repository. If you're not planning to do something in a team setting or for this to be consumed outside of the work that you do then you don't need these things. But if you want to share with everyone else it's important that you don't totally ignore these things because it will come back to bite you in the long run.

The idea is to stop trying to make it easier to share and others to use and just write something that works for you.

Kinda like the idea for personal. Why spend so much effort to structure projects so others can use when chances are they won't or you don't care if they do. Work is governed by different realities.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact