from Hacker News

Facts every web dev should know before they burn out and turn to painting

by caseyross on 10/17/21, 9:32 AM with 420 comments

  • by hvasilev on 10/21/21, 9:56 AM

    The thing that burns out web developer is web development. The constant shift of technologies (just for the sake of it) and the nerfed (to oblivion) environment is hell. As a web developer, after you learn the basics (~5 years) there is no feeling of where the "up" direction is. Everything feels like sidesteps. There is no feeling of permanence to your knowledge, unlike a lawyer or a doctor. The knowledge feels like water pouring into a full container - as much of it goes out, as it goes in.

    Switched to embedded systems 7 years ago to avoid the burnout. It is better, in my opinion. Funny enough, there is a natural barrier to entry that keeps most programmers away - You have to understand how computers work, how operating systems work and you have to be able to code in C/assembly. I have a lot of fun and actually picked up electronics as a hobby, which will help me better myself professionally. I think there is enough here to keep me entertained until I retire.

  • by physicles on 10/21/21, 5:07 AM

    > 64. DRY (don’t repeat yourself) is a luxury for when you have a coherent theory in your mind of the app’s code.

    > It’s for when you have that theory contained in a worldview in your mind that helps you quickly test out decisions and plans against that theory.

    > Until then, you should repeat yourself. Seeing your code repeat itself – when rhyming phrases start to pop up throughout – is a vital tool for building a theory about your app.

    Wow, this is the best explanation of how to apply DRY that I've ever heard.

  • by mouzogu on 10/21/21, 5:48 AM

    Nice read. I've been doing web dev for 15 years. What has got me burnt out now:

    -Spend most of my time dealing with tooling issues.

    -Increasingly complex demands. Even the simplest problems now seems to be multi layered with dozens of edge cases to be accounted for. It's seemingly impossible to get anything right. You can spend hours testing a responsive design on every browser, every viewport - send it to the client and you'll get after 5 minutes a list of 50 issues, half of them totally asinine.

    -Lack of respect/authority/autonomy. After 15 years I'm considered a subordinate to a PM with 6 months experience and zero technical knowledge. This one can be improved a little by working remotely I think. But it just comes down to how management view or value different roles. We are a liability to them, something to be managed, coerced and controlled.

    -Oversaturated market, learntocode, let's be honest and say for 95% of companies, web devs are a commodity. I don't have an issue with people who are excited and want to learn coding, but the reality is the job market is over stuffed.

    -Leetcode interviews. I just don't have the energy, desire and sometimes specific knowledge to deal with these interviews. Its a straight no from me now, if i get contacted by a recruiter requesting I do one of these.

    I can see clearly that other people in non technical fields are getting paid better or the same as me and dealing with far far less work and far less stress.

    It's like there are two type of work category: "reviewers" and "implementers". Reviewers are the stakeholders, they make all the demands and do none (or very little/superficial) of the actual work. Implementers, well we are the ones who do the heavy lifting and deal with all the real problems.

  • by hsn915 on 10/21/21, 12:50 AM

    The one thing you should understand is the average programmer is not a good programmer.

    The reason is simple.

    The average programmer is a newbie with little to no experience.

    It's like a pyramid or a triangle. There's more area or volume at the bottom than at the top.

    Every year, more new people arrive at the scene.

    New programmers are easily fooled by "shiny" objects.

    So, whatever place you join, there's a high likely hood that the culture at the place is dominated by what is considered popular, with little to no regard to what actually works well.

    It's different at each place, but almost every company I've been too has things setup in a way that's very painful and frustrating to work with. Every thing takes many steps. "Compiling" javascript takes 3 minutes. "Hot Module Reloading" takes 30 seconds and refreshes the page 5 times. You have to jump between 4 different repositories to fix a small bug. etc etc etc.

    If you are experienced and notice that things at your company are broken, you either try to advocate for fixing things or just leave out of desparation. So the organizational culture continues to be dominated by people with very little experience.

    If you are not experienced, you may just think that the "suck" you have to deal with on a day to day basis is just what progamming is like, and you might well decide to quit programming. It's hard not to think so when you have never seen a better version of how things can work.

  • by zamalek on 10/21/21, 4:41 AM

    One thing I understand as a "backend engineer" (which my front-end/web engineer colleagues usually hold in high regard): my code does exactly what I tell it to do, good logic and bad logic.

    You can have the best and cleanest JS that targets FF, and have it fall over one million ways in other browsers (I'm looking at you, Safari). There is a level of respect that is lost, so far as the expertise of understanding the lowest common denominator across browsers, and actually getting that denominator to do something useful.

    Front-end is, at the end of the day, much harder than backend. I understand why us backend people get praise: algorithms, distributed systems, coherency, performance, yada yada yada. Imagine coding against a system that doesn't behave consistently. No thanks.

  • by kodah on 10/21/21, 4:19 AM

    Honestly, the thing that's burns me out about this industry is none of these points. It's interviews. Specifically, algorithm interviews. The higher the level I've had, the more abstract of problem people think they're entitled to throw at me. I've played connect-4, I've had to write out binary search, I've had to pop from and push to stacks until my eyes turned blue all because... This somehow exemplifies a bar?

    To be clear, I work on SDKs, CLIs, and mostly server infrastructure components (daemons, schedulers, etc). I know problems within my domain well, and as a result I can model for them well. Take me out of that, and I have exponential diminishing returns. On top of that, I'm not a college grad. I'm self taught. I didn't see these problems near as much as college grads do, so solving them in 30 minutes or an hour is like filing my teeth down without a numbing agent.

    Anyway, I am getting out of this industry and taking the money I've made to go into EE. Maybe these notes will help make someone make their interviewing or promotion process better though.

  • by suction on 10/21/21, 6:13 AM

    The point that "Web design" is part of pop culture is something I've had a very hard time with working as a dev at non-software companies; Everybody from every department wants to have a say about how the website looks.

    Web devs are expected to acknowledge and obey the opinions of those with "pull", i.e. "Gary from sales", the CEO's wife, or whatever "hot new hire's behind" the company is currently blowing steam up.

    Projects would always end up as "designed by committee" and way worse than they'd have to. Management just shrugs, even if they understand the problem. After 1-2 years nobody remembers why the result is as bad as it is and assumes that the web dev just isn't that capable.

    But the web dev, even if he's got a "Head of.." title is never seen as equal to the Head of Sales or Head of HR, so the cycle continues.

    I've heard many devs envy people like me who work in non-IT or non-Software companies: "Nobody understands your job so you must be able to do whatever you want!" - but the opposite is true, because people don't understand how little they understand about web dev. They think it's all the same, from building a service like Gmail to the CEO's teenage son's band homepage.

    Around 2006 I've even got someone from marketing with no technical background whatsoever set up a "think tank" inside the company because his idea was to "create a Facebook competitor". As in, world wide social media juggernaut, using the resources found in our company: 1 web dev, 1 infrastructure guy, and one Windows help desk person. The shocking thing was that his superior didn't immediately shut him down, but let him waste everybody's time for weeks.

  • by lindseymysse on 10/21/21, 12:45 AM

    I'm a web developer who comes from a family of painters. I write software because I'm for the most part burnt out on painting. What should I do?
  • by gnabgib on 10/20/21, 11:42 PM

    Most of these are opinions, and the list is far far too long (there's 136). Funny that simplicity, excessive decoration and, moderation get mentions, but conciseness does not.
  • by carabiner on 10/20/21, 11:48 PM

    Facts every mathematician should know before they leave society and move to a cabin in the woods
  • by zeptonix on 10/21/21, 3:05 AM

    If you need 136 bullet points to say something, you really don't have a message, just ramblings.
  • by corporealfunk on 10/21/21, 1:02 AM

    Nothing wrong with painting. For anyone wanting to (re-)connect with creativity and expression, I recommend picking up a copy of "Life, Paint and Passion".

    https://www.goodreads.com/en/book/show/140167.Life_Paint_and...

  • by culebron21 on 10/21/21, 8:21 AM

    I don't see how this list is going to help you stay in web development. Small technology peculiarities or judgements on tech is fun, but the frustration and burnout come from the attitudes and senslesness of the job.

    A developer usually has 0 power of voice, and knowing how things can be done a better way is not helping: you can't convince management to change approaches unless you are part of it.

    As a personal note, I did web development as amateur since 1998, and as a day job in 2009-2016. After that, it was clear that the industry became a huge factory where you constantly screw the same kind of nuts on a conveyor belt.

    Out of factory web development, you could do simple project sites for small local business or NGOs and their events/projects, but that meant tinkering with Wordpress plugins and very low pay.

  • by bitwize on 10/21/21, 1:16 AM

    Have some personality. Personality does not mean Corporate Memphis personas made of a few simple shapes in Illustrator. I don't want to meet "Ahmed in Sales" or "Ndugu in Accounting". Not when they look like every other blob of filled Bézier curves out there.
  • by Borrible on 10/21/21, 5:47 AM

    A lot less blue, some less green and a bit less red will change your rosy visions to burnt sienna which is much more grounded and earthly.
  • by throwaway984393 on 10/21/21, 3:37 AM

    "Software development needs to support the needs of those in the organisation. Otherwise, its ability to serve the needs of the customer will fall apart in short order."

    Lol! Software developers that care about customers. That'll be the day.

  • by beeforpork on 10/21/21, 8:40 AM

    As people talk about below-average programmers, here's a lesson I learned: you can finish a project even with below-average programmers. You do not rely on the best ones. Not-the-best programmers are also capable of learning, and they usually improve, and they do deliver.

    Also, even the best programmer will make really stupid mistakes that may break everything.

    Also, the best programmers in your team are prone to starting a fight over BS, because they tend to have a very strong opinion.

    It's too simplistic to want only the best programmers in your team.

  • by johnchristopher on 10/21/21, 8:20 PM

    > The best way to improve software UX is regular direct observation, by everybody on the team, of the work done.

    I disagree with this one in some scenarios. Replace "everybody on the team" with "your prospects and users".

    > Everybody has small screens, and they all know how to scroll: only make UI widgets ‘sticky’ or ‘fixed’ if you have to. They know where your navigation bar is. You don’t have to push it in their face the whole time.

    True, true, true.

  • by _the_inflator on 10/21/21, 11:47 AM

    Coming from a website on AOL in the mid 90th till today as head of 500 FE devs for a well-known financial service company, I think this applies mostly to the field of small projects and large companies who treat their apps as small projects.

    I love abstractions and I love tools, especially those that need to be invented to help people do better work namely the devs.

    I transformed our FE area (ca. 200 devs) into working with a self-developed platform on top of a framework. We rely solely on Angular since 5 years now and never looked back. (Why not React? Try to develop large apps with many, many teams in different countries with different skill sets 24/7: opinionated for the win. React is like C while Angular is more like Java or Python in this case. Great tool, but people are the "problem".)

    Results? Highly reusable complex components, a No Code Editor on top of it - and highly motivated FE devs which can work on projects or on the platform, depending on their skillset and motivation to tackle more complex problems.

    Why? Because I've been where the author has been many times as a dev and as a Manager this is what I did: Do not repeat the process mistakes over and over again.

  • by BiteCode_dev on 10/21/21, 9:33 AM

    Fact 137: don't read articles with 136 facts, there is no way you can put them in practice or even understand them all, and it will overwhelm you.
  • by chiefalchemist on 10/21/21, 2:12 PM

    Most web devs are aware of most of these, or at least the gist. The issue (I find) is the clients, management, the creative team, etc. are not. Not that they need to understand the nitty gritty details. Of course not. But their disconnect between their expectations and reality is demoralizing and destructive.

    These lists are helpful and entertaining, but the damaging friction typically too often comes from the outside

  • by andrew_barger on 10/21/21, 12:03 AM

    The title is on point for me... I used to spend a fair amount of free time training on technology or working side projects. Since I became a manager, I lost my taste for it. The temptation to do work any time I'm at a computer is too strong. So now, my free time is for learning to draw and paint.
  • by akatechis on 10/21/21, 12:02 PM

    > The second rule of SPAs: we always underestimate the complexity of reimplementing history and link navigation. Often by a large margin. But we get away with not caring because nobody tests history management properly.

    Exception to the second rule of SPAS: Users will always test your history management properly.

  • by mrweasel on 10/21/21, 10:12 AM

    13 is one I really like:

    > If the user has big screens, make use of them. When you have space, opt for detail over decoration, data over branding, buttons and navigation over menus.

    So many sites are just designed for the tall, but narrow, screen on phone, and don't make any attempt to utilize a 27" wide screen monitor.

  • by max002 on 10/21/21, 9:09 PM

    "Don’t rely too much on tools. They will let you down." What a terrible, terrible, terrible advice. I cant, cant, cant pass on this as i find love in programming tools. Your saw has to be sharp when you cut the trees. Programming your own tools and relying on them... thats good advice, using other tools too. Some people write same shit all the time instead of automating, not surprising ppl burn out. Boring is boring, doesnt matter if its picking fruits or writing crud for your entities that in fact should be generated :D ahh... and tools? Yeah, thats how im having my coffe while drawing in 3d to later play with models in blender in vr... while my job gets done ; ) dont use tools, never, theyre evil and will let you down... and work hard, not smart.
  • by locallost on 10/21/21, 8:22 AM

    > Then SPAs take away what they give because they are error-prone and costly to develop. So much state to track.

    There really is something in knowing that even if you screw up somewhere it will all be gone by the next click. I mean, of course the job is difficult precisely because there are a lot of details to track, but what if you actually shouldn't if you don't really need to? I work on a product that definitely does not need to, and the amount of time we spend of bug fixing compared to our pre-SPA days is mind boggling. So we can spend a lot of time on making ourselves better developers, which is good in general, but do we need to if our product is really simple?

  • by elcapitan on 10/21/21, 8:42 AM

    I get burnout just by reading this endless rambling list.

    Btw, painting is really fun, you should try it :)

  • by barbazoo on 10/20/21, 11:45 PM

    > before they [...] turn to landscape painting or nude modelling

    nothing wrong with that

  • by ozim on 10/21/21, 11:54 AM

    Such a great insight on management tools - that it is people and communication to blame not the tools.

    But author fails to apply it properly to SPAs - SPAs are great tool - problem is that people use those wrong. They want to put ALL of their screens into one and build those too big. I find it useful to use SPA framework when I have one screen and multiple interactions/popups/elements that need to be manipulated in the same context. If it is different contex then it probably should be a different app for working in that context.

  • by chiefalchemist on 10/21/21, 1:02 PM

    Most web devs are aware of most of these, or at least the gist. The issue (I find) is the clients, management, the creative team, etc. are not. Not that they need to understand the nitty gritty details. Of course not. But their disconnect between their expectations and reality is demoralizing and destructive.

    These lists are helpful and entertaining, but the damaging friction typically too often comes from the outside.

  • by einpoklum on 10/21/21, 12:55 PM

    Fact 137.

    Painting is not that easy, and highly-regarded painters tend to have mental health problems. Some even self-mutilate or attempt suicide.

    https://artsandculture.google.com/usergallery/the-connection...

  • by dotancohen on 10/21/21, 10:24 AM

      > Only use the ID selector in your CSS as a last resort to fix
      > extreme and hard-to-solve specificity issues. Try doubling up on a
      > class first. .class.class is a valid selector and can work wonders.
    
    Someone is going to have to justify this. What does .class.class do, and how could that be better than #id?
  • by vermilingua on 10/21/21, 3:44 AM

  • by wly_cdgr on 10/21/21, 4:35 AM

    This stuff is gold. A real pro

    Another great post I found on his site after reading the OP: https://www.baldurbjarnason.com/2021/what-do-i-need-to-read-...

  • by andrewxhonson on 10/21/21, 12:21 AM

    > if the reasons are complicated, then the design should represent that complexity. Hiding complications makes everything harder, and excessive minimalism is just as harmful as excessive decoration.

    Love the phrasing and idea of a design "representing" complexity accurately.

  • by ed_elliott_asc on 10/21/21, 6:55 AM

    7 and 8 really call to me - if you ease time on bugs, no automation (or worse poor slow automation) then the project will take 2,5,20 times longer.

    I’ve seen this time and time again and it is such an easy thing to get right at the start of a project.

  • by z3t4 on 10/21/21, 5:24 AM

    > No, I’m not going to explain any of these.

    Then the first 5 doesn't make any sense...

  • by rodarmor on 10/21/21, 6:32 AM

    It's usually actually bread baking, not painting, in my experience.
  • by hooby on 10/21/21, 12:34 PM

    Now that I know all of those facts, I can finally burn out and turn to painting!

    Yay!

  • by eternalban on 10/21/21, 11:10 AM

    I'll offer an alternative "fact" for burned out web devs: there is something called a backend and the weather is beautiful. Consider moving there.
  • by blitz_skull on 10/20/21, 11:48 PM

    Uh... what did any of this have to do with not burning out?
  • by aercolino on 10/21/21, 10:48 AM

    Oops, I expected funny jokes, I got depressing facts.
  • by k__ on 10/21/21, 10:14 AM

    For me it helped to get away from wage-slaving.

    Having no control over half of the time you spend awake is mind numbing.

  • by polynomial on 10/21/21, 1:37 PM

    Do web devs often start nude modeling after they burnout? I hadn't realized that was a thing.
  • by beckman466 on 10/21/21, 1:09 PM

    what do we have for people in the service industry who burn out? what advice do we have for them?
  • by paunthony on 10/21/21, 2:50 PM

    I do look forward to the day that every developers will never to suffer burnout.
  • by adminscoffee on 10/21/21, 5:42 AM

    can't i do both?? but yeah burn out is real. i am experiencing that now
  • by emeraldd on 10/21/21, 12:45 PM

    Am I the only person who thought this list was going to be about painting?
  • by arbuge on 10/21/21, 11:29 AM

    To this list I would add fact #137: Painting is not as easy as it looks.
  • by polyterative on 10/21/21, 12:02 PM

    I'm 10 points in and this is already fantastic
  • by caseyross on 10/17/21, 9:34 AM

    (Title cropped to fit the length limit.)
  • by cottsak on 10/21/21, 9:29 AM

    Wow! I really love the SPA hate!
  • by Splizard on 10/21/21, 12:19 AM

    I think the first 8 apply to all software development, not just web development.
  • by datavirtue on 10/22/21, 12:37 AM

    Too late.
  • by tppiotrowski on 10/20/21, 11:48 PM

    Too late
  • by inside65 on 10/21/21, 11:20 AM

    People here bash PHP often, but if you've been developing on PHP, it only gets better over time.
  • by saasaccount2 on 10/21/21, 9:43 AM

    This is spot on! You've identified and thoroughly explained the facts in a very structured way.
  • by RandyRanderson on 10/21/21, 1:19 AM

    "9. HTML is fantastic", I stopped reading there.