18 ms·
No dogs were harmed in the making of this app
- teaearlgraycold 3y agoI now feel very validated for using TypeScript to statically validate mime types.
- jjgreen 3y agoA good Friday story.
- crvdgc 3y ago> I sent a message to my friend, "Cracked it at last. It was the letter 'E'." Enum types have saved me so many "typo"-related errors. Even in this case, it's not exactly a typo, but the encoding process should make you ask questions about the domain and the meaning of the strings you operate on.
- imchillyb 3y agoI read this on break and needed to hear these words of encouragement and hope. Thank you for sharing your misadventure with us.
- feintruled 3y agoThat's quite a tale, a parable almost about how software engineering differs from other jobs (I want to say 'real' jobs but tongue in cheek). I like this one too, it's even snappier. A software engineer, a hardware engineer and a department manager were on their way to a meeting in Switzerland. They were driving down a steep mountain road when suddenly the brakes on their car failed. The car careened almost out of control down the road, bouncing off the crash barriers, until it miraculously ground to a halt scraping along the mountainside. The car's occupants, shaken but unhurt, now had a problem: they were stuck halfway down a mountain in a car with no brakes. What were they to do? "I know," said the department manager, "Let's have a meeting, propose a Vision, formulate a Mission Statement, define some Goals and by a process of Continuous Improvement find a solution to the Critical Problems, and we can be on our way." "No, no," said the hardware engineer, "That will take far too long, and besides, that method has never worked before. I've got my Swiss Army knife with me, and in no time at all I can strip down the car's braking system, isolate the fault, fix it and we can be on our way." "Well," said the software engineer, "Before we do anything, I think we should push the car back up the road and see if it happens again."
- Elucalidavah 3y ago> and see if it happens again The "re-run to reproduce" isn't even the most peculiar part of software engineering; it's "we don't look at what has been tried before". In the OP story example, there's this part: "One time we added ventilation holes to reduce heat, but they were just big enough for wasps to nest in". In a ideal world, the hardware engineers are supposed to know to not have any holes larger than a few millimeters, and other such things. Whereas the software engineers are (yet) not supposed to know much of anything like that. The most prominent example I can think of is "remember to add an index to the database when adding a new type of query to the app", as load testing that would catch it tends not to be done on each and every release.
- shadowgovt 3y agoThe big advantage to software engineering is we deal in abstractions. I liken it to building castles in the clouds; everything down to the foundation is reshapeable. ... the big disadvantage to software engineering is we deal in abstractions. Everything down to the foundation moves. http://thecodelesscode.com/case/154 http://thecodelesscode.com/case/154
- deleted 3y ago[deleted]
- xkcd-sucks 3y agoAlso, software is right now primarily a means of codifying human thought, which means it embodies the whole spectrum of human sanity and competence
- hathawsh 3y agoThat deep thought seems especially appropriate for XKCD, yet your username curiously suggests you would disagree.
- lostlogin 3y ago> I liken it to building castles in the clouds You’re very positive. When you see a developer dealing with a bug, it seems more like they are dealing with a turd palace floating in a sewer.
- acomms 3y agoWow what incredible timing. I am currently working on an Image Uploader component and the gotchas are hiding around every corner.
- upheaval7276 3y agoThis is one of those things I wouldn't suggest you solve with the "roll your own" approach. There are some good libraries out there that will handle this and more. Uppy is one that comes to mind. I created and maintained another popular one for 7 years that i sunset in 2017.
- acomms 3y agoCurrently using react-dropzone seems to solve most of the major issues for me. Use that to get a signed URL via API, then upload from client to image server directly.
- uoaei 3y agoMany exploits involve running arbitrary code hidden in encoded image and video files, notably Pegasus among others. This should be treated as cryptography.
- lamroger 3y agoReminder that vets have it extra hard. And a reminder to myself to do good.
- shadowgovt 3y agoI'm feeling the anecdote about the wasp nest. Landlord in our office complex installed a touchscreen interface on the outside of the building to dial the various front desks, all of which could buzz a person in. They did this because they had no front-desk receptionist who could see the door. The thing lasted six months and then started to malfunction badly. The culprit? The interface is running on essentially a big black Android tablet and they installed it on the side of the building that faces East. Mid-spring rolled around and it caught enough sun every day to overheat and fry the touch electronics and part of the screen hardware. As a software engineer, writing the kind of software I do, I never have to worry about thermal load.
- philk10 3y agoWhich reminds me of he story of sun stopping trains - Services at Lewisham, south-east London, were disrupted because of the angle of the 'low winter' sun, train operator Southeastern said. The rail firm posted on Twitter: 'We had severe congestion through Lewisham due to dispatching issues as a result of strong sunlight.' It added: 'The low winter sun has been hitting the dispatch monitor which prevents the driver from being able to see.'
- darkwater 3y agoA very nice post, well written and with a positive outlook on our position. And while there are many developers that write software that directly impact in one way or another the lives of other human beings, generally speaking we need to recognize we are in a fairly privileged position, as the author states.
- castis 3y agoThank you for this. Its lovely to be reminded that a lot of us share some the same ups and downs whatever we're doing.
- hasbot 3y agoAs a software engineer I always kinda enjoyed debugging. It allowed me to use a different skill and mind set than creating designs and implementing them. Not to say I didn't get stressed out debugging. I had one demo while developing software for AT&T's 5ESS telephone switch. We had only one phone line in the test lab configured for our feature. Attempt after attempt the software just wouldn't work. Knowing the software worked, I checked everything I could all the while stressing out. Finally I asked the lab tech to check the line. Somehow our only configured line was disconnected. The problem was a stupid hardware issue.
- 59nadir 3y agoI enjoy debugging when the tools are there, not so much when choices have been made to put everything too out of reach, either figuratively or literally. Debugging distributed systems in the cloud is exponentially more awful than debugging them when you can at least spin up all your services locally and that in turn is exponentially worse than when you can debug the problem in just one program. An actual debugger also makes the act of debugging much nicer to me. I've never understood people who quibble about using either printf debugging or an actual debugger when using both is such a massive win. Arguably good tracing facilities should be highlighted here as well since they're much nicer than printf debugging when they're available. > Not to say I didn't get stressed out debugging. This is interesting because I remember very early in my programming journey I used to attach a lot of unnecessary things to not understanding why something was happening (or not happening) and gradually I just came to embrace the "Hang on, why is this so? I don't get it... Ohh, hang on... Wow, it really makes sense why this didn't work!" loop and internalize the fact that it feels really good when I get to the end of it. The process of not knowing can only really get ruined by other people's expectations and behaviors for me at this point and I've learned over time that this can only be managed by being very assertive about how things are done (language choices, architectural choices, etc.) so as to make the process as easy and quick as possible. Ultimately it's a lot easier (at this point in my career) to convince someone that working with AWS lambda is a bad choice for performance, overall costs, debuggability and development speed (all to varying degrees) than it is to convince them later that there is a good reason that fixing that one problem is taking more time than it ought to.
- 3y ago
- travisgriggs 3y agoLoved this story. A bit skeptical that that kind empathetic manager really exists in the field, but maybe. Most telling that no sales/marketting/product managers showed up to console the guy. Satire just couldn’t plausibly stretch that far. But maybe I’m too jaded. Would love to see the reply that posited a section to this story where the empathetic individual from one of those domains gave solace to the main character.
- thedanbob 3y ago> I sent a message to my friend, "Cracked it at last. It was the letter 'E'." Funny how the simplest, tiniest bugs are often the hardest to find. Just this morning I burned an hour or two hunting down an off-by-one error. Turns out it was an "index + 1" that I had forgotten to change when I refactored (facepalm).
- deredede 3y agoAs the saying goes, there are two hard problems in computer science: cache invalidation, naming things, and off-by-one errors.
- ohthatsnotright 3y agoYou forgot Dates, Times and Timezones
- wildzzz 3y agoTimezones: if you operate my code across timezones, you're wrong. Date and time: %Y%m%d_%H%M%S. Don't you dare ask for it to be shown any other way.
- Robin_Message 3y agoThree ha you missed out rd problems;concurrency.
- yafbum 3y agoA physicist friend used to quote Rutherford, all science is either physics or stamp collecting. By which my friend meant, physics has a way of being checked by physical reality in a way that math or computer science don't. His area of work was extreme magnetic fields. Experimenting meant building giant copper coils, running enough current in them to melt them in place, and then very quickly detonating explosive around the coil so that, for a fraction of a second, the magnetic field at the center of the coil became the most intense ever built by mankind, before the whole setup was destroyed by the splattering of liquid copper thousands of degrees hot. Errors and miscalculations in that work environment meant that people could die unpleasant deaths very quickly. So when he looked at math PhD students who at most got chalk dust onto their sweater, calling themselves scientists, he disagreed.
- computerfriend 3y agoLeave it to a physicist to misinterpret that quotation.
- kwhitefoot 3y agoPerhaps you could enlighten us oh wise one.
- computerfriend 3y agoThe quotation has no connection to whether you can check your results with experimentation. But my comment is a joke about their dismissive attitude towards mathematicians.
- civilitty 3y ago> His area of work was extreme magnetic fields. Experimenting meant building giant copper coils, running enough current in them to melt them in place, and then very quickly detonating explosive around the coil so that, for a fraction of a second, the magnetic field at the center of the coil became the most intense ever built by mankind, before the whole setup was destroyed by the splattering of liquid copper thousands of degrees hot. Explosively pumped flux compression generators [1] are fun! That’s how real EMPs are made, in case anyone is interested in a career in super villainy but doesn’t know where to start. [1] https://en.m.wikipedia.org/wiki/Explosively_pumped_flux_compression_generator https://en.m.wikipedia.org/wiki/Explosively_pumped_flux_comp...
- firefoxd 3y agoI giggled at the end. Just yesterday, we solved an issue that plagued the company for 3 years. For us it was the letter 'A'. Someone had been doing manual fixes inserting and removing data for the past 3 years. It became part of his job. He added a recurring event in his calendar just to do that regular clean up. Millions of customers depended on this one individual making sure they had the correct data plan on their phone line. You can imagine the chaos when he forgets or goes on PTO. Turns out: if $line->status == STATUS_ACTIVE one was 'Active' the other was 'active'. No dogs were harmed, but incalculable money was lost over the years.
- A4ET8a8uTh0 3y agoIf this was a law case, the joke would have been: 'What have you done? You solved the case that put our entire family through law school!' That poor soul is no longer indispensable. I am only half joking. Software is about making things more efficient, but I like to look at the human motivations.
- tialaramex 3y agoSo somehow in some parts of the code STATUS_ACTIVE is defined wrong? I guess there is always a risk that some "helpful" contributor will fix the typo in your definition of HttpHeader::REFERRER as "referer" to make it "referrer" instead, thus completely breaking all the software because nope, that typo is enshrined in the HTTP standard, it's Phillip Hallam-Baker's fault while he was at CERN.
- Crespyl 3y ago> So somehow in some parts of the code STATUS_ACTIVE is defined wrong? I would guess that some other part of the app doesn't even use the constant at all, and just hardcodes "Active" as a string on its own. Maybe taking the value of a dropdown from the UI and never mapping that back to the actual constant.
- lostlogin 3y agoA tricky one that I’ve seen cause harm is white space or otherwise invisible characters (eg line breaks). Super frustratingly, Macs populating HL7 fields caused intense pain. It turns out that the character ’ when typed on a Mac keyboard is not compatible with all versions of HL7, or perhaps wasn’t compatible with what the HL7 was passed off to. It’s a distant memory now but it was words like o’clock versus o′clock, or something like that which broke radiology report distribution. It went on for years before being caught. Edit: HN is displaying the ’ differently to how it looks when I type it, but it’s still the same character. The fact that we couldn’t see the difference when debugging was half the problem, so this is quite funny.
- swatcoder 3y ago> As software developers, it’s easy to overlook the privileges we enjoy. We have the unique ability to delve deep into intricate processes, monitor real-time activities, log what’s happening, and even pause time with a debugger. This remarkable capability is not only cheap but fast, bordering on thoughtless. > While many other professions struggle to understand and resolve their issues, we have the advantage of being able to experiment multiple times a day with just a few clicks. So much strained positivity, as if the author was tasked to find something to be thankful for. Look, software engineering is a great job if you enjoy the work. But even in this parable, the problem is the author's week of distress and flailing. It has nothing to do with the work and everything to do with the author. All the others he turns towards, no matter their discipline, their tools for investigation, or the constraints they faced in a dilemma, relate stories where they have a mature understanding of how their industry works and how they navigate its system. They encounter problems in the course of their work and they resolve them in the course of their work. Maybe it takes a little while to proceed with diagnosis. Maybe it takes a long while to integrate improvements into a later product. Maybe they need to forgo some procedure that they prefer to use. By the authors account, the embedded engineer, the hardware engineer, the CEO and veterinarian all face greater challenges when solving problems in their work, yet they all speak of their road through those challenges with a confidence that the author lacks. They try to soothe the author and empathize, but none of their stories hint at a week of panicked flailing. So if they handle their work so much more confidently, is it true that their dilemmas are worse and that the author is lucky to be a software engineer? If the author listened to their own invented characters, the realization to come to is not that the author is lucky to work in a field with purported "privileges" and that everyone else has it worse (gross!), but that everyone faces dilemmas in their work and that the real skill is in staying cool and confidently relying on the processes of their discipline. And this has everything to do with the person doing the work and nothing to do with the discipline. The realization is that challenges arise in all professions and that you can proceed through them without distress and flailing if you allow yourself patience and confidence. It's funny because they wrote this as a parable, but they missed the real lesson in the very piece they wrote. Four people reassure them that "We've been there! We all go through this!" and their takeaway is "I need to remember that I'm lucky and that everybody else has it even worse."
- munchler 3y agoThe dog’s owner paid for surgery, but wouldn’t pay for an x-ray?
- pie420 3y agoDon't let facts get in the way of a good blog post
- harrymit907 3y agoCost to benefits probably. Vet X-rays are surprisingly expensive and then surgery had to be done anyway.
- gcheong 3y agoTrue but as the vet in the article states she couldn’t be sure that the extent of the problem was just the corn cob without an x-ray so to me it would seem more logical to take the x-ray once you’ve decided on surgery.
- krallja 3y agoThey're like $100… aren't they?
- tialaramex 3y agoEven in human medicine some of the things on the "Do not do" guidance are diagnostic steps which are pointless because you will always do the same thing next regardless. A bunch of them are for infant minor injury where it's like don't do an X-ray. If you can see a break on the image you'd do A, but if you can't you'd figure the break might be too small to show up and do A anyway. Kids don't need more radiation, just do A immediately without requesting an X-ray. I have wondered if my cancer diagnosis is at the edge of this case. There's a step where they do a needle biopsy. But, as far as I can tell that biopsy always either says "Cancer" or "Don't know" and I'm not sure what else they'd do for "Not sure" beyond the next step in the cancer diagnosis...
- ryandrake 3y agoI always like to see upstream corrective action after something like this. If there was adequate logging / error reporting, this wouldn't have taken a week to fix. Whatever library he sent the invalid "image/jpg" MIME type to should have thrown an exception, crashed, or at the very least, logged loudly. I wonder if OP filed a bug against it.
- hathawsh 3y agoThe relevant paragraph in the article bothers me a bit: "I re-uploaded a version with improved error handling, but image uploads were failing without any feedback. You see, normally code screams its errors at you in red text - silence is the goal. Here silence was the problem." Silence is not quite the goal. Too many developers think silence is the goal, but the goal is actually accuracy. If there's no error, yes, it should be silent. If there's an error that affects the user, there should be a big red alert box. I believe developers should come to love error messages. Well written error messages reveal causes quickly and save everyone a lot of time. I hope this developer has learned to show error messages more often. That would be a great outcome.
- GrinningFool 3y agoI would say it should be a big red alert box with a simple error code that the end user can reference when trying to find help. The applications (CLIs, native, web, etc) I've seen that present me with non-actionable errors is a perpetual source of irritation. "Failed to open file" "File could not be uploaded" etc Not only are these useless to the user who can't do a thing about them except try the same thing again, they're useless to the developer or support engineer who might be trying to help them.
- sojournerc 3y agoRelated, the "oops, something went wrong" error messages absolutely infuriate me. Something about the tone, like a child spilling milk, and the uselessness of the message get under my skin.
- 3y ago
- city41 3y agoSeveral times throughout my career I've been hit with something erroring and it just being silent and completely stumping us. No error output, nothing. In a lot of these situations, we were able to track it down to some low level third party library doing `catch (e) {}`. The first one happened early in my career, and it was a good lesson. I don't take any error for granted, at the bare minimum I log it. You just never know, your software could still be used 5 years from now and in a totally different environment than you ever imagined.
- csours 3y agoOh this function is totally obvious to everyone on the team, no need to comment it. 30 years later: /* X systems I modul body I 14.09.1990 */ void xxvcda(int *addr, int sizeof)
- maxwelljoslyn 3y agoOhhhhh yeah. I'm working on some code right now where the previous drive-by author trapped the underlying library's exceptions, then raised completely useless ones instead. He also didn't know how to use the language mechanism where you raise one exception "from" the previous one, to preserve context in the stack trace. Fun stuff. At least this isn't for my job, which has its own fun.
- sdrothrock 3y agoThis recently happened to me with DRF and JWTs -- the JWTs were invalid due to sporadic timing issues and we were unable to log in. There was no indication that anything was going on since DRF was swallowing the validation errors and returning a generic error, so I had to manually go down and add logging to find out what was even happening.
- Elucalidavah 3y ago> DRF was swallowing the validation errors and returning a generic error DRF assumes (for safety) that what you have is a public API. For JWT validation errors, you don't normally expect to have error-level logs, as it should be a problem of the API caller, not of the service. However, if you are using DRF for an internal API, it is indeed useful to change the error handlers to, basically, add tracebacks to all the returned API errors.
- zoogeny 3y agoThis reminds me of a colleague I had that would often say "we aren't making air-traffic control systems here". The implication being that no lives were on the line if we made a mistake. This was when I was making games but it also applies to just about every CRUD app I've written. Tangentially, one thing I often ask other senior technical leaders (especially Director, VP or CTO) is: what is the most costly mistake you have made? If you are a junior engineer, make sure you do it sometime. Many/most high-level leaders in tech can tell stories in the $100k to $1m range. I've seen people lose millions of dollars on a project and get promoted immediately after. It is important to understand why that can happen and why it can even be a good thing.
- knaidofngio 3y ago>The implication being that no lives were on the line if we made a mistake. This was when I was making games but it also applies to just about every CRUD app I've written. I don't agree. Maybe a failure won't result in people dying in a ball of fire, but it can still cause harm. Even minor harm can still add up at scale. Frustration from a buggy game could lead to real-world road rage or shouting matches. People have killed themselves because a computer sent them a bogus bill. Businesses have failed because software lost valuable data. People have been murdered because of silly social media apps. People have organized pogroms on Twitter. People have been stalked and assaulted using information leaked by Pokemon Go. Software has real power. If it didn't, there would be no point in writing it.
- zoogeny 3y agoIt is fair to misunderstand what I was saying since all things are ambiguous. Without context I could see this being interpreted as permission for people to be lazy, incautious or even negligent. But I urge you to consider the other side of the spectrum and the pressures that people can put on themselves. For some, in their search for perfection, they can ruin their own lives. They can see every mistake they make as a personal failure. It is useful to remember that in the vast majority of cases people bounce back from these failures. You will hear over and over how many entrepreneurs fail in their first businesses, often several times. Most often in life you don't just get a second chance, you get many chances. There a only a few places in life where a single failure is truly catastrophic. So if you find yourself overwhelmed as a junior engineer, as described in this story. If you feel your stomach in knots and you are terrified your lead in going to eviscerate you in front of a cheering audience - just know you have more latitude to fail and try again than you might expect.
- stavros 3y agoI miss working on low-risk stuff like that. I now work in healthcare, and a missing letter can mean that someone dies.
- stavros 3y agoWait, how was this not caught in testing? It's not like this would differ between testing and production.
- gardenhedge 3y agoAnd a roll back should have worked for this issue
- ShMcK 3y agoI believe the mimetype check on Android must have only been applied to production environments. It's an odd one.
- failrate 3y agoI always dogfood my own software, but now I guess I also need to corn cob dog my software, too.
- nusl 3y agoPerhaps the jpg -> jpeg tidbit will save my ass someday. Thanks
- jerf 3y agoI've developed a real distaste for the people whining about how we aren't real engineers and we "just" need to solve that by working more like real engineers and having all these massive up-front design meetings and making tons more plans, etc. etc. It betrays a profound misunderstanding of the situation. The other engineering disciplines don't work like that because they're just soooo much more professional than us. They don't work like that because it is a better way. They work like that because for them, it is the only way. You do not build a hotel, and then realize the ceilings need to be six inches higher, and tear the whole thing down and start over. If they could work by running ceilingHeight += 6 and hitting "Rebuild", see the hotel rebuilt and the automated unit tests automatically double-check the usability of everything inside for handicapped people etc., all for a grand total of about $2.82, they absolutely would. Shed your inferiority complex. We are not squalling babies drooling on our blocks while Real Men (with all the pejorative connotations modern political sensibilities see in that term fully intended) are building bridges and dams. We engineer with better tools than they could dream of having, and it's completely expected that that results in highly significant changes to our processes. Do we sometimes fail to bring enough process to a problem? Yup. But if you think that's a problem unique to programming, I prescribe to you spending several hours with https://www.imdb.com/title/tt4788946/ https://www.imdb.com/title/tt4788946/ .
- deleted 3y ago[deleted]
- 4gotunameagain 3y ago> Shed your inferiority complex. We are not squalling babies drooling on our blocks while Real Men (with all the pejorative connotations modern political sensibilities see in that term fully intended) are building bridges and dams. *We engineer with better tools than they could dream of having, and it's completely expected that that results in highly significant changes to our processes.* I just want to add, that this comes off as originating from an inferiority complex ;) Why is the term engineer so important to you ? Just do your job, do it right, and ignore criticism.
- jerf 3y ago
- NKosmatos 3y agoBesides the debuggers/analyzers/simulators/emulators… we have at our disposal, a more powerful “ancient” mechanism exist: code inspection/review/desk-check by a fellow programmer. I understand it’s not applicable in all positions/companies and heavily depends on the team and project size, but I’ve seen it work too many times. Following this, the next best thing is testing (as others have commented).
- assimpleaspossi 3y agoWe had a presentation of our new medical instrument to marketing on Wednesday so there was a big push on Monday to get the display up and running perfectly. There was a dot on the screen. I didn't know why there was a dot but I was under pressure to finish everything else. So I semi-ignored it. The the Engineering Manager walked by. "There's a dot," he said, "Get rid of it before Wednesday." With all the other things going right with the project, why this dot--a single pixel--was so important drove us all crazy. I ran through the assembly code that handled all this over and over again and couldn't see anything wrong. Never a reported error by the assembler. Neither could the project manager. Stayed at work all night to wrap it all up and, on Wednesday morning, everything was done and working perfectly just as the Engineering Manager walked into the room at 8am. "That dot is still there." Like the author of the article, I questioned whether I should be in this line of work. I continued rewriting, assembling, and testing every variation of the code I could. At 3:00PM on Friday, I found the issue. MOVE B #0,D0 Do you see it? Imagine this is the 1990s, with a green screen monitor and a PDP-11.
- mandarax8 3y agoNo I don't see it. Are moving D0 into B? What's the #0 doing?
- assimpleaspossi 3y agoThe problem. It's MOVE.B #0,D0 Do you see it now?
- saagarjha 3y agoI assume that’s where the framebuffer is?
- assimpleaspossi 3y agoYes. Or at least the data for it.
- jaffee 3y agowait... but why did it work in the development environment?
- ShMcK 3y agoExactly. That's what drove me crazy.
- danwee 3y ago> By Thursday, I began to worry about my own job security. I had been spinning on a feature I said I would ship 3 days ago. Off-topic: is it really like that in the US? (I'm assuming he's from the US). Like, if you get stuck for a few days, you start to worry about being fired or reprimanded?
- tedunangst 3y agoAs real as the rest of the story.
- mgaunard 3y agoThe article is nonsense from the first sentence. Software development has all of diagnoses, audits and proofreading. It's an all-encompassing discipline.
- moron4hire 3y agoAnd this is why I have a few KLOC file that has every known media type as a named variable. It takes up less space than a single JPEG image, but it makes it so I never screw up media type spelling. Because I, too, have been there.
- guhcampos 3y agoWhile the low stakes can be seen as a privilege, I could also argue it can be seen as utterly detrimental. Many of us suffer from mental health issues up to burnout. Why do we burnout if we're not dealing with life or death? Something is psychologically wrong with this job. This is, obviously, a multidimensional issue, but one of the probable causes is Alienation. Ultimately, some software developers can, consciously or not, question the meaningfulness of spending 40+ hours a week on stuff that is, to a large extent, pointless - even harmful. Sure, the money is good, but how much cash do you need to buy meaning? How deep in the hedonic threadmill can you go before snapping? I'm not even sure if these questions apply to myself, it's just something that keeps coming up in my own therapy and among friends in the trade.
- sojournerc 3y agoWell put. After 10+ years in the industry I question how much value I've actually brought into the world, and it certainly did lead to major burnout, which I am only recovering from now after 8 months being funemployed. Only in hindsight do I see how bad it was for my sense of fulfillment in my life.
- KaseKun 3y agoFeedback: I opened your page, eager to read, saw the "subscribe to my substack" email popup and just left. Not salty, just broke my interest. So now I will go about my day without reading your article. p.s. I'm sure it's very good though Consider saving that popup until I've read some of the article
- user_7832 3y agoThat's substack behaviour btw, and you can just click continue reading
- lemper 3y agothis kind of thing is what I realised in my first 2 years of my work life. and whenever we have a family gathering, those relatives are usually bragging how hard their jobs and life are. but not me, I brag how easy my job is. clock in at 930, get the hell out at 1830, then no thoughts given about job after the hours.