creational
structural
behavioural
s
Spring
container vs VM
docker
https://www.interviewbit.com/docker-interview-questions/
K8s
https://www.interviewbit.com/kubernetes-interview-questions/
Design Patterns
https://www.journaldev.com/1827/java-design-patterns-example-tutorial#strategy-pattern https://www.journaldev.com/1827/java-design-patterns-example-tutorial#template-methodpattern https://www.journaldev.com/1827/java-design-patterns-example-tutorial#builder-pattern https://www.journaldev.com/1827/java-design-patterns-example-tutorial#decorator-pattern https://www.geeksforgeeks.org/singleton-design-pattern/ https://www.geeksforgeeks.org/abstract-factory-pattern/ https://dzone.com/articles/factory-method-vs-abstract http://www.codespaghetti.com/java-design-pattern-interview-questions/
Code Smells
http://www.programmergirl.com/identifying-code-smells-java/
Code Coverage
https://www.atlassian.com/continuous-delivery/software-testing/code-coverage
Mocking
https://www.softwaretestinghelp.com/mockito-inteview-questions/ https://examples.javacodegeeks.com/core-java/powermockito/powermockito-tutorialbeginners/ https://www.youtube.com/watch?v=8S8o46avgAw
Unit & Integration Testing
https://www.toptal.com/java/unit-integration-junit-tests
SOLID
Ports and Adapters
https://www.thinktocode.com/2018/07/19/ports-and-adapters-architecture/ https://medium.com/@codespeaks/a-quick-and-practical-example-of-hexagonal-architecturein-java-7334e7f2ad43
Git
https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow https://www.freecodecamp.org/news/an-introduction-to-git-merge-and-rebase-what-theyare-and-how-to-use-them-131b863785f/
Jenkins
https://www.youtube.com/watch?v=7KCS70sCoK0
Sonar
https://www.youtube.com/watch?v=BuT1Ji0P9Ug
Test Driven Development (TDD)
https://hackernoon.com/introduction-to-test-driven-development-tdd-61a13bc92d92 https://www.youtube.com/watch?v=y8TcPr73Bwo https://www.youtube.com/watch?v=s9vt6UJiHg4 http://aspiringcraftsman.com/2012/04/01/tdd-best-practices-dont-mock-others/ https://github.com/testdouble/contributing-tests/wiki/Don't-mock-what-you-don't-own
Behavior Driven Development (BDD) & JBehave
https://www.youtube.com/watch?v=VS6EEUVZGLE https://www.toptal.com/freelance/your-boss-won-t-appreciate-tdd-try-bdd https://www.youtube.com/watch?v=kNieSSoynW4 https://www.youtube.com/watch?v=eV7kBt89pWU https://www.youtube.com/watch?v=dmqkCS8sPL4
DDD
JWT
OAuth and its types
https://www.youtube.com/watch?v=996OiexHze0
OWASP
Spring Security
https://www.youtube.com/watch?v=X80nJ5T7YpE
https://www.youtube.com/watch?v=Dbxzw0cpxBU
Spring scopes
Exception Handling
https://stackify.com/best-practices-exceptions-java/ https://www.baeldung.com/exception-handling-for-rest-with-spring https://www.toptal.com/java/spring-boot-rest-api-error-handling
Spring Cloud
https://www.baeldung.com/intro-to-feign https://nirajsonawane.github.io/2019/03/21/Simplifying-Microservices-CommunicationUsing-Spring-Cloud-OpenFeign/ https://www.youtube.com/watch?v=aO3W-lYnw-o https://www.youtube.com/watch?v=x1BR0DbuQg&list=PLVz2XdJiJQxz3L2Onpxbel6r72IDdWrJh https://www.youtube.com/watch?v=rlS9eH5tEnY
Microservices
https://cloudacademy.com/blog/microservices-architecture-challenge-advantage-drawback/ https://microservices.io/patterns/refactoring/strangler-application.html https://microservices.io/patterns/data/saga.html https://microservices.io/patterns/microservice-chassis.html https://livebook.manning.com/book/microservices-patterns/chapter-2/25
SSL/TLS/Certificates
https://www.youtube.com/watch?v=T4Df5_cojAs
Pivotal Cloud Foundry (PCF)
https://www.youtube.com/watch?v=IMM58syURi4 https://www.youtube.com/watch?v=okOv450mO7U https://www.youtube.com/watch?v=Mo14JCWcotk
Big O notation
https://www.baeldung.com/java-algorithm-complexity
https://www.interviewcake.com/article/java/big-o-notation-time-and-space-complexity
Problem Solving (Problems on arrays, linked list, Strings etc.)
https://www.geeksforgeeks.org/subarraysubstring-vs-subsequence-and-programs-togenerate-them/ https://www.geeksforgeeks.org/sum-of-all-subsequences-of-an-array/ https://www.geeksforgeeks.org/write-a-program-to-reverse-an-array-or-string/ https://www.geeksforgeeks.org/minimum-halls-required-for-class-scheduling/?ref=leftbarrightbar https://www.geeksforgeeks.org/count-of-elements-on-the-left-which-are-divisible-by-currentelement/?ref=leftbar-rightbar https://www.geeksforgeeks.org/sum-even-odd-elements-array/ https://www.geeksforgeeks.org/maximum-number-of-unique-values-in-the-array-afterperforming-given-operations/?ref=leftbar-rightbar
Other Important Topics
https://howtodoinjava.com/interview-questions/spring-mvc-interview-questions-withanswers/ http://tutorials.jenkov.com/java-concurrency/java-memory-model.html http://tutorials.jenkov.com/java-concurrency/index.html http://tutorials.jenkov.com/java-concurrency/deadlock.html http://tutorials.jenkov.com/java-concurrency/deadlock-prevention.html https://www.baeldung.com/java-executor-service-tutorial
Performance Improvment in Microservices
Security in microservices architecture
C's Of Security: code, container, cluster, and cloud/co-lo/ corporate datacenter.
Coding
force push code from backend to frontend : https://stackoverflow.com/questions/34388614/how-to-force-update-single-page-application-spa-pages
How to spin frontend standalone as microservice
Loadbalancer vs API gateway
Use another server instead of tomcat in spring
how to use cache and types of cache: local n remote cache Eg
Implementation of rabbitMQ
customer object as key in hashmap? condition : make it immutable
two instance object acccesing synchronied method: both can run at sametime. make it static
java stream API performance comparison with normal for loop
Java API gateway
Frontend App Tuning
Query Performance tuning : https://mode.com/sql-tutorial/sql-performance-tuning/
Partitioning Postgresql for storing data : https://hevodata.com/learn/postgresql-partitions/
Multistage docker file for making hosting react app in docker image with nginx server
CloudFare as entry point . Its A DNS service
Virtualisation vs Containerisation:
https://middleware.io/blog/containerization-vs-virtualization/
Proxy vs Reverse proxy vs Loadbalancer
Ingress Vs loadbalancer: https://www.baeldung.com/ops/kubernetes-ingress-vs-load-balancer
Example of event sourcing:
Event Sourcing is a pattern for storing data as events in an append-only log. This simple definition misses the fact that by storing the events, you also keep the context of the events; you know an invoice was sent and for what reason from the same piece of information.
Good examples for Event Sourcing are version control systems that stores current state as diffs.
Scaling of microservces
1. Horizontal scaling
2. Vertical scaling
Loadbalancer and consistent hashing
Http add security -> Https
flatMap in java : list of list to list , List::Stream
indexing in database, composite index, covering index
configuring security in API
Static memeber can be overloaded or overriden or inherited
Database
How to update millions of record in Db without loosing data
how Db instances remains in sync
how global variables maintain values across different nodes
how to perform sharding
How to limit no of request per second in spring boot.
How events are sent to MQ
How distributed caching works
Refresh token scope and how to update confiugration at runtime in spring boot
CorelationId in log4j.xml. https://plrogoman.wordpress.com/2015/05/13/log4j-adding-a-correlation-id-to-your-logs/
Concept of MDC in logging
HPA in k8s for autoscaling
Logging
Performance/ Health Checks
Caching: write thru vs write back
Queue: Failure of message queue, RabbitMQ(lucene or inverting indexing), how indexes created.
loadbalalncer algorithms
OOPs Design Principle :: DRY, KISS, YAGNI
Hystrix vs Hikari
ELK stack
TIG stack
Prometheus
RabbitMQ
Kafka
React
Redux,
Typescript
Docker
K8s
Azure
AWS
terraform
database normalisation& querying
String programs
Array programs
data Structure programs
Dynamic programs