🖥️
Sunil Notebook
Interview Preparation
  • 📒Notebook
    • What is this about ?
  • System Design
    • 💡Key Concepts
      • 🌐Scalability
      • 🌐Latency Vs Throughput
      • 🌐Databases
      • 🌐CAP Theorem
      • 🌐ACID Transactions
      • 🌐Rate limiting
      • 🌐API Design
      • 🌐Strong Vs eventual consistency
      • 🌐Distributed tracing
      • 🌐Synchronous Vs asynchronous Communication
      • 🌐Batch Processing Vs Stream Processing
      • 🌐Fault Tolerance
    • 💎Building Blocks
      • 🔹Message
      • 🔹Cache
      • 🔹Load Balancer Vs API Gateway
    • 🖥️Introduction to system design
    • ⏱️Step By Step Guide
    • ♨️Emerging Technologies in System Design
    • ☑️System design component checklist
      • 🔷Azure
      • 🔶AWS
      • ♦️Google Cloud
    • 🧊LinkedIn feed Design
    • 🏏Scalable Emoji Broadcasting System - Hotstar
    • 💲UPI Payment System Design
    • 📈Stock Broker System Design - Groww
    • 🧑‍🤝‍🧑Designing Instagram's Collaborative Content Creation - Close Friends Only
    • 🌳Vending Machines - Over the air Systems
    • Reference Links
  • DSA
    • Topics
      • Introduction
      • Algorithm analysis
        • Asymptotic Notation
        • Memory
      • Sorting
        • Selection Sort
        • Insertion Sort
        • Merge Sort
        • Quick Sort
        • Quick'3 Sort
        • Shell Sort
        • Shuffle sort
        • Heap Sort
        • Arrays.sort()
        • Key Points
        • Problems
          • Reorder Log files
      • Stacks and Queues
        • Stack Implementations
        • Queue Implementations
        • Priority Queues
        • Problems
          • Dijkstra's two-stack algorithm
      • Binary Search Tree
        • Left Leaning Red Black Tree
          • Java Implementations
        • 2-3 Tree
          • Search Operation - 2-3 Tree
          • Insert Operation - 2-3 Tree
        • Geometric Applications of BST
      • B-Tree
      • Graphs
        • Undirected Graphs
        • Directed Graphs
        • Topological Sort
      • Union Find
        • Dynamic Connectivity
        • Quick Find - Eager Approach
        • Quick Find - Lazy Approach
        • Defects
        • Weighted Quick Union
        • Quick Union + path comparison
        • Amortized Analysis
      • Convex Hull
      • Binary Heaps and Priority Queue
      • Hash Table vs Binary Search Trees
  • Concurrency and Multithreading
    • Introduction
    • Visibility Problem
    • Interview Questions
    • References
      • System design
  • Design Patterns
    • ℹ️Introduction
    • 💠Classification of patterns
    • 1️⃣Structural Design Patterns
      • Adapter Design Pattern
      • Bridge Design Pattern
      • Composite Design Pattern
      • Decorator Design Pattern
      • Facade Design Pattern
      • Flyweight Design Pattern
      • Private Class Data Design Pattern
      • Proxy Design Pattern
    • 2️⃣Behavioral Design Patterns
      • Chain Of Responsibility
      • Command Design Pattern
      • Interpreter Design Pattern
      • Iterator Design Pattern
      • Mediator Design Pattern
      • Memento Design Pattern
      • Null Object Design Pattern
      • Observer Design Pattern
      • State Design Pattern
      • Strategy Design Pattern
      • Template Design Pattern
    • 3️⃣Creational Design Patterns
      • Abstract Factory Design Pattern
      • Builder Design Pattern
      • Factory Method Design Pattern
      • Object Pool Design Pattern
      • Prototype Design Pattern
      • Singleton Design Pattern
    • Java Pass by Value or Pass by Reference
  • Designing Data-Intensive Applications - O'Reilly
    • Read Me
    • 1️⃣Reliable, Scalable, and Maintainable Applications
      • Reliability
      • Scalability
      • Maintainability
      • References
    • 2️⃣Data Models and Query Languages
      • Read me
      • References
    • Miscellaneous
  • Preparation Manual
    • Disclaimer
    • What is it all about?
    • About a bunch of links
    • Before you start preparing
    • Algorithms and Coding
    • Concurrency and Multithreading
    • Programming Language and Fundementals
    • Best Practices and Experience
  • Web Applications
    • Typescript Guidelines
  • Research Papers
    • Research Papers
      • Real-Time Data Infrastructure at Uber
      • Scaling Memcache at Facebook
  • Interview Questions
    • Important links for preparation
    • Google Interview Questions
      • L4
        • Phone Interview Questions
      • L3
        • Interview Questions
      • Phone Screen Questions
  • Miscellaneous
    • 90 Days Preparation Schedule
    • My Preparation for Tech Giants
    • Top Product Based Companies
  • Links
    • Github
    • LinkedIn
Powered by GitBook
On this page
  • Non-technical interview questions
  • What you need to know
  • Books
  • Links and Articles
  • Professional experience
  • What you need to know
  • Other important aspects
  • Companies
  • Discussion of salary
  • Resume , Referals
  • Interview preparation books
  • Websites
  • Test interview sites
  • Other Usefulness
  • Articles
  • During the Interview

Was this helpful?

Edit on GitHub
  1. Preparation Manual

Best Practices and Experience

Best practices, seniority, philosophy of professional growth.

PreviousProgramming Language and FundementalsNextTypescript Guidelines

Last updated 3 years ago

Was this helpful?

Non-technical interview questions

Priority: the P3

What you need to know

  • How to answer non-technical questions - long term career plans, strengths and weaknesses parties, difficult situations at work, examples of leadership, etc. It's important for interviewers to learn you as a person and understand if they want to work with you on the same team. Convenient to prepare answers as stories in style ( Situation, Task , Action , Result ) ... You need to be clear about why you want to work in [[company]].

  • What questions will you ask the interviewer. This is a strategic task, by the way - 90% candidates are asked to tell the interviewer about their work. You can ask the same as the rest 90%, but you can do something else.

  • Approaches to code testing - unit testing, regression testing, compatibility testing, canary testing.

  • The main approaches to creating projects - scrum, agile.

  • English. Many people think that this is not the point if you are a coder “star”.

  • Your own level of knowledge and what position you can apply for. Do not try seem better than you are. It will come out sideways later.

  • Your own philosophy. For example, which is more important to you - stability or velocity? I.e you can test more thoroughly and release a more stable product. Or test a little less, but be more flexible and be able to update faster. There is no right answer, there are different preferences of different people.

Books

Links and Articles

Professional experience

What you need to know

  1. You need to know well the technologies with which you have worked a lot, judging by your resume. For example, although my team does not write directly, it works closely with databases. and compilers. Therefore, if I prepare for an interview, I will definitely include the bases data and compilers into your training program.

  2. Details of large projects you have worked with. Problems and solutions. For example, if your project works with a very large number of requests, then I can interview you ask "How did you implement throttling / rate limiting?"

  3. Moreover, you must have a good understanding of not only your immediate projects, but also about how the project works as a whole, what components it has, what kind of design and why, etc. With the same question about throttling - even if you didn't write this component, I will still wait for you to know how it works, since it was on your project, albeit not at a super-deep level.

Other important aspects

Companies

The main idea - do not apply only to the company of your dreams. Serve several companies, and start interviewing those that are not in your top. Why?

  1. You need time to warm up. With a significant probability, you will fail the first interview - either you will be very nervous, or you will not take into account some things in your preparation ... And it's better to fail these interviews in companies where you do not want to directly I really want to.

  2. You need to test the level of your training and the sanity of your plan. For example, you decide to come to an interview in a tuxedo with a bow tie to stand out from the gray masses of other candidates. The interviewers looked at you as if you were crazy. So it was bad plan, the next company needs to wear jeans.

  3. If you get an offer from start-up companies, then perhaps they will do you a good offer (especially if you go through the interview perfectly and let them know what you are planning interview with other companies). This will raise the bar for next offers. campaigns and help you get better deals.

It is only important to take into account the moment that after the company has made an offer to you, you will have about a week or two to accept or reject. So try to do so so that all offers come to you relatively at the same time.

How to make a list of companies? For starters, I would recommend interviewing only those companies that you could potentially be interested in (if you have a good offer). If all your life you firmly believe that "M $ MUST DIE !!!", then for God's sake, there is no need to apply to Microsoft! Don't waste your time or theirs. Consider this professional etiquette.

Then choose a few (3-5 is enough if you are well prepared) that you like and in which you are, in principle, ready to work, if everything goes well.

Discussion of salary

Resume , Referals

Choosing companies is just the beginning. Now you need to write a resume and, in fact, apply.

  1. In addition to the previous point, prepare a small paragraph to help to the referral to decide to recommend you. About 5 points, highlights of your experience.

    Examples:

    1. "Results of my Master thesis were published in top Russian scientific magazines"

    2. "I grew from an intern role to being a TL in four years"

    3. "I have a solid knowledge in C ++ (5+ years), and also can code in Java"

    4. "I launched a solid number of large and important projects in my company. I've always delivered on schedule and my projects didn't have any production issues afterwards. "

    5. "I won XYZ award" "

    6. I of've Earned top GPA stands AT up my university What "

    7. "I'm actively contributing to open source community"

  2. Compose letters for potential referrals. Be sure to include: resume in application; a short story about yourself; points about why you think you are good

    candidate and you should be considered (see examples above).

  3. If you can't find a referral, try to find recruiters on LinkedIn and write to them directly. Submit through the site last, when all options have been exhausted. Well or if you do not really want to work in this company, and you will easily experience if you will not be answered.

  4. If you are called for an interview, find out about the company, about its products and plans. At first, it's in your best interest. You do not want to go to a company with no special prospects, which has a bunch of problems on different fronts. Secondly, it is often important for companies to see at least some enthusiasm in candidates. No need to enthusiastically tell how you dreamed all your life there work and generally they are the company of your dreams. But reasonable conversation in the key "I am very I like your product X. No one has done anything like this before you, but now this product used by many. Including me, and I like this and that. "Be honest. This is should be easy, since almost any company has a product, at least one, which you will like. And if there is no such thing at all, then it is hardly necessary with such a company to contact.

Interview preparation books

Websites

Before the interview, try to collect 500-1000 problems, and at least half of them was medium / hard. Solve 10-15 problems a day. It seems like a lot, but the speed increases greatly over time. It will take an hour to solve the same problem, and after a month preparation - 10-20 minutes.

Test interview sites

  • https://www.pramp.com - free

  • https://www.careercup.com/interview (for money, and a discussion of whether it's worth it ) https://interviewing.io - free

  • http://larrr.com/testovye-intervyu - free

  • https://www.candidacy.io

  • http://www.gainlo.co/#!/ - paid, but they write that they conduct an interview with the "real

    engineers ”from well-known companies. Not tested on myself.

Other Usefulness

Articles

During the Interview

  • Do not start solving problems until you fully understand what is from you expected. Behave in these interviews as if you were brainstorming: communicate with interviewer, ask questions, discuss solutions, and when it is clear to everyone what is needed to do, pick up a marker / pencil / mouse and do.

Make a good resume [, , ].

Find to companies where you want to be fed. In most companies the referral is not obliged to know you personally, it is enough for him to write a small justification for why he thinks you should be considered. This justification could be "He is me wrote, I looked at his resume and he has interesting experience in programming languages with which Google works. In addition, he graduated from the University of Zazhopinsk, which is quite a famous university in our country, they produce strong personnel. "Note, nothing about that he knows you personally. You can search for a referral through friends, on linkedin

If you think that you have nothing special to write about yourself, then most likely it is not. Almost everyone has achievements, just, according to my observations, post-Soviet citizens have a tendency to belittle one's accomplishments by thinking, "This is bullshit, anyone would have achieved this on my place. "In 100% of cases, when we together with the guys delve into their resume, it turns out that Achievements are complete, much more than five points. Just for some reason they don't consider it achievements. In the meantime, there is no need to worry about it. ”

There are tasks of the level Easy, Medium, Hard. Start with Easy (well, unless you're already great solve problems and generally a winner in programming), continue through Medium and gradually work your way up to Hard.

- a small educational program about the algorithms and structures data from the author of CTCI

When you are more or less confident in raising Medium tasks to hackerrank, go to leetcode. They have a Mock Interview there - solving a random problem by timer. You can skip tasks there. If you skip the task, then another time it can get caught again. Solve problems of the Medium level, sometimes Easy when tired, if will work - try to solve and Hard. Continue solving 10-15 problems a day (if it will turn out more - generally cool).

When you are already good at solving problems on leetcode mocks, go to interviewbit. There tasks are quite complex, I would not immediately advise taking on them, but after preparation on the previous sites it is quite possible.

- a list of projects' Practical CAN That the anyone in the solve the any programming language.

- study materials for Contents Technical Interviews.

- curated by a list of lists of Contents Technical Questions interview.

- a course to prepare for the interview at Coursera. Course paid ($ 80), but there is a financial aid program that allows you to go through it for free and get a certificate.

- a free course. Gives an idea of how generally looks like an interview, for newbies, and a few useful algorithms to boot.

- The Princeton University then

There is a good site to prepare for the interview, . There is one template called The Algorithm Design Canvas. It contains 5 regions - Constraints, Ideas, Complexities, Code, and Tests. According to the authors, canvas makes it easier to solve problems with phone screen interview - instead of being isolated and thinking what to do next before you will be a process template following which you can solve any task. Well, a bunch of things for preparation, structured presentation of materials.

STAR
"On Managing Yourself"
" How to? Answer the 64 toughest interview questions"
"The Pragmatic Programmer: From Journeyman to Master"
"Code Complete: A Practical Handbook of Software Construction, Second Edition"
"The Mythical Man-Month: Essays on Software Engineering"
"Soft Skills: The software developer's life manual"
Ten Rules for negotiating a job offer Salary
Negotiations with Prospective Employers
5 Tips for Negotiating Your New Job Salary
How to Negotiate Salary: 5 Expert Tips
How to Negotiate A Starting Salary for a New Job
How to Bomb Your Offer Negotiation
One
Two
Three
referrals
Impostor syndrome in all its glory.
"Programming Interviews Exposed: Secrets to Landing Your Next Job"
"Cracking the Coding Interview: 189 Programming Questions and Solutions"
"Elements of Programming Interviews: The Insiders' Guide"
"Programming Pearls"
Hacker Rank
Cracking the Coding of Interview the Tutorial
Leet Code
Interview Bit
Career Cup
Geeks For Geeks
Project Euler
Top Coder
Code Wars
Interview Cake
Code Fights
SPOJ
Hired In Tech
The Mega by Project a List
Contents Technical Megarepo of Interview
Awesome Interviews
The Mastering the Software Engineering of Interview
Contents Technical interview (Udacity)
7 of Interview Prep the Step-Plan
Guide to Job Hunting and Technical Interviews
https://www.hiredintech.com/
What are the best questions to ask a potential employer in a job interview?Quora
Logo