Interview - cilerler/cilerler.github.io GitHub Wiki

The Process

Golden Rule: Repetition Over Time

  • watch a couple of hours of videos on the topic to get the main idea
  • implement the algorithms and data structures
  • make flashcards for important things I should remember about the topic
  • move on to the next topic
  • review the flash cards when you have time
  • after a few days, watch another video about the topic, perhaps 30 mins or so
  • after another week, watch a video about the topic, maybe the same video or a shorter one
  • keep reviewing flashcards

The important point is: review a topic over several time intervals. It will continue to reinforce and remind you, and you won't forget it. The time interval can get longer over time. This is called "spaced repetition".

To create flashcards, I use Quizlet.com.

The Feynman Learning Technique

Cornell Method – A Method To Take Great Notes

Helpful

Mock Interviews

Tutorials and Question Banks

Guides

Mentor vs Sponsor vs Coach

A coach talks to you, a mentor talks with you, and a sponsor talks about you.

Levels

Entry Level Engineer (New Grad)

Develop and maintain lower complexity components with guidance and support from experienced team members. This is the new graduate level.

Software Engineer

Develop and maintain low to moderately complex components working on a team. Receives minimal amount of guidance and support from senior level peers.

Senior Engineer

Develop and own moderate to complex components. Possibly lead a small team / project. Ability to mentor engineers, provide technical guidance, code reviews, design and deliver on small projects end-to-end. Impact is typically at the immediate-team scope. This is typically considered a 'career-level', as in you can spend the rest of your career operating at this level.

Staff Engineer / Senior Staff Engineer

This level is much more coveted than the previous and typically 10% or less of the entire company. Expected to lead and own complex technical initiatives. Begin setting the vision / future direction of team. Impact across multiple related teams within an org. Role shifts more towards design rather than implementation depending on size / expectations at company.

Principal Engineer

Impact spans across organizations. Entrusted with business-critical projects and for setting technical vision for an org or multiple orgs. Responsible for reviewing and providing feedback on technical designs across an org. Little to no day-to-day coding. Role depends highly on organizational / company needs and becomes loosely defined. Expected to operate fully autonomously.

Distinguished Engineer

Impact spans across the company and sometimes industry.

Dual-ladder approach

Compensations

Layoffs

Personality Tests