Kira’s dev notes#
Just yet another developer notes which I have made for my reference and re-collection.
Credits#
[TODO]
Composition pattern
Straggler Problem
Tumbling Windows - Apache Flink
Stream Processing
https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-split-index.html#how-split-works https://stackoverflow.com/questions/46236029/why-does-elasticsearch-still-use-simple-routing-value-using-modulo/67766224#67766224 https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-split-index.html#incremental-resharding
Rate Limiter
Why?:
Prevent DDoS
Implement service limits like free user can make 100 calls per day
Prevent abuse or brute-force attacks e.g., login
PS IMP#
Microservices Patterns:
Saga
Transactions (please research on these)
CQRS
API Composer
Service Discovery
Circuit Breaker
Caching (in MS or Application level)
Exposure on Hystrix, Eureka – Good to have
Swagger for API Documentation
How to roll back the Transactions in case of exceptions, How to cancel?
CQRS in API and DB
OAuth 2.0
API Gateway:
Any enterprise API gateways like Kong, APIGee, Mulesoft, AWS API gateway, Zuul etc, Policies, roles and responsibilities, reverse proxy, rate limiting, filters etc.
Deep understanding of SOLID design principles – Must have
Design Patterns:
Adaptor
Builder
Decorator
Factory
Singleton
Strategy
Template
Generics Upper and Lower Bounds, Wild Card, Type Eraser
Collections:
HashSet
LinkedHashSet
TreeSet
Hashmap
HashTable
LinkedHashMap
TreeMap,
ArrayList, Vector, LinkedList
When should we use linked blocking queue and when array blocking queue
Implementation of blocking queue
Executor Framework, Deadlock, Fork & Join, Synchronization, Latch and barrier,
ReentrantLock
How do you take Heap dump in Java?
What’s the difference heap dump and Thread Dump?
Blocking Queue functionality (Array and Linked)
Concurrent Hashmap internal working, Difference between Concurrent Hashmap and hashmap
CompletableFuture
Thread pool and its implementation. How to write a custom thread pool? Different types of Threadpool – Fixed, Cached, - Single, Scheduler, Work Stealing
Object level vs class level locking
wait()
,notify()
andnotifyAll()
with use casesDifference between
Callable
andRunnable
InterfacesDifference between
yield()
andjoin()
Semaphores
Profiler
JVM Configuration
GC Algos (Mark & Sweep, Series & parallel GC, Full and partial GC) should be aware how to do memory profiling
Java 8
Lambda Expressions
Streams (Parallel, Serial, lazy), Streams
Predicate
Function Interface and its various flavours
CompletableFuture
Optional in Java 8
Able to write queries using different types of aggregate functions, Group By, Having Clause
Good understanding of indexes – Clustered and Non Clustered, Concept of sharding in databases
NoSQL experience is a huge advantage.
Event based programming
Distributed Tracing
Scaling
REST API: Versioning, Pagination, Mocking
Production Support/Production Deployment & Bug Fixing (Canary/Blue Green deployment)
How have you been involved? Production deployment checklist that was followed and operational steps taken?
Log Monitoring Tools:
ELK Stack, Splunk, Grafana