is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.
CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.
Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.
Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.
Very interesting question. Interviewer is definitely looking for brainstorming and may be he will jump in it as well.. Love such rounds..
- hprem991 June 13, 2017There is no definite answer to this question, but my approach is as follows
class BlockChain{
HashValue;
Deltas;
TimeStamp;
}
class Auth{
string userName;
string repository;
// Other params
}
Now git is distributed system but its not fully distributed. If git were to be fully distributed, things will blow pretty fast and gonna be even complex.. So
class Server{
Auth m_Auth;
List<BlockChain> m_blockChains;
//other parameters
}
class Client {
Auth m_auth;
List<BlockChain> m_blocks;
BlockChain m_currentSession;
//Rest of the params
}
Now the methods for each classes are very much depends on how / what functions git supports