Java Final2 Edited
Java Final2 Edited
Illumina is a biotech software company that manufactures integrated systems for genetic
analysis. My role involves providing solutions to various vendors by managing vendor
portfolios and processing reports. I develop APIs and services to streamline the delivery of
sequencing and genomic solutions. Our technology stack primarily includes Java Spring
Boot-based microservices and PCF for deployment. On the front end, we use Angular and
TypeScript.
Overall, I have extensive experience as a Java developer, with expertise in both front-end
and back-end development. I have worked with Angular, React, JavaScript, and TypeScript.
On the back-end, I specialize in microservices, REST APIs, and database management.
Additionally, I have experience with messaging systems such as Kafka and RabbitMQ. I am
proficient in CI/CD pipelines, using Jenkins for build and deployment processes, and have
worked with cloud providers like AWS, deploying services to Elastic Compute and Elastic
Kubernetes Service. I also have experience with AWS Lambda functions and DynamoDB.
I have seven years of experience in full-stack software development, mainly working with
microservices and APIs in the Java ecosystem, with some exposure to front-end
development using JavaScript, TypeScript, and frameworks such as Angular, React, and
Node.js.
In my most recent project at Early Warning Services, I worked on a credit and risk payment
platform that collaborated with various fintech companies to protect financial data and
provide consumer reports. My role focused on the back-end layer of this financial platform,
integrating with different banks and aggregating transactional data from multiple sources.
This data was used to track customers' financial activities, assess risks, and manage
payments. The tech stack included Java, Spring Boot-based microservices, AWS, and
Kafka, with front-end technologies such as JavaScript, TypeScript, and Angular.
Creating reusable UI components, managing state with Redux and Context API, and
optimizing performance through lazy loading and memoization.
Building and maintaining scalable and robust back-end services using Spring Boot.
Implementing RESTful APIs and integrating them with relational and NoSQL
databases.
Utilizing Java 8 and 11 features such as Streams API, lambda functions, and
CompletableFuture to enhance performance and maintainability.
Dependency Injection is a design pattern where a class receives its dependencies from an
external source rather than creating them itself. For example, in a Spring Boot application,
when initializing components, all dependencies are registered in the application context.
This allows for the injection of service components into controllers, promoting better code
maintainability and testability.
Uniform Interface: APIs should follow HTTP methods such as GET, POST, PUT,
PATCH, and DELETE.
The Choreography pattern is a type of Saga pattern where each microservice has an event
handler. Each local transaction publishes changes to a handler, propagating updates to
other events through a publish-subscribe mechanism. This approach allows for event-
driven workflow execution across microservices.
MongoDB is a document-based NoSQL database ideal for storing key-value pairs and
JSON-like structures. It supports Multi-Version Concurrency Control (MVCC), allowing
multiple transactions to run concurrently while reducing conflicts. Features like read and
write concerns, transaction isolation, and lock timeout ensure data consistency and
performance.
SSO enables users to authenticate once and access multiple services seamlessly. Key
components include:
Q7. Can you discuss the concept of rate limiting in RESTful APIs?
Rate limiting controls excessive requests from malicious users or bots, preventing system
overload and resource starvation. Different types include:
Spring Boot provides a global exception handler called @ControllerAdvice, which allows
centralized error handling. Common HTTP error codes include:
401: Unauthorized
403: Forbidden
I worked on Policy Center, a back-end application that facilitates the lifecycle of insurance
policies, including provisioning, fulfillment, renewal, subscriptions, and quotes. The
architecture was microservices-based, built using Java and Kotlin with Spring Boot.
Services were containerized using Docker and orchestrated via Kubernetes.
Communication between services was handled using RESTful APIs and Kafka for event-
driven messaging. The database stack included DynamoDB for NoSQL use cases and
Oracle RDS for relational data.