Hiring Questions, Startups
Tags: hiring, java, beginners, career
Published: 2022-02-07 16:05:00

# Interview Process
Ask them to tell you a little about themselves, talk about the projects they have worked on in the past, describe what kind of projects they hope to work on in the future, and find out why they are interested in your company.

Ask the candidate to teach you something.
Give the candidate a chance to learn something.

Ask her to keep answers short.About 1-2 minutes 

What are you studying?
Who is your favorite author?

# What to look for
# Smart/gets things done
Make decisions with imperfect information, and understand that done is better than perfect.
Programming, especially in a startup, requires intelligence more than knowledge.

Do a deep dive on functional programming versus object-oriented programming?
Ruby on Rails and SpringMVC?
How would you build a URL shortener for Twitter?

## Your goal is not to assess the candidate’s existing knowledge, but to get them to the point where they don’t know the answer ahead of time. The kind of smart person you’re looking for is someone who can turn that unknown into a known.

Find something interesting on their résumé, or ask them for the accomplishment they are most proud of and keep asking deeper and deeper questions until you get to the point where you don’t know the answer ahead of time

## Culture fit

Consider if you’d want to have lunch with this person every day; if you’d want them to review your code; if you’d want to spend time mentoring them or learning from them; if you’d want them calling you at 3 a.m. when the site goes down.

## Good communication skills

Do they maintain a blog, and if so, can you follow their writing? Could they give a talk at a conference? Can you understand their code?

## I would be OK reporting to them
This final item is a quick sanity check on all the previous ones. If you would never want this person as your boss

- Cloud?
- Functional Programming?
- Monads?
- Patterns Circuit Breaker?
- Reactive, Reactor?
- Hexagonal Architecture ?
- Domain-Driven Design?
- Books Martin Fowler?
- Event-Driven Pattern?
- Design Patterns? 
- Concurrency Volatile, Synchronized?
- Relational vs NoRelational?
- Queue, SNS?
- Cache?
- OAuth2 ,Security JWT ?
- Unit Test?
- Mutation Test? 
- Contract Testing?
- Performance Testing?
- Code Review & Branching Strategy (Trunk Based Development vs GitFlow)?
- IaC?
- Jenkins, Chef, Puppet, Ansible, Packer, Istio, Service Mesh?
- Docker, Java Frameworks (Quarkus, Spring, VertX, Play)? 
- Pattern Matching, Errors In a functional Way?
- Dependency Injection?
- Rest Maturity Level?
- Complexity?
- [A]symmetric Algorithm?

[java-questions](https://github.com/in28minutes/JavaInterviewQuestionsAndAnswers)

[spring-questions](https://github.com/in28minutes/spring-interview-guide)


## Remoter
What are the three smartest people you have ever met?
What's the hardest problem you have resolved?
What's the most extreme thing you have done to achieve your goals?
What's your goal in life?

## Scenarios
What would you do if... 
- Multi-tenant architecture is required 
- Overload Database in production 
- We need to deploy daily 
- Give Feedback to a low performance peer
- Promote an idea within the organization 

## Craftsmanship

### The Business perspective

The interviewee doesn’t ask any questions about the work or about the company during the interview, it may be a sign that he is just looking for a job, regardless of which one. If the interviewee asks loads of questions, we can assume that she really cares about her career and finding the right company. 

###A Candidate’s Perspective

It is vital that developers learn how to use interviews as an opportunity to understand more about the company and the people whom they will, potentially, be working with.

There are a few things to pay attention to who is the interviewer? Is she a project manager, a developer, a team leader, or an architect? How many people are we being interviewed by? Is it a single-phase or multiphase interview process? What are the types of questions we are being asked? Is the interviewer following a script with predefined questions or just having a conversation? Are the questions specific or totally open? Is the interviewer more interested in binary answers to technical questions or more interested in knowing us better?

Test-Driven Development (TDD), clean code, refactoring, pair programming, and Agile methodologies, all should be part of our interview process. If we need to improve the design of our applications, we should test and hire someone who has great design skills.