Skip to content

Commit 4cb03a7

Browse files
author
Birgit Pohl
committed
Clean up + Adding your questions including diversity questions
1 parent 23781d5 commit 4cb03a7

28 files changed

+280
-29
lines changed
File renamed without changes.
File renamed without changes.
Binary file not shown.

README.md

+50-16
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,75 @@
11
# Interview Questions
22
A collection of questions you can use to prepare for the technical interview. Remember to let the candidate shine and get the strengths out of the candidate and try to be as unbiased as possible.
33

4-
## Table of content
4+
# Table of content
55

6+
## Read this first!
67
- [How to create great questions](./00_how-to-create-great-questions.md)
7-
- [Interview Process](./00_interview-process.md)
8+
9+
## Interview Processes
10+
- [Software Developer](./00_interview-process/software-developer.md)
11+
- [Closing an Interview](./closing-the-interview.md)
812

913
## Personal Assessment
1014

11-
- [Personal Assessment](./01_personal-assessment.md)
12-
- [Get To Know Questions](./01_get-to-know-questions.md)
13-
- [Remote Working](./01_remote-working.md)
14-
- [Engineering Manager](./01_engineering-manager.md)
15+
- [Personal Assessment](./personal-assessment/01_personal-assessment.md)
16+
- [Get To Know Questions](./personal-assessment/01_get-to-know-questions.md)
17+
- [Remote Working](./personal-assessment/01_remote-working.md)
1518

1619
## Technical Assessment
1720

1821
### Computer Science
1922

20-
- [Algorithms and Datastructure](./algorithms-datastructure.md)
21-
- [Object Oriented Programming](./object-oriented-programming.md)
22-
- [Class oriented Programming](./class-oriented-programming.md)
23-
- [Functional Programming](./functional-programming.md)
23+
- [Algorithms and Datastructure](./computer-science/algorithms-datastructure.md)
24+
- [Object Oriented Programming](./computer-science/object-oriented-programming.md)
25+
- [Class oriented Programming](./computer-science/class-oriented-programming.md)
26+
- [Functional Programming](./computer-science/functional-programming.md)
27+
28+
### Way of working
29+
30+
Note: Softskills are not about asking, how someone does a code review, how well someone understand Scrum, or how someones tests code. Softskills are about behavior and communication. Therefore these topics are separated in way of working and personal assessment. Any you see, way of working is sorted under technical assessment.
31+
32+
- [Way of working](./way-of-working/way-of-working.md)
2433

2534
### Javascript
2635

27-
- [Javascript Essentials](./javascript-essentials.md)
28-
- [History of Javascript](./history-of-javascript.md)
29-
- [NodeJS Essentials](./nodejs-essentials.md)
30-
- [ReactJS](./react-js.md)
36+
- [Javascript Essentials](./javascript/javascript-essentials.md)
37+
- [History of Javascript](./javascript/history-of-javascript.md)
38+
- [NodeJS Essentials](./javascript/nodejs-essentials.md)
39+
- [ReactJS](./javascript/react-js.md)
40+
41+
### Java
42+
43+
- [Java](./java/java.md)
44+
- [Spring](./java/spring.md)
3145

3246
### Testing
3347

34-
- [Testing](./testing.md)
35-
- [Unit Testing](./unit-testing.md)
48+
- [Testing](./testing/testing.md)
49+
- [Unit Testing](./testing/unit-testing.md)
50+
51+
### Internet
52+
3653
- [Internet and Browser](./internet-and-browser.md)
3754

55+
### Backend
56+
- [Whiteboard](./backend/whiteboard.md)
57+
3858
### SQL
3959

4060
- [SQL](./sql.md)
4161

62+
### DevOps
63+
64+
- [DevOps](./devops.md)
65+
66+
# Technical Leadership
67+
- [Engineering Manager](./01_technical-leadership/01_engineering-manager.md)
68+
69+
# Time for your questions
70+
71+
Also you should know, if the company fits to you. In this repository you find plenty of questions, to figure out, how the environment looks like.
72+
73+
74+
- [Your questions](./your-questions/your-questions.md)
75+
- [Diversity](./your-questions/divserity.md)

backend/whiteboard.md

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
## Please can you explain in as much detail as you like how a web browser gets a generated page?
2+
1. How does the request reach the backend application?
3+
2. What kind of components are involved and how is a response generated?
4+
3. Describe an arbitrary REST API endpoint.
5+
1. How do you define the packages?
6+
2. Rest Controller, Service, Repository, Dao
7+
3. What kind of HTTP methods would you implement?
8+
9+
## If you need to store a "city" object, what kind of database would you use?
10+
11+
## What do you understand under database normalization?
12+
13+
# Testing
14+
i. Unit Tests
15+
3. Integration Tests
16+
4. End-to-end tests
17+
5. What kind of classes would you test with which kind of test?
18+
v. What are the benefits of each kind of tests? vi. Experience with TDD/BDD in any project?
19+
1. What is your personal choice?
20+
21+
# API
22+
## What kind of characteristics make up a "good" API for you?
23+
1. Create a draft of the classes involved in such an endpoint.
24+
2. How could the underlying database model look like?
25+
3. What kind of things would you test in such an environment?
26+
4. How many Unit/Integration/End-to-end tests would you write?
27+
28+
## What does idempotency mean in REST APIs?
29+
1. What are the pros
30+
1. Fast and continuous improvements i. Versatile: different tech stacks
31+
2. Continuous Delivery iii. Resilience
32+
3. Scalability
33+
4. Faster time to market
34+
2. Cons
35+
1. How do you slice micro-services?
36+
2. System integration tests are more difficult
37+
3. Management of too many micro-services is difficult
38+
4. Architecture is hard to do right
39+
40+
3. Ways of communication between micro-services?
41+
1. APIs, remote procedure calls, event bus
42+
4. How could the data flow look like, starting with the HTTP request?
43+
44+
45+
## Let's dive in deeper into the backend, assuming there is Kubernetes cluster or NGINX with a Spring Boot application:
46+
1. Describe some pros/cons of a micro-service architecture.

clean-code-principles.md

+9-1
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,19 @@ Functionality can be altered by the consumer by means of passing configurations
1919
Can be over engineering, could introduce unnecessary complexity.
2020

2121

22+
## What is your idea of Clean Code?
23+
2224
## In what kind of software aiming to follow open–closed principle is especially valuable?
2325
Framework kind of software.
2426

2527
Widely reused code, with larger consumer base.
2628

2729
When breaking changes are expensive, the extra complexity introduced by making things configurable and dynamic is more likely to pay off.
2830

31+
## Do you know the S.O.L.I.D. principle?
32+
33+
## Do you know the Separation of Concerns principle?
34+
2935
## What does Single Responsibility Principle mean?
3036
There is only one thing a function or method does.
3137

@@ -34,4 +40,6 @@ There is only one reason for something to change.
3440
Maybe a change could have been avoided by allowing extendability, by config? Maybe too many things were hard coded?
3541

3642
## Do you have any non-mainstream views in programming practices?
37-
Your expectations
43+
Your expectations
44+
45+

closing-the-interview.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## Question time
2+
3+
Give the candidate enough time for questions.
4+
5+
🔥 Tip: Arrange your calendar, that you can expand the time. Give 30 minutes more than expected.
6+
7+
## Feedback round
8+
1. Was it too technical or too abstract?
9+
2. Can you give me some feedback on the interview approach? b. Do you have any suggestions on how this could be improved?
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Object Oriented Programming Questions
2+
3+
## Can you explain OOP, Functional Programming, and Procedural programming to me? What do you prefer and why?
4+
5+
## What's your favorite design pattern?
6+
7+
## What's your least favorite anti pattern?

devops.md

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# Devops
22

3+
## CI/CD
4+
5+
### What kind of build steps would you define writing a pipeline?
6+
TODO answer here
7+
8+
### Do you have experience with Kubernetes Deployments and how it works?
9+
TODO answer here
10+
311
# AWS
412

513
## SHORT:

java/java.md

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## How is serialization realized in Java?
2+
TODO: answer here
3+
4+
## What is hashCode and equals in Java?
5+
TODO: answer here
6+
7+
## How does garbage collection work in Java? Different memory allocations?
8+
TODO: answer here
9+
10+
## Follow up: Stack and Heap memory in Java?
11+
TODO: answer here
12+
13+
## What good/bad experiences have you made with Hibernate?
14+
TODO: answer here
15+
16+
## What's the difference between JPA and Hibernate?
17+
TODO: answer here
18+
19+
## How much experience do you have with Java Streams?
20+
TODO: answer here
21+
22+
## Kotlin Experience? What do you like about Kotlin vs Java?
23+
TODO: answer here
24+
25+
## What was the most complex multi-threading problem that you have ever worked on?
26+
TODO: answer here
27+
28+
## Please explain how Java Hibernate works.
29+
TODO: answer here

java/spring.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## Which Spring modules have you worked with?
2+
3+
1. Security, Spring Data JPA, Spring WebMVC, ...
4+
5+
## Can you explain how Spring dependency injection works?
6+
7+
1. Explicit nullable definitions, Boilerplate, more expressive
8+
9+
2. Can be web application/database transactions/inter-service communication etc.
File renamed without changes.
File renamed without changes.
File renamed without changes.

react-js.md javascript/react-js.md

File renamed without changes.

object-oriented-programming.md

-6
This file was deleted.
File renamed without changes.

01_personal-assessment.md personal-assessment/01_personal-assessment.md

+19-1
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,22 @@ Compare expectations from the candidate with values of the company.
3838

3939
## Do you think your previous companies had a problem with gender diversity?
4040

41-
## How do you keep yourself updated?
41+
## How do you keep yourself updated?
42+
43+
<br><br>
44+
45+
# Communication
46+
47+
## What if you get stuck during the sprint?
48+
49+
1. Research?
50+
2. Ask team members?
51+
52+
## How do you solve problems under time pressure?
53+
1. Development triangle: STR-model: Scope, Time, Resources
54+
2. Re-thinking the Scope?
55+
3. MVP thinking?
56+
4. Communication to PO and team members?
57+
58+
## What's your first approach to find solutions to a new problem on a general level?
59+
1. Methodology?
File renamed without changes.

sql.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
1. Problem: we have a working app with sql database on our backend side. At one point, we want to let users see the detailed statistics about the domain of the app. That statistics contains n aggregations, sums, counts, etc.
2-
Question: how would you handle that?
1+
## Problem: we have a working app with SQL database on our backend side. At one point, we want to let users see the detailed statistics about the domain of the app. That statistics contains n aggregations, sums, counts, etc. Question: how would you handle that?
32
Expected answer: SQL Views
43
Inexperienced answer: handle that in business logic
5-
2. Problem: We are storing n million rows to one table every day. At the end of a week we want to form some statistics for the previous week. Our query is taking ~20-30 secs.
6-
Question: How would you optimize this, reducing the cost of the query?
4+
5+
## Problem: We are storing n million rows to one table every day. At the end of a week we want to form some statistics for the previous week. Our query is taking ~20-30 secs. Question: How would you optimize this, reducing the cost of the query?
6+
77
Expected answer: There is really no expected answer here. This questions is to check the candidates knowledge, understanding and depth of sql. A high tier answer would be something like:
88
I'll index the createdAt column in the table
99
then I'll query and sort by createdAt desc , selecting only rows from previous 7 days

testing.md testing/testing.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,6 @@
33
## If you were writing a tutorial "How to fail a software project", what would be the top 5 things?
44
#TODO Please, describe what you expect here
55

6-
## Can you explain to me the terms unit, integration, e2e and fuzzy testing?
6+
## Can you explain to me the terms unit, integration, e2e and fuzzy testing?
7+
8+
## What is a smoke test?
File renamed without changes.

way-of-working/way-of-working.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Code Review
2+
3+
## What is your definition of a good code review?
4+
5+
What if you get stuck during the sprint?
6+
a. Research?
7+
b. Ask team members?
8+
3. How do you solve problems under time pressure?
9+
a. Re-thinking the Scope?
10+
b. MVP thinking?
11+
c. Communication to PO and team members?
12+
4. What's your first approach to find solutions to a new problem on a general level? a. Methodology?

0 commit comments

Comments
 (0)