I joined Capgemini as a Cloud Solutions Architect and happy to share my profile is on the expert's page of Capgemini Sweden.
Monday, June 14, 2021
Sunday, May 23, 2021
Tips preparing for Professional AWS Solution Architect Exam
I recently cleared my AWS Solutions Architect Professional Exam with a total of 948/1000 and thoroughly enjoyed preparing for the exam. I spent a total of 6 months of preparation. This is in spite of the fact that I got 1000/1000 in the Associate Architect exam last year.
The exam as such is really tough. It not only evaluates one's knowledge and experience on AWS, but one also has to strategize for reading lengthy questions, time each question, and also be prepared to sit continuously for 190 minutes to finish the exam.
Below are some of the learnings and tips that I can share so that one can make good use of and benefit from studying for the exam. Preparation of the exam can be divided into basically 3 phases
Phase 1 Preparation
To start with, the exam requires considerable experience on the platform, I would say at least 2 years of hands-on experience on core AWS services. I would definitely recommend passing the Associate exam as the Professional one is way too tough.
a) Plan for taking a course and stick to the same. Select a course with a good rating on popular training sites like Udemy/Coursera or Udacity. Try out different courses for few days and choose a course where you are comfortable with the language and flow of the course. The basic content of all the highly rated courses is more or less the same. Also, choose a course that has practical samples on the topics that one is not comfortable with or has not worked on.
b) Plan a date and book the exam date. Choose somewhere between 2 to 3 months. AWS allows you to change the date twice for a booked exam.
c) Create a personal AWS account to practice as the exam covers way too many services which one may not have implemented in day-to-day professional work.
d) The exam is not theoretical and requires vast experience in the services. There are several real-world scenarios based questions and there are multiple ways to solve a specific problem. Read through a lot of use cases from different organizations especially the ones from the latest AWS re: Invent.
Phase 2 Preparation
In this phase, get deeper into the course and practice the below points in structuring and helping to know the services better.
a) AWS adds new services very frequently and one has to be well versed with each and every service that is present especially the new ones. AWS updates all the latest services in the below white paper.
AWS overview - https://d1.awsstatic.com/whitepapers/aws-overview.pdf
b) Each of the areas has several services that can perform the same task. Try to analyze which services are the best fit when considering Non-Functional requirements of Cost Optimization, Scalability, Performance, Duration, Automation, Scalability, Availability, Reliability, Security.
a) It is very difficult to master each and every service in depth. So, it is absolutely ok if one knows just the basics of certain services.
b) During this phase ensure you are at ease writing practice tests and are able to attempt 45-50 questions in a single sitting.
c) Your accuracy has improved and so has your reading speed. When attempting questions you are now more confident eliminating the wrong options.
d) By this time you will know that you have the confidence and better hold on the exam. If time is not a barrier, based on your comfort level try to push yourself to prepare and postpone the exam by a week or 2. This will just help you revise multiple times and improve the chances of clearing the exam.
Monday, December 28, 2020
Wednesday, November 11, 2020
Thursday, October 1, 2020
Building Composite Architectures
Recently after Gartner in its recent report highlighted “Composite Architecture” or “Composable Architecture” as one of the five emerging trends in modern innovation and technology for the next 10 years. I started coming across this topic in various technical forums.
“Composability” as such is not a new topic, as we have used this frequently in object-oriented programming to achieve Polymorphism. In software architecture terms it is defined as the combination of software systems to produce a new system. In other words, it is directly connected to the goal of agility and reusability and the whole crux of it is to respond to the changing business spectrum.
Domain-Driven Design to build Composable Application
If we take a step back and go back to the way a simple application created using domain-driven design using an onion architecture. The orchestration layer plays a pivotal role in making an application composable by interacting directly with the repository or service layers.
The orchestration layer as such can either be a WebHooks API, a Data importer, API Controller, Messaging service, or a simple REST or SOAP request.
This kind of atomic structure if done properly can result in designing a system that is open to change its external integration seamlessly and also meet the changing business landscape.
Atomic Architecture
If we take the earlier example and apply it in a larger context, the below visualization depicts a circular relationship between different layers in a typical business domain.
Elements of Composable Architecture
The basic building blocks of a composable system is still around the foundation of Containerization, Microservices, Cloud, API’s, headless architecture, etc.
Conclusion
With a Composable mindset, organizations can uplift isolated business operating models and move towards a more practical loosely coupled technology landscape where systems can be plugged in and out flexibly.
This kind of model perfectly fits with organizations adopting agile ways of working or building modern omnichannel integrations with different types of native Cloud-based SaaS platforms.
This model can also be applied to bridge gaps across the entire ecosystem of legacy and modern applications including areas of a unified experience, operations, transformations, infrastructure, external and internal system integrations.
Thursday, July 30, 2020
Friday, June 19, 2020
10 Fundamental Principles one needs to ask before breaking the monolith platform
Below are some of the key principles that need to be evaluated when one starts to break out services from a monolithic platform.
Thursday, June 11, 2020
The myth of Sharing State when breaking large applications
However, legacy applications are seldom portable, and sharing data or state to all intents and purposes is convoluted. Below are some of the typical concerns that need to be evaluated building or maintaining applications with a single state.
Friday, January 10, 2020
Dealing with Concurrency Issues in large applications
Tuesday, December 17, 2019
Product Oriented Development Methodolgy
- Changes in the organization and team structures
- Changes to the ways of working.
- Product Goal
Definition
Sunday, December 15, 2019
Simple way to create automatic alerts for your application using Slack API
Slack has become one of the most widely used channel for communication between teams in many organizations. It has an open source API that can be used to notify alerts and events to different channels and stakeholders.
Below is a simple spring boot application that uses JPA repository to fetch database contents and communicates to Slack via JSlack api
The spring boot application is present in the following path on github.
https://github.com/shailendrabhatt/spring-boot-slack-notification
Saturday, December 7, 2019
Quick 5 Point Website Inspection for Peak Holiday Traffic
1) Examine the Infrastructure Sizing
Calculating the number of Cores?
Calculate the maximum load or throughput of the system?
Calculate the Average response times?
2) Tweak the Enterprise Search Relevancy
Prioritization of Attributes
Monitoring Search Results
Enterprise Search Engines
3) Keep a Close Vigil on the Browser Load times
Evaluate the Caching TTL
Avoid those Content Publishes
Avoid those External Scripts Calls
4) Tune Database Performance
Evaluate the Database Statistics
Optimize Indexes
5) Network Optimization
Thursday, December 5, 2019
How to develop a quick load test for your micro service application
Sunday, November 24, 2019
Changing Organization Perception in a Microsevices journey - Series Part 6



Do spend resources and time on the monolith and its improvement. Seldom, teams just start concentrating on building new-age technology solutions and hardly spend time understanding the legacy system. Without understanding the monolith, it’s hysterical to even attempt breaking it.
Building Microservices by decreasing Entropy and increasing Negentropy - Series Part 5


Always try to target the first step as is to create a macro service until the core services are demarcated. Once the demarcations are clear it is easy to further split into microservices.
Do not add a dependency to the monolithic platform. Ensure that the new services do not call the monolithic application directly and always access it via the anti-corruption layer.
Concluding Thoughts
- If after building services you are in a situation where all developers congregate to fix production issues
- if teams require several developers and take umpteen number of days to fix issues
- If your applications have several hours of downtime
- If your services cannot be tested as a single entity
- If the teams fear to make changes to the code when adding new features
- If you are reverting code and releases instead of failing fast or failing forward
- If you are building services that access the same database
- If the services and functionality is spread across multiple services and teams
- If your applications take multiple teams and several people to deploy changes to production
- If there are too many services depending on each other
- If your teams are still writing and performing manual tests
- If you are building services with hundred of Classes having hundreds of lines of code
- If you have several services that have not been modified for several months
Building Microservices by decreasing Entropy and increasing Negentropy - Series Part 5
Microservice’s journey is all about gradually overhaul, every time you make a change you need to keep the system in a better state or the ...