Ask HN: How can a junior dev maximize their income?

53 points by quisquous ↗ HN
Let's say you are a junior dev that wants to maximize their income over the next 10 years, median outcome for someone capable of getting into a FAANG, not lottery tickets. What should you focus on?

ML+Python+Pytorch because it's hot right now? Java because no one wants to maintain legacy Java code but there are lots of it and the demand will be there? COBOL to take that even further? Node.js because it's popular? Swift because Apple will continue to dominate the high end? Practice and pass the tests to get into a FAANG? Go work for a high frequency trading company? Learn SAP?

Asking for a friend (TM). Seems like a particularly interesting time to ponder this question (again), with layoffs in tech all the rage and geopolitics looking a bit less 'steady as she goes' than say, 10 years ago.

90 comments

[ 14.7 ms ] story [ 259 ms ] thread
What do you enjoy doing?

It depends what you mean by maximize. Any of your options will likely put you into one of the top percentiles of earners.

Build interesting things, meet great people, keep a curious mind and focus on building great products instead of chasing what might look good on a CV.

Tech changes fast and nobody has a crystal ball which can tell you what will be hype in 3 years. But everyone knows that having a solid professional network and proof that you are able to deliver great products will greatly benefit your career as an engineer.

This is the best advice.
It's totally inactionable though. "Build interesting things", "meet great people". It sounds nice but it's completely hollow. Not to mention "what looks good on a CV" is actually a really important thing to consider.
"Build interesting things" is pretty actionable, it just requires opening your code editor and building stuff that interests you. There's a good chance that your interests will overlap with other people's interets and that you'll end up having built something interesting.

"Meet great people" isn't crazy hard either, literally just talk to people, and keep talking to the one you find great. If you have trouble talking to people, I recommend Dale Carnegie's book (How to win friends or something).

Learn Java or C++, get good at leetcode, and work in finance. You don't need to be a good engineer – these places are messes of legacy code created in fiefdoms run by people who care more about money than the engineering. You'll make a ton of money and feel poor because the quants will make far more than you ever will.

In my opinion this is a truly terrible path to choose, but you will earn more than anyone in tech who doesn't win the startup lottery.

isn't it risky to work on finance related code...

i don't want to get shouted out by a bunch of coked up psychopaths.

Finance is a large field with a lot of different personalities and cultures. Paying top dollar for devs is inversely correlated with getting shouted at by coked up lunatics, although there are exceptions…
I think this culture has changed a hell of a lot. When I started there were eating contests on the floor and someone got fired for being sexually harassed. People would break keyboards and bring water pistols onto the floor, and there would be free dinner each night for anyone willing to listen to salespeople.

Nowadays, it's quite different. Gifts have to be logged so people don't do it much anymore, metoo happened, and I can't really imagine another burger eating contest, even though that last one is fairly tame.

For people actually working in FinTech today, what does a day-to-day workday look like? What types of problems does your code solve?
You solve a lot of the same problems that other tech companies solve, just with different constraints. An example I like to use is: "Facebook can afford to lose a 'like' on a post -- whether that is through data loss or just eventual consistency -- while we cannot afford to lose a penny (exaggerating a bit here) since there are people making live decisions on that penny"

Those sort of problems are more on the product side, along with the regular slew of product development tech problems. On the infrastructure/platform side (where I work) it is remarkably close to "regular tech". Same types of distributed systems problems, database issues, CI/CD pipelines, engineering efficiency, etc. The "new" part here is working with the finance specific areas such as physical data centers and networking to clients, or domain specific items such as data retention for compliance.

I generally think of "FinTech" as startups/scale-ups working on finance related products, and they're not too different.

There's quite a difference with what I think of as pure-finance, companies that aren't producing a tech product, but are using tech to make money with financial services, or betting on the markets in various ways.

As for the problems, I was once in an interview given a coding task of moving money around a network of companies based on tax rules. Fun.

I am a junior that does C++ currently for HFT. Lots of legacy code, although I don’t think the code is that terrible (although I am a junior so maybe I can’t tell).

Any reason why it’s a terrible path to choose? Am I stunting my growth? I was hoping HFT would help leverage me into a big tech company for systems level stuff since (at least I was told this as a selling point to get me to join) its tougher here so FAANG likes to see HFT experience. Is that not the case?

> Any reason why it’s a terrible path to choose?

These reasons are not universally applicable, so see what fits your experience, but... code quality is often poor, internal practices often seem to leave a lot to be desired, company culture does not seem to be a focus, assholes seem to get rewarded.

You can probably get into big tech from it, but perhaps not at the seniority you might expect, or if you do you may find it a struggle to get onboard with industry norms around engineering process and company culture that are missing from a lot of finance companies.

Another junior eng here chiming in.

Base on what I can gather from my friends who work in the space (DRW, Citadel) it's just more stressful and has more politics than my current role (ML Engineer @ a retail company). Trading income for work-life balance and stress, and maybe OP is hinting that as you progress down that track the WL balance and stress only increase.

Just my 2 cents and why I didn't choose to pursue that path.

It depends on the FAANG, though most of them have some amount of C++ code. Google has a ton; they'll appreciate people who know the language well.

I think people may be concerned because these days it's more niche, though it's still a very common language. Take a look at the job postings from the companies you want to join and see what skills they want. Get familiar with some of them, even if you don't do them professionally.

Get good at the Leetcode style questions.

Are you doing distributed systems work? Can you answer design questions like: design bit.ly, Twitter, or Facebook? There's a lot of info out there on how to solve these problems.

There may be questions about your ability to work with "big data". But that's also something you can pick up on your own, even if you aren't doing it at work.

Look for technically challenging projects at your job and solve them. Learn from them. Think about ways you could have solved them better with what you know now.

> You don't need to be a good engineer – these places are messes of legacy code created in fiefdoms ...

For juniors coming in, "messes of legacy code" probably isn't the best learning environment from a tech skills standpoint.

For more sr folks coming in to "message of legacy code", you do need to be a good engineer, because you may have to be working around a lot of stuff that can't be changed. You may not have version control. You likely won't have any sort of fancy CI/CD/pipeline process. You may not have tests (as the code is likely untestable in its current state).

Find a new job with a significant pay rise every couple of years. Think hard about the next jump each time you make a jump.

All the best pay rises I've ever had involved finding someone willing to pay me a lot more for basically the same thing as I was already doing for someone else.

Barring winning the "pick the exact stupidly-overpaid technology of the future", banking on any particular technology would have done me far fewer favours than just finding new jobs paying more money.

You can price yourself out of the market with this strategy.

Because every overpaying technology normalizes over time. Someone who is willing to pay more at this point in time, will always find someone cheaper in time next few years.

You can always lower your price back to market. Pricing yourself out means you've spent the last N years getting paid top dollar. I'll take it.
In reality, you cannot lower your price. You have mortagages that assume that you will be paid at x amount every month. You life is planned around the money you make. If you take a pay cut, it does impact yuor life.
I know this question is situated around the tech, but the real answer is to leave every couple of years. There is always more money to be made, and the more experience you have the easier it is to get it.

I'm not saying this is what somebody should do, but if you're only indexing for income, then it's the only answer IMO.

Strongly seconding this answer. I did the opposite in my career. I did not change jobs often enough. One job I had for a very long time. The growth staying in place was not very much. I knew changing jobs would get me more money, but I didn't think I could find a job as good in all the other aspects. I was wrong. I've changed jobs a few times more, and every aspect got better, including money.
To a point. People who move around too much will not get the job if there's a comparable candidate that has stayed around longer at previous jobs.
I’ve been on interviewing panels before. It is extremely rare to have two “comparable” candidates for any one position. Everyone has different pros and cons. Tenure at past positions was always very low on the list of qualifiers we evaluated.
Is there a reason why it was low on the list? What qualifiers did you placed more on? Could you explain more about the thought process?
I’ve also done a decent amount of interviewing, and have a similar (but slightly different) experience to the GP.

We considered someone’s career history a problem when they had several jobs of ~a year or less. Or someone interviewing for a senior position with 4-5 years of experience across 5 companies, for example. If those were the case, we were much more likely to reject them.

If someone (hypothetical) had 10 years experience, with a few that lasted 1-2 years, one that was only a few months, and maybe one that was 4-5ish years, then that was no problem at all. We wanted to be sure they had seen the consequences of their prior decisions, if they were coming into a high-mid or senior role.

When we did hiring, we wouldn’t be comparing candidates 1-to-1 like “Well A had this, but B was good at this, which one should we pick?” …instead, we would just say “ok we’re in hiring mode, keep hiring everyone who is good until we have enough for xyz goal”. So it wouldn’t be that CandidateA is better than CandidateB, but rather if they both met the standards, then they’d get hired.

Some of the qualifiers that mattered more than tenure for us were:

* are they capable of explaining technical problems and communicating

* do they understand algorithms at enough of a level that they won’t cause major performance issues

* are they polite and friendly, how do they respond to feedback

* can they build an architecture which handles expanding requirements

* how eager are they to learn and work on our tech stack + business domain

I haven’t interviewed juniors really, so I can’t speak much to that. But when we’ve hired someone less experienced, it would be the same requirements as above just with a lot more leeway on tech, and more emphasis on “eagerness to learn” + “receptive to feedback”

Not necessarily, not when I hire. On-boarding, and ramping up in a new environment is a skill and to some extent, I see that as a value add. A person who has gotten comfortable in a role for 10 years is often slower to ramp vs. a person that has seen a lot of environments and projects.
Optimizing for “ramping” seems incredibly shortsighted.

Does seeing things through, pushing through the hard bits, the bits that only come up after a few years when your pet project starts spouting fire or some major restructuring happens and not to mention loyalty doesn’t mean anything anymore?

If the company was giving pensions and compensating people like loyalty mattered then we could have that conversation but there is no loyalty toward employees from companies. I see loyalty to any company as shortsighted from the employee's point of view.
There’s the issue of building virtue and good character, which I suspect are ancient and long obsoleted concepts.

This pragmatism is understandable, but I don’t think it’s a nice way to live. Of course to each its own.

You can build virtue and good character and still manage your career in a way that puts yourself and your family first. I'm not buying that the only way to build character is to work for below market rate so someone else can make money and then forget you when it's not convenient any longer.

Asymmetric loyalty is a dead end. Deriving your virtue and character from your job is also a fools errand and a myth that is perpetuated by anti-labor capitalists to line their pockets before they absolve themselves of equal social responsibility.

Build character and exercise virtue by making your community and family richer.

I’m afraid dumping your partners whenever is most convenient for you and your family, while understandable because they will do the same to you, is not what I understand to be virtuous.

You may be spiteful, and perhaps rightfully so, against the powers that be, but it is ultimately futile. Who is in power is not up to us, but our response to it is.

Not preaching to you, you may be the most virtuous being in existence. Just mumbling in the wind here.

An employer is not a partner.

If you are a partner in a business, then walking away is not so easy and probably a lot less desirable (and still, "junior partner" is sometimes a trap).

Most people who work for businesses are "human resources", so let's treat employers as "income providers" and nothing more.

You're of course right, it's not the proper word. In a broad sense you are both actively working on, let's hope, a shared vision and you need eachother. I'm not interested in the power symmetry of the relation in this case although it's of course part of the situation.

> let's treat employers as "income providers" and nothing more.

It's fine that you and many of you consider this to be an agreeable way to live. I'm just saying that it's not the only way and in my opinion not a particular desireable one.

Minority opinion here, but I am entertaining the vague and quite dangerous notion that with a bit of compromise from both sides we can have our cake and eat it too. The dangerous part might consist in accepting we are not all born for great works and some humility and acceptance might not actually be such a bad thing. Of course, in moderation as with all things, but I don't think modern people are in any danger of being too humble anytime soon.

I wouldn't be too hasty to dismiss such notions as "loyalty", because "trust" is quite close and it might just be a fundamental driver of human civilization.

But the power imbalance is the whole problem. Unfortunately it seems to be human nature that those who seek and gain power are compelled to exercise it to benefit themselves, to the detriment of others.

What sort of compromise are you thinking of? I get the impression that workers have done a lot of compromising (involuntarily) in the past decade or two and bosses have not.

The idea of a co-operative has always been appealing to me, but having encountered and worked with a lot of real live humans my idealism regarding that is pretty much shattered and in practice I suspect it would be very frustrating and fairly short-lived.

Personally I ended up as a business myself, I have clients rather than employers. It's far from perfect, but it feels more honest and 'real' somehow.

I understand and I too have clients. This feels completely different indeed, but that is exactly why I came to think of these things: the power structure is not fundamentally different. If anything, it’s more volatile and I need to watch what I am doing all the time. I can be dumped at a moment’s notice and to be honest, I like it that way because that works both ways. (My wife thinks differently about these matters.)

Thing is, without sounding too negative, because my team mates are all good people, but I have seen some negativity in them along these lines that in my opinion is uncalled for. Without proper care it is easy to fall into a black and white, purely transactional relationship with your employer. To be completely honest, I myself have fallen for it quite some time and it made me deeply unhappy.

I speak to the “bosses” perhaps on a different level now and it’s not like they are living to grind their staff into dust. There is a complexity to their job as well and it would perhaps be enlightening to keep that in mind even as an “employee”.

Perhaps my idea of compromise is that you, as an employee, need to come to terms that you might not be perfect and that there is a lot you do not understand, but that is OK. Try to do a good job and don’t point fingers (“they started!”). Try to imagine how your “boss” feels. We are all humans trying to do an adequate job, barring some pathological types. Not to make your boss happy, but yourself.

But I am rambling too long now. I of course need to add here that exercising wisdom is crucial: don’t let yourself be abused. Everything depends on the circumstances and they are always complex.

Edit: btw I work with small businesses and those are a completely different game than, say, Adobe. I still think the general point about trying to do good without falling into pure transactionalism is helpful.

You can be dropped at a moment's notice as a salaried employee too, it just takes a bit more prep on the part of the employer. It tends to be more of a shock for people who take "permanent" literally, whereas for us we know we need a year or two of spare cash in the bank.

> Perhaps my idea of compromise is that you, as an employee, need

> to come to terms that you might not be perfect and that there is

> a lot you do not understand, but that is OK. Try to do a good

> job and don’t point fingers (“they started!”).

I think this describes most people already. I mean, I've encountered some prima donnas but that problem solves itself eventually (they flounce off). I'm not sure what you're suggesting ordinary employees should be doing that they aren't already, and what it would cause their employers to do differently?

It's a good point about small businesses, I much prefer dealing with them to bigger firms. If my point of contact is one of the directors then everything flows so much more smoothly. (Smallest direct client had 7 employees, biggest I think about 200K - very different experiences.)

When I refer to "the bosses" I really mean the set of people at the upper layers of larger companies who, week to week, have no contact with staff who are doing actual productive work - their subordinates are managers, and the subordinates of their subordinates are also managers. They're insulated from, and often unaware of, the effects of their decisions - they probably don't consciously intend to grind their staff to dust, but everyone they talk to is happy and the numbers look good so surely everything is fine.

Further down the chain you've got a bunch of middle-managers with no investment in the overall good of the company and no power to really improve the conditions of the workers beyond passing messages up the chain, and the truth in those messages is filtered and transformed with every extra layer of people. Nobody wants to tell their boss stuff he/she doesn't want to hear.

Depends on the role. When it's a highly complex system where it will take 6 months for the person to become a productive contributing member of a team, I have most definitely heard and been part of conversations where we considered if the person will stay around long enough to be worth the effort of training. On the other hand, for roles where it's a series of 1-2 month projects to make fairly straightforward changes to network protocol implementations, time to turnover for a new employee hasn't been a concern.

Of course a reasonable explanation for why a person has turned over jobs so many times can negate the concern. It really depends on the candidate. My point is that someone early in their career needs to recognize that there are both upsides and downsides to switching jobs frequently.

(comment deleted)
If that is the case, then the job is not one that our hypothetical job hopper wants, so it all works out.
Can't upvote this enough (or indeed more than once) but yes, this is the way to do it. Don't stay anywhere more than 2 years until you're more than comfortable with your income and/or taking a role where it's beneficial to stick around for longer.

Companies don't expect people at the beginning of their careers to stick around for long.

The other benefit is that you get to experience a broader range of environments and technologies, which is good for everyone.

I spent my 20s following this advice, but now in my 30s I am starting to question it.

When I look up the org chart, the people higher up have been at the company 5+ years. Moving into the higher roles requires the right opportunity, which often takes time to find. Those "right opportunities" are rarely given to people new to the company and are often used to retain existing high performers.

Certainly if you're stuck in your career and are not on a growth path, jump ship. But if your job is promoting you consistently every 2–3 years, then I'd stay.

Interesting in that I kind of did the opposite. I stayed at one company for a long time, and then moved more around later in my career.

Perhaps there is an argument for getting to the "staff" level quickly, and then hop around more as it's harder to advance past that level?

In my own network and in my current role, I see people that should have left years ago, but they never got the hint that their careers stalled. I would have a direct conversation with my manager to see where the growth is and then verify that with action (Are they promoting other people instead of me? If yes, leave.).

As far as reaching staff and then jumping ship, I have no idea. I started my career 10 years ago and at the time, I thought "senior" was the highest option, but then staff role got created.

I wonder if in 10+ years, the IC ladder will get taller, so people don't feel "trapped" at staff level.

Title inflation is a thing even with ladders. I know of some non-tech industries where there are 15 levels to climb and at level 7 you were considered a director already.
You are talking about two different goals. Yes, stay if you want to climb the corporate ladder but if you want to maximize income then one must jump ship. Some people are just not cut out for the corporate route so moving is good advice. These are the people that just transition to starting their own companies in their 30s/40s or consulting.
(comment deleted)
I agree with this as well. I spent 7 years at my first job, and would have been much better off moving at least once. After that I tended to average closer to 3 - 4 years at jobs.

I would recommend having at least one stop where you spend more than a year or two, just to show that you can get past the initial ramp up period. This avoids having a red flag on your resume, but that may be old fashioned thinking.

The original stipulation is someone with the skills to get into a FAANG, so I'll focus less on that. I'm also going to ignore quality of life considerations.

Cynical ideas, with a slant towards making the most money: - Don't be afraid to move, or take advantage of working remotely.

- Get a job that pays Silicon Valley money / RSUs but then move somewhere cheap.

- Pay more attention to potential stock benefits, that's where the bigger money can be.

- When the market is running better again, jump to a company that should go public soon. This way you get the most shares with the least personal risk. If you get good a guessing who the "hot" company will be, you can do really well.

- Companies aren't allowed to say when they're going public, or their stock may disappoint. Switch and try again if you've guessed wrong.

- Don't stick around past your initial stock grant (generally 4 years).

- Keep an ear out for the hot new tech / VC focus, and learn enough of those skills to get hired.

- Get good at interviewing.

Note: this is what's worked in the past, future conditions may be different.

That is the only correct answer.
I would say this is right for the first 2-4 jobs but then I would start looking for really promising startups with equity and stay until vested (normally 4 years) unless it's clear the startup is not doing well or you see another startup you just cannot miss. Having said that in my actual career I missed out on a big equity payday due to the dot com bust and my best year I earned about 200% of my base salary + benefits due to bonuses. Later in my career 35-60 I did better maxing out 401K, and stock option plans and just accumulating IRA money. I wish I had converted my traditional IRAs to Roth IRAs during the dot com bust when I was self employed running my own business and making very little.
While I personally didn't go down this path and wouldn't necessarily recommend it... if you are going to, the answer has almost nothing to do with any particular tech stack.

NETWORK NETWORK NETWORK, hop jobs every one to two years and make sure each of those jobs comes with a salary increase greater than what you could get via the promotion ladder at company you are leaving. Be a good enough software developer that you can switch tech stacks at will. Learn the software engineering (design patterns, how to communicate with stakeholders, etc) and language design / compiler / networking fundamentals (so you can easily switch programming languages / stacks).

Beyond that, certain subsections of the tech industry have higher salaries so network with people in those subsections.

Also just to be clear, the point of networking is so when you hop jobs you aren't applying to random jobs, you are being referred by employees at other companies.

Kubernetes. It's early enough, so you'll be among first adopters. It's mature enough to not go anywhere in the next 30 years. It's important enough to be adopted by anyone in the next 10 years.
Kubernetes and react can’t go on their merry way soon enough.
Very good question / topic. I don't have a good answer to contribute, but I am as curious as you are on the topic.
The pay discrepancy between FAANG and almost everywhere else is quite large. Even all the FAANG companies aren’t on the same level. If you think you can do it, study up, get a job at Netflix that pays 2x-3x the industry average, prioritize savings, don’t scale your lifestyle up to match income, swim around in your piles of money like Scrooge McDuck.
For sure, what area you get into has a big impact. Language, industry, etc. but there is also the "career strategy" aspect. If your aim is to maximise income and progression, I'd say you should target high growth companies and teams, for internal promotion opportunities, and send your CV out every 2 years, for external promotion and salary increase opportunities.

By 'growth' I mean increasing headcount (perhaps not the best period right now...). If you're in a company or team that has no plan to increase headcount then opportunities for meaningful promotions (expanded responsibilities and scope) and salary increases will be almost nil.

Maximum wealth would come from creating (or being and early member of) a startup that succeeds. This also has high risk, but the worst-case outcome for a paid early employee is still pretty good relative to the average (non-tech) salary.
None of that matters. If you can get into FAANG your best option is to cram leetcode and get into FAANG (or FAANG-lite...basically any reasonably well known public tech co with Silicon Valley roots). You can learn whatever you need while you're there. And after a few years jump to another one, etc.
There isn't really a clear answer to this as if there was everyone would do it and because of supply and demand it wouldn't be a valuable anymore.

That said, there are a few "meta strategies" you could consider

1) get really good at learning and hop from hot thing to hot thing

2) do the jobs that no one wants to do that also pay well (mainframe maintenance, documentation, sales?)

3) get really good at soft skills and put yourself in positions like management where a lot of your staying power (and income) comes from the relationships you build and maintain

Drop the junior title immediately from your resume.

Complain to your tech friends about tech while making new tech friends - one day they might work somewhere you want to, too.

Learn enough about product that you can be a "product engineer". Automation is coming for the industry, and routine jobs will suffer. Engineers who can make sound product decisions are and will be hot shit.
Are they trying to maximize their income in the next year or in their lifetime?

I would honestly advice them to change their mindset from trying to maximize income, to maximizing learning. So instead of finding a job that pays a lot, find a job where you learn a lot. Over the long term you will earn more if you are highly skilled.

The least relevant or interesting part of this question is what tech to focus on, as you can learn anything enough to be helpful in a few weeks.

The second least relevant part of this question is how geopolitics and current "layoffs" factor into this, as those are largely a product of bad management, and extremely isolated. They won't matter in 6 months, let alone 10 years.

If you are a smart and driven person, then software development is not going to be the best way to maximize your income. Get out of software and into finance, and/or get an advanced degree (MBA or law) from a prestigious university (M7 or T14). Ideally combine finance with an advanced degree, and work at an investment banking firm.

You won't be able to compete with the best individual contributors in software if you only care about cash, and in a hard(er) science field that becomes obvious relatively quickly. In finance, caring about cash is the passion, so that drive to make money will serve you better there.

1) I think 10yrs is too short of a timeframe if you want to maximize your income

On a 10yr timeframe the decisions you make will be very different than 20yrs. For 10yrs, your best bet is probably finding the highest paying Senior/Staff role you can then staying there. For 20yrs, even if it takes you 15yrs to become a Director you will probably earn more than your high paying IC role.

20yrs gives you time for things to compound (Skills, network, etc). 10yrs does not really afford you the same time. You'll probably be jumping around jobs to maximize short-term TC instead of building and compounding on long term things.

2) Considering you are talking about tech stacks, I don't think you have a good framework for thinking about this question

What dictates compensation? Generally the scope and responsibility of your role. Nothing to do with tech stacks unless you have an incredibly niche skillset.

I don't think this question is that interesting. Play long term games and build long term skills. On a long enough timescale things like tech stacks are effectively fads. Relationships with other people and skills like being able to lead people are always going to be valuable.

Best way to make money in tech is to go your own way or leave tech all together. I know being able to afford rent and a new iphone every couple of months sound tempting but what one needs is plenty of money to own a home and start a family. Those are things that only the rich afford these days - a rare sight among tech workers.
If the ultimate goal is increasing your discretionary income, you can also approach the problem by lowering your rent and living expenses. (Same work, different location.) Maybe even think about working in a country where the currency exchange works in your favor.

And since you have 10 years, you might also want to invest that discretionary income. (A well-diverisified portfolio is pretty low-risk. And with interest rates as high as they are, you can also get some guaranteed/fixed-rate returns that are pretty high.)

Realize that answers from those who have been in your position years ago are answers fitting to a low interest rate landscape. The rule book has changed and so will the industries that are at the top.
Expand on this. How has the rule book changed and how would you answer OP's question now that we're in a high-interest rate world?
I’ve been thinking about this. You bring up a good point. Advice of the last decade might not apply anymore given the changing landscape in tech and broader economy along with the feds response.

Joining hot new startups or VC propped companies may or may not be worthwhile. Is there a point of learning the latest FE frameworks or some new backend language? Companies will be risk averse. Hiring across the board might be tighter for the next couple of years with less roles so Leetcoding your way to a FAANG job might not be enough.

OTOH, the changing landscapes and uncertainty could lead to massive breakthroughs, initiatives and opportunities ex. (LLMs, AI, AR/VR, emerging markets in lesser developed countries, Renewable) etc.

1/ get better at developing stuff

2/ interview a lot, move jobs when you see something better

3/ assume the expected return on stock options is zero

Stock in public companies (might be called RSUs) is pretty close to income. Even gets taxed like income. Stock in private companies is not like that. You can't sell it without the company agreeing, at which point the company sets the price as they see fit.

You can check your odds by looking at statistics. I did it. I wanted to go for PhD but PhD salaries were lower than for Masters (on average). I wanted to live in France, but working from USA gives 3-4x more salary (on average). I wanted to switch to blockchain during the hype, but my odds of becoming a good employee were higher if I stayed in Speech Tech, so I did.
whatever you do, use whatever money you earn to become an OWNER of something

this is an economy of owners and renters, you will be one or the other

so buy an income property to rent out, etc

otherwise, you are always just someone who works for someone else

people who try to succeed just based on their salary will be disappointed unless it is a mammoth salary (becoming more rare in sw)