Akash's Blog

_

Showing posts with label Experience. Show all posts
Showing posts with label Experience. Show all posts

Saturday, April 5, 2025

How did I clear SAP-C02?

Introduction

I recently cleared the AWS Solutions Architect – Professional (SAP-C02) exam. It’s an intense experience that truly tests you to the core. This was the toughest AWS certification I’ve taken so far. Clearing it on the first attempt is quite challenging. In this post, I’ll be sharing my exam experience and preparation journey, which I hope will help others too.

Preparation

When I began preparing for the exam, it was mostly about reading content, experimenting on AWS, and browsing the internet to learn from the experiences of others who had cleared it. Initially, I was completely directionless—I had no clear plan. As the exam date got closer, the pressure started to build. Preparing while managing a full-time job made it even more challenging.

I realized that the exam isn’t just about knowing services—it's about applying the right solution for a given scenario, considering all the constraints. I juggled between multiple resources (listed below) and focused on understanding the context and purpose of each service as much as possible.
I focused more on understanding the services rather than just memorizing facts. That doesn't mean you can skip memorization entirely—some questions do require specific knowledge, like API Gateway and Lambda timeouts, maximum allowed S3 object size, CIDR block details, and similar technical limits.

I also tried a couple of mock exams on Udemy for practice, which helped me reflect on my understanding and gave useful feedback on my preparation. It's important to mention—don’t rely blindly on the mock test answers. Always question the answers, understand the reasoning behind them, and focus more on learning than just the scores.

During preparation I focused on following things for all the services which I was studying,
  • When to use primarily?
  • When not to use and alternatives?
  • Limitations and Restrictions
  • Scalability, Availability, Fault Tolerance

Exam

The exam is mentally exhausting and can completely drain you with its scenario-based questions and tricky answer choices. Some options may seem correct at first glance and give you a false sense of confidence, but once you deep dive into the question, you realize they're wrong. In fact, the most obvious-looking answers are often the incorrect ones!

I would recommend following,
  • Time Management is extemely important (I almost failed in this!
  • Use Whiteboard wisely during the exam to find most important clues from the question.
  • Don't rush to answer, take time and re-validate your answer.
  • Flag question for review and move ahead if you don't know. Don't invest time there!

If you have a solid understanding of services in Compute, Storage, Security, and Networking, you should be able to answer more than 50% of the questions, based on my experience. However, that alone isn't enough—you need to score at least 750 to pass the exam.

Summary

If you are planning to appear for this exam, you should be confident enough with the understanding of different AWS services along with their use cases and limitations. This exam is bit difficult to clear if you don't have hand-on experience of AWS in my opinion. However, with proper planning and consistency in study can surely make you clear this exam. All the best! 
 

* The sticky note idea is copied from this reddit thread.


Sunday, February 9, 2025

Three at Thoughtworks



Introduction  

It's been three years since I became a part of Thoughtworks. I wanted to write about my experience after my first work anniversary, but I felt one year was too little and five years too much to reflect on my journey in an organization. So, I decided to write about it at the sweet spot between one and five years.  

Sometimes, I regret not joining this company earlier in my career. Perhaps I wouldn't have made it back then, but anyway, I am here now and truly enjoying my journey of growth. This post is not about claiming whether Thoughtworks is a good or bad place to work—rather, it's about my journey in an organization that has been in the tech industry for more than three decades. These are my personal views and experiences, which may differ from others working at Thoughtworks, but I hope many will find them relatable.  

Life Before Thoughtworks  

Before joining Thoughtworks, I worked in two organizations—one service-based and the other product-based. In both, I learned a lot and kept improving day by day.  

I feel my first organization, SPEC India, played a key role in shaping my interest in programming. I am always thankful to them for their support and guidance—without those early experiences, I wouldn't have found my direction. Due to certain personal reasons, I had to switch to Infostretch (QMetry), which is now acquired by SmartBear. Here, I developed a better understanding of software products and gained exposure to client communication and leadership.  

By the time I considered joining Thoughtworks, I believed I knew a lot. My confidence, or rather ego, kept thriving. I was doing things well, but I was doing them the way my previous organizations expected me to. You may ask, what's wrong with that? The answer is nothing, but at the same time, not everything was right either.  

The Interview Process  

When I decided to switch job in 2021, I applied to multiple companies, including Thoughtworks. The interview process was tiring, to be honest, but things are a bit different now as per my knowledge. It took me five rounds to get through, starting with:  

  1. Code assignment  
  2. Code pairing  
  3. Two technical rounds to assess depth and breadth  
  4. Leadership and cultural alignment  

The interviews challenged my core skills and tested my abilities to the limit, making me realize how little I knew and how much more I should know. The expectation was not to answer everything correctly, but I struggled when I couldn't answer multiple questions—especially when my depth and breadth of knowledge were tested. I wouldn't say I completely failed, but I definitely didn't succeed with flying colors.  

After each round, I received detailed feedback from the recruiter, helping me understand my standing. I remained somewhat positive about making it through, and eventually, I did. I received the offer and accepted it without any negotiations.  

I joined Thoughtworks on December 31, 2021, keeping my promise to myself that I wouldn't be in the same company by the end of 2021.  

Life at Thoughtworks  

Journey So Far  

My journey at Thoughtworks has been filled with learnings and challenges, yet I feel like it's just the beginning. I'm on a path to becoming a better professional, and Thoughtworks is playing a key role in shaping that.  

Immersion  

Immersion is a four-day program that every new Thoughtworker attends. It gave me a glimpse of the Thoughtworks way of working, and I got to learn from the journeys and experiences of other Thoughtworkers. The program prepared me for the role of a consultant and helped me understand Thoughtworks' culture.  

It may sound like a formal, instruction-heavy program, but it was fun, interactive, and filled with games, insights, and refreshing conversations, making it very engaging.  

Dev Bootcamp  

The Dev Bootcamp was organized for all new developers to introduce them to TDD, Pair Programming, XP Practices, and Trunk-Based Development. The trainers handheld us through the process, ensuring we understood the whys, whats, and hows really well.  

Culture  

As I started interacting more, I realized that multiple things are deeply rooted in the Thoughtworks culture. People willingly follow these principles, such as:  
  • Being the sailor of your own ship of ambitions  
  • Being open to giving and receiving feedback  
  • Being ready to take on different roles  
However, coming from a different work environment, I initially felt a slowdown in productivity. I was doing less work compared to my previous organizations, but my quality of work and engagement gradually improved. The culture here expects you to balance work and continuous learning.  

Community  

I'm not sure if I can go into too much detail in this post, but I can summarize my experience.  

Thoughtworks has several thriving communities covering technical and non-technical skill sets. Anyone is free to join and contribute. It’s not just about learning new things—it’s also about collaborating with like-minded people.  

Apart from learning, these communities help you solve real-world problems. If you ever face challenges on a project, you can reach out to the global Thoughtworks community for help.  

People  

Since joining, I’ve had the opportunity to work with and learn from many talented people. I've gained insights from their perspectives and also helped others to whatever extent I could.  

The people at Thoughtworks are not fundamentally different, but the environment they are placed in brings out their best potential. The feedback culture here helps maintain team health and improve collaboration.  

Overall, I have found the people to be cooperative, inclusive, and supportive so far.  

Work  

The work at Thoughtworks can be challenging, depending on the assignment. I struggled to cope with the diverse tech stacks and the variety of domains I had to study.  

Each project was unique and left a different impression on me. The pace is fast, and you are continuously challenged to be adaptable and flexible.  

Summary  

Thoughtworks has changed the way I perceive technology and consulting. Although I faced challenges adapting, the company provides access to resources and people that help you find solutions faster through connections and community.  

That said, Thoughtworks is not a perfect company—no company is. There are ups and downs, just like anywhere else. However, one commendable aspect is its strong stance on diversity, inclusion, and equality, which has been a core value from the very beginning.  

Thursday, July 18, 2024

5 mistakes I made as a software developer



Undoubtedly, mistakes are part of everyone's life. The challenge is to learn from the mistakes and avoid repeating them in future. 

As a programmer, you will gradually improve in career by contributing to different projects, coding contests, pair programming etc. But the major aspect of improvement lies in learning from the mistakes.

Today I will talk about 5 mistakes that I did as Software Developer that I could have avoided.

1. Try to focus more on solution rather than problem

This mistake is not only applies to coding but in general to any problem of our lives. We are so desperately invested in the solution that we forget about the problem or we do not pay enough attention to the problem.

I learned that the more we focus on problem the better solution we can deliver, that will not just give good value to the customer but also a deep and clear insight into the solution as well.

2. Deliver things without enough Test Cases

I have underrated the value of unit testing and especially TDD for a long time. The confidence you get on your work comes from enough and solid test cases, is imppacable. 

The value you build is not just immediate for your confirmation or avoiding issues in your delivery but this is for all those developers writing the code which may impact your changes and can confidently make changes in the same code because of efforts you put in for writing required test cases.

3. Waiting for "good" project to contribute

There is nothing like good or bad project that I learned over course of time. It's a problem and solution cycle for every software developer which we keep on focusing for. If you are looking for a good project or good company, you may wait for longer. 

To learn and experiment anything, do not wait for project to come to you that's a reactive approach, go ahead and create something from the technology which interests you.

4. Shy away from learning from Seniors

You will find many mentors in your career, try to gain as much knowlege you can gain from them. You need to be proactively discuss solutions and understanding with them. This will give you a different perspective and opportunity to align your thought process with the experienced folks.

You would argue that you can learn from courses, youtube or chatgpt. Well you should and you would learn from the internet but the conversations you will do with your mentors can not be replaced with internet for sure that I learned gradually. 

5. Hesitate to ask questions

I always stopped myself from asking the questions during discussions and meetings. Many times the question came to my mind was asked by someone else, and I regreted. Asking questions during presentations, pair programming, team meetings etc. rewards you with many things. Your team understands that you are interested to learn, you get required clarity, you gain confidence, the facilitator feels that you are engaged into the conversation so and so forth. 

However, on contrary if you don't ask, you mainly miss the easy opportunity to practice courage. When your inner  self is resisting and still you ask the question, see how it feels. Moreoever, you missed an opportunity of curiously seeking answers from the learned ones which you may not easily get answer of, on your own.

There are tons of other mistakes, but these 5 I believe could have turned me in a different direction initially, and those who are going to be software developers in the future may learn from them and avoid them as much as possible for better growth and satisfaction. 
↑ Back to Top