How to move in SWE (And why it isn't all that great)

Hello again. I make this post not having learned from last time the consequences of a non-finance post on a finance forum. It seemed like this was the question I kept getting over and over, so I'll answer it and tell you why the grass isn't always greener

Making the change

So, you've finally decided. You're going to join the dark side: tech. More specifically, software engineering. Now what? Well, the first step is to not watch anything on everything you need to know. You will get overwhelmed. Start out simple. Download vs code, maybe start a basic scratch program, or read automate everything. 

Baby Steps

The first thing every engineer must start with is what language to learn first. Many will tell you to learn python because it's easy and beginner friendly. Others will tell you to learn C so you can understand what's going on under the hood of your PC. They're both wrong. The language you should learn should be based on what you want to do. 

  • Frontend development: This is what makes the websites you see possible. The languages here are HTML, CSS, and Javascript
  • Backend development: This is the servers behind the application, like if you submit an amazon order the server gets that request and makes the order. The main languages here are java, python, ruby, C#, go, nodejs, and maybe rust/c++
  • Mobile development: Not breaking this down. Kotlin for android, swift for ios, you could probably use java and get away with both, but that's generally not best practice
  • Game development: People really love this in spite of the shit pay and bad work. Main languages are C++, c#, and rust
  • DevOps: These guys are just there to streamline the deployment process(that's oversimplifying a fuckton) main languages are python, docker, other stuff that I have no interest in learning about. Idk, google it if you want. It's a cool job, I just don't know nearly enough about it/
  • ML/AI: The hotshot role. You know what they do. Main languages are python, R, sql, and c++/rust. You can apply the same rules to data science
  • Embedded systems: A personal favorite. This is the engineering behind everything with a semiconductor that isn't a computer. A lot of this is stuff like cars, phone chips, ram, ect. Main languages are C, C++, and Rust
  • Blockchain: If you like crypto and the blockchain, I guess do this. Main languages are Go, Rust, and solidity

I didn't list every single role, so if there's something you might be interested in like OS, Cybersecurity, windows app dev, ect do some research; there's plenty of tools out there. If you have no idea what it is you want to do, learn javascript. It will allow you to do stuff early and move into the frontend or backend with nodejs later.

Creating your first project

So, you've chosen your specialty, learned the basic syntax, and are now on your way to becoming a great engineer! Get ready to throw out that deodorant and body wash, and get stocked up on some axe bo... wait, you still haven't made anything? Yes, the first major project. This is probably the first thing you'll post on github, only for a 17 year old to rip it to shreds and submit a pull request with "minor changes"(Also, if you don't know what git and github are, it's good to learn those with your languages) Your first project doesn't need to be some innovative app with vc funding, it just needs to show that you can create something of value. An employer likes to see an ability to, you know, make stuff. It's probably best to look up some project ideas related to your project, I like this hub post https://github.com/codecrafters-io/build-your-own…. You really don't need something of this size, something like a basic Arduino light controller or a budgeting app with an api plugin are sufficient. 

Moving into complex subjects

Now, you're eventually gonna need to move into more complex things. You should at least know basic data structures, algorithms, and design patterns before interviewing. I cannot recommend your local community college for this. They almost always have good classes in these subjects. If you can't get into a class covering these topics, youtube and other internet sources are also great(I learned a lot from mosh). You also need to know your cloud providers, frameworks and packages for your selected language, basic cs principles, and how your computer, you know, actually works. This is probably around when you want to check out roadmaps.sh. Great resource, but I don't recommend to starters since it's just so much to digest. The most important thing here is to just keep learning consistently. That's something every successful engineer does. 

Getting your first job

This is the hardest part by far. If you're still in school(which it seems like way too many of yall are) getting an internship should be your main focus. From there getting a return offer is easy as long as you don't shit the bed, and getting an offer from another firm after is also much easier with experience. However, I would assume most of you who are still reading are career switchers, so you've got a monumental task in front of you. This is easily the worst tech market I've ever seen, especially for entry level. The best advice I can give to you is to apply to firms you don't want to work at, interview, secure the offer, and hold it. If they leave the offer on the table, it gives you leverage in other salary negotiations, and if they don't you can just consider it to be a practice interview. Also, you can't really afford to be picky right now. If this was 2021, I would say avoid amazon, avoid defense companies, avoid banks... basically avoid everything not in FUNGALMASS(we gotta make better anonyms cause this shit is just insane). Right now though, you gotta be willing to take lower comp jobs. It's also good to get internal recs, so do that thing you're good at and network. Also, apply to jobs where you don't meet all the requirements. If the application is asking for 2 years of experience, but you've got solid projects, an internal rec, and can pass the interview then they're gonna hire you, and the worst thing that can happen here is a simple rejection. Also, you don't need a ton of leetcode. As long as you can understand the problem at hand, you should be fine, and I personally have never had to practice a ton of leetcode as long as I can just explain myself to the interviewer and breakdown my thinking.

Why it isn't all great

Ok, now it's time for me to poopoo on your parade. Yes, I make a larger total comp than most in finance, but I also have a fuck ton of monopoly money, and outside of HFT and netflix(love them, great company) you rarely if ever get all cash compensation. I also live in the bay area, which sucks at least half the time. High cost of living and traffic are truly my favorite things in the world. Yes, I work on average 50 hours a week, but at no point during those 50 hours can I ever have a moment where I'm just mindlessly doing something. The mental fatigue debugging legacy code that had worked for 10 years but just decided it no longer wanted to is just, well, fucking awful. I'm gonna have a controversial take here, but I'm gonna say engineers are also criminally underpaid. We create products that generate billions of dollars, but generally we get a much smaller share of the revenue compared to other highly technical or skilled jobs, such as finance, consultants, and lawyers. This isn't just swe, it's all engineers. We create a product that makes 100 million in revenue, we get a PIP because amazon said they needed to layoff 10% of their staff at the end of every year. We also have terrible progression structures, which is why swe job jump so much; it's literally the only way to get a promotion. There's so many other terrible parts of the job, but it really boils down to this: if you're trying to be an engineer because you really want to do it for a living at you love it in spite of everything I've said, then absolutely make the change. But if you're just trying to make the change to escape finance and you're just looking for another high paying job, look elsewhere, because you just cannot succeed in programming unless you absolutely love it. Thank you for reading my terrible incoherent rant, and I look forward to getting ripped apart in the comments.

 

Isn’t there some tech forum you can vent to? Why do you write these monologues on a finance forum, most people here just want to get advice for jobs in finance 

 

Very few to none of the users here signed up for tech, you’re talking to a bunch of angsty college kids and analysts. We don’t think swe is a job we want to work in either; that’s why we didn’t major in compsci

 

I've learned that caring about what they say and debating them on this when they didn't even read it is just pointless. A ton of people asked for it, and I figured I had a bit of time in between doing something so might as well do it. If I help at least one person the I'd consider it to be a win

 

nothing wrong with this post lol, just maybe wrong board. don’t know why everyone is so one track minded and not even open to other perspectives

 

Awesome post SB+. Where do you work now and how did you prepare for interviews? What leetcode problems do you recommend I focus on?

Work at stripe. I wouldn't recommend doing leetcode, rather you should focus primarily on learning about the data structures and algorithms and the process on how to solve a problem. Let's take fizz buzz as an example. You might want to practice and just do the problem, but it makes much more sense to break down exactly how to solve it step by step. 

 

Through the last couple of years I’ve commented on posts around switching to SWE. The post is accurate. Started off SWE and then jumped to tech and product management roles.

One thing I’ll add is I’ve sweated nights and weekends to support, automate, and scale products. Twice now, while the companies did not IPO, they were sold and the higher ups walked away with $3-6m while we walked away with pennies on the options. The poster is from Stripe so depending on when he got in would affect his payout if any. I know everyone works hard but timing is everything. I now work at a major corp doing 40 hours a week, licking my wounds, and telling my son to not go into tech but rather finance which is why I’m here to learn about finance careers.

From my perspective the people who deal with the finances at the tech companies is the best place to be. Their networks are crazy from the deal making, they make good money, still live in exciting world of tech, but when a deal happens they make out like bandits. 

Lastly, let me share one example of many of supporting a software product. I was woken up every night for 23 days straight, trying to get data roll up jobs to finish because of a conflict between Oracle and Unix versions and the admins pointing at the other guy to upgrade because they wouldn’t agree whose problem it was. Finally, I was in a meeting and told everyone that I will send alerts out to both support groups, and the managers, every night and all night until someone upgrades. That did the trick. 

 

I will say that I do agree with the idea of your post. As engineers, we only make money when we demand it, threatening to move elsewhere. RN I'm working a ton to earn my comp, but ideally I end up starting a business soon enough. I did have to make the choice between tech and finance long ago(business and cs double major at target for both) and I chose tech because I liked the direct integration with the product and the ability to have hands on experience building something, but after seeing so many tech founders get screwed out of their equity and treated like 2nd class in the startup it really does make me reconsider as the business people oftentimes have a lot more control over the early stages. Still, I think tech is great if you like it, and finance is great if you like it. The grass isn't always greener.

 

Vel nulla qui voluptate assumenda nesciunt atque a. Qui praesentium qui reprehenderit deleniti necessitatibus quo ullam voluptatum.

Voluptatem ut est ut est nisi architecto. Tempora laborum sint voluptatem et. Quis autem quaerat omnis voluptatem. Quo eos porro distinctio est.

Doloribus ut ullam libero. Aut dolor quia perferendis dolores. Ducimus illum minus magnam voluptatibus ratione aspernatur. Aut nesciunt incidunt provident iure id.

Career Advancement Opportunities

April 2024 Investment Banking

  • Jefferies & Company 02 99.4%
  • Goldman Sachs 19 98.8%
  • Harris Williams & Co. New 98.3%
  • Lazard Freres 02 97.7%
  • JPMorgan Chase 03 97.1%

Overall Employee Satisfaction

April 2024 Investment Banking

  • Harris Williams & Co. 18 99.4%
  • JPMorgan Chase 10 98.8%
  • Lazard Freres 05 98.3%
  • Morgan Stanley 07 97.7%
  • William Blair 03 97.1%

Professional Growth Opportunities

April 2024 Investment Banking

  • Lazard Freres 01 99.4%
  • Jefferies & Company 02 98.8%
  • Goldman Sachs 17 98.3%
  • Moelis & Company 07 97.7%
  • JPMorgan Chase 05 97.1%

Total Avg Compensation

April 2024 Investment Banking

  • Director/MD (5) $648
  • Vice President (19) $385
  • Associates (87) $260
  • 3rd+ Year Analyst (14) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (66) $168
  • 1st Year Analyst (205) $159
  • Intern/Summer Analyst (146) $101
notes
16 IB Interviews Notes

“... there’s no excuse to not take advantage of the resources out there available to you. Best value for your $ are the...”

Leaderboard

1
redever's picture
redever
99.2
2
BankonBanking's picture
BankonBanking
99.0
3
Betsy Massar's picture
Betsy Massar
99.0
4
Secyh62's picture
Secyh62
99.0
5
kanon's picture
kanon
98.9
6
dosk17's picture
dosk17
98.9
7
CompBanker's picture
CompBanker
98.9
8
GameTheory's picture
GameTheory
98.9
9
bolo up's picture
bolo up
98.8
10
DrApeman's picture
DrApeman
98.8
success
From 10 rejections to 1 dream investment banking internship

“... I believe it was the single biggest reason why I ended up with an offer...”