Taro Experts

Our top contributors from the last two weeks

Picture of Jonathan CJonathan C
Robinhood logoEngineer @ Robinhood
160Answers
687Likes
5
Profile picture
Engineer @ Robinhood
6 days ago

In the end, being a software engineer is just a job. We put in X time for Y value (usually money). Every job is like this. And the company is effectively a collection of people working for the same job, so the same equation applies at a company level.

Good craftmanship does matter. But our time is limited & time's value changes based on the current context. Better craftmanship itself doesn't provide value: yes you could spend time to make something better, but how much time? Would the company be fine with 2 extra weeks of polish for a 1-off client if the client will likely terminate the contract if deadlines aren't met? What if that contract is the difference between 1-2 years of runaway and collapsing as a company? Does writing good code trump the importance of the company not dying? If the company collapses, you're out of a job.

The ease of information lures developers with its high celing of craftsmanship, but often is a siren luring your career to death by drowing it in a sea of "just a little bit better". Craftmanship matters, but sometimes. Writing better code for something that is continously changed will benefit you over time, but if the code is never changed what's the point? If it works in its current state, then it requires 0 effort to be maintain (bringing it's value/time ratio to infinite since time is 0). If you start putting effort into polishing this, time is now greater than 0 and the value/time ratio is lower (so now you're technically losing the company money).

If your ratio is too low, the company will simply terminate you. Yes, your code could be the best out of everyone else's and could have way most test coverage. But if everyone else is shipping for many more clients than you & those clients are happy despite the worse engineering quality, then who's technically providing the least value?

Show more
Picture of Lalit KunduLalit Kundu
Google logoStaff SWE @ YouTube, Engineering Mentor, SWE Guru
19Answers
100Likes
4
Profile picture
Staff SWE @ YouTube, Engineering Mentor, SWE Guru
a day ago

There's wide variety of archetypes at L7 and L8 levels. You cannot prescribe a fixed/minimum size of the org as a factor. However, outsized impact is a minimum at those levels.

For example, one recent L6->L7 promotion in my organization: technical lead for 60+ engineers from my organization, working with x-fn/x-team for an year, to launch a $XB+ ARR product for YouTube. This is a typical project TL type of role.

There's other archetypes where you solve a deeply technical problem, with a very small group of engineers even. I had a mentor who saved Google millions of SWE hours by redesigning core search infrastructure.

Show more
Picture of Darwin LoDarwin Lo
Guideline, Inc. logoStaff Backend Engineer @ Guideline
1Answer
5Likes
5
Profile picture
Staff Backend Engineer @ Guideline
4 days ago

Hello! Y Combinator alum here. Thanks for linking my doc, Rahul.

Before starting a startup, get your physical, mental, and financial health in order.

Physical Health

Sleep: Do you have good sleep hygiene? Do you have any sleep disorders?
Exercise: Do you know how to lift weights safely? Can you jog for two miles at 10:00/mi pace everyday?
Nutrition: Do you have an efficient meal prep routine?

If you're not already, being at low body fat levels, which may require controlling your calories, will give you incredibly high energy levels. When you're doing a startup, you need every edge you can get, especially a big boost like this.

IMO, cleaning up your diet is good practice for a startup: You have to choose wisely within your daily calorie budget -- just like you'll have to spend your time wisely -- and do the right thing even when you really want to do something else, which happens a lot because startups are very counterintuitive. [1]

Mental Health

Do you know how to meditate?
Do you know effective CBT?
Relationships: Do you have a close group of friends? Are you in a stable, long-term romantic relationship? If you're single, I suggest making dating a priority. If you're in a relationship, decide what minimal set of activities you will make time for no matter what: Friday evening dinner, exercising together, one weekend trip per month, ...

Financial Health

Have enough in savings so that you can go a year at your current lifestyle without getting paid. You may need to reduce your lifestyle.
Start contracting so that, if things get low, you have a client pipeline you can turn to.

The above should be heavily optimized in terms of time, effort, and expense and put on autopilot. The above will keep you strong so that you can do the best work of your life. Then you can start building actual startup skills:

  • User interviews. This is a guide I wrote for the team at my second startup: Talk to Users Guide -- I had "product engineers" before it became a thing.
  • Learn how to build things very, very quickly. Supabase is your friend. And probably Next.js/Vercel. At the time of this writing, Cursor + Sonnet 3.5 is the way to go and maybe v0.
  • For your first startup, don't do something completely new. (See Elon Musk's first two startups.) You're not good enough yet for your moon shot. (Or in Elon's case, Mars shot.) Choose a space with successful players that you would enjoy exploring for a couple of years. Maybe even take a job in the space so that you can gain domain knowledge. (See Zoom.)
  • Work with other people to find people you can trust and work with. They say a cofounder relationship is like a marriage -- indeed, I went to marriage and family counseling with a cofounder. So "date" a bit before getting "married."

Final note: Most people shouldn't take investment and should instead shoot for a bootstrapped exit.

[1] Startups are an extremely counterintuitive endeavor and the right thing to do often feels wrong. For example, our instincts are honed for survival, which causes us to overreact when there is a problem. In the jungle, this makes sense: That rustling in the bushes could be a tiger. But at startups, these survival instincts actually lead to death: Per Reid Hoffman, if you spend all your time putting out fires instead of letting the (right) fires burn, you burn through your startup's funding before you can achieve liftoff.

Show more
Picture of Josh LindsayJosh Lindsay
Series B Startup logoMid-Level Software Engineer at Series B Startup
14Answers
72Likes
4
Profile picture
Mid-Level Software Engineer at Series B Startup
6 days ago

I don't think specializing would hurt your chances to land a job at a startup, and could help. However, if you don't have basic generalist skills then you are hurting your chances to succeed.

For context I think there's a difference between

  • The skills you need to succeed at a job
  • The skills you need to get the job

At a startup, most of the time you need a wide array of skills to succeed. And generally with hiring, they tend to care more about generalists. But this isn't always the case for getting hired. We all know there can often be a large delta between what is screened for in hiring and what is actually done on the job. For example, you get hired as a frontend web dev at a small startup, but then they pivot to an app and now you now have to mobile development instead. But in this example, someone who specialized in frontend web dev would have a better chance at getting the job, but if they don't have experience in mobile (or can't pick it up quickly), then they will struggle at the job. Plus, startups often need people to hit the ground running so having experience in a specific stack is better as they don't have the time for slower onboarding. So generalist is good enough, but generalist + specialist is ideal.

The nice thing is that from my experience startups often have less technically demanding then large tech companies. So, being mildly proficient in a domain should be sufficient to do the work required to succeed. So, my general process to maximize my chances at a startup would be

  1. Have a basic skills in all parts of the stack so you can succeed
  2. Be able to put on your resume concerete experience in multiple stacks. So for example, experience as a fullstack engineer or experience with backend in one position and frontend in another. For lower level positions, you might be able to get away with having interesting side projects to fill in the generalist gap.
  3. Specialize as you wish to increase chances in a specific position category.

Finishing step 2 should be plenty to get you a job in a startup, step 3 just improves your chances in some positions. The main difficulty here is it's harder to specialize in step 3 when at a startup since the work involves wide breadth, but with the right position or a good ability to advocate for projects this can be achieved.

The good news is that this process aligns well with the process for getting into Big Tech if you ever want to pivot as

  • Having basic skills across domains helps improve you as an engineer
  • You can still land a role after competing step 2
  • Step three increases your chances at startups and big tech

However, depending on the role you may want to have two versions of resume. One that leads more towards generalist and another leads towards specific expertise.

Also another thing to keep in mind is that these things are often variable based on company culture, the companies economic situation, specific team, region, etc. So although this general pattern of generalist at startup and specialist at Big Tech may statistically significant, there will be counter examples in each category. So best determine this from information about a specific company vs whether or not it's FAANG or not.

Show more
Picture of Lucas FariaLucas Faria
Brex logoMid-Level Software Engineer at Brex
5Answers
23Likes
2
Profile picture
Mid-Level Software Engineer at Brex
14 days ago

I just saw this question, so adding my thoughts.

As others said, most FAANG companies do not have many openings in Brazil, especially for remote positions.

Instead, here are good companies that hire remote-first in Brazil, with good total comp:

  • ConvertKit
  • PostHog
  • Linear
  • RevenueCat
  • Customer.io
  • 37signals
  • PostHog
  • StickerMule

And, for bigger companies:

  • Uber
  • Shopify
  • Coinbase
  • Spotify

I agree with Rahul that the best bet is probably joining a developer marketplace, building relationships, and trying to get hired directly later.

Other ones to look for, besides the ones listed: G2i, X-Team.

Show more