Skip to content

Instantly share code, notes, and snippets.

@codephillip
Created August 25, 2024 20:14
Show Gist options
  • Save codephillip/9c7568a2d86294cc511af5e66b6b9d7c to your computer and use it in GitHub Desktop.
Save codephillip/9c7568a2d86294cc511af5e66b6b9d7c to your computer and use it in GitHub Desktop.
interview prep blog initial notes
DSA books
------------
Cracking the Coding Interview - The holy grail of coding interview books. It's a must read.
2. Programming Interviews Exposed - by John Mongan, Noah Kindler and Eric Giguere, covers common coding problems and solutions, along with a thorough walkthrough of each solution.
3. The Complete Coding Interview Guide in Java - Very helpful for your DSA prep in Java.
4. Coding Interviews: Questions, Analysis & Solutions - Covers basics , code optimisations , different methods of tackling difficult problems , and also soft skills.
5. Elements of Programming Interviews in C++ - Its a good book , if you are more keen to learn DSA using C++.
6. Introduction to Algorithms by CLRS - Though it is a bit theoretical , it would clear a lot of your core concepts on DSA , including time complexity analysis.
7. Elements of Programming Interviews in Python - by Aziz , Lee , Prakash , is a must read book , for people who is trying to learn DSA and is comfortable using Python
8. Coding Interview Questions by Narasimha Karumanchi - It covers DSA , design interview questions and a lot more. The author is the founder of Career Monk , and is himself a Principal Software Engineer at Microsoft.
9. The Big Book of Coding Interviews in Python - by Druid , contains over 300 coding interview questions , covering some of the very important questions asked in FAANG type of companies.
10. Daily Coding Problem - by Alex Miller and Lawrence Wu is a very good pick , if you want to stay consistent with your problem solving. The book will give you one coding problem a day , which you have to solve. There are almost 300 pages of coding problems.
If this is a bit overwhelming for you , I would definitely recommend you to try going through the 1st book at least , along with your regular Leetcode solving.
--------------------------------------------------------
Asked basics oops questions and coding question and a puzzle.
alternatives of docker compose in production?
event loop ?
Questions around confidence, creativity and Leadership
------------
Formal application, short phone call with HR about motivation, then longer discussion with HR and the specialist department. Content: Presentation of my curriculum vitae, then technical questions were asked about my past and various challenges that arose in the course of it and how these were solved.
Estimation questions (e.g. how many marbles in the jar) to demonstrate approach to problem
----------
The Interview process was fairly easy. The process consisted of 3 rounds. 1 Online round followed by Technical and HR Round. The technical questions asked were related to Object Oriented Programming. They also discussed about Projects and Internship
-------
First there was an online test that included questions on Data structure, DBMS, and some HR essay type questions as well.
Then the shortlisted students were interviewed. They asked a mixed bag of personality related and technical questions.
2 rope burning puzzle. How to measure 15min of time.
------------
first round was aptitude test
15 out of 50 students were selected for next round
second round was coding round two question based on mathemetics (basic level)
8 student qualified for technical interview
in technical round they asked question based on project on which u have worked
what is bigdata and its application?
what is encapsulation, interface, and constructor
why we use python in machine learning?
---------------
About architecture, agile practices etc.
----------
Lead developer of Aficion360 Ticketing and partners platform.
Parts of the platform:
The frontend is distributed in 4 SPA's and 2 PWA's built using Angular 9+
The backend is based on microservices built using nestJS (expressJS + typescript)
On my daily basis my work is:
- Lead a team of 4 developers
- Code review following best practices
- Design architectures
- And coding, a lot of coding!!
Some of the technologies I used are:
- ExpressJS, Node.js, Angular 9+, React, StencilJS
- HTML5, CSS3 (RWD), SASS, VANILLA JS, ES6 + BABEL, TYPESCRIPT
- Jenkins, Docker, Verdaccio
- Jest, Cypress, Puppeteer
- MYSQL, REDIS, MONGODB
====================
Travelperk
====================
Whats your greatest strength/weakness?
How do you prioritize?
The interview process consists of 5 steps:
- Initial call with a tech recruiter from the company.
- Interview about general iOS knowledge.
- Coding challenge based on an exercise completion in less than 2 hours (with the help of an interviewer).
-System Design Interview. Design a system based on given requirements.
-Culture. Meeting the team. Behavioral questions.
I want to give kudos to the recruiting team which makes the difference compared to other companies. They are very responsive and give constant feedback about the process.
About the team, I can say that all engineers I met during the interviews were kind to me and in general very communicative.
In my case, I took all interviews but failed in not providing a strong solution in the system design exercise.
As for how the company can improve the processes, I would say the system design interview has room for improvement. Concretely:
-Refrain from educating the candidate. While the candidate can miss some knowledge or not respond to something the interviewer is expecting, educating the candidate does not help any of the parties.
-Try to not enforce a narrow path: While it can be seen that there has been a good effort defining the system design exercise, the fact that interviewers screened it a lot of times may affect how they assess the candidate. There was very little to no room to discuss different approaches, being more about saying in a very short time the "correct" solution rather than letting the candidate expose solutions and choose a path. Designing a component or an API rather than responding perfectly to security domain questions may as well be fairer for candidates.
----------------
What are the ways to scale a database?
Which ways provide .NET to synchronise threads? Which one would you use in which situation?
How would you improve a query that goes slow?
Tell me something about a technology you know
Complexity of searching a binary search tree?
Given a set of numbers and a number K, return all combinations from the set of size K
What the keyword yield does in Python?
--------------
The interviewing process took more or less 3 weeks. The process is pretty long but it makes a lot of sense, then you see the result: You work with very senior and dedicated people (not only in Engineering but in the whole company).
The first stages were mainly online with the recruiting team. After completing a preliminary coding test I spoke directly with the heads of Engineering. Finally I was invited to a couple of inhouse tests. First architecture, second a coding test. Above all it was fun. The Engineering leaders are very hands on and this is something you see since you are interviewing with them.
The last stages consist in meeting the team and the CEO of the company. Some of the guys I met have been in the company for more than 2 years, something that is a very good sign nowadays. The conversation with the CEO is very insightful. Actually I was interviewing with other companies and never had the opportunity to meet one of the C level execs.
----------------
It was long and exhausting, it lasted almost 6 months mostly because of my availability and back and forth communication, it consisted of:
- Quick interview with recruiter
- Quick chat with technical interviewer
- Home assignment using Codility
After the home assignment I was flown over to Barcelona for the onsite interview, it is a full day that starts with another HR interview, then a long whiteboard systems design and architecture exercise(it changes, for me it was a Google Analytics application), then a coding challenge.
Overall it was a long process but the feedback throughout was very good, the whiteboard and coding challenge also have help from the interviewers and it made it a bit better and an overall positive experience.
---------------
Lengthy, well structured process: first a Codility test screening, then interviews with HR, VP of engineering and CTO thought a video call (separately). On these interviews they basically try to gauge your level/experience with some questions. If everything goes fine, they invite you to an onsite interview in Barcelona.
This one is a bit more challenging, and takes almost the whole day:
- A whiteboard system design interview
- They give you an algorithm focused problem and a computer to code the solution. They change the requirement a little bit to see how you handle design/requirement changes.
- Interview with Head of HR
- Cultural fit interview with future team members
- CEO interview looking for culture fit
-----------
========
Glovo
========
In this interview you will be expected to solve small
problems. The interview focuses on algorithms and data
structures. You’ll be expected to know and apply: lists,
maps, stacks, priority queues, trees, graphs, bags, and
sets. You’ll need to be able to talk about how they’re
implemented and why you’d choose one
implementation or data structure instead of another.
For algorithms, you’ll need to know greedy algorithms,
divide and conquer, dynamic programming, recursion,
backtracking, and brute force search. You’ll definitely
need to be familiar with Big O notation, running time
and space complexity
6 interviews as described in other posts (algo, experience, system design, behavioral, architecture), imitating Google interview
Bike rent system
Leetcode easy question
------------
Design system - it was a poor silent meeting.
I got a few requirements on chat then I ask plenty of questions about requirements. After that I've started talking about architecture, unfortunately, the recruiter don't ask any questions after 15min talking about LB and Database I ask should I continue and I received an answer as you wish you can. Any follow up questions. They thought that in 45 min I design a perfect system without conversation.
--------------
Interview
HR interview
then 3 technical interviews:
- normal technical interview
- system design
- live coding
then personal and behavioral interview with a manager.
The process is well organized but it can feel lengthy.
Interview Questions
data structure
memory management
design patterns
swift new features
solid principles
clean architecture
--------------
Interview
1. Pre-screen with a recruiter (~1h)
2. Coding interview (~1.30h)
3. Call with a recruiter on feedback and what to expect (~30min)
4. Behavioral interview (~1h)
5. Call with a recruiter on feedback and what to expect (~30min)
6. Architecture interview (system design + application design) (~1.30h)
7. Call with a recruiter on feedback and offer/rejection (~30min)
Interview Questions
- Experience
- Data structures fundamentals
- Easy leetcode problems
- "What mistakes have you made?"
- "Describe a good project manager"
- Design a "blabla" system
- Draw a class diagram for the main entities of the system
---------------
Interview
I have participated in the full interview process of multiple companies, including FAANG, and I want to say that Glovo's interview process was my favorite. The recruiters were really nice and were always available to clarify any questions that I had. The interviewers were really nice, and gave me feedback at the end of each interview (something that did not happen with other companies). All interviews were done via Zoom and the whole process took 2 months.
The process was divided into different stages:
1 - HR interview with the recruiter (45 minutes). The recruiter asked about my background and also asked some technical questions ("what's the time and space complexity of a HashTable", "what sorting algorithms do you know", "what's the time complexity of bubble sort",etc.)
2 - Live coding with an engineer (1.5 hours). I was asked to solve three coding questions, perform the time and space complexity analysis and write the unit tests for these algorithms. The coding questions were:
- Return the first non-repeated character in a string
- Given an array of integers, find if there is a subarray (of size at-least one) with 0 sum
- Given a sorted array arr[] and a number x, write a function that counts the occurrences of x in arr[]
3 - Backend Techical screen with an engineer (1.5 hours): The interviewer asked questions about multiple topics. These are some of the questions that were asked:
- What is the CAP theorem
- What does ACID mean
- Differences between relational vs non-relational databases
- How is a HashTable implemented
- How does java internally implement an ArrayList, etc.
4.1 - System Architecture (1 hour).
- Provide a high level design spotify
- How would you handle scalability?
- How would a user be able to listen to songs if he didn't have an internet connection
4.2 - Application Architecture Design (1 hour).
- Design a bike rental system
- Design a UML like diagram of the classes and how they would interact with each other. Note that I didn't actually need to know everything about UML and I omitted some information from the diagram, such as the relationships between entities to save time, but I would verbally explain their relationship.
- What design patterns would you use?
4.3 - Behavioral interview (1 hour). Asked typical behavioral questions. Most of these can be found on the internet. Some of the questions asked were:
- Questions about my background
- Tell me about a time when you had a conflict with a teammate and how you handled it
- What are, in your opinion, the most important charateristics that a good software engineer must have?
- Why do you want to work at Glovo?
5 - Call with the recruiter to discuss the offer (45 minutes)
-------------------
screening with recruiter, he tried to ask some standard questions, than technical screening with theoretical questions (what is garbage collector, how does it work, circuit breaker etc), coding interview (the interviewer didnt have any idea what he was doing or asking, I basically had to explain to him how to interview), systems desing (design spotify, describe how an artist will upload a song, store indifferent qualities, think about storing metadata separately, then the second use case is the user consuming the songs, searching for them etc. if you do the encoding async they will be happy), then application design, they ask about a bike system, you have to model entities for bike, the station, the user, than an entity for the rental. They extend the question asking about different ways of charging for the rental (per distance or per subscription, think about inheritance for example) last questions is to tell them the REST APIs for docking/undocking the bike, to search for bikes using some filter (example radius or electrical bike). Basically they want to evaluate if you know which resource you are using (station, bike), if you know how to use the verbs (GET, PUT, POST, DELETE), if you can use filters, if you understand a tiny bit about pagination and authentication. They will throw you confetis with you mention token and headers. Pretty mediocre interview I'd say.
what is garbage collector, circuit breaker, design spotify (system architecture), design a bike system (low level/application design) i don't remember the coding ones, but use leetcode you will find the questions there
--------------
At first Human resource interview with general questions and some easy technical questions
1-Live coding interview with 3 medium tests
2-Technical interview focused on microservices and distributed systems
3-Application design interview focused on object oriented design
4-System design interview
5-Behavioral interview
----------
Interview
1. Initial call with interviewer to explain about the role and the company.
2. Problem Solving Round . 3 Coding challanges(Medium LeetCode Level).
3. Technical assessment Test. They asked about JVM, Java Collections Questions, Networking questions,Microservice architecture, CI/CD process.
4.1 Behavioural Interview -Asked lot of questions on how to handle conflicts in team, how to articulate your approach and convince others in team to accept your approach
4.2 Application Architecture -> Design Bike Rental System. I was asked to create Class Diagram, various method, API structure. I struggled in this round
4.3 System Architecture -> Design Food Ordering System. Was asked to design High Level Diagram regarding it. Had discussion on how different parts would interact with each other, handle failure scenarios, live tracking design.
Got a feedback from the recruiter that all rounds went great except Application Architecture which led to my rejection.
However overall it was very positive experience
Interview Questions
Explain JVM Memory Model
Java Collections Framework in depth
=============
Adidas
=============
web architectures, scalability, observability and situational
How to detect bottlenecks in microservice architectures. Describe any improvement implemented in my previous position.
Technical and leadership framework. More focus on confidence creativity and collaboration. Specific tech details on project worked and overall tech stack experience on automation programming languages. Team lead experience and external teams coordinations
How do you find memory leaks?
Where do you see yourself in 5 years?
1- screening interview
2- coding challenge - which requires a lot of work to make system with multiple microservices takes up tp 6 days
3- when passed from coding challenge and has positive feedback there is meeting call and meeting from HR to explain next step which will be technical interview with tech lead and someone from business and it will include technical questions and reviewing technical challenge
4- but in technical interview surprised that it was with tech lead and senior developer and ask one question about docker and then moved to online challenge which is not aligned with me before that it will happen and before 10 min from starting online challenge tech lead decided to finish it and ask one question about event loop
so it is very bad experience to spend 6 days for coding challenge and only one question about it in tech meeting also not communicates that it will be online challenge in the interview specially that i asked if it will be or not
alternatives of docker compose in production?
event loop ?
Tell me about past projects?
What is the big O of merge sort vs bubble sort?
What User Experience Solution would you use when Server went down or a Http request took too long to respond?
After the "you all know" phone screen and behaviour interview, there's coding challenge to test my problem solving skill, which I attend to make it better, then there's a technical interview with tech lead from other tech hubs. The technical questions weren't hard, mostly, and I think I out-performed myself, so I had it.
The Interview process was fairly easy. The process consisted of 3 rounds. 1 Online round followed by Technical and HR Round. The technical questions asked were related to Object Oriented Programming. They also discussed about Projects and Internship
First there was an online test that included questions on Data structure, DBMS, and some HR essay type questions as well.
Then the shortlisted students were interviewed. They asked a mixed bag of personality related and technical questions.
==========================
==========================
For instance, we frequently ask candidates about past projects with different angles. If we ask about accomplishments, we want to hear something that they are proud of, maybe with quantifiable results. If we ask about mistakes, we’re interested in what they learned. So if we ask about an accomplishment, and we get a story that was a complete disaster and from which the candidate learned nothing, that's enough to determine the outcome of the interview. In the same line of thoughts, in these interviews sometimes we get the exact opposite of the aptitude we try to evaluate.
===================
Interview questions
===================
Could you tell me what it looks like to get a performance review?*
How do you measure performance and success in this role?*
What would my day-to-day routine look like if I got the job?
What’s the next step in the interview/hiring process?
How long does your recruitment process usually take?
What is the work culture like here?*
What is the onboarding process like for new hires?*
What kind of leadership/management style do you promote in the company?*
###################
Glovo
Computer Science or similar degree
5+ years of relevant full-time experience
Strong Java skills
Extensive knowledge of object-oriented programming and software architecture
Ability to write good unit tests is a must
Knowledge of relational databases and other approaches to data management
Knowledge of concurrency and Event Driven Development
Ability to write good unit tests is a must
Analytical and problem-solving skills
Vivid interest in at least one area outside of coding (architecture, algorithms, optimization, automation, scalability, etc.)
Experience with Spring framework
Experience with AWS
Experience with micro-services or service-oriented architectures in general
Experience with containers
Experience with Vue.js or other modern frontend technologies
Participation in open source projects
=========================
Day 1
Binary Search
704. Binary Search
Array
Binary Search
Easy
Acceptance 55.3%
Start Now
278. First Bad Version
Binary Search
Interactive
Easy
Acceptance 41.5%
Start Now
35. Search Insert Position
Array
Binary Search
Easy
Acceptance 42.3%
Start Now
Day 2
Two Pointers
977. Squares of a Sorted Array
Array
Two Pointers
Sorting
Easy
Acceptance 71.6%
Start Now
189. Rotate Array
Array
Math
Two Pointers
Medium
Acceptance 38.5%
Start Now
Day 3
Two Pointers
283. Move Zeroes
Array
Two Pointers
Easy
Acceptance 60.6%
Start Now
167. Two Sum II - Input Array Is Sorted
Array
Two Pointers
Binary Search
Medium
Acceptance 58.6%
Start Now
Day 4
Two Pointers
344. Reverse String
Two Pointers
String
Recursion
Easy
Acceptance 74.8%
Start Now
557. Reverse Words in a String III
Two Pointers
String
Easy
Acceptance 78.6%
Start Now
Day 5
Two Pointers
876. Middle of the Linked List
Linked List
Two Pointers
Easy
Acceptance 72.6%
Start Now
19. Remove Nth Node From End of List
Linked List
Two Pointers
Medium
Acceptance 38.2%
Start Now
Day 6
Sliding Window
3. Longest Substring Without Repeating Characters
Hash Table
String
Sliding Window
Medium
Acceptance 33.0%
Start Now
567. Permutation in String
Hash Table
Two Pointers
String
Sliding Window
Medium
Acceptance 44.8%
Start Now
Day 7
Breadth-First Search / Depth-First Search
733. Flood Fill
Array
Depth-First Search
Breadth-First Search
Matrix
Easy
Acceptance 58.2%
Start Now
695. Max Area of Island
Array
Depth-First Search
Breadth-First Search
Union Find
Matrix
Medium
Acceptance 69.6%
Start Now
Day 8
Breadth-First Search / Depth-First Search
617. Merge Two Binary Trees
Tree
Depth-First Search
Breadth-First Search
Binary Tree
Easy
Acceptance 77.9%
Start Now
116. Populating Next Right Pointers in Each Node
Linked List
Tree
Depth-First Search
Breadth-First Search
Binary Tree
Medium
Acceptance 56.8%
Start Now
Day 9
Breadth-First Search / Depth-First Search
542. 01 Matrix
Array
Dynamic Programming
Breadth-First Search
Matrix
Medium
Acceptance 43.8%
Start Now
994. Rotting Oranges
Array
Breadth-First Search
Matrix
Medium
Acceptance 51.7%
Start Now
Day 10
Recursion / Backtracking
21. Merge Two Sorted Lists
Linked List
Recursion
Easy
Acceptance 60.2%
Start Now
206. Reverse Linked List
Linked List
Recursion
Easy
Acceptance 70.1%
Start Now
Day 11
Recursion / Backtracking
77. Combinations
Backtracking
Medium
Acceptance 63.7%
Locked
46. Permutations
Array
Backtracking
Medium
Acceptance 72.1%
Locked
784. Letter Case Permutation
String
Backtracking
Bit Manipulation
Medium
Acceptance 72.3%
Locked
Day 12
Dynamic Programming
70. Climbing Stairs
Math
Dynamic Programming
Memoization
Easy
Acceptance 51.0%
Locked
198. House Robber
Array
Dynamic Programming
Medium
Acceptance 47.1%
Locked
120. Triangle
Array
Dynamic Programming
Medium
Acceptance 50.7%
Locked
Day 13
Bit Manipulation
231. Power of Two
Math
Bit Manipulation
Recursion
Easy
Acceptance 44.9%
Locked
191. Number of 1 Bits
Bit Manipulation
Easy
Acceptance 60.3%
Locked
Day 14
Bit Manipulation
190. Reverse Bits
Divide and Conquer
Bit Manipulation
Easy
Acceptance 48.7%
Locked
136. Single Number
Array
Bit Manipulation
####################################################################
Common interview questions
+++++++++++++++++
+++++++++++++++++
- Tell me about yourself
HINT: Look out for opportunities to use specifics, especially if they’re at all quirky, funny, surprising, or otherwise memorable.
I am Phillip Kigenyi, a software engineer with 5 years experience working mostly on the backend with python, javascript and java.
I have worked with a couple of companies from chapchap, a fintech company, sellio an online marketing platform and outbox a consultancy.
There I have built products in health, ecommerce and fintech which include safepal, getin, mane, weyonje and UNMC online system
+++++++++++++++++
+++++++++++++++++
- Why do you want to work here?
HINT: tell a story from your life that shows how those values benefited you or taught you something.
- What’s your biggest strength?
HINT: Use someone else’s voice. When you respond with a story, you can refer to what other people have said about your best qualities. In this case, a ten-year tech veteran said you made a project feel less awful
Glovo cs theory
==================
- Hazelcast, Cassandra, MongoDb, RabbitMq, ActiveMQ, Scala, Guava, Spring, Spark Java, Angular and JQuery
- NodeJs, Python, PHP, Perl
- batch distributed applications, system and API design
Docker, Kubernetes, React. Architectural questions e.g. monolithic vs microservices; strengths and weaknesses and a bit about React and state management.
screening with recruiter, he tried to ask some standard questions, than technical screening with theoretical questions (what is garbage collector, how does it work, circuit breaker etc), coding interview (the interviewer didnt have any idea what he was doing or asking, I basically had to explain to him how to interview), systems desing (design spotify, describe how an artist will upload a song, store indifferent qualities, think about storing metadata separately, then the second use case is the user consuming the songs, searching for them etc. if you do the encoding async they will be happy), then application design, they ask about a bike system, you have to model entities for bike, the station, the user, than an entity for the rental. They extend the question asking about different ways of charging for the rental (per distance or per subscription, think about inheritance for example) last questions is to tell them the REST APIs for docking/undocking the bike, to search for bikes using some filter (example radius or electrical bike). Basically they want to evaluate if you know which resource you are using (station, bike), if you know how to use the verbs (GET, PUT, POST, DELETE), if you can use filters, if you understand a tiny bit about pagination and authentication. They will throw you confetis with you mention token and headers. Pretty mediocre interview I'd say.
Glovo interview sections
==========================
1) Concurrency
2) Parallelism
3) SQL/NOSQL #
https://www.freecodecamp.org/news/nosql-databases-5f6639ed9574/
https://www.mongodb.com/nosql-explained
4) Performance
5) QA Stages
6) Various data structure
7) OOPs principles #
https://www.freecodecamp.org/news/object-oriented-programming-concepts-21bb035f7260/#:~:text=The%20four%20principles%20of%20object,abstraction%2C%20inheritance%2C%20and%20polymorphism.
https://www.youtube.com/watch?v=UI6lqHOVHic&ab_channel=Lucidchart
8) SOLID Principle #
https://www.pluralsight.com/guides/solid-design-microservices
https://stackoverflow.com/questions/1913098/what-is-the-difference-between-an-interface-and-abstract-class#:~:text=The%20key%20technical%20differences%20between,have%20constants%20and%20methods%20stubs.
https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
https://www.freecodecamp.org/news/solid-principles-single-responsibility-principle-explained/
https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design
9) Design pattern #
https://refactoring.guru/design-patterns
10) Unit testing
11) REST API- various methods, error mechanisms
12) Idempotent or non-idempotent #
13) About various projects that I have done
14) Basic concepts of docker, spring — dependency injections and all
15) Microservice architecture — distributed systems — pros and cons
16) How to improve performance bug
17) various types of testing
18) How to tackle non reproducible bugs
19) About ACID property #
https://cloudxlab.com/assessment/displayslide/1419/acid-properties-in-dbms#:~:text=ACID%20(Atomicity%2C%20Consistency%2C%20Isolation,errors%2C%20power%20failures%2C%20etc.
https://www.ibm.com/docs/en/cics-ts/5.4?topic=processing-acid-properties-transactions
20) Caching
21) CAP theorem #
22) Pros and cons about the Monolithic and Microservice Architecture
23) Logging mechanisms
24) Thread and Process
25) Inter communication and intra communication
X) system design
https://www.youtube.com/watch?v=gf8R7sgme6o&ab_channel=AmazonWebServices
https://www.freecodecamp.org/news/systems-design-for-interviews/
System Design Interview by Alex Xu
https://www.freecodecamp.org/news/systems-design-for-interviews/#section-7-consistent-hashing
https://www.educative.io/path/scalability-system-design
8) SOLID Principle
- The Single Responsibility Principle: Do one thing or do relatively few related things
- Open/Closed Principle: open for extension but closed for modification
- Liskov's substitution principle: states that if objects of type T are replaced with objects of type S, when S is a subtype of T, in a program, the program’s characteristics should not change (e.g. correctness). In summary, if a class inherits another, it should do so in a manner that all the properties of the inherited class would remain relevant to its functionality.
- Interface Segregation Principle (ISP): The interface segregation principle states that the interface of a program should be split in a way that the user/client would only have access to the necessary methods related to their needs.
Martin explains this principle by advising, “Make fine grained interfaces that are client-specific. Clients should not be forced to implement interfaces they do not use.”
https://www.bmc.com/blogs/solid-design-principles/#:~:text=SOLID%20is%20an%20acronym%20that,some%20important%20benefits%20for%20developers.
- Dependency Inversion Principle: High-level modules should not import anything from low-level modules. Both should depend on abstractions
“depend on abstractions, not on concretions.”
.” Further, “abstractions should not depend on details. Details should depend upon abstractions.”
https://blog.logrocket.com/dependency-inversion-principle-typescript/#:~:text=The%20dependency%20inversion%20principle%20is,affecting%20the%20high%2Dlevel%20ones.
Abstract class vs Interface
- Abstract classes can have constants, members, method stubs (methods without a body) and defined methods, whereas interfaces can only have constants and methods stubs.
- Methods and members of an abstract class can be defined with any visibility, whereas all methods of an interface must be defined as public (they are defined public by default). *
- When inheriting an abstract class, a concrete child class must define the abstract methods, whereas an abstract class can extend another abstract class and abstract methods from the parent class don't have to be defined.
- Similarly, an interface extending another interface is not responsible for implementing methods from the parent interface. This is because interfaces cannot define any implementation.
- A child class can only extend a single class (abstract or concrete), whereas an interface can extend or a class can implement multiple other interfaces. *
- A child class can define abstract methods with the same or less restrictive visibility, whereas a class implementing an interface must define the methods with the exact same visibility (public).
19) About ACID property
Atomicity
All changes to data are performed as if they are a single operation. That is, all the changes are performed, or none of them are.
For example, in an application that transfers funds from one account to another, the atomicity property ensures that, if a debit is made successfully from one account, the corresponding credit is made to the other account.
Consistency
Data is in a consistent state when a transaction starts and when it ends.
For example, in an application that transfers funds from one account to another, the consistency property ensures that the total value of funds in both the accounts is the same at the start and end of each transaction.
Isolation
The intermediate state of a transaction is invisible to other transactions. As a result, transactions that run concurrently appear to be serialized.
For example, in an application that transfers funds from one account to another, the isolation property ensures that another transaction sees the transferred funds in one account or the other, but not in both, nor in neither.
Durability
After a transaction successfully completes, changes to data persist and are not undone, even in the event of a system failure.
For example, in an application that transfers funds from one account to another, the durability property ensures that the changes made to each account will not be reversed.
BASE (Basically Available, Soft state, Eventual consistency).
12) Idempotent or non-idempotent
An HTTP method is idempotent if an identical request can be made once or several times in a row with the same effect while leaving the server in the same state
7) OOPs principles
Encapsulation: Information hiding
Abstraction: This mechanism should hide internal implementation details. It should only reveal operations relevant for the other objects. Expose a standard set of functionality and prevent breaking changes
Inheritance: children inherit functionality from parent(code reusability)
Polymophysm: different forms. a child ask like the parent ie a function that takes in shape should also take in square, triange or rectangle
3) SQL/NOSQL
SQL: AWS aurora, GC sql, spanner
NOsql: mongodb, cassandra, couchdb, elasticsearch, redis, dynamodb, firebase, GC datastore
Key value Stores — Riak, Voldemort, Amazon SimpleDB, and Redis
Wide Column Stores — Cassandra and HBase.
Document databases — MongoDB, couchdb
Graph databases — Neo4J and HyperGraphDB.
System design
-----------------
Keep in mind some interviewers look for you to ask clarifying questions at the beginning more than Tim did here. Questions on:
1. who are the users?
2. how are they going to use it?
3. what use cases are there?
4. what are the inputs and outputs?
5. how much data do we expect to handle?
6. how many requests per second do we expect?
As a hiring manager, here is one tweak I'd add to this interview. When asked if you'd like to improve your design, always say yes. Have a few simple concepts in your backpocket. E.g redis clustering, queueing, analytics using nosql etc.
Non functional requirements
- Availability vs consistency
- Scale: How many users
- Latency: How do you manage background processes/Use of local storage
SD steps
For every requirement you get, list out the functional and non functional requirements.
Capacity estimate and find the scope / constraints / trade-offs.
Design the APIs
Design the database models and right database choice.
Data Partitioning and Replication
Caching
Data cleanup
Synchronous vs Asynchronous Usage
LoadBalancers
Security and Permissions
Telemetry /Notifications/Dashboards
Strings
https://leetcode.com/problems/valid-palindrome/
https://leetcode.com/problems/reverse-string/
https://leetcode.com/problems/reverse-words-in-a-string-iii/
Arrays
https://leetcode.com/problems/move-zeroes/
https://leetcode.com/problems/binary-search/
https://leetcode.com/problems/flipping-an-image/
https://leetcode.com/problems/fibonacci-number/
https://leetcode.com/problems/valid-parentheses/
This is the pool of questions for the technical interview
Strings
https://leetcode.com/problems/valid-palindrome/
https://leetcode.com/nvproblems/reverse-string/
https://leetcode.com/problems/reverse-words-in-a-string-iii/
Arrays
https://leetcode.com/problems/move-zeroes/
https://leetcode.com/problems/binary-search/
https://leetcode.com/problems/flipping-an-image/
https://leetcode.com/problems/fibonacci-number/
https://leetcode.com/problems/valid-parentheses/
- Why do you want to work here?
- What’s your biggest strength?
- what did you learn in the last 6 months?
- what is heroku?
- what is a conditional statement?
- why use react?
- Tell me your biggest weakness as an engineer.
- Describe a tricky bug you’ve encountered.
- What’s the biggest project you’ve shipped?
- What’s your favorite programming language? Why?
- How do you overcome interpersonal conflicts with coworkers?
- Can you give an example of a valuable piece of feedback that you have received?
- Can you describe a situation where you had to work with a decision that you didn’t agree with?
- Describe a technical mistake you have made?
- How would your coworkers describe you in one word?
Interview blog points
========================
- Keep response below 2 mins
- Understand the technologies you have listed
- Expect suprises
- Skip certain naratives
STAR
- have direction
- limit the edge cases
github key
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
google
https://www.glassdoor.com/Interview/Google-Software-Engineer-Interview-Questions-EI_IE9079.0,6_KO7,24.htm#InterviewReview_4168541
resume screening, phone screenings, on-site interviews, hiring committee reviews, and executive reviews. The most difficult parts were phone screenings (2 rounds), and on-site interviews (4 rounds). These interviews lasted 45 minutes on average
Interview
Direct onsite because I interviewed in the past and did well that time. From the time I sent my resume to interview day: 2 weeks. From interview day to offer over the phone: 2 weeks.
The syllabus for the interviews is very clear and simple:
1) Dynamic Programming
2) Super recursion (permutation, combination,...2^n, m^n, n!...etc. type of program. (NP hard, NP programs)
3) Probability related programs
4) Graphs: BFS/DFS are usually enough
5) All basic data structures from Arrays/Lists to circular queues, BSTs, Hash tables, B-Trees, and Red-Black trees, and all basic algorithms like sorting, binary search, median,...
6) Problem solving ability at a level similar to TopCoder Division 1, 250 points. If you can consistently solve these, then you are almost sure to get in with 2-weeks brush up.
7) Review all old interview questions in Glassdoor to get a feel. If you can solve 95% of them at home (including coding them up quickly and testing them out in a debugger + editor setup), you are in good shape.
8) Practice coding--write often and write a lot. If you can think of a solution, you should be able to code it easily...without much thought.
9) Very good to have for design interview: distributed systems knowledge and practical experience.
10) Good understanding of basic discrete math, computer architecture, basic math.
11) Coursera courses and assignments give a lot of what you need to know.
12) Note that all the above except the first 2 are useful in "real life" programming too!
Interview 1:
Graph related question and super recursion
Interview 2:
Design discussion involving a distributed system with writes/reads going on at different sites in parallel.
Interview 3:
Array and Tree related questions
Interview 4:
Designing a simple class to do something. Not hard, but not easy either. You need to know basic data structures very well to consider different designs and trade-offs.
Interview 5:
Dynamic programming,
Computer architecture and low level perf. enhancement question which requires knowledge of Trees, binary search, etc.
At the end, I wasn't tired and rather enjoyed the discussions. I think the key was long term preparation and time spent doing topcoder for several years (on and off as I enjoy solving the problems).
Conclusion: "It's not the best who win the race; it's the best prepared who win it."
Java 8
- lambda
- mapreduce, functional style operations
- date and time api update
-
Difference java 8 and 11
- file access and manupilation
- java file.java
Leetcode guide
Study Tip: After solving a problem, it's natural to want to move on to the next problem quickly. However, we highly recommend that you check out the discuss section and/or the official solution article, even if you solved the problem with ease.
https://dou.ua/lenta/articles/google-interview/
https://www.educative.io/courses/grokking-the-system-design-interview?utm_medium=cpc&utm_source=google_ars
https://habr.com/ru/post/419945/
https://haseebq.com/how-to-break-into-tech-job-hunting-and-interviews/
https://www.bigocheatsheet.com/
https://adidas.github.io/
https://hackernoon.com/14-patterns-to-ace-any-coding-interview-question-c5bb3357f6ed
https://seanprashad.com/leetcode-patterns/
https://www.youtube.com/watch?v=KLlXCFG5TnA&list=PLot-Xpze53lfQmTEztbgdp8ALEoydvnRQ
https://www.youtube.com/watch?v=JSraCdiwd1U
https://www.educative.io/path/ace-python-coding-interview
https://cult.honeypot.io/reads/8-best-react-courses-2022
https://orrsella.gitbooks.io/soft-eng-interview-prep/content/
https://leetcode.com/discuss/general-discussion/250063/AlgorithmandData-structures-booksrecommendations
https://leetcode.com/discuss/study-guide/1268965/Book-recommendation-thread-for-LC-community
https://leetcode.com/articles/two-pointer-technique/
https://leetcode.com/discuss/study-guide/1688903/Solved-all-two-pointers-problems-in-100-days.
https://www.coursera.org/specializations/algorithms?action=enroll
https://www.offerzen.com/
https://hackernoon.com/10-data-structure-algorithms-and-programming-courses-to-crack-any-coding-interview-e1c50b30b927?source=---------42------------------
https://smilecs.github.io/
https://spring.io/projects/spring-cloud-netflix
https://docs.python.org/3/glossary.html
https://github.com/Nnadozieomeonu/adidas-technical-code-challange
https://adidas.github.io/contributing/javascript-coding-guidelines/
https://github.com/RuairiSpain/adidas
https://www.youtube.com/watch?v=RBSGKlAvoiM&ab_channel=freeCodeCamp.org
https://leetcode.com/tssovi/
https://docs.google.com/spreadsheets/d/1A2PaQKcdwO_lwxz9bAnxXnIQayCouZP6d-ENrBz_NXc/edit#gid=0
https://leetcode.com/study-plan/algorithm/?progress=7ftnucr
https://www.educative.io/courses/grokking-the-behavioral-interview/3YlB29JmYzx
https://learning.edx.org/course/course-v1:StanfordOnline+CSX0003+1T2020/home
https://www.30dayscoding.com/process
https://www.youtube.com/watch?v=NqKkxQamroo&ab_channel=Nerd%27slesson
https://app.codility.com/programmers/lessons/2-arrays/
https://github.com/orrsella/soft-eng-interview-prep/blob/master/topics/system-architecture.md
https://www.youtube.com/watch?v=ft0owvS5tQA&ab_channel=NeetCode
https://betterprogramming.pub/6-signs-that-you-are-misusing-leetcode-d15d7532eaa4
https://backtobackswe.com/pricing
https://www.youtube.com/channel/UCmJz2DV1a3yfgrR7GqRtUUA
https://designgurus.org/course/grokking-the-coding-interview
https://medium.com/interviewnoodle/grokking-leetcode-a-smarter-way-to-prepare-for-coding-interviews-e86d5c9fe4e1
https://github.com/seanprashad/leetcode-patterns#tips-to-consider
https://towardsdatascience.com/five-things-i-have-learned-after-solving-500-leetcode-questions-b794c152f7a1
https://martin.kleppmann.com/2015/05/11/please-stop-calling-databases-cp-or-ap.html
https://www.youtube.com/watch?v=p65AHm9MX80&ab_channel=freeCodeCamp.org
https://www.youtube.com/watch?v=Peq4GCPNC5c&ab_channel=freeCodeCamp.org
https://towardsdatascience.com/everything-about-javascript-object-part-1-854025d71fea
https://leetcode.com/discuss/career/449135/how-to-effectively-use-leetcode-to-prepare-for-interviews
https://www.toptal.com/resume/dany-farina#Skills
https://github.com/donnemartin/system-design-primer
https://www.youtube.com/watch?v=z_96KlOS92o&ab_channel=codebasics
https://leetcode.com/discuss/interview-experience?currentPage=1&orderBy=hot&query=
https://leetcode.com/discuss/interview-experience/1260613/microsoft-engineering-manager-hyderabad-may-2021-offer/969476
https://leetcode.com/discuss/interview-experience/1959175/Google-or-L4-or-Bangalore-or-May-Passed
https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw
https://get.interviewready.io/course-preview
https://mail.google.com/mail/u/0/#search/takealo/FMfcgzGmvTwLpGSBkxLwQvLvfcwzkvSF
https://www.youtube.com/watch?v=KEEKn7Me-ms&list=PLI1t_8YX-ApvMthLj56t1Rf-Buio5Y8KL&ab_channel=HackerRank
https://www.youtube.com/watch?v=IhJGJG-9Dx8&list=PLI1t_8YX-Apv-UiRlnZwqqrRT8D1RhriX&ab_channel=HackerRank
https://www.youtube.com/watch?v=fAAZixBzIAI&ab_channel=freeCodeCamp.org
https://www.youtube.com/watch?v=Ge0Udbws1kc&ab_channel=Cl%C3%A9mentMihailescu
https://teams.microsoft.com/_#/pre-join-calling/19:meeting_ODZjMGMzMWQtZjhhNS00OWQ5LTk4NmQtNGQxMDg3ZTQ0MDBi@thread.v2
https://leetcode.com/explore/interview/card/wix-engineering/653/trees-and-graphs/4168/
https://www.youtube.com/c/CoderbyteDevelopers/featured
https://coderbyte.com/challenges
https://www.youtube.com/watch?v=oBt53YbR9Kk&ab_channel=freeCodeCamp.org
https://www.geeksforgeeks.org/dynamic-programming/
https://realtoughcandy.com/best-book-for-google-interview-preparation/
https://realtoughcandy.com/algomonster-review/#AlgoMonster_Review_AlgoMonster_vs_LeetCode
https://algomonster.medium.com/stop-doing-leetcode-until-youve-read-this-c22822c76b4d
https://www.hackerrank.com/interview/preparation-kits?h_l=domains&h_r=hrw&utm_source=hrwCandidateFeedback
https://algomonster.medium.com/how-to-conquer-the-coding-interview-a63539f8d8f0
https://medium.com/office-hours/get-your-resume-startup-ready-92e63164023c
https://github.com/gastonfournier/resources-for-projects
https://medium.com/@prajapatikunal7/interview-experience-at-glovo-senior-back-2e52b6b47208
https://blog.cleancoder.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html
https://www.freecodecamp.org/news/solid-principles-single-responsibility-principle-explained/
https://dev.to/apoorvtyagi/introduction-to-asynchronous-processing-and-message-queues-27od
https://www.twilio.com/blog/asynchronous-javascript-choosing-the-right-asynchronous-tool
https://www.ibm.com/docs/en/cics-ts/5.4?topic=processing-acid-properties-transactions
https://cloudxlab.com/assessment/displayslide/1419/acid-properties-in-dbms#:~:text=ACID%20(Atomicity%2C%20Consistency%2C%20Isolation,errors%2C%20power%20failures%2C%20etc.
https://www.freecodecamp.org/news/object-oriented-programming-concepts-21bb035f7260/#:~:text=The%20four%20principles%20of%20object,abstraction%2C%20inheritance%2C%20and%20polymorphism.
https://developer.mozilla.org/en-US/docs/Glossary/Idempotent
https://www.youtube.com/watch?v=gf8R7sgme6o&ab_channel=AmazonWebServices
https://www.youtube.com/watch?v=mjZpZ_wcYFg&ab_channel=InsideAmazonVideos
https://www.mongodb.com/scale/types-of-nosql-databases
https://www.youtube.com/watch?v=XMpchIp746s&ab_channel=TheTechGranth
https://www.youtube.com/watch?v=NtMvNh0WFVM&t=12s&ab_channel=Exponent
https://www.youtube.com/watch?v=Z-0g_aJL5Fw&ab_channel=Exponent
https://www.youtube.com/watch?v=q0KGYwNbf-0&ab_channel=Cl%C3%A9mentMihailescu
https://www.freecodecamp.org/news/nosql-databases-5f6639ed9574/
https://www.youtube.com/watch?v=tv-_1er1mWI&ab_channel=Fireship
https://www.freecodecamp.org/news/systems-design-for-interviews/
https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design
https://www.freecodecamp.org/news/systems-design-for-interviews/#section-7-consistent-hashing
https://www.mongodb.com/nosql-explained
https://medium.com/@avushakov/lists
https://medium.com/@avushakov/list/system-design-5b7b42355086
https://itnext.io/system-design-concepts-that-helped-me-get-sr-frontend-offers-from-amazon-linkedin-9e100f3ce7d2
https://itnext.io/frontend-interview-cheatsheet-that-helped-me-to-get-offer-on-amazon-and-linkedin-cba9584e33c7
https://medium.com/@divya.venu/how-to-prepare-for-system-design-interviews-part-1-33b962c45798
https://www.youtube.com/playlist?list=PLMCXHnjXnTnvo6alSjVkgxV-VH6EPyvoX
https://www.youtube.com/c/codeKarle
https://leetcode.com/discuss/career/229177/My-System-Design-Template
https://www.quora.com/Anyone-here-use-LeetCode-premium-How-is-your-experience/answer/Nishad-8?ch=10&oid=214574555&share=961939d2&srid=udxpv&target_type=answer
https://www.youtube.com/playlist?list=PLifX7FLW45Ncn-YnaBPSsVz2HYsW8mfAX
https://docs.google.com/spreadsheets/d/1-wKcV99KtO91dXdPkwmXGTdtyxAfk1mbPXQg81R9sFE/edit#gid=0
https://medium.com/interviewnoodle
https://github.com/jwasham/coding-interview-university/blob/main/README.md#google-interview-university
https://roadmap.sh/
SOLID Principle
The Single Responsibility Principle: Do one thing or do relatively few related things
Open/Closed Principle: open for extension but closed for modification
Liskov's substitution principle: states that if objects of type T are replaced with objects of type S, when S is a subtype of T, in a program, the program’s characteristics should not change (e.g. correctness). In summary, if a class inherits another, it should do so in a manner that all the properties of the inherited class would remain relevant to its functionality.
Interface Segregation Principle (ISP): The interface segregation principle states that the interface of a program should be split in a way that the user/client would only have access to the necessary methods related to their needs.
Dependency Inversion Principle: High-level modules should not import anything from low-level modules. Both should depend on abstractions
ACID property
Atomicity
All changes to data are performed as if they are a single operation. That is, all the changes are performed, or none of them are.
For example, in an application that transfers funds from one account to another, the atomicity property ensures that, if a debit is made successfully from one account, the corresponding credit is made to the other account.
Consistency
Data is in a consistent state when a transaction starts and when it ends.
For example, in an application that transfers funds from one account to another, the consistency property ensures that the total value of funds in both the accounts is the same at the start and end of each transaction.
Isolation
The intermediate state of a transaction is invisible to other transactions. As a result, transactions that run concurrently appear to be serialized.
For example, in an application that transfers funds from one account to another, the isolation property ensures that another transaction sees the transferred funds in one account or the other, but not in both, nor in neither.
Durability
After a transaction successfully completes, changes to data persist and are not undone, even in the event of a system failure.
For example, in an application that transfers funds from one account to another, the durability property ensures that the changes made to each account will not be reversed.
BASE (Basically Available, Soft state, Eventual consistency).
OOPs principles
Encapsulation: Information hiding
Abstraction: This mechanism should hide internal implementation details. It should only reveal operations relevant for the other objects. Expose a standard set of functionality and prevent breaking changes
Inheritance: children inherit functionality from parent(code reusability)
Polymophysm: different forms. a child ask like the parent ie a function that takes in shape should also take in square, triange or rectangle
SQL/NOSQL
SQL: AWS aurora, GC sql, spanner
NOsql: mongodb, cassandra, couchdb, elasticsearch, redis, dynamodb, firebase, GC datastore
Key value Stores — Riak, Voldemort, Amazon SimpleDB, and Redis
Wide Column Stores — Cassandra and HBase.
Document databases — MongoDB, couchdb
Graph databases — Neo4J and HyperGraphDB.
Soft skills
--------------
- have a story for your departure?
- why do you why to join the company?
- read and understand the job description?
- why did you leave your previous job?
I was let go from my previous job due to a situation where I had a disagreement with my manager that escalated into an altercation. While I regret my behavior in that situation, I have learned a lot from it and have taken steps to improve my communication and conflict resolution skills. I recognize that it's important to remain professional and respectful even in difficult situations, and I am committed to bringing those values to this role. I'm excited to be here and to have the opportunity to show you what I can bring to the team
Software architecture plan
----------------------------
Courses:
Udemy - Software Architecture: Complete Beginner's Guide (https://www.udemy.com/course/software-architecture-complete-beginners-guide/)
Pluralsight - Software Architecture Fundamentals (https://www.pluralsight.com/courses/software-architecture-fundamentals)
Coursera - Software Design and Architecture Specialization (https://www.coursera.org/specializations/software-design-architecture)
YouTube channels:
Tech Primers (https://www.youtube.com/channel/UCf8wJzxnKlTtT-r-kmVvK2A) - provides tutorials and guides on software architecture
TechLead (https://www.youtube.com/c/TechLead) - offers insights into software engineering and career advice for software architects
Books:
Software Architecture in Practice (https://www.amazon.com/Software-Architecture-Practice-3rd-SEI/dp/0321815734) by Len Bass, Paul Clements, and Rick Kazman - provides an overview of software architecture concepts and principles
Clean Architecture (https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164) by Robert C. Martin - offers guidance on designing clean and maintainable software architectures
Building Microservices (https://www.amazon.com/Building-Microservices-Designing-Fine-Grained-Systems/dp/1491950358) by Sam Newman - focuses on designing and building microservices-based architectures
"Software Architecture: Complete Guide" on Udemy by Paulo Dichone: This course covers a wide range of software architecture topics, including enterprise application architecture and design patterns.
"Architecting Applications for the Real World in .NET" on Pluralsight by Scott Allen: This course focuses on building real-world applications using architectural patterns and best practices.
https://careers.adyen.com/formula
https://www.adyen.com/about
Soft skills
==============
- have a story for your departure?
- why do you why to join the company?
- read and understand the job description?
what skills are you bringing to the team
- new perspective thinking
- fault detection, detecting flaws
- leadership
what skills make you unique?
- soft skills: new perspective thinking, changing the status quo
- coding: methodical, measure twice cut once
why did you leave your previous job, have a story for your departure?/why did you leave your previous job?
- I left Adidas due to company restructuring as a result of changing global trends like recession. This left me with a job that wasn't adding much value as most of the work was maintainence
I was let go from my previous job due to a situation where I had a disagreement with my manager that escalated into an altercation. While I regret my behavior in that situation, I have learned a lot from it and have taken steps to improve my communication and conflict resolution skills. I recognize that it's important to remain professional and respectful even in difficult situations, and I am committed to bringing those values to this role. I'm excited to be here and to have the opportunity to show you what I can bring to the team
Why do you want to work for us?
Having researched your company you are clearly a leader within the industry and I feel I would be able to excel within the role and put all of my skills, qualities and experience to good use. Whilst studying your company online, it is clear to see you have strong and exciting plans for the future and I would like to be a part of your journey through the role I am being interviewed for today. Finally, it is also clear that you support your employees, so they can excel within their roles. There’s lots of positive comments online about your company and, if I am successful at interview, I would feel quite proud to have your name on my CV/resume.
how do you learn
Interviewer questions
https://www.indeed.com/career-advice/interviewing/good-questions-to-ask-at-the-end-of-an-interview
=====================
What qualities and attributes make for a successful employee in this company?
What is your favorite thing about working for this company?
How would you describe the company's culture?
----
What I didn't like about the last team?
- bloated slack meetings
How did you resolve a challenge with a team mate?
How do you learn new things?
- watch videos to grab the 80/20
- find the books and courses
- if immediately, narrow down to the chapter
- create a demo
Klarna
=========
purpose: the aim of making it easier for people to shop online
services: direct payments, pay after delivery options and instalment plans
values: customer obsession, deliver quality results, let the team shine, *challenge the status quo, start small and learn fast, hire and develop exceptional talent, *courage, *detailed thinkers
pointers
----------
- never be negative about your employer
- keep reason short and precise
https://www.youtube.com/watch?v=_i9I7Y09t6U&ab_channel=CareerVidz
https://passmyinterview.com/top-30-interview-questions-answers/
###################################################
###################################################
###################################################
Tips for Answering the 30 Most Common Job Interview Questions!
Q1. Tell me about yourself.
TIP – Use the format SET when answering this first interview question:
S – Skills and qualities you have that match the role.
E – Experience and/or educational qualifications.
T – The type of person you are.
-------------
I am Phillip Kigenyi, a hard-working and professional software engineer with 5 years of experience building large-scale software systems in various industries like healthcare, e-commerce and advertisement using tools like python, javascript, AWS and GCP. I also possess leadership skills and enjoy working closely with other people within the team to translate business requirements into working software
I am loyal, hard-working, professional and conscientious and, having studied the job description for this role in detail, I feel the attributes I possess are a strong match. Whilst at work, I am someone who takes pride in delivering each task to a high standard and I achieve this by working closely with other people within the team. I also make sure I obtain a clear brief from my manager or supervisor as to what they want to me to achieve whilst working in the role I am employed. If successful, I am looking forward to learning the role quickly and getting to know as much about your products and services, so I can start contributing and making a positive impact within the organization.
Q2. Why do you want to work for us?
TIP – Tell them you are seeking long-term employment with a positive, forward-thinking company and that you want to be part of a team that are all striving to achieve the same goal.
-------------
I am seeking long-term employment with a positive, forward-thinking company and would allow me to realise my full potential and ultimately make an impact on the people's lives
Q3. How would you deal with conflict with a co-worker?
TIP – Don’t fall into the trap of saying you would leave the conflict for your manager to resolve. The interviewer wants to hear that you would sort out the problem yourself.
-----------
- analyse the conflict and write my observations
- create a list of actions to resolve the situation
- compose my message in a way respectable and non-instigative way
- set a meeting with the co-worker and listen to their side of the story
- adjust my list of actions
- tell them my side of the story and the action points
- compromise on what actions to take
Q4. Why do you want this job?
TIP – They will ask all the other candidates this same question too, so it is imperative you give the interviewer an answer that makes you stand out. Make sure you talk about how you want to work for their company because they are a bright, forward-thinking organization that will support you in your work!
Q5. Tell me about a time when you provided excellent customer service.
TIP – This is a behavioral interview question and my advice is to use the S.T.A.R technique to structure your response. The S.T.A.R technique stands for:
SITUATION – Briefly outline the situation you were in.
TASK – Explain the task that needed to be done.
ACTION – Give details about the action you took, and the action others took.
RESULT – Tell the interviewer the results following your actions. (Make sure the results are positive!)
Q6. What’s your greatest achievement?
TIP – Where possible, give an answer that explains something you achieved with a previous employer. Perhaps you helped a previous employer successfully launch a new product, or even break previous company sales figures for a particular year. If this is your first job, talk about either your educational qualifications, something you did for charity, or how you won a team sporting event.
Q7. Tell me about a time when you were under pressure at work. What was the situation, and how did you get through it?
TIP – The best way to answer this difficult behavioral interview question is to give a situation you were in when you had to work to a strict timescale. If you add a time pressure to the answer, it will be appealing to the vast majority of employers and hiring managers.
Q8. Where do you see yourself in five years?
TIP – When answering this common interview question, put yourself in the shoes of the employer. What do they want to hear from your answer? They want to hear three things:
That you will still be working for them in five years’ time.
That you will have developed to become a highly-trusted and productive member of their team.
That you will help other people to get up to speed when they join the company.
-------------
I see myself grately improving my craft, leading a one of the development team/department at [company] and becoming an expert software architect whilst mentoring up and coming software engineers
Q9. What did you like and dislike about your previous job?
TIP – Do not say you disliked your boss or your work colleagues! Be respectful, but don’t be afraid to say you disliked a particular aspect of your work, especially if it demonstrates you are a driven and enthusiastic person.
-------------
Disliked: strict and narrow release cycles which cost alot of time in planning and managing all the people involved
Liked: alot of learning resources, great employee review and a clear plan to grow within the company
Q10. Describe a time when you disagreed with your boss.
TIP – Again, use the S.T.A.R technique to give a great answer here. Do not say… “I would never disagree with my boss!” This interview question is assessing your ability to disagree with your manager or supervisor in a constructive and beneficial way.
Q11. What’s your least favorite task?
TIP – Be careful not to say something that is part of the job description. It is important that you do give something you dislike doing at work, but don’t let it be an issue for you!
Q12. Tell me about a time you took the initiative to solve a difficult problem.
TIP – Taking the initiative is one of the most important qualities needed at work. It means you are not afraid to take the lead when something needs resolving and you can come up with solutions to difficult problems.
Q13. What are your strengths and weaknesses?
TIP – Give four or five strengths that are a good match for the job you are applying for (refer to the job description if there is one), and then give just one weakness that is not a requirement of the role. It is important to say you are always seeking to improve on your weakness at the end of your answer.
-----------------
3 words: Methodical, inquisitive, kind
Strength
- Architecture
- Leadership
- Methodical
- Resolving incidencies
- Kind and helpful
Weakness
- Devops
- Frontend
Q14. Tell me about a time when you did something at work that had a positive impact on your team or the organization.
TIP – Doing something positive at work could include saving the business money, providing great customer service that goes above and beyond, increasing sales, making a suggestion that improves systems or processes, or undertaking a training course that improves working efficiency.
Q15. Why should we hire you?
TIP – When you answer this common but difficult interview question, it is important to use the following three phrases:
#1. Add value.
#2. Commercially-aware.
#3. Fast-learner.
Q16. Talk about a time when you had to work closely with someone whose personality was very different from yours.
TIP – This question is assessing your ability to willingly and cooperatively work with anyone within a team. It takes all types of personality to make a strong team, so give a specific example (using the S.T.A.R technique) where you worked with someone who had a very different personality to yours.
Q17. Describe a time when the team you were a part of was undergoing some change. How did the change impact you, and how did you adapt?
TIP – Change is a very important part of all successful organizations. For a business or company to stay at the forefront of its industry, change must be embraced by everyone within the team. Give a specific answer that demonstrates you always embrace change positively and you adapt to it quickly.
Q18. What motivates you?
TIP – Give a mixture of personal and professional motivators and do not say you are motivated by the weekends!
Q19. Tell me about a time when you had to collaborate with a coworker who was difficult to work with.
TIP – This is a difficult interview question to answer correctly. It is assessing your ability to put differences aside and focus on the task in hand. It also assesses your ability to build positive relationships with your co-workers.
Q20. Describe a time when you had to be flexible in a work situation.
TIP – The most effective way to answer this question to gain the highest scores possible is to give a situation where you volunteered to help your employer when asked to.
Q21. Describe a time you had to give a person difficult feedback?
TIP – The situation you give to this interview question can either be work-related or from your personal life. Demonstrate your ability to give feedback using tact and diplomacy.
Q22. Describe yourself in three words.
TIP – When answering this interview question don’t be afraid to sell yourself and remember to explain why you chose the 3 words. Make sure the words are positive and something they will remember you by!
---------
Methodical, inquisitive, kind
Q23. How do you respond to stress and pressure?
TIP – Stress and pressure are part of everyday working life. Show you are not fazed by stress or pressure and that you cope with it by remaining calm and focused on your job, and by being organized in your work.
---------
- meditate
- talk to friends and family
I further try to mitigate the stressers in the first place ie setting up systems and tools to handle it
Q24. Describe a time when you got frustrated or angry at work.
TIP – The most effective way to answer this interview question is to talk about how you got passionate about a situation that impacted the organization you were working for. Do not say, I never get frustrated or angry, because we all do from time to time!
Q25. How would you deal with a customer complaint?
TIP – There is a very simple process for dealing with customer complaints that only takes a few seconds to learn. Make sure you learn it before you attend your job interview. It involves listening to the customer, allowing them to speak, apologizing for the complaint, coming up with a solution and taking steps to prevent the same complaint from happening again!
Q26. When have you gone above and beyond for a customer?
TIP – This is your opportunity to show the interviewer what great customer service is! Again, use the S.T.A.R technique to structure a brilliant answer that shows you have the knowledge and the experience to do a great job for them! Remember, going above and beyond means literally going out of your way to do something of significance for the customer.
Q27. Why are there gaps in your employment?
TIP – Whilst it is important to be honest about any gaps in your employment, I believe the best way to answer this question is to show you used your time away from work in a positive way. Perhaps you went traveling to experience different cultures or you took time off work to raise your family.
Q28. Why did you leave your last job? Why do you want to leave your current job?
TIP – Do not be negative of your previous employer or your work colleagues. If you leave your job on good terms, the interviewer will view this positively!
Q29. How did you find out about this job?
TIP – Demonstrate that you have been keeping an eye out for vacancies to come up with their company. This is much better than applying on the spot because the job looks appealing.
Q30. What are your salary expectations?
TIP – Before you attend your job interview, look to see what the average salary range is for the position you are applying for. This can be achieved on GlassDoor.com or PayScale.com. Then, ask for a salary that is slightly below the top average range and justify why you are asking for that amount.
21 tough interview questions
===============================
Q2. Why do you want to work for our company?
Q3. When have you provided excellent customer service?
Q4. Why do you want to leave your job?
Q5. What’s your biggest weakness?
Q6. Tell me about a time when you worked as part of a team?
Q7. Tell me about a time when you managed multiple tasks all at once?
Q8. What’s your biggest achievement in life so far and why?
Q9. Explain a situation you were in when you handled a customer complaint?
Q10. What are your strengths?
Q11. What would you do if you didn’t get on with someone in your team?
Q12. Tell me about a time when you demonstrated strong customer service skills?
Q13. When did you have to complete a difficult task whilst under pressure?
Q14. Describe a stressful situation at work and how you handled it?
Q15. When have you shown flexibility at work?
Q16. Describe a time when you worked alone on a project or task for a long period of time?
Q17. What was the last piece of professional development you undertook?
Q18. Tell me about a time when you overcame conflict in a team?
Q19. Where do you see yourself in 5 years' time?
Q20. What are your salary expectations?
Q21. Do you have questions for the panel?
----------------------------------------
JOB INTERVIEW TIP #1
Make sure you READ the job description before you attend the interview! This document is crucial to your success. If you fail to read it, how do you know what is required of you in the role? By reading and studying the job description you will be able to answer confidently interview questions such as what are your strengths and weaknesses, why should we hire you and tell me about yourself.
JOB INTERVIEW TIP #2
At the end of your interview, you will have the chance to ask the interviewer some questions of your own. Make sure you ask three smart and intelligent questions and avoid questions that cover pay, holiday, or future advancement opportunities!
JOB INTERVIEW TIP #3
The number one mistake made by the majority of candidates during an interview is being negative. It is essential that you smile, you are polite and you talk positively throughout the duration of your interview. Don’t be negative about your previous job, your former work colleagues or your boss! Always be positive and remember to SMILE!
JOB INTERVIEW TIP #4
Read your resume or CV before you attend your job interview. Whilst the interviewer should have a copy of this document in front of them at the interview, they may ask you to read through it for them! The interview question may go, talk me through your resume, or talk me through your CV. You should be familiar with this document prior to attending your interview and be able to talk through your work experience with confidence.
Skills to learn
===================
hexagonal architecture, elasticsearch, rabbitmq, SQS, jenkins, redis, prometheous, instana, AWS, Splunk, Ansible, Terraform, Jenkins, Docker and Kubernetes, React, React Native, Redux, sql, Kafka, Docker, GitLab
MySQL, Postgres, Redis, MongoDB, Cassandra or s Experience working with cloud platforms like GCP, AWS or Azure. Experience working on modern technologies / architectures such as DB
Sharding, Redis Sharding, Websockets, SNS, GRPC etc.
understanding of Kafka, SQS, etc.
Anthos
- K3S
- Zenko
- gRPC
Remote work strategy
- visibility of work
- communication
- coding standards
- governance thru code
Turing prep resouces
=====================
Coursera – https://www.coursera.org/learn/algorithmic-thinking-1
Hackerrank – https://hackerrank.com/
Codility – https://app.codility.com/demo/take-sample-test/
Khan Acadamy – https://www.khanacademy.org/computing/computer-science/algorithms
Data structures and algorithms – https://leetcode.com
System Design – https://github.com/donnemartin/system-design-primer
OOP & Design Patterns – https://www.youtube.com/playlist?list=PLF206E906175C7E07
Git – https://git-scm.com/book/en/v2
Dynamic programming
-----------------------
https://leetcode.com/problems/longest-increasing-subsequence/editorial/
1. First, we need some function or array that represents the answer to the problem from a given state. For many solutions on LeetCode, you will see this function/array named "dp". For this problem, let's say that we have an array dp
2. Second, we need a way to transition between states, such as dp[5] and dp[7]. This is called a recurrence relation
3. The third component is the simplest: we need a base case. For this problem, we can initialize every element of dp to 1
Bloomberg Coding Interview tips
------------------
- clarifying questions
- articulate
- solve the question
- communication*
Leetcode
==============
General
-----------
- BFS use only traversal because recurssion stack will conflict with queue
- acyclic: no cycles
coding unblocking
---------------------
- work backwards in array
- convert linkedlist to array
- swap symbols; ==, !=, >, <
- think through the base cases ie empty strings, same length, single element
-
system design
--------------
Steps
~~~~~~
- functional requirements
- non functional requirements: scale(volume), performance/rps(latency)
- specific feature
- rest api design
- metrics: data, rps
- high level design(few components)
scale
~~~~~~~~
- CDN
- circuit breaker
- cache: redis, inmemory
- indexes
- horizontal scaling
behaviour interview
---------------------
- use numbers
- use I
- don't be verbose
Skills to learn
================
Development experience of building distributed solutions on GCP using Cloud Functions (Python), Cloud Run, GKE.
• Understanding of GCP networking and security mechanisms for authentication and authorization in GCP using service accounts, roles.
• Understanding the security model for, and practical aspects of, VPCs, Access APIs and services options such as Private Service Connect, Private Google Access, Serverless VPC Access.
• Competence to review the security setup of the above components and services, and the usage of libraries (Python or C#) in this context.
• Experience of BigQuery and Dataform for storage and transformation of structured data.
Additional relevant experience and knowledge:
• Composer (Airflow) and Workflow.
• GCP Event model (Eventarc vs PubSub events) including security.
• Logging (writing to logs, query definitions, integration to other components and alternatives).
• Alternatives to BigQuery such as Cloud SQL.
• App Engine
Behavioral interview structure
--------------------------------
An introduction to Fever’s business model, structure and culture.
Prepare to discuss your background and previous professional experiences, as well as the reasons for you to consider joining us!
We will ask some questions regarding your technical skills - topics such as systems and architecture design, software testing, CI/CD, mentoring or applying best practices will be covered.
We will share further details about our recruitment process, our benefits and our perks as a company.
You will have some minutes at the end of the call to ask any questions you might have for us!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment