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.
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.
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.
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.
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 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.
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>
</ul>
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.
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 :)
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.
> 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".
> 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).
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.
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.
> 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.
> 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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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 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 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 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.
"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."
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.
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.
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.
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.
> 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.
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.
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 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 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
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.
>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.
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.
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.
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.
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.
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.
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.
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.
> 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.
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 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.
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.
> 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.
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".
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.
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 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.
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.
I still don’t understand what react is. can I use react + golang and no nodejs? it seems like every guide assumes I want to use nodejs and I don’t. can I use react and php?
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.
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.
Perhaps you need to find a new domain where you could apply your skills.
Why not inventing computer models of diseases for the drug research.
The FDA has already accepted a model in place of an expensive clinical trial.
https://en.wikipedia.org/wiki/Modelling_biological_systems
As there is not really an educational background given, I'd suggest learning a new programming language or starting with SICP or other cool programming books, which have the potential to give the reader and eager learner many "Aha!" moments and insights. That should make programming interesting again. There is always more to learn about code and programming.
Or alternatively, do something else, until you get an interesting idea or need a tool for what you actually want to deal with and code it up. This can reinforce both, programming and the actual activity, that one wanted to do.
I think the only answer here is to stop clinging onto this 'life' you have.
The optimism you're seeking comes from looking forward to today, right now. Right here, right now.
Everything is the present moment. If you do not find yourself in the present moment - this could be due to the weight of money, weight of the future, weight of obligations - then abandon it all.
You don't need anything. Just reclaim the time that is yours. If you have enough runway for a year, that's all you need. Think about it. Would you rather have 20 more years of this 'hint of dissatisfaction', or just one year of bliss? If not bliss, at least closer to what once was, where we all come from. Just people trying to have fun and not think of larger consequences.
I would get off of anti-depressants, too.
I did throw everything away. I walked away from ~$10M, so this isn't the problem.
To live in the present moment one has to unsee the cant. That's the difficult part. How to keep the mind from focusing on all the bullshit that it can't unsee. The burnout, the disillusionment, the politics, the faded friendships. That's what's hard.
I get what you mean. It's hard to let go of these realities we see. I see it all the time in my corp. And I am convinced, too, that it's hard to do fun/interesting things in technology. It honestly baffles me at times, how we just throw away our time so recklessly, so soullessly. We spend years and years in some place, and eventually all that we used to have dissolves. No more friendships, community, family, everything is just ulterior motives.
Instead of seeing what did happen, let's look at what may happen again. Maybe you find it hard to start coding again for you enjoy the collaboration part the most, and yet you imagine most people willing to rip your spine out for some money instead of making something cool for this time we have left.
Maybe it's fear of embracing the unknown. The reason people are in the golden handcuffs is because they always want to hold onto tomorrow - a tomorrow that may never come. And it's easy to forget we all disappear from this place someday. Money helps forget that. But the unknown is where the excitement is.
Either way, I think instead of ignoring those 'cants' one may want to instead avoid them at all costs. I can see why they seem like a reality, and because it often does become a reality. People are so vile, greedy, self-centered - even ourselves at times. The best way out is to forget all the incidentals of making a company. Maybe you can try doing bootstrapped stuff, so VCs don't exploit you.
I believe the spark can only alight through forgetting all of the larger goals. If you push yourself away from the premise of making money - maybe doing open source software - then you can avoid these people that prop up this disillusionment.
The cynicism you'll have to struggle with is finding the people worth the time. I have the same trouble. It's extremely hard. Only through a willing heart can you find those people that don't just want your money. We're going to be alone a lot, so it's about finding what makes you fine with the silence.
And most importantly, a long, long break from everything will help you find your flow again. Most of your day is sunk into another job, and it's hard to make sense of anything when most of your time is spent elsewhere.
These are just my conclusions. And to not appear like I'm all talk, I am in the same situation. I haven't even opened my work laptop today. I just don't care anymore. I'm looking forward to being fired.
> we just throw away our time so recklessly, so soullessly.
> No more friendships, community, family, everything is just ulterior motives.
> The reason people are in the golden handcuffs is because they always want to hold onto tomorrow - a tomorrow that may never come.
> People are so vile, greedy, self-centered - even ourselves at times.
> These are just my conclusions.
Just an observation, but these conclusions of yours seem to to revolve a lot around judging and directing resentment at other peoples' priorities and the authenticity of their motivations.
In particular, family, community and friendships are things
that help people get through their otherwise mundane workdays. For many, they're not lies or illusions, but rather, the very things that make dealing w/ occasional BS in the professional world worthwhile.
Perhaps it's a sign that you might benefit from more focus on yourself and your own process and purpose, instead of focusing on others, whose purpose and process you can't control.
I made an account just to say thank you to you - parent, and the original poster, and all the others I had read here. And to share my story.
I had the jobs I loved for a very long time (even being in the same corp; and even if jobs were hard). And then the job I loved rather abruptly ended. And I ended up in a job that isn’t exciting for me. And, there is a fair amount of politics and egos. But it pays well and is super flexible. And it’s not too dreadful - more like “meh, okay”. And worse - the alternatives aren’t more exciting either. So in a way - just a cynical way to look at having a luxury problem at hands, I guess.
So I focus on the things I can enjoy here and now, to stay in the moment, while keeping the eyes open for something that I can believe in. I find myself hard problems that I try to solve - yet do not have the pressure to, have little quick side projects, and do one hour of high intensity training every day. I focus on my family and friends outside of work (in the past years I gained a few) It helps.
But I think the reason of this state, is not just doing too much work - it’s that we need something to believe in, something to allow ourselves relax, and show child-like curiosity and emotions for. It’s having more control, if you wish, in some sense, or illusion thereof.
The modern world is so much make-pretend in an attempt to optimize everything, so judgemental, so result-oriented and transactional, that after a while it’s hard to find something “pure”, worth believing in and following. And especially hard after seeing a few cycles, to get excited about another one, people chasing the next holy grail...
Some people would get into a religion, it would definitely help me more if I could. But I can’t.
I have been also reading.
Of the many books that I have read to try to figure myself out - “the new earth”, “the brain that changes itself” and “thinking in systems” are probably among the ones that I would recommend the most. (Of course, the first one has some kind of association behind it, and the second does promote a brain-training app - science based. But it’s nice to see the reasons clear :-) Only the third one is “pure“ - but once you read it, you realize the entirety of the world is just a giant pile of interconnected systems on many levels, and you are back to square 1... :-)
Don't go off of anti-depressants and don't stop going to therapy.
My burnout got so bad that I was starting to forget words and had a difficult time remembering short term tasks. I had trouble sleeping. My thoughts were cloudy and it became difficult to stay productive.
Therapy has given me the tools and framework to develop habits and patterns of thinking to cope with my burnout.
If I had been prescribed anti-depressants I wouldn't hesitate to be on them.
Unchecked, who knows how bad it could have gotten.
I've been there. Burned out so hard I thought I had brain damage. You can't unsee what you have seen, you have to integrate and accept it. Depressing as it is to know how sick the industry is and how many sociopaths there are lurking you have to let go. You have to accept it, trying to unsee it will just make it worse.
It takes time because you will start to see it in other places too. I used to get triggered by TV programs or reading the news but these days Its just one of many thoughts. I've come to accept all the implications and let them unfold over time as my mind kept returning, ruminating. Eventually you will come to terms with it.
It's important to allow time to process as well as not spending all your time ruminating. Balance is the key. Keep living the best life you can but go easy on yourself.
The upside of this whole thing is you are wiser now. As time goes on and you process everything more you will become wiser still. It's tempting to become cynical and it's ok if you are for a while but the world is still full of wonder and hope and beauty, seek it out. There are still good people even in the darkest of times.
It's hard. but also easy. letting go. like dropping a cup from your hand.. it falls. but it's hard. so hard. the easiest thing in the world. to let go. is also really hard.
so you have to work at it. retrain you brain.
they have a system for this. it's called meditation.
and i need to do it more.
it's all about, whenever thoughts and feeling come up, bring your awareness back to the present moment. maybe by focusing on your breath, on the empty space around you, on a point. you will fail. again and again. mind will drift. keep bringing it back gently. that's all meditation is. sit there in stillness and bring your heart and mind to be in the present.
eventually, this happens even when you're not in sitting there meditating. so the past hold less sway, you walk away from it. remember, those thoughts and feeling, they are yours, but they are not you. you are something else.
your are what watches. so, just observe. but to do this, is so hard.
I also discovered, even meditation is not a cure. if there is karma you need to address, unfinished business, conversations which need to be had, something incomplete, you need to work that out and take some action. meditation is good for giving you super powers, and letting go of (parts of) things that are already complete, but which for whatever reason, your brain and limbic system has overconsolidated.
I can relate to a lot of the things you've stated. I won't get into the specifics but I understand your experience of working at a tech giant.
In my case, I decided to try to "play the game" for a while. After a few years, I realized clout, money, and the things it afforded were ultimately meaningless to me.
Things like mentoring young engineers, hobbies, and organizing local student hackathons definitely took the edge off. But ultimately so much of it, even the things for the community, was ego-driven. Trying to make the world a better place, a lot of the time, is ultimately ego-driven.
I tried many things but only found lasting peace in turning to God. Jesus died for your sins and I can testify that having faith in Him has lead me to a new, more meaningful life.
Life isn't necessarily easier, but every day is imbued with tremendous meaning.
You're clearly thoughtful, probably competent, and without a doubt, the Lord has a plan for your life. You just have to take the first step and accept Him as your savior.
My emails are always open.
Good luck, I am praying that you coming out of this season stronger than before.
We were all born spiritually dead (Ephesians 2:1-3)
When we're dead spiritually, we're disconnected from the presence of God because of our sins.
Jesus' sacrifice made it possible to be brought back to spiritual life. By believing in Him, He wipes our sins clean. This is what it means to be saved :) (John 3:16)
How has turning to God changed your life? Did it change what you do or how you view the things you do? In other words, would your life look the same to an outside observer but there has been an internal shift in your mind?
It changed my heart.
Our actions stream outward from the motivations of our heart.
Prior to turning to God the motivations in my heart were shaped by societal constructs of success as a man. (Ephesians 2:1-3) Particularly influenced via hip-hop, tech, and stoicism.
My actions stemmed from that. I was moderately successful in material terms but the emptiness persisted. Moreover, my actions were hurting relationships I cared about because the motivation of my heart, however outwardly altruistic, ended up being self-centered.
Accepting Jesus as my savior started a change of heart. The motivation in my heart is now loving God and loving my neighbor as I love myself (Mark 12:30-31) and acting accordingly. It's a gradual process and I still have things to work through. But He has helped me overcome materialism, lust, and is (strongly) helping me overcome pride.
I don't want to speak for outside observers, but my dad and many old friends have commented on the change. Walking with the Lord is a completely different life for me. It's freedom.
What you write sounds alarmingly familiar to me. It's probably not as simple as just calling it "burnout", but that may be one component of what you're going through.
I also learned the hard way that it's important to look after myself. And it took way too long when looking back today.
You seem to have invested way too much of yourself into this and maybe you have lost track of what's really important in life.
A bit depressing (and I don't even work in tech anymore!), but I think he nailed it - it's the rat race. It applies to anyone right now who feels stuck in a job with no meaning.
The whole album addresses this topic, it's very Pink Floyd-ian in the story that it tells through a nearly continuous track. "Pictures of Cats" is one of my favorites, an elegy for the 24/7 cycle of bad news and the toll it takes on us. Definitely worth a listen.
I am in the same boat. 6 months ago, I quit my job because the management and engineering team I worked with were extremely difficult to work with. I had poured my heart out in the company. Grew the team from 1 to 6 developers. Worked extreme long hours because I enjoyed building the product.
I knew I didn't want to code after that. I enrolled in an online business management program. Joined a two people company as an intern two weeks ago. I am finally getting excited about building something new from scratch and I am learning quite a lot at the same time.
Take a break and spend time doing the things you love. You are extremely smart and aware about the problems you face. Learn that thing you always wanted to learn. You might get disinterested and may want to quit it but it's very important to keep at it.
If you join a team, I would advise you to join a small team with less or no politics.
You need to think about the motivations behind all of the parties you’re interacting with. Why did those investors give you money? Because they, and possible their LPs (their bosses effectively) wanted to make more money with their money. That’s it. That’s their whole job. Had you known this, you wouldn’t have been surprised when they acted how they did in order to return any capital possible once it was clear they were not making a return.
I was somewhat concerned when OP mentioned having lost "friends" over their failed company. This can either mean they got their friends to invest money (which is risky precisely because those usually would not be professional investors), or they considered their professional investors "friends".
Is technology the reason to wake in the morning, or is it curiosity that drives you?
Technology is a great place to find something new and interesting. And hey, there's lots of money to be made, and hopefully you've done well already. But curiosity can be for anything. Step away from technology. Find people doing things you don't understand, but look interesting. Try planting something. Read about history, archeology, psychology, philosophy. Visit museums. Technology and your relationship with it is like staying too long with someone you were in love with. Only over time can you rekindle the friendship, but for now your post is screaming out that you need space.
The complaints are human behavior rather than technology, or the culture around it. There are places that are better than others, but you're going to encounter self interest and "dilbertesque" behavior everywhere.
Personally, I view learning to deal with work is an emotional skill you have to develop. Even if you get a job doing math all day in a research position, you need to be ready for the usual academic politics problems.
There are more people in large organizations now, but the problems of greedy financiers and goofy bureaucratic behaviors go back thousands of years. I'm sure there is some subset of Dilbert comics that ancient Chinese officials would have found funny.
You are correct, and humans have been greedy, manipulative, and self-centered since the beginning of time. We often don't even see it in ourselves. I'm sure many of these people who contributed to his disillusionment probably thought they weren't too bad...especially when compared with some other person!
Pure toxic more common in webtech, gaming, and IT than other places. Although toxic webtech culture is kinda bleeding into software in general. Big corp and gov have different issues.
Plus learning to recognize toxic environments and avoid them.
There's a lot of investors and companies that no one should ever work with because of this. Learning to recognize them is a tricky skill and some people are better off not playing the game at all.
Been there. Still slightly am. It's tough. Expand your hobbies and invest in them as you have tech. See where it ends up. It(s) kind-of work(ed/ing) for me.
I am not sure what's wrong with you and why you are happy but unhappy?! but if I would have to guess - it's most likely antidepressants/therapy. There is new "you" but you miss old "you". Brain chemistry is no joke and if you don't absolutely absolutely need medication don't do it. Ask good doctors for second, third and fourth opinions if needed.
If anything OP was worse off before they started treatment. Changing or getting off meds could be a valid choice but all the changes seem to have lead OP to a generally better life
Count the I-s in your text. Why would you want to program for yourself if you are already happy and mentally engaged otherwise? You will want to build something once you find a problem that you can solve for somebody else.
Or think of a product that you want all by yourself that is not available right now. Use programming to make it real.
Think of an interesting non-software related domain that you enjoy and then use software to solve a problem in it. 10 years ago I scraped a run logger app backend for my running statistics and did data analysis on my GPS tracks that helped my training (things that Strava is doing today).
Don't make it into a product or publish it or do anything else that creates pressure on you. Just do it to solve your own problems. Be ok with the vast majority of those projects never being completed. The deal is to learn something and enjoy the pure act of creating something.
As long as the primary motivator remains profit, rather than increasing the averages person Quality of life, technology will be used to replace people to their detriment, rather than to their advantage.
I'm sorry I have no good reason for you why you shouldn't be depressed. I'm afraid, depression might be the appropriate reaction to the state of things.
Even if profit is removed technology will still remain and shackle producers to production lines for the benefit of others by stripping away the autonomy of every individual though.
I don't think it's just "profit" that's the problem.
Whether you provide all of the basic needs for a man and he farms for others, or whether you provide him a wage.. it's all the same in the sense of removing his autonomy.
You'll notice from the writer's essay that he started to become "more happy" when he was able to exercise some autonomy without all of the pressure.
I'm afraid, depression might be the appropriate reaction to the state of things.
The trouble with modern work is it's so intangible, there is no physical product at the end, no machine restored to working order, no field ploughed, just a pile of bits shifted around.
I keep saying it here, I think for most of us we would be better off dropping the side projects and instead doing something with our hands. It might be baking bread, playing with Lego, woodwork, DIY, anything away from the keyboard.
If I'm not mistaken it was Marx who said that people would be alienated from their product as they could not own the product created by their labor.
So yeah, well before 'digitalization' but after industrialization I suppose. Hence we'd have to go back in time quite a bit (at least in Europe) to be pre-industrialized to not be distant from the product of labor.
Sometimes I feel this way when I have unaddressed issues in my life. And I don't necessarily mean emotional/psych things; Sometimes it is as simple as having a messy room/harddrive, or some things that have sat on the backburner for far too long. Take a step back and see if you have any of those things, then address them deliberately, and see if you feel better.
I think the fundamental flaw is trying to be 'successful'. Playing that game invariably requires you to pretend to be what you think the market wants.
I would suggest you think about building something you want that you find fun. If you're a scuba diver, build a dive computer. If you're a woodworker make a tool for making the best use of a board. The most important thing is you absolutely don't plan on making it a world-changing multi-billion dollar anything. Make it, even sell it if you want, and enjoy the ride.
For most people it's not about trying to be successful. It's about not having to be stressed out daily about basic needs like home, health, transport, kids upbringing etc. Unfortunately it all costs a lot of money these days, which makes you take a compromise for the sake of security for you and your closest relatives.
This is why normal, sane, people will put up with the Dilbert-esque world of business. They only have a month's savings and they have a mortgage and two kids to feed.
I share zackbloom's view that OP overly tried to be (financially) successful. Instead the ultra fast pace and high pressure of a VC backed startup he could have bootstrapped and instead of the soulcrushing corporate job he could have worked at a small company where there is no politics and people care about each other and their craft.
I don't know if OP deliberately chose to chase money, but he did and now complains that he lost his passion for technology. Yes, the other options leave you only with half or even less of the income but you will remain happy and can have a fulfilling work environment. With a software development job you will have a comfortable income no matter where you work so "i needed the money" is not an excuse.
> It's about not having to be stressed out daily about basic needs like home, health, transport, kids upbringing etc.
That is a problem that is better solved with politics than with technology. There is enough in the world that if we shared more, most people would not have to worry about these things. (I say most, solving for "all" is more difficult)
But let's be honest. Work isn't always going to be fun. Not having to stress about things is not going to make Dilbert-style corporations enjoyable. Just keep smiling and be happy you are not plowing the ground with an Ox.
> There is enough in the world that if we shared more, most people would not have to worry about these things. (I say most, solving for "all" is more difficult)
This is the state we are in now already - most people, as long as they have jobs, don't have to worry about these things.
I'd say keep doing what you do and seem to like now. The rest may come back. One day you might think of an interesting idea would want to try it and then before you know you'll be already doing things to make that idea come to life. Just do not try to force things upon yourself.
I can’t imagine another outcome from working in this industry other than disillusionment. That is the only reaction that makes sense to me.
After a while, you realize “well, this is about the best I can do”, and you get actual fulfillment from other parts of your life- I think this is ultimately healthy. I don’t want to be overidentified with my employer, I just want to do my job and focus on the rest of my life.
The industry is good for a paycheck and that’s about it- all the “changing the world” stuff, pheeeeuuw.
Sounds more like disillusionment with our quasi-free-market. In reality it's nothing but strongmen and subterfuge, and I fear America will ultimately lose whatever competitive edge it had left due to this.
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.
> 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
> 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.
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.
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.
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.
>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.
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.
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.
> 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.
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.
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.
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.
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!
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.
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.
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.
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.
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.
Etc.
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.
@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.
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.
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.
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.
>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.
> 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.
>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.
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.
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.
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.
> 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.
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.
> 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).
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.
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.
> 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.
> 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.
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.
"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 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.
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.
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.
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.
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.
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.
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.
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.
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.
Wow I'm sure everyone can experience the exact same unique circumstances! all it takes is a few choices! there's nothing wrong with the fundamental structure of things! just follow my survivor's fallacy!
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.
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.
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.
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.
> 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.
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.
It's a failure of imagination to view this as a trade of time for money and little else in truth the people at the company are investors even more than the vulture capitalists because they are investing their energy and presence and a high opportunity cost to boot
The biggest problem with all of the attitudes is they're off the mark and people are going through the same motions expecting different outcomes it's the worst form of repeating yourself
The best advice anyone can give a wannabe intellectual capitalist is : learn to dress
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.
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.
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.
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.
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.
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 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.
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.
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.
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).
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.
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.
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.
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.
> 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.
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.
> 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.
I've been feeling burnout, although not to the same extent as OP, for many of the same reasons. The main difference is I never stopped loving programming or the creative aspects of making things. Ideally I'd like to be a full time hobbyist programmer, but that seems out of reach financially. If you want to get back into making stuff I suggest doing zero pressure hobby projects focused on whatever you enjoy about the process of making (not around a mission, or users and definitely not around money) and don't actually worry about finishing. Just focus on the act of making stuff happen
Take a week off, step away from the keyboard, find some humans, animals, get a hobby or go back to the one you had. Watch that Naval Ravikant Joe Rogan podcast.
753 comments
[ 3.0 ms ] story [ 304 ms ] threadYour 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.
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.
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.
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.
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 :-)
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).
- 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/
Does not sound like it would keep me sane…
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.
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!
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.
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>
</ul>
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.
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 :)
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.
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.
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 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.
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".
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.
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
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.
> "Don't make enterprise software. [...] Don't accept pull requests. Simply write software for yourself and have fun doing it."
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 :)
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.
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.
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.
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.
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.
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.
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.
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.
Indeed. Haven't people been doing that since, well, cloud computing?
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.
burn down everything that's best practice, kiss, and build from scratch.
are modern engineers so retarded they need a gazillion lines of abstraction, bloat and opinions to not turn a team project into an unfrickable mess?
Long version: Working Effectively with Legacy Code Book by Michael C. Feathers
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.
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.
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?
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.
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.
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.
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.
I've always loved the carrel desk. It seems perfectly designed to encourage the state of flow in its occupant.
https://en.m.wikipedia.org/wiki/Carrel_desk
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.
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.
> 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.
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.
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.
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.
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.
>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.
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.
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.
> 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 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!
If you ever need any new hires... /u/cblum and I would like to have a word
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.
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.
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.
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.
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.
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.
In all projects I have worked on, extensive unit tests were not a safety net against regressions, 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.
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.
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.
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'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.
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."
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.
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/
But that's more an analogue of "use your program before you release it".
At least they are 'dogfooding' it and not just letting others eat it I hope :)
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.
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.
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.
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.
I thought we were talking about technology. You gave a recipe for spaghetti.
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.
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.
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.
Or alternatively, do something else, until you get an interesting idea or need a tool for what you actually want to deal with and code it up. This can reinforce both, programming and the actual activity, that one wanted to do.
The optimism you're seeking comes from looking forward to today, right now. Right here, right now. Everything is the present moment. If you do not find yourself in the present moment - this could be due to the weight of money, weight of the future, weight of obligations - then abandon it all.
You don't need anything. Just reclaim the time that is yours. If you have enough runway for a year, that's all you need. Think about it. Would you rather have 20 more years of this 'hint of dissatisfaction', or just one year of bliss? If not bliss, at least closer to what once was, where we all come from. Just people trying to have fun and not think of larger consequences. I would get off of anti-depressants, too.
To live in the present moment one has to unsee the cant. That's the difficult part. How to keep the mind from focusing on all the bullshit that it can't unsee. The burnout, the disillusionment, the politics, the faded friendships. That's what's hard.
Instead of seeing what did happen, let's look at what may happen again. Maybe you find it hard to start coding again for you enjoy the collaboration part the most, and yet you imagine most people willing to rip your spine out for some money instead of making something cool for this time we have left.
Maybe it's fear of embracing the unknown. The reason people are in the golden handcuffs is because they always want to hold onto tomorrow - a tomorrow that may never come. And it's easy to forget we all disappear from this place someday. Money helps forget that. But the unknown is where the excitement is.
Either way, I think instead of ignoring those 'cants' one may want to instead avoid them at all costs. I can see why they seem like a reality, and because it often does become a reality. People are so vile, greedy, self-centered - even ourselves at times. The best way out is to forget all the incidentals of making a company. Maybe you can try doing bootstrapped stuff, so VCs don't exploit you.
I believe the spark can only alight through forgetting all of the larger goals. If you push yourself away from the premise of making money - maybe doing open source software - then you can avoid these people that prop up this disillusionment.
The cynicism you'll have to struggle with is finding the people worth the time. I have the same trouble. It's extremely hard. Only through a willing heart can you find those people that don't just want your money. We're going to be alone a lot, so it's about finding what makes you fine with the silence.
And most importantly, a long, long break from everything will help you find your flow again. Most of your day is sunk into another job, and it's hard to make sense of anything when most of your time is spent elsewhere.
These are just my conclusions. And to not appear like I'm all talk, I am in the same situation. I haven't even opened my work laptop today. I just don't care anymore. I'm looking forward to being fired.
> No more friendships, community, family, everything is just ulterior motives.
> The reason people are in the golden handcuffs is because they always want to hold onto tomorrow - a tomorrow that may never come.
> People are so vile, greedy, self-centered - even ourselves at times.
> These are just my conclusions.
Just an observation, but these conclusions of yours seem to to revolve a lot around judging and directing resentment at other peoples' priorities and the authenticity of their motivations.
In particular, family, community and friendships are things that help people get through their otherwise mundane workdays. For many, they're not lies or illusions, but rather, the very things that make dealing w/ occasional BS in the professional world worthwhile.
Perhaps it's a sign that you might benefit from more focus on yourself and your own process and purpose, instead of focusing on others, whose purpose and process you can't control.
I had the jobs I loved for a very long time (even being in the same corp; and even if jobs were hard). And then the job I loved rather abruptly ended. And I ended up in a job that isn’t exciting for me. And, there is a fair amount of politics and egos. But it pays well and is super flexible. And it’s not too dreadful - more like “meh, okay”. And worse - the alternatives aren’t more exciting either. So in a way - just a cynical way to look at having a luxury problem at hands, I guess.
So I focus on the things I can enjoy here and now, to stay in the moment, while keeping the eyes open for something that I can believe in. I find myself hard problems that I try to solve - yet do not have the pressure to, have little quick side projects, and do one hour of high intensity training every day. I focus on my family and friends outside of work (in the past years I gained a few) It helps.
But I think the reason of this state, is not just doing too much work - it’s that we need something to believe in, something to allow ourselves relax, and show child-like curiosity and emotions for. It’s having more control, if you wish, in some sense, or illusion thereof.
The modern world is so much make-pretend in an attempt to optimize everything, so judgemental, so result-oriented and transactional, that after a while it’s hard to find something “pure”, worth believing in and following. And especially hard after seeing a few cycles, to get excited about another one, people chasing the next holy grail...
Some people would get into a religion, it would definitely help me more if I could. But I can’t.
I have been also reading.
Of the many books that I have read to try to figure myself out - “the new earth”, “the brain that changes itself” and “thinking in systems” are probably among the ones that I would recommend the most. (Of course, the first one has some kind of association behind it, and the second does promote a brain-training app - science based. But it’s nice to see the reasons clear :-) Only the third one is “pure“ - but once you read it, you realize the entirety of the world is just a giant pile of interconnected systems on many levels, and you are back to square 1... :-)
Sorry for the not very coherent rant.
Thank you again, and take care!
My burnout got so bad that I was starting to forget words and had a difficult time remembering short term tasks. I had trouble sleeping. My thoughts were cloudy and it became difficult to stay productive.
Therapy has given me the tools and framework to develop habits and patterns of thinking to cope with my burnout.
If I had been prescribed anti-depressants I wouldn't hesitate to be on them.
Unchecked, who knows how bad it could have gotten.
It takes time because you will start to see it in other places too. I used to get triggered by TV programs or reading the news but these days Its just one of many thoughts. I've come to accept all the implications and let them unfold over time as my mind kept returning, ruminating. Eventually you will come to terms with it.
It's important to allow time to process as well as not spending all your time ruminating. Balance is the key. Keep living the best life you can but go easy on yourself.
The upside of this whole thing is you are wiser now. As time goes on and you process everything more you will become wiser still. It's tempting to become cynical and it's ok if you are for a while but the world is still full of wonder and hope and beauty, seek it out. There are still good people even in the darkest of times.
so you have to work at it. retrain you brain.
they have a system for this. it's called meditation.
and i need to do it more.
it's all about, whenever thoughts and feeling come up, bring your awareness back to the present moment. maybe by focusing on your breath, on the empty space around you, on a point. you will fail. again and again. mind will drift. keep bringing it back gently. that's all meditation is. sit there in stillness and bring your heart and mind to be in the present.
eventually, this happens even when you're not in sitting there meditating. so the past hold less sway, you walk away from it. remember, those thoughts and feeling, they are yours, but they are not you. you are something else.
your are what watches. so, just observe. but to do this, is so hard.
I also discovered, even meditation is not a cure. if there is karma you need to address, unfinished business, conversations which need to be had, something incomplete, you need to work that out and take some action. meditation is good for giving you super powers, and letting go of (parts of) things that are already complete, but which for whatever reason, your brain and limbic system has overconsolidated.
In my case, I decided to try to "play the game" for a while. After a few years, I realized clout, money, and the things it afforded were ultimately meaningless to me.
Things like mentoring young engineers, hobbies, and organizing local student hackathons definitely took the edge off. But ultimately so much of it, even the things for the community, was ego-driven. Trying to make the world a better place, a lot of the time, is ultimately ego-driven.
I tried many things but only found lasting peace in turning to God. Jesus died for your sins and I can testify that having faith in Him has lead me to a new, more meaningful life.
Life isn't necessarily easier, but every day is imbued with tremendous meaning.
You're clearly thoughtful, probably competent, and without a doubt, the Lord has a plan for your life. You just have to take the first step and accept Him as your savior.
My emails are always open. Good luck, I am praying that you coming out of this season stronger than before.
We were all born spiritually dead (Ephesians 2:1-3)
When we're dead spiritually, we're disconnected from the presence of God because of our sins.
Jesus' sacrifice made it possible to be brought back to spiritual life. By believing in Him, He wipes our sins clean. This is what it means to be saved :) (John 3:16)
It changed my heart. Our actions stream outward from the motivations of our heart.
Prior to turning to God the motivations in my heart were shaped by societal constructs of success as a man. (Ephesians 2:1-3) Particularly influenced via hip-hop, tech, and stoicism.
My actions stemmed from that. I was moderately successful in material terms but the emptiness persisted. Moreover, my actions were hurting relationships I cared about because the motivation of my heart, however outwardly altruistic, ended up being self-centered.
Accepting Jesus as my savior started a change of heart. The motivation in my heart is now loving God and loving my neighbor as I love myself (Mark 12:30-31) and acting accordingly. It's a gradual process and I still have things to work through. But He has helped me overcome materialism, lust, and is (strongly) helping me overcome pride.
I don't want to speak for outside observers, but my dad and many old friends have commented on the change. Walking with the Lord is a completely different life for me. It's freedom.
If necessary, a long break.
What you write sounds alarmingly familiar to me. It's probably not as simple as just calling it "burnout", but that may be one component of what you're going through.
I also learned the hard way that it's important to look after myself. And it took way too long when looking back today.
You seem to have invested way too much of yourself into this and maybe you have lost track of what's really important in life.
Take a break.
Feel free to contact me if you wanna talk.
The album is uploaded on YouTube, but this was the teaser that he uploaded before the album release.
https://www.youtube.com/watch?v=TvVNxqosZ7s
A bit depressing (and I don't even work in tech anymore!), but I think he nailed it - it's the rat race. It applies to anyone right now who feels stuck in a job with no meaning.
get properly angry at the amount of bullshit and disinformation that thing spews out regardless of stated or implied affiliation.
compare with herds of people who don't trust science but can't stop themselves from telling everyone about their favorite kind of youtube shaman.
realize some people have it worse. nothing to be happy about except that it could be worse for you and it isn't.
figure out a way to fix democracy and reconcile free speech with the internet. or help humanity go to mars or fix climate catastrophe.
wield data and algorithms against forces of evil. with luck you won't think of yourself as a cog.
or take up gardening. freshly picked strawberries are my favorite.
Technology is a great place to find something new and interesting. And hey, there's lots of money to be made, and hopefully you've done well already. But curiosity can be for anything. Step away from technology. Find people doing things you don't understand, but look interesting. Try planting something. Read about history, archeology, psychology, philosophy. Visit museums. Technology and your relationship with it is like staying too long with someone you were in love with. Only over time can you rekindle the friendship, but for now your post is screaming out that you need space.
Personally, I view learning to deal with work is an emotional skill you have to develop. Even if you get a job doing math all day in a research position, you need to be ready for the usual academic politics problems.
You actually kind of hint at it in your own writing. The behavior is everywhere.
You are correct, and humans have been greedy, manipulative, and self-centered since the beginning of time. We often don't even see it in ourselves. I'm sure many of these people who contributed to his disillusionment probably thought they weren't too bad...especially when compared with some other person!
There's a lot of investors and companies that no one should ever work with because of this. Learning to recognize them is a tricky skill and some people are better off not playing the game at all.
Or think of a product that you want all by yourself that is not available right now. Use programming to make it real.
Don't make it into a product or publish it or do anything else that creates pressure on you. Just do it to solve your own problems. Be ok with the vast majority of those projects never being completed. The deal is to learn something and enjoy the pure act of creating something.
I'm sorry I have no good reason for you why you shouldn't be depressed. I'm afraid, depression might be the appropriate reaction to the state of things.
I don't think it's just "profit" that's the problem.
so, for profit?
You'll notice from the writer's essay that he started to become "more happy" when he was able to exercise some autonomy without all of the pressure.
The trouble with modern work is it's so intangible, there is no physical product at the end, no machine restored to working order, no field ploughed, just a pile of bits shifted around.
I keep saying it here, I think for most of us we would be better off dropping the side projects and instead doing something with our hands. It might be baking bread, playing with Lego, woodwork, DIY, anything away from the keyboard.
So yeah, well before 'digitalization' but after industrialization I suppose. Hence we'd have to go back in time quite a bit (at least in Europe) to be pre-industrialized to not be distant from the product of labor.
I would suggest you think about building something you want that you find fun. If you're a scuba diver, build a dive computer. If you're a woodworker make a tool for making the best use of a board. The most important thing is you absolutely don't plan on making it a world-changing multi-billion dollar anything. Make it, even sell it if you want, and enjoy the ride.
I don't know if OP deliberately chose to chase money, but he did and now complains that he lost his passion for technology. Yes, the other options leave you only with half or even less of the income but you will remain happy and can have a fulfilling work environment. With a software development job you will have a comfortable income no matter where you work so "i needed the money" is not an excuse.
That is a problem that is better solved with politics than with technology. There is enough in the world that if we shared more, most people would not have to worry about these things. (I say most, solving for "all" is more difficult)
But let's be honest. Work isn't always going to be fun. Not having to stress about things is not going to make Dilbert-style corporations enjoyable. Just keep smiling and be happy you are not plowing the ground with an Ox.
This is the state we are in now already - most people, as long as they have jobs, don't have to worry about these things.
After a while, you realize “well, this is about the best I can do”, and you get actual fulfillment from other parts of your life- I think this is ultimately healthy. I don’t want to be overidentified with my employer, I just want to do my job and focus on the rest of my life.
The industry is good for a paycheck and that’s about it- all the “changing the world” stuff, pheeeeuuw.
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.
> 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.
Why would you be at all surprised that VCs lie?
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.
https://news.ycombinator.com/newsguidelines.html
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.
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.
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...
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.
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 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.
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.
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.
I can’t shoot the shit and talk strace or gdb with any of them.
> 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...
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.
1436.ninja
1436.ninja/1/Port70News
1436.ninja/1/Project_Gutenberg_in_Gopherspace
2f30.org
bay.parazy.de
bitreich.org
box.matto.nl
floodgap.com
fritterware.org
gopher.gluon.me
gopher.viste.fr
gopher.viste.fr/1/ogup/list
gopher://661.org/1if-archive
gopher://adamsgaard.dk/1
gopher://ascraeus.org/1/books
gopher://ftp.icm.edu.pl
gopher://gopher.661.org
gopher://gopher.leveck.us
gopher://gopher.xpenguin.club
gopher://p3x981.com
gopher://republic.circumlunar.space/1/~katolaz/phlog
gopherddit.com
gopherpedia.com
hngopher.com
magical.fish
mozz.us
msbgtn01.synchro.net
port70.net/1/chan
rawtext.club
schinkel.bevuta.com
sdf.org
sdf.org/1/users/julienxx/Lobste.rs
khzae.net/1/chan
bbs.synchro.net/1grp:fidonet
##Usenet is alive too. If you set slrn killing all
##spam, a lot of newsgroups are still bearable.
comp.lang.c
comp.lang.moderated
comp.unix.shell
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.
Yet...Here i am.
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.
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.
https://en.wikipedia.org/wiki/Psychopathy#Environment
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.
Challenging something that's universally challenged seems comprehensible to me.
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.
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.
Doesn't really bode well for any future mass action.
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.
Most of the time, the alternatives aren't any better. That's why some people are apathetic.
And you don't need 100% turnout for an election to work; you only need a nearly unbiased sample.
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.
Many ways.
"We all know what is best for us, but I'm not going to actually say what I think we should do."
https://media.ccc.de/v/36c3-10933-what_the_world_can_learn_f...
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.
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.
If we value the ability to experience consciousness ourselves, then surely the fact that 7 billion people exist is valuable in and of itself?
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.
Citation desperately needed.
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.
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.
Etc.
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.
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.
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.
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.
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.
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.)
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.
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.
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.
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.
> 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.
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.
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.
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.
Division of labor is a tragedy. In the long run, it destroys the soul.
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.
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.
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.
Got a little essay on that:
https://realminority.wordpress.com/
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.
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.
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.
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.
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.
I can only hope this "fake macho work persona" bubble-burst carries forward into post-covid.
A plausible just-so story, but still only that.
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.
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.)
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.
" 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.
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:
http://www.smashcompany.com/philosophy/i-know-more-than-1200...
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.
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 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.
Any advice to someone new in the industry to avoid burnout?
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)
Do you think therapists get tired of dealing with people who are just unhappy with their job in a bubble?
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The biggest problem with all of the attitudes is they're off the mark and people are going through the same motions expecting different outcomes it's the worst form of repeating yourself
The best advice anyone can give a wannabe intellectual capitalist is : learn to dress
BRING ON THE DOWNVOTES YOU TURKEYS
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.
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.
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.
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.
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.
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.
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).
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’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.
So many of my friends and neighbors came here voluntarily- They seem happy, but deep down they must be filled with so much remorse!
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.
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.
> 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.
That's great writing.
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.