This! I worked for two huge (~60 and ~600 million page impressions per month) online communities for a total of 15 years. The level of stress induced by the users whenever something broke, was changed (even only slightly) or they just had a bad day was horrible and led to all kinds of fuzzy health problems (mainly panic attacks and hypertension). I was very attached to the product and always strived to make the users happy, and that played a big part in the problem.
Making slight changes to the interface oftentimes resulted in users insulting us like we had renovated their living room without permission. Can you imagine what it was like when a bug in Apache's mod_cache suddenly cached session cookies?
I always loved the job, but that made it so hard to draw a line and not letting it get to me.
Afterwards I switched employers and started working on a B2B platform in the banking sector. Of course, the enterprise has a different set of problems (in my case, no clue what the requirements really are), but your corporate users are just used to a different kind of standard (hint: way lower than your average Bootstrap frontend). They pay very good money, let you work on interesting things, technology-wise, and users are mostly easy to satisfy.
I worked for 10 years in the software departament of a large IT distributor. We had a B2B web portal to sell IT equipment. The clients were all business, ranging from small (~$1000/mo) to large ($10M/mo). Now, the clients were still complaining but not as much as I figure they do in a B2C environment. However, what made it worse, in my opinion, is that when they complained we had to listen. This is not a single _user_ out of 500k, it's a single _paying customer_ out of 5000. This resulted in us having to implement a lot of one-off features that were specific to a single or a couple of clients on a platform used by all of them. That in turn resulted in the codebase becoming a monstrosity and me being frustrated and tired by feeling like I had 5000+1 bosses. I stayed so long only because the software departament and the people in it were so awesome.
And yes, having to implement features that are rarely if at all used (and sometimes removed before they ever make it into production) is demoralizing.
I think it all depends on the customer(s) - be they business or consumer.
I worked for about two years and a half in web development, and in one case the application was widely, widely used. Everything was on fire and users complained constantly. Saying that I don't miss it would be a big understatement.
I'd love to hear more about how such a system works, purely for engineering value's sake, because it happens to be a thing I find very interesting from an outsider's standpoint.
On the surface, as someone mostly naive about cellular RF, I know you're dealing with things like
- Given <n> buildings, how do you optimize for reception around (and, for 1000 bonus points, inside) said buildings, while minimizing echos (and, subsequently, in-band noise that the RF frontends can't mechanically filter) from signal reflections?
- Given a tunnel long enough to need a snake-antenna system (what are these properly called, and are they actually snakes? I just see long thick cables at the (dark) entrances to train tunnels), how should you place the towers near both ends of the tunnel to optimize handover?
- Given <random bunch of hills>, how do you optimize placement within terrain, elevation, landscape features, etc?
I'm guessing your system has access to highly-accurate databases of landscape/terrain and building geometry/geography (basically the machine-readable equivalent to Google Maps)?
The reason I mention the above is to characterize/elucidate this problem space to hopefully attract interested replies encouraging you to find out what details your boss will let you share. :D
Also I'm on vacation and I won't see my boss for another week :).
Regarding bugs: We were a very small team of just 2-3 engineers. One could argue that the business model was just wrong, but if we wanted to hire another 5+ engineers we'd have to dial up the ads like crazy (of course leading to even more user outrage). And back in those days (we're talking 1999-2012 here) our foremost problem wasn't bugs, but keeping up with the ever-rising traffic on a highly dynamic system.
I've been inclined to work on BTC rather than BTB because I imagined it will have more impact than the other (e.g. facebook vs salesforce)?
Both communities were focused on everyday problems, one dealt with parenting and the other was about cooking (recipes). I wouldn't have stayed for over 10 years with the former if there were never any positive things. It always felt a bit like I was doing something for the greater good (I don't want to sound arrogant here). Seeing how women finally got pregnant after many frustrating months (or even years) with the help of one of our tools (a period tracker) was very rewarding. There were people supporting each other when one of them lost child after child during pregnancy for whatever reasons.
Most of the users that kept complaining about everything were long-time users. Many didn't have anything to do with the main topics of the platform. They just stayed because they liked the community and discussed politics or whatever in one of the sub-forums.
In the end, the company was bought by a large publisher, all the staff (12 people or so) was basically let go (after 10+ years) and nowadays it's an almost unusable user-interface mess with ads in every corner. Oh, and that one specific sub-forum the users used to complain about stuff? Yeah, that was shut down completely to just shut everybody up. What a simple and effective solution for a pesky "problem" ...
To be honest, I never liked the idea of being heavily dependent on advertisement to finance the platform, but sadly that's just the way the Internet works.
After I became a father of two, my priorities shifted towards my family and I'm now more interested in doing something good for and especially WITH my kids instead of working a stressful job.
You could ask during interviews "how many customers do you have? are they big?" and usually the company tries to brag that they have that one big brand name, but in my experience this is a red flag. Be careful.
I'm curious what everyone does for this. I've attempted to find a few things but nothing has strongly clicked with me. Most of my interests right now are on the computer, which makes it hard to disengage, and I definitely need to do more to get a handle on it.
I have a neat trick that I started doing during my university time (ymmv as not everyone will be able to use it). I started with using exclusively linux for any programming and/or homework assignments. When I'm at my personal desktop - it's always windows, at work I'll use linux or OS X, depending on what my options are.
It works pretty well for me, as it's a context switch for my brain - native terminal = work, windows = fun.
As an additional bonus, a dog which I can't reasonably leave home for extended periods of time (bringing her to work would never be an option, even if my workplace is dog-friendly) and have to walk so that gets rid of anyone (including myself) trying to squeeze OT out of me, and gets me out of the house for regular walks.
I found that this really helped me to focus on my work when I am on Ubuntu, and in my free time it makes gaming much more enjoyable on Windows without constantly getting reminded of my work.
This actually works great for relaxation - I need to physically move to the couch to play games and the machine itself doesn't have any kind of notifications enabled, so I'm not distracted during gameplay.
Even computer stuff can force you to disengage; like gaming (especially on a console; it doesn't do mail or anything else productive :). But also, I like, as a hobby to work on small programming languages, type systems, proofs etc. Those things will never make it to production and will never make money, which is the point. I find them a lot of fun and during those it is very hard to get me to do anything work related as they all suck me in and keep me there until I sleep.
Unfortunately most of the people in my social circle do not understand why I open a book or am at my computer again when I come home. It is very hard for them to understand that I really love to get lost in my own thoughts or at the very least daydream.
One piece of advice is to find something that you think might be fun or cool. Then stick to it for a while even if it's not that fun to start with.
For example most sports are quite miserable when you start out, but when you start to do progress and get a bit hang of it, it becomes fun.
Choosing interesting and funny podcasts prevents me from getting bored of taking the same walking/jogging route daily. Some of the nice podcasts I enjoy and learn a lot from: freakonomics radio, tell me something I don't know, TED radio hour.
Expose yourself to different things, be relentless - if you don't like some hobby/activity/sport after few weeks once you get a bit of a hold of it, move on. These days, there are way more things to do in life than one can possibly manage, even if not working at all.
I found out in my late 20s that adventures are THE drive for me. They have various forms - backpacking in remote parts of the world, doing sports like hiking, climbing, skiing, alpinism, ski touring, paragliding, diving etc. Add rigorous physical training to make this all happen and enjoy in safest possible manner.
It was not a sudden revelation, rather gradual process - after spending 16 days on Annapurna circuit in Nepal, something changed in me. Being at the right spot at the right time, meeting the right people along the route. It took a while for me to realize this, and I am continuously changing priorities - paragliding being newest hobby, the goal having pilot license and be self-sufficient. Its a long process, but one I want to undertake seriously. I mean, it's freaking flying! In cheapest manner possible, and for some even coolest. I can't manage to do more, there is simply no more free time.
I know I will not look back when dying and cherish those moments spent in front of the screen, in contrary. I will for sure remember every single peak climbed (the harder the effort the fonder the memories), every country experienced, the strong emotions when I proposed to my fiancee on top of Mont Blanc, the tears of joy on top of Matterhorn or Kilimanjaro etc.
I really struggle with the office environment. I really love the open source development culture of mailing lists, IRCs etc. Handling different people face to face and their mannerisms always irks me a lot. Also being an introvert in a horribly extroverted workplace really puts a stress on me.
When I go home I really love to read and implement something at my own pace. These days I have picked up cooking which is a lot similar to programming and I really love it.
That way I can't do work stuff at home, even if I wanted to. The only thing I have access to at home is my work email, so that I can email in sick if need be.
New studies also show direct relation between running and having reduced stress levels and having antidepressant effects.
though i like cooking, surfing and Brazilian jujitsu. recently started skating again. thinking about getting into yoga.
going to a class like martial arts or something similar where there's a teacher, you can improve, socialize and go regularly might help.
My words, unsure if yours.
it takes some doing but it's well worth the effort to move your leisure time away from device-focused activities. the sense of life balance gained is palpable.
I had the great fortune of working adjacent to a machine shop. I learned TIG on a work machine. A co-worker spent 15 minutes showing me setup and some example welds, then it was mostly seat time from there, with lots of YouTube and a couple of "hey, how's my weld look?" sessions.
Actually fabricating stuff can be an issue when you don't have machine shop at your disposal. Luckily, some metal shops have a CNC laser or plasma, so if you design something in CAD, you can shop out sheet metal bits and avoid the hassle. There are places that will laser cut and notch steel or alu tube so that you can sort of just hand-bend and lego your workpiece together.
One tool that's not obvious, but becomes indispensable especially to a homegamer is a portable bandsaw. Get a decent corded one-- it makes cutting tube stock etc accurate and fast. You can fabricate a stand for it and turn it into a static bandsaw as well.
You've got 3 major types of welding you can learn (I'm going to skip torch welding, most people on HN can't keep a 45 in. tank of acetylene in their 4500$ a month studio apartments. ;D)
Stick welding - this is like the "low level language" of welding. Lots of greybeards recommend it to start with because if you suffer through getting good at it, you'll breeze through all the other weld types. The rig is also the cheapest way to start. You hold some plastic and copper salad tongs with a stick that looks like a sparkler in it. Then you spend ~20 hours trying to strike an arc on steel to get the stick melting without getting your stick stuck. It's a pain in the ass. If your primary goal is gaining non-developer related expertise through practice, get yourself a stick welder, I guess. If you goal is to affix two pieces of metal together, and you don't necessarily want to find a mentor or take a class, ehhh.. I'd skip it.
Mig Welding - The batteries included, jQuery of welding. Greybeards and enthusiasts will often guffaw at it, saying it ruins you as a welder (sound familiar?) while still owning one and using it whenever they put a trailer together. Instead of holding a stick you hold something that looks like a gas pump that feeds wire from a spool in the machine. You pull the trigger on the pump and wire comes out and gets all sparky. Oxygen is the enemy of good welds so you've got two subtype solutions to deal with this: flux core wire and gas. Flux core welds tend to look dirtier, but it's fewer categories of consumables to work with. Get the argon if you want to maintain some level of street cred with the "real" welders. 99% of welders are terrified about being excommunicated from the church of welding by real welders. The last 1% just want to go home and think only of retirement. If you just want to buy a thing and stick metal together, get a Mig welder and some spools of flux core. Also get an angle grinder, because your welds are going to be covered in flux crap. When you get tired of grinding, graduate to shield gas. Most good machines support both.
Tig Welding - This is the cool kid welder. You hold something that looks like it's straight out of a dentist's catalog. It's got a tungsten pencil tip inside a cup. Tungsten gets real hot cup directs shield gas around tungsten, you hold filler rod in your other hand. Filler rod, tig welder, and workpiece meet in a symphony of UV light, stacked dimes and magic. Tig welders are like distributed, containerized microservice developers. Their rigs accrete complication as time goes on. They get foot pedals to control amperage, whammy bars to add that rock flavor, flight sticks they can't even use because their hands are full. It's like spinning plates while chewing bubblegum. If you'd like to be able to turn filler rod into a Norman Rockwell painting, get a tig welder and take a class.
Torch welding. - Okay I've typed this much. Replace the fancy tig torch rig with an acetylene gas torch. Get this setup if you'd like to build a battleship in your backyard.
Here's the one thing that really does piss off the grey-beard welders worth listening to: do not endanger people by doing welds a professional should be doing. Say you get your steal-me-red lincoln electric and you get pretty good at it over a few weekends. Say you even make a nice bird house with it.
Do _NOT_ weld your neighbor's bisected lawnmower blade back together no matter how much he asks you to. Your weld will fail and he will lose his foot. Do _NOT_ weld your neighbor kid's swingset back together. The weld will fail and a kid will end up in the ER. The kid's parents will come find you and try to beat you up. Latch come off someone's chain link fence? Go ahead and weld that if you want. Basically just get a professional involved if a failed weld means injury / death.
Since they aren't, fantasizing about all the traffic I must be getting is enough.
I don't know if I should support such a vain activity, I read your first entry and I enjoyed it! If you haven't figured out the logs yet, you can add 1 to your manual hit counter.
A real high octane class might teach you how to read a phase diagram for different kinds of steels, how to normalize / quench harden / anneal and temper your work to achieve desired properties after you take off your hood. There's a lot decisions and knowledge that go into being safe at industry standards.
From a practical standpoint, I'm not a professional welder. If I can wack the workpieces as hard as I can against my driveway with no visible changes in my welds, I'll risk my nuts on a bike of my construct. The unforgivable sin is making that choice for _other_ people. So, until the Grand Vizier at the Local 10' gives you your welder's badge and gun, don't donate your bespoke, all natural, cage free bikes to the local ride-share.
Youtube, concentration, and a bit of perseverance can totally learn you enough to safely endanger yourself though!
But, I wouldn't completely discount startups as an option. There are startups that respect their employees time and offer a great environment for low-stress workers, at least at the 10+ employee level. (I don't have much experience with startups smaller than that). If you value self-determination, a startup can be a great option.
There are pretty big cons to the bigger corporate world, B2B, etc., but money isn't as big of a difference as it first appears.
At the of the day, it's about being able to meet your needs, being able to save so you don't worry much about the future, enjoying your work and also finding time to enjoy life outside of work. If you're able to do this, it doesn't matter if you work 40 or 60hrs.
IMO, Optimize for TC and Happiness. If you can find joy in your work, it won't matter. It's easier to enjoy 80hrs of work that you love than suffer through 40hrs of work you hate.
- People regularly take vacation time.
- They're happy to hear that you care about work/life balance and will not work more than 40 hours a week except in emergencies.
- You're not strongly invested in whether the company experiences long-term success.
- They have a moderately refined change control process (e.g. Scrum, but anything works as long as it collects all the work in one place to be prioritized and scheduled).
- You don't have to go on-call. (For many, this can be quite stressful.)
The first company I ever worked for was a sorta family business. The owner was also the CEO and was very responsive to the needs of employees. He would throw parties in their manor, and everyone knew each other well and there was much less rivalry/competition to climb the proverbial ladder. Very true about working for people who're married with kids; this gave the owner, and the company, a kind of professionalism that has served me well in my own career. They were really kind-hearted people, until it came time to make some serious decisions about the future of the company.
Often times family businesses are unwilling to sell or dilute their equity since their identity is so tied to the company. This became a huge deal when there were talks of taking the company public, accepting outside investment etc.
1) This goes without saying, but avoid startups. The more established the company, the better. Big corps are much more likely to respect a 9-to-5 workday and much less likely to call you at 2 am.
2) Try to work in a BTB product, not a BTC. BTB means way fewer customers, and fewer customers means fewer eyes looking for bugs, which in turn means a lower probability of finding an unexpected bug that needs to be solved yesterday. This sounds a bit cynical, but really isn't because of my next point:
3) There is an even better way to avoid bugs in production: have a very good and thorough testing system. When interviewing, ask about the testing process and how likely are they to detect bugs before a client runs the code. If you are looking for a job as a tester, instead ask the following: how automated are the tests and the build system? The more, the better.
4) This might sound bad, but it's my best piece of advice about jobs: look for a workplace that has lots of women (yes, they exist. For certain charitable definition of "lots", at least). Especially older women. Bonus points if you see pregnant women. Double bonus points if people are allowed to work less hours in order to take care of their kids, and you know a few people taking advantage of this situation (IDK how frequent is this in the US. Here in Spain it's common and regulated by law). Triple bonus points if there are many women in managerial positions. I realize that all of this sounds sexist, but whether we like it or not, the weight of childcare and housekeeping still falls mostly on the shoulders of women. So, if you find a company with lots of women, it usually means that the company offers very good work-life balance. As a bonus, you avoid one common source of stress: the competitiveness that pervades certain brogrammer companies.
There are also some points to consider that apply to every job: learn to forget about work the moment you exit the office (have something to do on evenings. Something for yourself, something not related to your job); try to make commute pleasurable (walk to your job, use public transport so you can read, etc); avoid romantic relationships with colleagues, especially people you work closely with; etc.
EDIT: typo.