Java Tech Leads/Sr Developer - Diverse Linx
Phoenix, AZ
About the Job
Job Title: Java Developer
Location: Phoenix, AZ and Johnston, RI (Onsite from Day1)
Duration: Long term Contract
Job Description:
Minimum 10+ years experience required
- Mandatory skills - Java, SpringBoot, Kafka , Event Driven Architecture
- Hands-on experience in Springboot framework
- Must have hands on reactive architecture and understands deep concepts about reactive architecture.
- Hands-on experience in streaming solution/pub-sub for eg: Kafka, solace, etc.
- Performance tuning skills multi threading, monitoring, caching,... (Application level not DB level)
- Be able to debug issues using Grafana/Dynatrace/chromosphere/Splunk/kafka/rollbar/cloudwatch..etc.
- No SQL DB for eg: MongoDB and a solid understanding of when to use what
- Basic SQLs to debug data-related issues
- Good understanding of different types of testing and their importance
- How CICD works ( what is green/blue or canary deployment)
Questions for candidate to self-evaluate if they have the required skills & can clear client interview:
- What is event driven reactive architecture
- Have you worked on reactive architecture - Non-blocking events?
- Kafka usage:
- You are sending asynchronous sending 50,000 records you are producer and there is a consumer who is consuming
i. If few thousand records are missing how do you identify records are missing, how do you ensure that other systems comes to know that the records are missing.
-
- Suppose kafka pipeline is down how do you identify which records are missing
i. 30,000 have been sent
ii. 20,000 are missing
Consumer will assume only 30,000 records exist. How does it know 20,000 messages are lost.
- Back-up pipeline
- Reconciliation process
- Multi-threading in Java what is the concept
- How do we design how many threads I should give to an application?
i. How do you design thread pool size
ii. Have you used any tool to check/analyze how many threads, what is memory, what is CPU Utilization etc.
-
- What % of RAM size you will allocate to your application and why?
i. Why not give 100% of RAM to the application.
-
- How do you avoid deadlock situation
- Experience with NOSQL which one?
- If you have to decide between SQL vs. NOSQL how do you choose?
- What theory do we follow in NOSQL databases?
- Have you heard of GAP theorem
- Have you designed Cache?
- If you have to design a cache in a project, what are the questions you will ask me
- Why cache is faster than DB?
- Have you heard of TTL Time to Live
- Is Redis also a cache?
- How do you do enough logging in your code so that you can catch any issues that may come in production?
- Suppose there is too much memory consumption, how do you debug these issues these you cannot capture in Kibana or by logging.
Diverse Lynx LLC is an Equal Employment Opportunity employer. All qualified applicants will receive due consideration for employment without any discrimination. All applicants will be evaluated solely on the basis of their ability, competence and their proven capability to perform the functions outlined in the corresponding role. We promote and support a diverse workforce across all levels in the company.