6 ms·
> If it requires a degree (or a graduate degree!) then you're so much more stuck. That's a situation I've been in now for a few years now. I'm somewhat burnt
by tombert 3y ago
> If it requires a degree (or a graduate degree!) then you're so much more stuck.
That's a situation I've been in now for a few years now. I'm somewhat burnt out on software engineering, but the last 13 years of work history, a bachelors in CS, and about half a PhD in theoretical CS, my options on who will hire me are kind of limited.
It seems like my only options are:
1) Start a fresh career with a fresh new degree and accept about 1/3 of my salary that I have now for the next 13 years after that.
2) Take a career in non-degreed labor and probably permanently have about 1/3 of my salary.
3) Try and pivot into the management side of things.
4) Start a business.
5) Just live with it.
Since I don't really want to take a loss salary for 13+ years, I'm extremely risk-averse, and I don't want to become a manager, I'm more or less stuck with option 5.
I like software and computer science, but "software engineering" barely counts as either. I expected to be utilizing a million data structures or figuring out proofs of correctness or designing the next amazing distributed system, but it feels like 2/3+ of software engineering is "add field to JSON" or "write a for loop to convert something to a different shape" or "change color of button" or "change width of page layout and then modify selenium tests", and the only data structures that ever get used are hashmaps and arrays. I spent so much time learning the minutia of CSP and TLA+ and set theory and I feel like I have basically nothing to show for it, and now I can't really even change to a career where I would get to use them.
Not that it's really a thing to complain about; I'm pretty lucky to be in a postion where I make about 3x more than I realistically need, so I'm not really trying to garner sympathy, but it's also a situation that becomes kind of easy to burn out on, and sometimes it depresses me more than it really should.
- badpun 3y agoThere are jobs (e.g. database engine development) where knowledge of distributed systems algorithms comes in handy. Most likely not nearly at the level of your theoretical PhD, but also much more stimulating that adding fields to JSON.
- tombert 3y agoI've never worked on database engine stuff, so I cannot speak to it, but I've worked a million jobs, many of which have titles like "Distributed Systems Engineer". My frustrations come from the fact that "Distributed Systems Engineer" seems to broadly translate to "we use Kafka to glue two services together" for most companies. While that can still require some level of clever engineering, it doesn't really require a ton of theory. At multiple companies, when I do on rare occasion come across a project that requires some more elaborate planning, I will try suggesting using TLA+ to test things out, and management will look at me like I suggested kicking a puppy or something. "Math" is sort of a dirty word in industry, at least in the places I've worked. Maybe I just don't do a great job selling it. In every single job I've ever had, I've always been "that weird math guy", despite the fact that I really don't think I suggest anything that arcane, at least shouldn't be to a software crowd. Again, it's hardly something to complain about; "Woe is me, I'm making yuppie money but I don't feel fulfilled all the time". It's just something that annoys me.
- photonthug 3y agoLots of us are increasingly interested in formal methods coming out of the labs and ivory tower and seeing more casual usage in industry. But pitching this sort of thing to management is hard, where if they’ve heard of it at all then they associate it with big brain critical path shit at the highest levels of huge orgs like nasa or aws. Can’t blame people for not seeing the value yet though.. we need to make things easier/cheaper. Plain old testing is often seen as a cost/effort sink that dev teams and management resent and so of course Model checking looks like a whole different layer of ambiguously-worthwhile effort. Mere advocacy here won’t win people over, because they care more about costs than “correctness” as an abstract virtue. We probably need progress on things like generating code from models and models from code if we want to see more adoption
- tombert 3y agoI agree, and part of the issue is that if the formal methods work as intended, then by design nothing interesting happens, making their success less visible to managers that aren't paying close attention. Ideally something like TLA+ would catch a bug that you wouldn't notice for multiple years (e.g. infinite money glitches), but that means that value becomes less obvious because it can take multiple years to manifest, and that means you're waiting multiple years for TLA+ to show its value, which would be "nothing happened", which can be harder to measure. I've debated trying to write a PlusCal->Java transpiler [1], and I haven't really ruled that out yet; while I don't think it should be necessary to have that for PlusCal to be useful, I think it would potentially sweeten the sales pitch. [1] I think PlusCal would translate better to a sequential Java style program than raw TLA+ would.
- canucker2016 3y agoWhy don't you try using PlusCal/TLA+ on some portion of the code at work (if you still care to stay there) to prove its effectiveness? Whittle down the code to something basic to show how it'd work so your manager/co-workers can see for themselves on code that they're reasonably familiar with. Unless your manager/colleagues are intimately familiar with such tools, I'd think that your touting their usage at work, is more like wishful thinking.
- robertn702 3y agoThe statement "my options on who will hire me are kind of limited" is a bit misleading. Limited compared to whom? Your options are abundant compared to most people. It sounds like you are waiting on a fantasy position that has both interesting work and pays at least the same as your current position, which you have 13 years of experience in. That's not usually how life works. There are trade-offs. If you want to do a different type of work that you don't have any professional experience in, you are going to have to take a pay cut. As you mentioned, you're fortunate to be making 3x what you need. It's up to you whether it's worth "only" making 2x what you need in order to do work you find more engaging. This is not a unique circumstance. People make this trade-off all the time. Maybe talk to some people who did.
- tombert 3y ago> It sounds like you are waiting on a fantasy position that has both interesting work and pays at least the same as your current position, which you have 13 years of experience in. That's not usually how life works. There are trade-offs. I mean this with all the respect in the world, but no shit. That's what I'm frustrated about. I feel like the entire thing I wrote was specifically because I am aware of these tradeoff. Just because the tradeoffs exist doesn't mean I have to like them. I know that my dream job doesn't really exist, at least not in numbers large enough to even bother considering, and I'm not naive enough to really think that pivoting to another career will suddenly solve all my problems and frustrations.
- antihipocrat 3y agoThere's no requirement to put qualifications or experience on the CV that aren't necessary for the role. Hiring managers make a lot of assumptions, and if specialisation is going to limit opportunity then leave it out.
- _carbyau_ 3y agoPossible other option: I hope to soon go part-time. IE keep my current job with the pay rate, but change the balance of hours worked. And if it doesn't work how I like, go back to full time. I like the idea of studying physical design... but we'll see how that pans out.
- tombert 3y agoYeah, I've debated doing that; just doing contracting work half-time and spend the other half of my time focusing on the stuff I actually enjoy. The thing that stops me is health insurance. My wife is wrapping up her school this year, so once she's working then I might be able to use her insurance and give this experiment a try.
- _carbyau_ 3y agoInsurance is a fair point I hadn't thought of. I guess there is some link between "full time" vs "part time" and insurance in that sense. I assume it isn't worth being "part time" and paying for the insurance gap out of pocket. Bargaining power tends not to work that way. I'm in Australia so this isn't a thing for me.
- tombert 3y ago> Insurance is a fair point I hadn't thought of. I guess there is some link between "full time" vs "part time" and insurance in that sense. It can depend somewhat on the job. When I was a part time adjunct last year teaching two classes (six credit hours) at a public university, I was given the option for health insurance. I don't remember what the premiums were but I remember they were lower than marketplace plans. > I assume it isn't worth being "part time" and paying for the insurance gap out of pocket. Bargaining power tends not to work that way. Since the Affordable Care Act, the prices are somewhat more regulated and they're not really allowed to "decline" you anymore, so the "bargaining power" thing isn't as bad as it used to be. Paying out of pocket for insurance is expensive but not insurmountable for basically anyone working in tech, and certainly you can factor into an hourly rate. In NYC there's the MetroPlus system, and the cheaper plan on that is around $1250/month for two people, which equates to roughly $15,000/year [1]. An employer plan in NYC will still typically have anywhere between ~$100-$600 monthly premium for a family plan, so anywhere between $1200-$7200 per year of just premiums (not counting what you pay before reaching your deductible), depending on the company and which plan you choose within the company. The US healthcare system is needlessly complicated. Still, it would certainly be better to not pay $15,000/year if I can avoid it, so before I try doing half-time contracting I am going to wait for my wife to start working. [1] https://metroplus.org/plans/individual-family/marketplace/bronzeplus/ https://metroplus.org/plans/individual-family/marketplace/br...
- Izkata 3y ago> I like software and computer science, but "software engineering" barely counts as either. I expected to be utilizing a million data structures or figuring out proofs of correctness or designing the next amazing distributed system, but it feels like 2/3+ of software engineering is "add field to JSON" or "write a for loop to convert something to a different shape" or "change color of button" or "change width of page layout and then modify selenium tests", and the only data structures that ever get used are hashmaps and arrays. I spent so much time learning the minutia of CSP and TLA+ and set theory and I feel like I have basically nothing to show for it, and now I can't really even change to a career where I would get to use them. So, around 6-7 years ago I was on a development team and was getting tired of a bunch of things - the frontend treadmill (react/redux, do it this way, no that way, then a few months later there's a new "right way"), how we kept getting new product owners and the "vision" was lost so we were just reacting to customers (and kept remaking the same pages but differently), and a slightly more personal one (no one liked my idea for one of those pages, then a few months later our designer came up with the exact same thing, no one remembered mine, and the page has been unchanged since). Our company was also drifting heavily into silos during that time, some people were frontend-only, some backend-only, where I like the whole stack and didn't want to limit myself. So after all that I did something that surprised and confused my manager: Asked to get moved to the maintenance team instead of new development. They were intrigued because apparently that team is where new hires often ended up, and they almost never had someone experienced on it - which surprised me because I figured that job would be harder than new development. So far I've been on this team longer than any others and have yet to get tired of it. I know some of it is how good a manager we have, but the work is also very directly about fixing things. It's much more self-directed, no product owner initiated rewrites on a whim, large projects still happen when something is really bad, but because it's considered legacy there's no treadmill-chasing. And the random fixes can end up anywhere in the stack, so I get to keep using everything I'd learned from linux through the database and server to frontend, instead of sticking to a silo. So even "5) Just live with it." does have sub-options.
- tombert 3y agoI've debated doing that exact move as well, simply because I do enjoy making "incorrectly" designed code "correct", by either moving to a simpler model or utilizing a more tried-and-true way of doing things, and since no one wants to be in "maintenance" it might afford me some more freedom. At a previous job, I would occasionally spend time on the weekend rewriting and simplifying code because there wasn't really a "maintenance" team and I knew the only way that it would ever get better was if I fixed myself on my own time. I've since drawn a line in the sand that I do not work for companies on weekends but I did sort of enjoy that process.
- didgetmaster 3y agoIf you are really making 3x what you really need, you should be building wealth at a rapid pace. Once you are financially secure, you can stop doing unfulfilling work just because the pay is good. I 'retired' early because I don't need to work for anyone anymore. My wife and I saved and invested so we are set financially. I still love to program so I spend my time and energy working on a project that is personally fulfilling to me even though it has yet to bring in meaningful revenues. BTW: it is a new data management system that is designed to be a distributed system. Have you considered teaming up with someone on a side project?
- tombert 3y ago> If you are really making 3x what you really need, you should be building wealth at a rapid pace. Once you are financially secure, you can stop doing unfulfilling work just because the pay is good. I didn't word it terribly well, so apologies for that, but for "really need" I was talking about subsistence wages in this case. I make perfectly fine money, and I do save/invest as much as I can, and I do own my house in NYC, so I do alright. I do hope to retire somewhat early, at least by American standards, but it's not like I'm making "fuck you" money. > BTW: it is a new data management system that is designed to be a distributed system. Have you considered teaming up with someone on a side project? Outside of something I did with my dad a few months ago, not really. I have a decent job now that's not psychotic about non-competes, so I've been ramping up to build something.
- tome 3y agoWell, I think the suggestion remains: live on subsistence income whilst working for as long as it takes to be able to live on subsistence income whilst not working. (All the while you can be attempting to effect changes that allow you to earn more than subsistence income at something you enjoy going.)
- tombert 3y agoYeah, I don't really disagree; I'm still trying to get out of debt from the six months I was unemployed last year (which also ate a bit into my savings, but I live kind of boring so it wasn't super bad). Hopefully that should be coming to a close pretty soon (even sooner if Gemini actually reimburses the money that they ponzi'd out of me like they claim they will). I've been trying to invest in a combo of relatively-low-risk ETFs (VOO and VTI primarily) and US Treasury Bills, to give myself a combo of potentially-higher-than-inflation-reward but also zero-risk-and-still-higher-than-bank-interest money. Once my wife starts working, we figured that we'd put nearly 100% of her paycheck into some forms of savings to accelerate the process a bit further, since my salary has traditionally been enough to cover the bills. I'd like to have enough money to retire comfortably by my mid-to-late 40's. I think that's realistic. 2023 was one of the worst years of my life, maybe the worst. It was really horrible being laid off twice and having to spend so much time on LinkedIn and doing Zoom whiteboard interviews and waking up to dozens of rejections every morning, not to mention that being laid off twice in a year makes your resume look insanely bad (each stint being about 3 months). As a result, I think I've become more frustrated than I probably should, and grown a strong resentment towards companies, with a nearly-complete lack of optimism that they'll ever do anything even remotely actually-technical. My current gig seems a lot better but I've learned my lesson about getting my hopes up. We'll see if it lasts more than three months.
- lnsru 3y agoI guess you’re in USA. Luckily I am in poor Germany with way lower salaries. Which opens me another option 6) go into trades. Becoming certified electrician takes a lot of time or money or both. My university degree with an expensive course was enough. Salary stays the same as long as I am self employed. Otherwise 5) since 4) does not really work for me. Helped too many brilliant guys as an electrical engineer. Products got traction, but nothing big happened.
- lanstin 3y agoThis is your chance to decide what your values in life are. Money or fulfillment. Maybe you can alter the software job somehow to make it more fulfilling to you. An organization with a purpose or mission that you believe in. A role with different type of expectations or work. Maybe writing on the side or starting a family.
- tombert 3y agoYeah, I don't really disagree with that. I think Americans are kind of trained by the propaganda machine that you need to find fulfillment from your job, but fundamentally I think you're right and I need to take things into my own hands. I have a few ideas that I think I might be able to turn into papers, and might even be able to get them published in a real journal. I doubt that my current gig will have too much of a problem with that (they're much more in the chemistry/healthcare space than pure CS), so I might be able to have some fun with that while giving myself an excuse to use pure math.