How do you keep up as a senior SWE?

May 22 38 Comments

I’m not new to this as I have 5yoe, but am feeling really stressed out lately. I’ve joined a new project as basically the only senior SWE on the team and the amount of things to learn is simply staggering. Just to name a few things that came my way very recently:

- Java
- Groovy (for tests!)
- Many advanced (very advanced and complex to use!) mocking and testing libraries
- Protobufs
- gRPC
- Kafka
- Cassandra
- Gradle build system
- ...

Each of these technologies is massive in itself, and learning the proper way to do things in each of them literally requires reading hundreds of pages of documentation and internalizing the content, you can’t just get by reading the “getting started” tutorials or googling stack overflow.

Hell, the manual for Gradle is 1200 pages, a fucking build system! And I apparently need to learn a lot of it because we have a very complicated multi project setup with tons of tasks and weird parts so again, just basic steps won’t do.

Same thing for Kafka, gRPC and the other distributed components: we are operating at scale so just a basic understanding won’t do: I literally need to know all the best practices to structure the code as an expert would do, like properly tweaking the client driver and server settings to make sure we can handle load.

As a senior engineer I’m expected to be an expert in all these areas, how the hell do I do this?

In times like this I really regret not choosing another career path. I was even admitted to medical school but then decided to follow my true passion to get a CS degree.

comments

Want to comment? LOG IN or SIGN UP
TOP 38 Comments
  • Facebook ⭕w⭕
    I got demoted from senior to junior after reading this.
    May 22 0
  • Facebook / Eng lkj630
    "I'm not new to this ... 5yoe" -> 🙄
    May 22 8
    • Facebook / Eng lkj630
      Is there another senior eng who used to work on the project you can talk to? Jane you asked any of the other engineers to help ramp you up? Senior engineers aren't expected to know everything immediately - the senior comes from understanding the concepts from previous work and picking up the specifics on the job.
      May 22
    • OP
      No, this is basically a new project that was started by a few junior engineers under the guide of an incompetent senior who lacked direction and basically failed to deliver. So now I’m tasked to rescue the situation as a senior SWE, and since deadlines were fucked up by the other guy, these ones are much more aggressive and I have like 2 months to deliver.

      Realistically I think I’m going to quit the company. I know my limitations, no way I can learn and execute in 2 months knowing so little now.
      May 22
    • Facebook / Eng lkj630
      Okay, well, those people all know how the system already works, so maybe chat to them?
      And you have the system requirements, so only read up on the gradle bits that do that?
      I guess I'm not seeing the issue, this is like every new team.
      May 22
    • New / Eng QTdN03
      If you think you’re in way over your head, just imagine how the hiring manager feels!! A true Senior SWE would push back against unrealistic deadlines and quit if you don’t get what you need to be successful.
      May 22
    • Snapchat eeXB43
      I feel you! but it usually gets way better after several weeks. do not panic! Do not be afraid to ask the junior devs as well when stuck.
      May 22
  • Facebook qXly31
    It's pretty obvious you are not really a senior engineer. You either got lucky with promotion or your company has level inflation. Forget about your level/title, be humble.
    May 22 3
    • OP
      Can you tell me how a senior engineer should behave in these circumstances where I have 2 months to deliver a very scalable and production ready distributed pipeline, with components I’ve never used before?

      For what is worth, I passed an E5 FB interview a few months ago and got a top band offer. I didn’t end up joining for several reasons, one of which I was too afraid of not being able to perform. Interviews were a joke, everyone is able to bullshit a design round and leetcode medium doesn’t tell anything about your ability to digest this massive amount of new tech in 2 months.

      Thanks
      May 22
    • Comcast notbran
      OP where are you exactly? TC/yoe? Mind DM’ing if you’re not comfortable publishing publicly?
      May 22
    • OP
      I’m at a chaotic late stage startup in the Bay. Almost 6yoe, TC around 350 liquid, with more upside from illiquid stock options.

      FB offered a TC of ~390k, but as I said I wasn’t comfortable in taking it. I don’t think I’m good enough and would most likely get PIPed for underperforming, and this situation is proving it.
      May 22
  • Comcast notbran
    Who the fuck reads the whole 1200 page manual? Identify the core problem that needs to be solved, be really good at it, and Google/stackoverflow the non-critical tooling.
    May 22 2
    • OP
      In this case it’s an entire new system to build from scratch using these components. So the core problem is literally everything.
      May 22
    • Facebook / Eng lkj630
      Get an idea of what a good build system should contain, see how gradle handles the various components and put together. You don't have to start from first principles.
      May 22
  • Intel lichu
    I don’t believe I wasted 2 mins of my life reading this.
    May 22 3
    • OP
      What’s your point? Do you think I’m just dumb because I should be able to keep up with all those things? Trying to understand.
      May 22
    • Intel lichu
      Everyone faces these situations, and it’s tough for everyone the first time. We just have to keep up with it.
      May 22
    • Glassdoor mdcn
      I gave up after the first sentence and then read your comment! Thank you Intel!
      May 23
  • Apple happyprins
    You should choose a stack and stick to it. You will gain the necessary knowledge over time. Don’t be scared or be impatient. Understanding the grain(as in wood grain) of the tool will help you gain intuition for the tool and predict what it will do in a new circumstance. Working for startups exacerbates the problem of being anxious about the unknown. Join a big company where things are stable and spend brain cycles on the problem that matters and not on the tools themselves. Tools come and go, but it is important that you choose a working subset and stick to it for longer periods of time. That way you are more concerned about the problem you are solving and that is what matters finally.
    May 22 0
  • Take a deep breath. Hopefully you took something away from your interview preps, esp design round.
    Identify components, how they interact with each other etc. Split the components to Junior engs. Or even better get the skeleton system in the pipeline down. Iteratively fill in. Replace with stubs, same input output etc. And then you can go back and flush it out.
    May 22 0
  • Google / Eng Akephalos
    Interviews and levels don't correlate to experience. And what you need to solve the problems you're facing is experience. I had a teammate that was promoted to L5 with 5 yoe, but it was very obvious to me that he was still super green, making junior mistakes still.
    You have a lot of shit on your plate so you have to prioritize correctly and find paths of least resistance, delegate as much as you can, and hope for the best. But it also sounds you're in a sinking ship and timelines need to be reevaluated. Good luck.
    May 22 0
  • F5 Networks / Eng
    WGQH01

    F5 Networks Eng

    PRE
    Schweitzer Engineering Laboratories
    WGQH01more
    Now add in DevOps...
    May 22 0
  • Google dCyj41
    We expect our L3s to know the equivalent of all of those things in ~6 months of on-boarding. And nobody is expecting you to be the master day 1. But as a more senior engineer you should ramp faster than the other members of your team
    May 22 0
  • Instacart / Eng instattack
    The people saying that you aren’t senior because you can’t learn 10 things you aren’t familiar with and make huge meaningful contributions within 2 months are talking out of their ass. Your focus should be on coming up with realistic expectations and timeframes and communicate them. Doing anything else will just end poorly when impossible deadlines aren’t met.
    May 22 0
  • Amazon I5swfi
    I think you have to be realistic and set the expectations accordingly. If you're limited in time, your aim should be in delivering and not going through pages of best practices before even implementing. You also seem to try to be taking on everything yourself. There are other developers who worked on this long before you joined. Learn what you can from them to ramp up faster along with figuring out how the code base became the way it did. Also, be available to them. What you can offer even without any domain knowledge is your experience (system design, software architecture, etc.). Divide and conquer. Help them be able to go through best practices on their own and learn from their mistakes. Sure, the end result might not be as good as if you had done everything yourself but you have to be practical. Through answering questions your junior developers ask and reviewing what they write, you'll be able to pick up on what you need and the relevant best practices. Stop trying to be perfect.
    May 22 0
  • New / Eng 4everalone
    I guess I am more senior than the senior engineer, and I'm a L3 😂
    May 22 0
  • Apple procto
    Just buddy up to the director. You can pretend to work. I’ve seen so many average engineers skate.
    May 22 1
  • Instinet kolopolo
    Where do you work?
    Jun 18 0
  • Sears vmw8
    You should flag it n talk to your manager to reevaluate project timelines. If you have gone through that route and has not worked out try building basic application. As in do not go into fine tuning each part of the application. Modularize your application and delegate to team members e.g for kafka have someone work on producers,consumers, creating topologies..don’t go into protobuf for now just go with simple json msg format..have someone work on service layer, see if REST api can developed instead of going into the complications of gRPC n protobuf(this is due to the stringent timelines)..have someone work on the persistence layer Cassandra.. while all these modularized parts are in development you work on the best practices that can be incorporated during development and integrating these modularized parts.Also, check with other teams in your org who are using these technologies to understand n incorporate their best practices. Once you have a basic end to end application ready then optimize each part of it terms of scalability (you have already selected a good scalable tech stack), load balancing, performance n metrics monitoring, n storage in phases, if you are using cloud services these optimization will be easier. With such timelines I wouldn’t consider spending time in implementing anything new in testing framework , groovy, just make sure all the applications are thoroughly unit tested and integration tested.. make sure QA has covered all test case scenarios. For gradle you don’t have to go through documentation take a udemy course, check on stackoverflow, youtube for specific application. Lastly, never underestimate or undervalue yourself you are capable of more than you imagine.
    May 23 0
  • Apple / Eng kGUv48
    Spend a little bit of time studying every day. If you can get some text books they tend to be better than the online guides
    May 23 0
  • Kafka is some important core tech you will need to learn. GRPC is getting that way. Neither are all that hard to learn, give it a couple of months. Java is fucking everywhere, just learn it.

    If your team is using Groovy to test Java code they're lazy, knuckleheads, or both.

    Learning Cassandra can be a PITA, and won't do you much good long term as most places seem to be replacing it with better tech. Just take it slowly.

    Gradle can also be a PITA but it's just a build tool so you only need to take on one thing at a time.

    TLDR: you'll be fine chill the fuck out. In six months you'll own this shit.
    May 23 0
  • New
    slushie

    New

    PRE
    Google
    slushiemore
    https://www.rooftopslushie.com/request/67 "How to become a better software engineer"
    May 22 0
  • Amazon teslaftw
    Geez you should apply what you have learned from leetcode (seriously im not being sarcastic). Identify the problem and if you see its very big.. divide and conquer... make a list of this that you do not understand... and solve bit by bit. Set expectation with your stakeholder and double it since you are ramping up. Be patient, google, ask people... if you truly got an e5 at facebook you should have the capability for it... grind if you have to.. put the midnight oil... when you get past this you will be amazed by what a human brain can do when under pressure
    May 22 0

Salary
Comparison

    Real time salary information from verified employees