1. Wiki
  2. /Work
  3. /Career

Career

The fastest career growth comes by finding work that aligns with both your interests and what matters most to the company.

Resources

Salary

  • How you can ~1.5x your salary through negotiation
    • Always start by asking for salary range (when being hired)
    • Approach the negotiation as a conversation, not negotiation
    • Seek leverage:
      • Get other offers
      • Line up other interview as a future leverage
      • Make the company really want you by excelling in the interviews (prepare for them, consider it an investement)
      • Sometimes the leverage doesn't need additional work: the company needs you to sign quickly, the company doesn't want to loose you, the company wants you to be invested, etc.
    • Negotiation isn't just about salary base: additional equity, signing bonus, relocation bonus, extra time off, etc.

Software Engineer

Resources

Senior Software Engineer

Responsibilities

  • Connect the dots between engineering and revenue

Resources

  • A Senior Engineer's CheckList
  • An incomplete list of skills senior engineers need, beyond coding
  • What Makes a Senior Engineer? Writing Software vs Building Systems
    • Defining Requirements - work with the Product Manager to understand what problem they want to solve; maybe you’ll have some ideas on how to solve it with much lower effort?
    • Defining NFR’s - talk to your PM about the non-functional requirements - how many users should the System handle, what are the requirements for performance, throughput, latency? Are there any security or compliance considerations? Do we need auditing? What’s the desired availability?
    • Planning Iterations - work with your team to propose an implementation plan; make sure you define small, demoable milestones, so that you can start delivering value ASAP; agree with the PM on the milestones.
    • Determining Dependencies - make sure you identified all the dependencies outside of your team and work with your EM or with the teams directly to get some ETA’s for them. Adjust your milestones accordingly.
    • Testing - depending on how your company operates, decide on your testing strategy with your team or with the QE team. Agree on the quality threshold needed for the rollout (e.g. no unresolved Major bugs or test coverage above X%).
    • Deployment - work with your team to decide how the system will be deployed. Do you need some new infrastructure for it or can you reuse the existing? If you need a lot of it, what will be the cost?
    • Observability - decide how are you going to monitor the health of the system and set up processes for solving production issues (e.g. team on-call). Use a third-party solution (like Sumo Logic) to set up monitors and dashboards for that purpose.
    • Rollout Communication - once you agree on a rollout date with your team and the PM, make sure that all stakeholders are aware of it. Check whether any documentation changes are required.
    • Measuring Success - decide on metrics that will tell you whether the project was a success. Is anyone using the new system? Do users manage to accomplish their tasks? You can leverage your Observability suite for this purpose.
  • The Senior Shift
  • Path to Senior Engineer handbook
  • How to find great senior engineers #interviewing - some suggestions for interview:
    • "What important truth do very few people agree with you on?"
    • The Three Why's - similar to what one would do during incident analysis, ask why multiple times to press for more nuanced answer
    • Use case-studies. You lay out particular technical scenario and ask the candidate to figure out what they would do

Staff Engineer

Responsibilities

Setting technical direction: providing vision for long-term technical development of specific area, e.g. API design.

  • getting people from vague sense of "getting better" to clear idea of what "better" is and why

Mentorship & Sponsorship^1: sharing experience and advice along with understanding the recipient's context.

Providing engineering perspective: self descriptive.

Exploration: being assigned on new or burning topics to quickly iterate on finding a solution (or failing to do so which is fine as well).

Being glue^2: doing the needed but often invisible work to keep the gears turning.

  • Timeframes get longer with higher titles, early on in the career the development cycle can be within weeks or months. In senior roles it shifts to months, quarters, or even longer.

Resources

Engineering Manager

Hiring

VP of Engineering