I tried to convince myself that these advantages made it worthwhile to sit alone in a dark room for >10 hours a day, but in the end I couldn't. I was spending more time wrestling with package managers, version conflicts, obtuse configuration files, pointless deadlines, egotistical colleagues, and almost zero time solving interesting problems on products that I care about. You might argue that I should have just found a better job, and I did, several times, but I found that no matter how much enthusiasm I had for a job at the beginning, eventually it got bogged down in software engineering detritus. I didn't much care for my colleagues: no offense to those present, but I just don't really like tech people, despite the fact that I obviously am one of them.
Through a series of coincidences, I found myself with an opportunity to teach programming at the university level. It was a lot of fun: I can talk about problems that interest with me with people who want to hear it. I operate with very little supervision. I still get to learn new technology, but fortunately I can ignore the rough edges and focus on the benefits. Meetings are minimal. The salary is adequate for my lifestyle. Best of all, I get to interact with real, live human beings. (Although at the moment, of course, we're doing everything via Zoom.) Fundamentally, the problems I'm solving are not technology problems, but human problems. At this stage in my life, this is more interesting.
I never imagined I'd end up a teacher, partly because I was a terrible student. Over the years, I had gone back and forth between industry and academia but now I think I'm in academia to stay: there's nothing I miss about slinging bits for a living.
Ironically, I'm helping my students enter a career that I left, but I let them make their own life decisions.
That squares with my experience of software development. It's like being a furniture maker but spending 80% of your time fixing your goddamn hammer because it keeps breaking and no better hammers exist, or consulting glue-drying tables because they keep changing your glue on you every hour or two and for no good reason every single glue performs differently while accomplishing the same thing.
... and then most of the remaining 20% is meetings and communication, which would be fine if you had more time to do the thing you're actually trying to do.
This is something that you're supposed to know on the first day after you finish apprenticeship.
In the modern tech industry you need authorization from your product owner/manager and engineering manager just to build a new tool or abstraction to automate or speed up your own job, because god forbid you do anything that's not in JIRA.
But my PC has recently started crashing for no obvious reason. The analogue has crept into the digital. Every error message is different. Parts work when tested in isolation. The whole is less than the sum of the parts.
It's really quite annoying, and I'm enjoying walks in the park more these days than typing on a keyboard. I put up some shelves the other day. They are still up. An update won't break them. Reliable.
The iOS dev experience is far from perfect, and while YMMV, I definitely found I spent _much_ less time fixing my hammer when I'm building for a single platform using a single language in a (largely) excellent IDE.
Sometimes I think there must be engineers out there who enjoy the hammer fixing and glue-drying that comes with the rapidly changing full-stack development landscape.
I studied aerospace engineering and day-to-day it's exceedingly rare to need any math beyond basic trigonometry. 80% of the time it's useless meetings, emails, paperwork; only sometimes it's actually useful or fun. Some people study business for years and end up splitting their days between sitting in meetings and updating Gantt charts.
That's just how work is.
Our AA saved us countless thousands of hours each year. She was worth her weight in platinum.
Wow, this resonates with me. I have never liked my colleagues at any job, and I hate talking about tech with people outside of things related to work. I find tech people difficult to get along with and the conversations don't interest me. I say this knowing I could very well fit the same description but here's the thing:
I find that often tech people replace an entire personality with video games / following the latest tech releases / anything related to their job. Almost all "water cooler chat" at tech companies is what game they played on the weekend, what the latest steam sale is, what the latest tv show is, what new programming language they're learning. Like, please. Can we talk about something else?
Sounds like me if you throw in anime :) But, what's wrong with that? Other people do the same thing but with sports or music or raising kids or "hanging out with friends" or whatever else they fancy, but one is no more a "real personality" than the other, though, people with other interests always seem to have no real personality and be all about that lame thing they like, don't they? :)
Interesting. I've worked at plenty of companies and I rarely met people like that. Maybe it's an American quirk (I've mostly worked in Europe) or perhaps it's specific to tech companies? I've mostly worked in non-tech (government, banking, telcos, with some simple web startups) and people there are fairly well-rounded. It may be that big tech is selecting for the biggest brainiacs in their hiring process, and being a brainiac correlates with having a one-dimensional personality? I've certainly meet a couple of people like that when interviewing at some of tech's household names.
I really enjoyed teaching guitar and talking to people when I was younger so I've slowly been creating educational content on LinkedIn and YouTube for software engineers. The main thing preventing me from taking a jump is my immigration status (I'm not American and I'm working on my green card right now). I'm glad this is working out for you!
I suspect the daily grind becomes apparent regardless the career
I can imagine how doing the same thing for 20+ becomes dull and uninteresting, especially if you have arbitrary
deadlines, superiors to report and so on.
The way that I personally cope with this is, accepting the fact that my job is a job and at the end of the day, the only thing that really fulfils my life are good health, exercising and spending time with loved ones.
Whilst I try to enjoy my job as much as I can, it's just a means to an end.
I think a trap that some of us fall into is letting our careers define who we are and once that happens, it becomes very easy to lose the sense of self.
The top answer also mentions this. Yours is currently second-top.
I hope developers get the message.
I'm SO tired of trying to navigate around the mountains of pure garbage every time I want to work on a new project.
I long for the days when adding new functionality to your project was as easy as including a single external file, and when code repositories didn't automatically come with ten different utterly useless metadata files.
I see the problem that our tooling is diverse and assembled from parts. You can pick a compiler from column A, a version control from column B, and GUI framework from column C, a message queue from column D, etc. And somehow, it's is possible to make them all work together. We love having that flexibility and choice.
But we pay a price in the added complexity of making all the pieces play together. A sibling comment mentions Turbo Pascal, as a contrast to today's programming environment. Yeah, Turbo Pascal was great, but it was also an all-in-one kit: you couldn't even use your own linker, you had to use the built-in TP linker. In a sense, it was a walled-garden Apple-style development environment. But it worked, it was easy, and it was fast.
The closest we have to that today is Visual Studio. I'd argue that the (mostly) all-in-one nature of Visual Studio and C# relieves a lot of the headaches of the more traditional open source toolset, at the expensive of less flexibility.
This is not an argument in favor or against the Microsoft world, just an observation.
Does anyone remember Borland's VCL, Rox desktop or Acme from Plan 9? All vastly different, but all enabling great workflows. I would like to dive in GUI programming more, but I'm too picky regarding technologies. Closest to my ideal is Tcl/Tk and Lazarus it seems.
I say it as a guy spending most of his time in terminals for 15 years, mostly by choice.
> I'm SO tired of trying to navigate around the mountains of pure garbage every time I want to work on a new project.
It sounds to me like you are also... developers? :)
I don't think it's easy to find jobs that pay at middle-class levels in many larger cities.
The salary may not be great, if you have experience and good student evaluations, you are in a strong negotiating position.
Some caveats: getting a university teaching job is a lot easier than getting a university research/teaching job. Previous teaching experience is a big plus, as is previous industry experience. PhD is nice, but not required (I don't have one).
If you need a visa and work permit, it really complicates matters: I highly recommend acquiring European citizenship if at all possible. (I did, which had the side-effect of immersing me in genealogy as a hobby.)
This is what we’ve lost in our industry in the last 25 years, and to the worlds detriment.
That's been my motto since I heard it there.
Have you somehow avoided this stuff?
I imagine it might be different in secondary school education, but at the university level, I find that no one really cares what I do, as long as the students don't complain. I always redesign the curriculum to suit my tastes and interests, and I've never gotten any pushback from admin.
Basically, the department assigns me classes to teach, and after that I'm on my own. Once a semester a senior faculty member observes my lecture, mostly to make sure that I haven't shown up drunk. The only politics I'm exposed to is on the hiring committee.
All jobs will have x% of nonsense and y% of what you actually really enjoy doing, and I think as long as y >= 10% then you'll do okay.
Honestly, I like sitting by myself and grappling with tech problems. It's nice that I'm allowed to sit inside my own head and think all day. Maybe it's because I'm young enough that the problems I'm facing still seem somewhat novel. But perhaps it's true that OP is more extroverted and doesn't enjoy that nearly as much.
Good on them for finding a better career fit. If I had to interact with people all day, I would die.
I have some bad news for you. As you become a more senior developer you will spend most of your time interacting with people, and a lot less time just "sitting and thinking".
Anyway. I hadn't really thought about it in a while, but maybe I'll try for that again in the future. I don't hate bit-slinging quite yet ;)
I can totally relate to this.
More controversially, I'd say that any labor relationship is necessarily exploitative, and doing any work beyond the minimum means that you are giving more than you're getting and thus being abused. But that's not advice for having a prosperous career. :)
You'll probably need at least a Master's degree if you want to teach, but a strong industry background might be enough. You might try approaching a local university (don't discriminate, even community colleges need teachers) about teaching one class a semester. If you like it, you can try a better school or go for a full-time position.
The first simply had another passion - travel. Work was just a way to pay for that. Eventually went to work for an agency, been there a long time and AFAICT couldn't be happier (despite being less well off materially). I've known a couple of others who fit this pattern. One left the industry to raise goats and make cheese instead.
Multiple have left to become full time parents. I hope they don't regret it, since this group includes my wife. ;)
Several others have left the industry but have not necessarily left tech. Some do light consulting. One's writing a book. Most are working on long-deferred personal tech projects.
I just about joined this third group before my savings took a 15% hit, so I might as well say why. I'm tired. I'm tired of the artificial deadlines, and processes that slow people down more than they improve quality, and the omnipresence of coworkers who exhibit every kind of bad engineering or interpersonal behavior (even though others are awesome). I want to enjoy making things again, and the moments when I can do that within the industry seem all too fleeting. Even the best of my dozen jobs stopped being fun, or just stopped. The thought of going through a modern tech interview process yet again so that I can do all the rest again just fills me with dread.
I think the ephemeral nature of software really plays poorly with the artificial deadlines, and the artificial importance of some projects in general.
Eventually you recognize the pattern, and there's no logical way to justify it, so it's harder to motivate yourself. You know the deadline isn't real, and you know the software will be rewritten next year with some new technology. You may even be rewriting last years right now.
Tooling churn hurts here as well, because eventually after enough iterations, new tools are just in the way of getting real work done. You know it's not gaining you anything by putting in the effort to learn Toolchain X, because arbitrarily different Toolchain Y is about to become the new industry fad, and will make all that prior arbitrary knowledge pointless.
Some of my favourite years in software were when I worked at an eCommerce agency that served only one framework. Learning I invested directly impacted my work for the coming years. I began to master the tools, which feels amazing. I could also see the real world effect the software had. Sure, it was simple, selling products to people. But commerce is an interesting problem space, and a fundamental part of society, so it was neat to be a part of it and see real companies I worked with grow because of my software.
For example, one of the open source projects that I contributed to most heavily, PyWikiBot, has been around for almost two decades now, and most of my contributions were made ~13-15 years ago, plus some minor maintenance since then, and most of those features I wrote are still in continuous use to this very day by me and many others. And that's just some random tooling library for Wikipedia stuff; imagine how much long-term impact your work would have if you were editing MediaWiki itself, or the Linux kernel, or gcc, or any number of other incredibly widely-used things.
It's been a few years since I left the industry, and I'd be surprised if any of the code I wrote professionally hasn't been superseded by now. Even worse, plenty of it was scrapped before it was even released.
Of course, I knew this would be the case when I was writing it - that does indeed affect one's motivation.
Again the deadlines and lack of planning ahead bites. Look we just need this little feature now, it can't take long? And again, and again. You never get enough time to take a step back and re-evaluate design decisions (or, God forbid, plan ahead and do it right in the first place) and fix what wasn't done right. No, it's always this little feature that needs to be quickly hacked in, another branch, another special case, how it interacts with other past or future special cases is anyone's guess, and the code base that was already full of hastily hacked together barely-functional crap grows more and more poorly thought out crap. Tests? What tests? No tests, so if you dare go back and try quickly fix some poor design.. well, someone is eventually hopefully going to find out what you broke and give you a completely uninformative bug report. Updates? Well there's no ticket for that. And besides, something might break, because there are no tests. There's no ticket for tests.
Sometimes you might even wish that the whole thing would be discarded and done from scratch..
Well, the state of New Jersey is looking for programmers to update COBOL programs that were written 50 years ago, so you might be underestimating the sheer power of inertia in software development...
A couple years older than you. I was working a nice gig at a startup until November. Nice because the owners were nice, the coworkers were nice and it was an interesting embedded application involving renewable energy - so not the run-of-the-mill web app. They ran out of funding in November but there was the possibility (prior to covid-19) that they would get more funding so I didn't look around much hoping I could just go back to work for them when they get more funding and avoid having to interview again.
Of course, that's not likely to happen at this point given where the economy is at. And I still can't bear the thought of interviewing again. So I'm effectively out of tech at this point. If someone comes along and offers me a gig without the arduous interview process I'd take it, but otherwise, I think I'm done.
Sure, bad programmers age out because they were never great at programming in the first place. But I would assume the HN crowd falls in the top half of competence because there are so many people here who seem smarter about programming than me. If you're good, you don't have to worry.
Maybe good programers age out because the technical side gets too repetitive, their jobs become more about politics, and they have enough money to change tracks later in life.
When it gets downright tiresome is when being the project janitor puts me in conflict with young "tech leads" who denigrate those contributions because they've only ever worked on that one project where other people took care of those things for them. It's like the difference between living in a college dorm where everything's taken care of for you, vs. having a house and kids and bills of your own. Being a strict individual contributor with no cares beyond the one piece of code in front of me is just a fond memory.
Unfortunately, few companies will hire someone with 30+ years' experience just to write code, even for a salary appropriate to that role. Companies want to pay those lower salaries not only for direct work product but also for growth potential. The worst part is, I know they're not wrong. The only way to do the kind of work I really enjoy, and only that work, is as a hobby.
You don't have to worry about keeping your current job, but getting a different one becomes a lot harder. Your 27 year-old interviewer might be thinking "You're my dads age, and my dad is crusty. No way you can wrap your head around lib-of-the-week.js"
Depends on the job. There are employers who recognize the value of somebody who has broad experience, and who can/will do things that are necessary but not fun. There are also employers who only measure hands-on-coding skills, and/or who insist that everyone should be on a "growth path" even if they're already at a higher level than most will reach. Good people don't have to worry at the first kind, and very much have to worry at the second.
Which people you're talking about? The survivors who are still working in the field? Or those who had heart attacks at their desks at 50?
Turns out they were just taking a leave of absence, every year, to travel, and just eating the pay cut.
I thought engineering enabled travel. I met countless "digital nomads" traveling the world, doing 20 hours of work a week at cafes. Making bank and getting to travel all they want.
If a couple decides they want four kids, the numbers can work out, for 10 years or so - especially if childcare is expensive.
I get to play with lots of tech still, except it's more of the layer 1 stuff. Doing fiberoptical backhaul work, or installing DSL in peoples homes.
I'm still interested in both hardware and software. I run Gentoo Linux on my machines at home, and I have a DO VPS for "cloud things", but I'm glad it's not my job, because software issues can piss me off like no other thing is capable of.
My company (Automation & controls) is partnered with electricians for all the jobs we bid on. Having electricians that know wiring for specialized bus networks, how to do basic troubleshooting on control circuits and all that is amazing to have.
Alternatively, for those reading this in the tech side, the job is super engaging. I get to work on programming machines the size of my bedroom. I get to travel and see equally interesting locations (Dam spillways, Agricultural facilities inland and at port, underground mines, etc.). The fact that I get to get out of my office a few days a month is a big reason I've stuck with my job for as long as I have (7+ years now)
EDIT TO INCLUDE SOME PICTURES (Both the Cool and the Ugly):
As long as you understand digital logic well enough you'll be able to grasp the concepts. Having more formal education helps but is one of those fields that isn't strictly necessary unless you're working in a specialized sector. My personal take is that Software is still playing catch-up in this domain to the rest of the world but its coming. Up until the last 5 or 10 years the software was mostly just running the facilities but now integration to the business environments is becoming a bigger and bigger requirements of my clients.
I've mostly become hands off on the PLC/SCADA systems at my company now because the requirement for software utilities to function within the control system for data collection, trending, reporting, etc. has become so so much bigger. I have clients that want to use OCR to track shipping containers throughout their yard, clients who want me to integrate their invoicing systems to the operations so staff can see the scheduled daily loads coming, designing unmanned kiosks for customers to key through when coming to site and a whole lot more things.
The programming languages are all defined in IEC 61131-3, and you can more or less use them interchangeably. You can use structured text for (clunky) text-based programming, ladder logic if you want to feel like an electrician in the 70s, or functional block diagrams if you like flowcharts. They each have pros and cons, and being able to use the different languages (with different paradigms) in a single application is one of the more interesting things about PLC programming. There are probably good textbooks for this, but I don't know of any.
PLC programs execute in a constant loop (scan inputs, execute program, set outputs), so basic programming problems (e.g. delaying execution of some function) often require some re-thinking on PLCs. Having a basic understanding of how a PLC actually executes your code is pretty critical. Again, there are probably textbooks for this, but if you buy a physical PLC, its datasheet might also explain this.
You'll need to connect the PLC to some hardware for it to do anything meaningful, so having a basic knowledge of electronics would be useful. If it's just a hobby, you probably wouldn't need to know any more than you would if you were working with an Arduino.
There aren't that many major PLC vendors, so to get started, you could by an entry-level PLC from one of the big players (e.g. Allen-Bradley Micro800 series). Admittedly, I haven't looked at PLC options in 5+ years so there might be better options these days. Unfortunately, PLCs are pretty pricey, and even a small one will probably set you back a few hundred bucks. There are probably simulators available if you're just curious about PLC programming languages, but I don't have any experience there.
Right now I'm trying to hack my treadmill with an Arduino unit so I can control it with software, and I'm learning a ton. Plus it's not a huge investment.
I'll just say that my business was started by the owner in his farm's shop rebuilding/selling motors. When he expanded to doing controls they were like 3 employees and his friend was the electrician who they hired on. Since then the Electrician partnered with his Son-in-law and they train the majority of their guys right from their apprenticeship.
As much as I keep using "My company" throughout these posts I'm still just a guy in a programming/integrator role.
> Find your way into Industrial Electrical work if you can. You get a strong mix of tech and electrical, moreso than Residential, can't really say the comparison to Commercial work though...
Avoid residential electrical work if you are technology oriented! Yes, yes, home automation and all that, but that pales in comparison with industrial work. Commercial in theory has the same potential, but (at least here in Italy) the jobs are ..hm.. dodgy (very poor project management, tasks scattered across sub-sub-sub-contractors so nobody has really a clue of the global picture ..stuff like that)
The guy who got me my job was a MS CS, my employer sought him out because they needed a guy for internal software projects. I did a hackathon with him and he hired me as his replacement when he moved to the gaming industry.
My degree is Software Systems Engineering, most of my coworkers are Electrical Engineers or some form of Electrical Diploma.
As long as you have a decent foundation in Networking and Digital Logic you'll be perfectly suited to program PLC/SCADA...
So, "systems integration" job involves making systems interoperate as seamlessly as possible, by doing so adding new features, or reducing weaknesses, like for example vendor lock-in (sadly this is not always possible in industrial automation, see below). So the concept applies also to other sectors - and there are indeed non-industrial automation SIs - you might want to add terms like "PLC", "SCADA", "ICS" (industrial control systems), "industrial automation", "controls" to your search.
As for my own experiences in the (industrial automation) system integration industry, in Italy:
As I said before, and said elsewhere by TheCapn, vendor lock-in (in the form of employing equipment by one company, and their tooling, and their services, etc.) is a thing. But at the same time, your job is to make heterogenous systems interoperate! So most certainly you'll have to work not with your usual tools. Personally I have found that the most successful companies rely on some vendor (and their support, and their expertise), but are very open with working with, and know, the others. Obviously the more you can develop autonomously the better; it is a trade-off between freedom of action and access to more credible (branded, battle-tested, supported by big company etc.) solutions.
Knowing when to add one part to the system, or where you can just expand one of the already existing parts in order to accomplish the task is fundamental. Too often I have seen superflous parts added where it would have been enough to extend one of the existing parts a little (This is often due to vendor lock-in, you cannot work on some equipment, so you put another device by your vendor of choice).
Another thing I love about my job is the "Jack-of-all-trades" mindset required. Also human skills are important, especially here where the industry is mostly composed of little shops: sometimes you just have to understand enough to call the right specialist and contract that part of the job to them. I started as more of a computer person than a engineering one, but I managed to gain some expertise over time thanks to this knowledge transfer.
Edit: System integrators as sibling says, I second that!
This in reverse is part of why I am a programmer; it can take two or three days before I'm really pissed at a software problem, but physical stuff really annoys me in mere minutes.
Why? Don't really know. I know a bit of it is that I know how to get myself into trouble in software and then usually get back out much better than I do in the real world, but even so, I had the patience in software to develop that and I really don't for real things.
On the other hand, a screw-up can have bigger consequences when your buggy code is used by thousands of users a day.
Ps. Love the username/post combo.
I always laugh whenever TechCrunch or someone runs a story about some hot shot university winning a programming competition because they implemented an algorithm the fastest or created yet another new app.
When in the real world, most programming jobs are making changes to a really large code base trying your hardest not to break other things. Not nearly as glamorous.
"That's great, kid. Now figure out why this build works on everyone else's machine but not yours. And then once the build works why the test suite throws a series of errors, one at a time, each new one appearing as you fix the last, when everyone else tells you it's green (though at some point you'll figure out they're all passing flags to disable parts of it, but forgot they're doing that). Oh we have some other things for you to do that are actual programming but you can't do those until you fix that. Oh and when you're halfway done Fred over there's gonna tell you you need to pull master because he just updated all the dependencies. Oh hey what do you know about code signing and app store distribution?"
My BF's dad owns an electrical company, and I know BF will most likely end up working there - I've considered in the past joining him. This post is encouraging because it seems like I could get all the movement and outdoor time that I'm missing with coding, and also be building stuff that's useful to people.
Do you see many female electricians? I suspect there are few - any ideas as to why? Is there a lot of heavy/difficult physical labor that I would be unable to do?
I took what I call a 12 year sabbatical from tech. I became an officer, went to pilot training, learned lots of new and useful skills, met lots of very good and interesting people, some of whom are my best friends.
Taking off from a short airfield in a blizzard, at night, wearing NVGs is an experience I don't care to re-live, but I'm glad I have something to talk about at parties.
A quote that affected me greatly during the time I was thinking about leaving: "if somebody wrote a book about your life, would anybody want to read it?"
After getting married (to somebody I met during one of my training courses), settling down, and having kids, a quieter, 40-hour-a-week lifestyle started to sound pretty good again. I had always been a hacker at heart, and realized that I was getting to the age where it was probably now-or-never if I wanted to re-enter the industry. So I went back into tech! It's better the 2nd time around.
If you don't let yourself explore, you're not going to be happy long term. (Eventually, you will hit that fabled mid-life identity crisis.)
Perhaps it's less that any one situation is preferable, but more that you need variety.
The congressional recommendation is for entrance into the US Air Force Academy, which is a 4-year university.
If you already have your degree, you can apply for OTS (which is your initial officer training - I think it's 3 months long now) and a pilot slot directly.
Another option a lot of people overlook too is getting to pilot training via the Reserves or ANG. Those units can interview and hire you directly, and you'll go through the same training and do the same job with a lot less red tape.
* Meaninglessness. Most of the projects are simply not necessary, they do not help society in anyway, they just exist to make someone else wealthy.
* Tedium. The intellectual challenges aren't there after a while. There are countless intellectual challenges in the field of computing / computer science, but they are usually precisely the ones that industry has no interest on.
* Micromanagement. "Agile" and similar management practices (yes, I know, you're not doing it right, blah blah blah) are downright humiliating and infantilizing. Almost no other highly skilled professional has to tolerate such level of intrusion on their day-to-day activities. I love deep thinking and creative expression. The modern corporate setting prevents this by design.
* Open-spaces. See above.
* Idealism. I was so excited about the possibilities that the Internet opened for humanity. Now we have ad-tech and horrible exploitation of "gig-economy", warehouse workers and the like. This is definitely not what I have in mind when I started.
* Conformism. The tech industry is extremely conformist. Monetary consideration always wins. Deference to power always wins. "Hacker" used to mean something completely different. Almost opposite to the current definition.
I realized that what I always loved about computing was the endless creative and intellectual possibilities allowed by the medium. This is more or less the opposite of what the industry values, despite what they might advertise endlessly. There is nothing cool about it. It is stale and anti-intellectual.
I don't need a lot of money to be happy. You probably don't either. Time on this earth is the most valuable thing we have, and I would rather spend it waiting tables than enduring one more stand-up meeting.
I think creative nerds are the life-blood of the industry, but they tend to be shy and not assertive, so they have their life controlled by the "business types". I honestly believe that if the nerds told them to fuck off and started spending their time working on things they think are relevant, the world would become much better quickly. This won't happen, I know.
Most of the "creative nerds" I have encountered in this industry are arrogant, have grandiose beliefs about their own intelligence and have zero empathy for anybody who is not exactly like them. I don't think things would be much better if they ran the show.
Had a coworker say to a client, "I could explain it you but you're not smart enough to understand it."
Absolutly ridiculous and toxic individual.
I am too old to hang out with negative people, also too old for people who are only interested in making money. So I searching for a new tribe, I think outdoors people are the happiest bunch. I just don't know what can I do.
I recently saw a video about Boeing that concluded that the whole debacle was due to it straying aware from its commitment to good engineering and to trying to please the wall street. It traced back to the source of decline as the purchase of McDonnell Douglas which was mainly done due to Boeing management feeling that they needed better "business types", which was all that McDonnell Douglas.
Slowly, but I am seeing an acceptance and respect towards the nerds/engineering instead of hype men & impressive stock figures. Wall street types are seen as the hyenas/fox in a sheep's skin that need not be celebrated and looked upto.
Meanwhile Wall St. simply downgrades, the MBAs shrug their shoulders and speak about drive-thru ordering as an innovation, the Founders get ousted, and people become sick.
Short-terms gains at the expense of long-term losses is a fact that has to controlled by the board of directors and the ridiculous salaries of CEOs has to be stopped. A rule must be put in place that the shares they gain cannot be used during their tenure and only used 2-5 yrs after leaving the post.
Founders bring in an MBA to run the company is like parents bringing in a Consultant to raise the children. You can never expect anyone else to care of the kids as much as their own parents.
I think that Google lost its way due to Eric Schmidt. Considering that [Page was forced out in 2001](https://en.wikipedia.org/wiki/Larry_Page#Changes_in_manageme...), he was away too long and Eric did his MBA-shit and screwed up the company. Page should have returned as CEO in 5 years instead of 10 yrs, it was too late by then. Now Google is Evil.
I feel that if someone like Page was leading Google and all the tech giants where lead by nerds like Satya Nadella & Sundar Pichai. PRISM & attack on encryption would not have been too strong. We need more founders like Elon Musk & Jack Dorsey. I hope someone like Sergey Brin advices the WhiteHouse on tech-business while Steve Woz or Richard Stallman advices on tech-ethics.
Mark Zuckerberg is a disaster, so is Bill Gates, Peter Thiel, Larry Ellison & all Steve-Jobs-like creatures.
Video: "McDonnell Douglas had used Boeing's money to buy Boeing" - https://youtu.be/EESYomdoeCs?t=468
This is how I felt about myself, I spent my early twenty working a job living frugally saving and then quitting to work on my own projects. Failed entrepreneurship was a great lesson in how hard it is build things people want and how easy it is to build things you think people want. The difference is often very subtle small details, but asking the right questions to unearth those details in incredibly challenging.
The amount of things that someone will give their time or attention to our suprisingly small
So much this.
wars aren't started over human-rights, they are fought when you f%%k with someone's money.
True. Right now amidst the pandemic, it turned out the farmers, medical people, janitors, delivery guys are the most essential jobs.
Ah, don't be so negative. I'm gonna do it or die trying.
But then dot-bomb happened and it looked like the party was over. I looked down at the job opportunities after graduation. I didn't really want to spend the rest of my life wearing a tie, writing bank software and sitting in a cubicle every day, so I decided to try something different.
I became a seasonal park ranger. And it was awesome.
Like most jobs, I got it through knowing someone. My grandparents had volunteered for the NPS and were able to connect me with the right people. I became a seasonal park ranger at Yellowstone.
It's not for everyone. The pay is not great, but you do get lots of good benefits because it's a government job. And you're often living in remote areas (the nearest grocery store was an hour and a half drive from where I was stationed). It's also not conducive to family life if that's your thing (again, the closest school was 1.5 hours away and everyone around me was my coworkers). And the days are long, helping tourists, checking permits, etc. Permanent jobs are also incredibly hard to get - you usually have to do years of seasonal work to accrue enough seniority to get considered for a permanent position.
But the benefits? Being able to crack open a drink after a long day and look up at more stars than I ever thought existed - I spent many nights on the front porch of my cabin looking up at the Milky Way. Hiking, camping, boating on the weekends are easy because I was right there in the park. Clean air, clean water. A good group of coworkers (for me) who legit really care about protecting these astounding natural resources. And a feeling that you're really making a difference and reaching people.
I did this for a few years and they were among my happiest years prior to my marriage. Ultimately, I ended up going back into tech after things recovered. But there are days that I really miss the outdoors and wearing the uniform.
> A good group of coworkers (for me) who legit really care about protecting these astounding natural resources. And a feeling that you're really making a difference and reaching people.
This feeling of 'feel' for a thing, its what I miss in tech personally. Companies offer a service, want a happy customer and make money that way. But a 'feel' for the actual goal and way its done usually lacks. Too many egos...
I think the industry is totally wrong about the type of activity that programming is. It's a creative endeavor, not a mechanical one. The best people are the ones who derive joy from it, not just a paycheck.
I end up looking at nature with both my old eyes and the cold scientific ones. A piece of wood, pale shades, smooth, is also a matrix of nanoscopic sugar fibers. It's odd to confront the two point of views. Same goes for butterfly wings, or flower petals..
About once a month I’d go to Sams in Idaho Falls, which was usually an all-day trip.
I’ve been up through Bozeman before. Beautiful area!
This. Something has definitely changed in the last ~10 to 20 years since the end of the dotcom era of interviewing in the tech industry. Before it was as simple as reading the AUTHORS file in an open-source project like Linux to vouch for a programmer applying to somewhere like Red Hat or Mozilla. But now we are expecting them to write a proof of quicksort's worst-case runtime complexity or to explain the Diffie-Helman public key exchange mathematically on a whiteboard to "see how you think" and "prove programmer ability" which is unnecessarily academic and they either don't use it directly or search on Google for it anyway.
That's just the onsite interviews, pre-interviews are riddled with Leetcode, Hackerrank and Codility tests which can be cheated or the solution can be found on Google. What a shame that these flawed tests still exist.
I had a go at our manager recently after letting two people do our tech test then say they were too inexperienced. We could have worked that out before wasting their time.
it's kinda depressing in a way, because coding was at first, something that pulled me out of the slump i was in due to a shitty upbringing. i really like writing code, but the industry sure does know how to suck all the fun out of it.
Excellent phrase. Thank you.
That being said, I haven't left but have been wanting to for ages. I'd be more interested in staying if I could find a unionized work place (when Delta cut salaries by 20%, the pilots union was able to negotiate for profit sharing after the hard times were over, when my company did that, they refuse to even discuss whether we'll ever be bumped back up to normal… even if we get paid well already it doesn't mean we shouldn't work together for better working conditions and more of a stake at the table) or a worker owned co-op to work for, but so far that hasn't materialized.
I've been doing customer projects for the last 8 years and it has been horrible experience. 99% of the things you're building are the same thing all over again (CRUD apps and various integrations) and pretty much 100% of the problems are caused by people acting stupid in different ways. It all just feels so pointless.
I wish I could come up with something else, but currently this is all I know. At least it all pays well. So golden handcuffs of sort I guess.
I moved from being employed to being a contractor/consultant (somewhere between the two). In the last 8 years I've worked with 8 or 9 clients and each one had serious issues (all bar one * , I would say). There were either individuals with power or small groups who were holding everyone else back by making consistently poor decisions, and there were upper managers too blind to see it or remove the offending parties, despite being informed by their staff what was going on.
It grinds you down, but I feel very similarly to you - it pays damn well and I can't see another way to achieve the lifestyle I want.
(* that one was a huuuuge corporate, and a department with incredibly low productivity and systemic issues with working practices. However they produced quality software to a schedule that was clearly OK with them, so .... that's OK I guess)
It's the same with how a lot of tech folks idolize farming. In reality it's a tough job with long hours and cold weather.
A few years ago they upped and moved to Wales and operate a cattle farm, they also home-school their kids. Mostly now I see their ads for pasture-fed beef on facebook. They seem happy.
My grandfather was a farmer and died after an accident cleaning something with gasoline. Sounds dumb (I don't know the details) but farmers tend to have accidents like that because the whole job is working with dangerous machinery, chemicals, and animals, and a "family farmer" has an incentive to take risks someone working for a corporation doesn't.
I remember a news story about a farmer who passed out from breathing something toxic, so his oldest son goes to get him, he passes out too, his wife goes...the whole family died like that one after the other.
Software Development can be mundane and repetitive. Stupid users cause most of my headaches but I use my hobbies as an outlet.
Might need to tailor your resume a bit but if you like coding it doesn't sound like you're at the point where it's time to leave everything.
1. Do not work for a company where tech is not their primary product. If you are only a cost center, you will be treated like a second-class citizen.
2. Work for a smaller company. Your work is so much more impactful when you are not part of a mega-machine.
3. Work only remotely. The quality of life increase that comes with working remotely is massive, and I am not willing to give that up.
Of course this is not always going to be realistic. For one, working for a company that sells tech does not mean that you will be treated well, but it is more likely. Smaller companies, and remote only tend to pay a bit less (and definitely less than a FAANG), but still more than plenty to live a great life.
Who knows where life will lead me, but I will try to stick to these points.
That depends. If you work for a small company working on a product few use, then what's the impact?
The more I work as a programmer the more I agree with points 1 and 2. With Coronavirus I'm having the change to work remote 100% of the time and I'm enjoying so far. It's likely that's something I'm going to pursue in the future.
Also saw that programmers were starting to be treated like factory workers where attendance and metrics like keystrokes per minute were more important than good well written and documented code.
The final straw however was "move fast and break things". Basically pump out change for the sake of change and let the end user do quality control.
One could argue that app stores have also played a significant role, basically taking thirty percent gross while depriving the developer of direct contact with the end user.
Bottom line, I’d rather be sailing.
The worst part is how this leads to more on-call and an increase in working off-hours.
This is a great quote, I'm going to steal this from you!
This is why I quit being a software engineer as well (I didn't leave the tech industry altogether tho, just switched career trajectories a bit).
I spent years trying to talk some sense into the people pushing that and trying to explain (it's as much art as science) but in the end the Scrum people won. So, I moved over to devops and consulting where most of the time I'm helping people with stuff, and the long death-march sprints to satisfy an arbitrarily deadline that nobody cared about until it got put on paper two weeks ago, and still doesn't matter except it will turn some spreadsheet field red that draws the Eye of Sauron from higher ups, are mostly over now. I get my coding fix by working on open source projects, and it's way more fulfilling.
Saying both as developer and user!
Which is a euphemism for “I turned into an obnoxious punk” but I’m fine with that too :)
It feels like as the years pass and ones sense of autonomy as a human being overflows the brim, it gets harder to tolerate not being your own boss.
I took five years off work and was complete master of my destiny, which finally wore off, and I now work at a private boarding school that is recognized globally as being a center of excellence for teaching and learning.
The summary is it’s completely different and challenging to switch careers like this. It’s also been fantastic because (1) I am naturally a very gifted teacher (2) but I am completely unqualified, very raw, and full of newbie naivety which is all very humbling (3) and yet very liberating as once again the expectations on me are low and I have room to learn and grow, and (4) I am surrounded by people who actually know what they are doing and are committed to helping me get better.
The best part is that I can approach the day to day of the new role and the skills it requires with the mindset of someone who has been through one career already. I may turn into a punk again but for now I’m enjoying being a level headed journeyman surrounded by masters.
So I quit. I decided that movies is something that I have always loved and it’s what brought me most joy. I researched different career options and I came across creative development and producing. It resonated with me. Read movie scripts, give notes to improve it, work with writers, directors and identify the best strategy to get a movie made. One doesn’t need need money to become a producer. So I left the Bay Area and moved to Los Angeles and interned at two companies. The second company was a great fit for my interests (genre, etc) and I am now in full time Role and absolutely enjoying every minute of it.
I earn a quarter of what I used to make but I am much happier. But there are things about technology that I still like. And I am always curious about new developments. So I still enjoy reading Hacker News everyday.
I like building things for people to use, but as a programmer found myself very isolated from users (even at small companies). It felt like I was doing the hard work of building a product but then someone else got to do the fun part of showing it off, while my reward was just... more programming.
Also, I found the job extremely boring at times, extremely difficult at others. I decided that the stress wasn't worth it, especially when my work was having a limited impact.
Finally, I'm not in the USA so tech jobs had no "golden handcuffs". Many other jobs were available that paid as well as a Software Engineer.
I still work on personal programming projects, where I can be much more involved in the whole product and not just the code. I can also choose to only work on things that I really care about and/or that I feel can make a real difference.
Since then? I did stints in various unskilled & skilled blue collar jobs. Can't say I had much passion for any of them. So now I'm back, without education (mild regret but I can always study more myself; I think education should be increasingly on-demand and lifelong), but at least the pay is better and I get to work in a clean office while listening to music of my choice. I think the field still sucks (well, I imagine there are jobs I would really like but the chances of finding them, without leaving my country and family and everything behind, is probably quite slim), the grass wasn't very green on the other side.
Of course, I'm still a hacker at heart and I hope to create something nice one of these days. Probably nothing commercial.
I occasionally see ones that resonate with me, but either require an education I can't afford to obtain, or want over a decade of experience working in similar roles.
I had been at the company for over a decade, and had gotten quite lucky in the RSU lottery & thought, wait, I have enough money to last forever, so why do I do this to myself?
My health was bad, I was overweight, smoked, was depressed. I felt like it was going to kill me if I stayed another decade.
So I quit. In the years since, I stopped smoking, lost 1/3 my bodyweight & really got my shit together. I dink around on personal projects and learn new things. I follow HN because I'm genuinely interested in tech & now I can pursue what things I want, rather than those I need for $JOB or $NEXT_JOB.
I miss the good people I used to work with, but this is almost completely offset by how much I don't miss the assholes and the hassles (annual review, recruiting, meetings, explaining basic math to MBAs, etc).
I now work for a small consultancy company doing research and designing funding programmes for charitable foundations. It's great because I get to do lots of research, writing, and thinking and have a positive impact on the world. No regrets, I'm very glad to have made the transition.
Still follow HN out of mild addiction and because there are interesting articles.
My route in was pretty idiosyncratic, and I think that's true of many people in these kinds of jobs. A more standard way to transition into this kind of research/consulting/policy work from tech might be go for jobs in technology or innovation policy. If you're in the UK I can point out some orgs that do that kind of work but in any country there will be various think tanks, policy consultancies, etc.
I started with Fortran while in the US Air Force (yay CDC 6600 and VAXen), got my CS degree, got out, worked in C/C++ and TCP/IP in the early '90s (yay SunOS), got married, moved to a big buy-side investment manager (meh Solaris), more C++, then Java. Lots of Sybase (yay JDBC).
7 years ago I quit after our big company was bought by a bigger company (yuck Perl).
Took 6 months off for a sabbatical (yay Rome. wow Bernini), then entered my "encore" career at a public safety agency. Introduced Python to that org, of which I am slightly proud. As always, plenty of RDBMS (Pro tip: don't run Oracle on (yuck) Windows Server 2008).
Regrets? Just that it's a shame programmers tend towards philistinism, and that office culture and beer culture overshadow any appreciation of history, philosophy, and the arts.
Both are so toxic to mental health that I had to move away.
I haven't really left the industry itself but I've moved away from a pure engineering role (which is my true passion) to a more specialized role which is ok but not as enjoyable. But, I don't have to deal with open offices nor agile, so it's a win.
The other aspect that makes me sad is that what we call tech companies today, aren't. Their product isn't tech. Netflix is an entertainment company. Google and FB are advertising companies. And so on. Very few actual tech companies in SV today.
I have begun trying to find things I truly care about as a countermeasure to this fatigue, so far it seems to be moving in the direction of just helping with repairing and refurbishing used computer hardware. I know how to do it for my own purposes, it's less mentally taxing, you get to save useful stuff from going to the landfill and you will also help cut down on consumption. It probably helps that the results are immediate (broken device -> working device), but going this route will have a minuscule impact also on a larger scale.
I think people trick themselves into thinking that "changing the world" is their ticket to happiness. I think looking more locally is the key to happiness. Make your community better in some way and the results are immediate, and you get to be a part of something meaningful and present. If you become the local guy that fixes people's old computer hardware, then you'll be genuinely impacting people's lives for the better.
I feel exactly the same. I’ve had a great career within web development and UX design, in pretty significant ways, but it’s still not fulfilling and I’ve lost purpose in it.
I’ve turned my UX interest towards city planning, and I focus more on nature, farming, exercising. Whatever energy I have left I spend on a few startups.
Also, I’ve gone through all the medical and psychological steps to be a helicopter pilot (old dream) and I’m applying to schools at this very moment.
Looking to make the switch more permanent soon, I still have a day job as frontend developer.
Purpose and intention is all.
Careful with that, its one of "those jobs" that people flock to, but very hard to make a living in. A relative of mine did that, started rich, got his own helicopter, isn't rich anymore.
I find my work far more impactful, knowing millions of patients are being treated by my software in some way.
It is boring. So like you said, I just try to find an opportunity that could help, but it's hard to find.
A reason why I could not leave my job right now, is that it's well payed. That's a high risk when you have a family with kids.
At a startup, you get to have a large impact on the company so it definitely can feel like you're making a difference.
Then I was a lawyer for around 15 years, and now I am moving on again. I am currently pursuing a masters degree in cognitive science, and I am planning to see if I can get into working on human cognition and AI/machine cognition in some interesting ways. (If anyone is doing anything like this, then hit me up. I am really interested.)
I do not regret my path at all. It is entirely likely that I could have made as much or more money if I had stayed with building websites and then gone into SWE or something, but a career in law was fun and challenging. And you can leave what you are doing at any time. I think a lot of people could stand to learn the lesson that you can, you really can, just say "screw it" and go do something else. It'll be ok, as long as you are even a little self-motivated.
I still follow HN because it is still one of the best online communities I've found, and it produces some of the more interesting and thoughtful interactions online. You know, it still has its faults, but overall I like it. HN is the primary way I discover new and interesting tech-related news, which still greatly interested me as a lawyer.
I don't really know the programs in the US very well. I didn't look at any when I was considering the field. Do you want to try to do a masters and then get into industry, or rather then continue with a PhD?
My best courses, I think because I was already scientifically/technically-minded, were the very math and technical based topics, like tax, retirement, real estate finance, etc, while the ones that I often had more difficulty with were things like family law and criminal law, for example, which were often much less intuitive and much more arbitrary-seeming to me.
Ultimately, law school was pretty easy for me overall. Certainly, I had friends and classmates who thought it was beastly difficult, though I suspect if they looked back at it now, most would say that it wasn't as bad as they felt at the time. It's different for everyone, right? Like anything else, how much you put in is how much you get out. I think that really probably anyone who can make it through an undergraduate program can make it through law school.
I got cancer and when I got better I have never wanted to go back to the office.
I have spent last 10 years travelling the world, reading, learning to live on very little. Never looked back. Life is not a bliss but I am happier in general and satified with tradeoffs I have made.
I still do some projects for my own satisfaction. Still enjoy programming and learning new skills.
Edit: I have been blessed that despite two engineering degrees (financial math and electronic engineering) I have never worked as a programmer for living.
Since I have learned by trial and error 6502 assembler to hack strategy games on C-64 programming have always been unspoiled free time, pure fun activity for me. And 19 programming languages later it is still so.
I live in small summerhouse, eat simple food, cook, own old, small car that I use only when necessary. I prefer biking whenever possible. Buy most clothes and stuff used or heavily discounted. Buying used stuff is also good for the planet. Learnt a lot of DIY which is both cool and satifying.
I despise urban enviroment but have to visit the city cause I take care of older parents. So the summerhouse and living in the forrest is both a choice and a way to spend less on rent..
In a way I always wanted this but given the opportunity I had been chasing money, opportunities, new experiences, following the rat race etc. Now as this is over I feel less conflicted which makes me happier.
You need way, way less money then you think you do but the expectations adjustment process on the mental level is very slow. But of course it is good to have some savings.
In case anyone is curious, I've been able to live well on about $6000-8000 a year. I certainly eat like a king, since fruits and vegetables are amazingly cheap here. Otherwise my hobbies are inexpensive, e.g. exercise and sports, writing software for personal projects, making digital art, etc.
It's not for everyone, but I would have really struggled on a more conventional path. It's been my experience that working for someone else is really degrading, although I'm sure some companies are better than others.
I consider myself extremely lucky, as most of my neighbors here lead very difficult lives. In the poorer half of the world, life is extremely brutal and arduous for most people. It's very sad and I've seen things here that are shocking and appalling (and I am not faint of heart, after spending many years "hustling" in the US). The behavior of other expats here also leaves something to be desired, although at least it's not as bad as Thailand...
Cambodia is developing rapidly, but somehow I doubt that the kleptocratic government here will manage to turn this place into the next Singapore or Korea :)
18 years experience. My Current job the tech lead is a diva, doesn't listen to anyone else and just add more and more to our enormous codbase. There are now 3 devs. The other two just basically clean up behind him as he builds technical debt. Trying to discuss is likely to end up in an argument.
I have had a could of technical test recently and failed them both. Today I was given a number of reasons, for example was missing test x,y,z, when the spec said if you were pushed for time, write down the test you would do (which I did - along side that I actually provided the most complex test to implement, to check the timing of the cache refresh). I was advised I should have provided mocks (which would have taken ages to set up for example). They preferred a REST API to the HTML that I gave as output despite the specs asking for a "page". A couple of whitespace errors that made pylint complain. I hard coded some URLS rather than make them configurable (it's a test, not a production application) and didn't provide a setup.py (which was never asked for). Am I expected to be a mind reader?
"It should only take you two or three hours"
Before that was a computer science fundamentals quiz for an hour and a half where I had forgotten thing from a couple of decades ago. How to avoid deadlocks in Java (I haven't done threading in years, I said I would need to reads up on it again) and what happens when hash tables have a collision. Again, couldn't remember off the top of me head as it was 20 years ago.
Does no on value the art of trying to keep code simple and maintainable?
How do I demonstrate to prospective employers that I am good at this and stop wasting my time with nonsense described above?
I'm curious, this is not something I've needed to know, but what would be Java specific to an answer?
If I was asked about deadlocks, I would say "always acquire resources in the same order".
I don't think that's the correct solution, unfortunately - see e.g. the dining philosophers problem.
Edit: or rather, you have to be very careful what the "order" of resources is.
I imagine it would take half a day or reading to remember it again.
So much of our mental state in programming has nothing to do with the code or our work and so much to do with the people we work with. I think regardless of whether you stay or leave the industry, you've gotta leave any jobs where the people are that toxic.
I didn't work for a year and now I'm working on contract 6 months a year and try to maintain my boat/sail the other 6 months
It gives me time to refuel and enjoy working in tech again.
Incompetent leadership: bosses and leaders that are seemingly nice people, but have no clue as to what's going on in their organization. Typically managers that aren't technical at all, but they just "fell up" in the organization somehow.
Relatively low pay: speaks for itself. It's easier to deal with hard problems and difficult people when you're also not worrying about which bills to pay this month, and seeing your peers in other companies do a lot better than you. This was especially true when I was in academia.
Toxic work environment: This unfortunately has happened a couple of times, once in a small family-run shop (13 people) and once in academia (a different role than the aforementioned one). There was a common denominator with both - the person at or near the top was a nasty combination of incompetent, bitter, and pit their employees against each other. In other words people that were truly pathological. All in all in my career I've reported up through dozens if not over a hundred people total through the various chains of command, but these two stand out. With one in particular there's a bit of PTSD (in the small shop the CEO would threaten jobs for minor things - this was ~2010 when the economy was still near the bottom where I live, and his COO would do equally vicious things).
I work for a great company now with some of the most awesome leadership you could ask for. I'm glad I didn't quit.
I think I'm starting to feel this. I'm neither talented nor educated enough to work on things I truly find interesting and my ability to learn feels like its completely flatlined these days. Unfortunately, I feel trapped in what I do rn, because it's really one of the only decently paying careers I can get.