In 2019, Google contacted me before I was ready.

Three years later, another message arrived.

Come join AWS!

A lot had changed in those three years.

The email had been sitting in my spam folder for almost a week.

I Loved Learning How Systems Worked

By 2022, I had already spent years becoming curious about the things I once struggled to explain: problem solving, system design, architecture, low-level design, and the reasoning behind software decisions.

A lot of that curiosity came from people I worked with at SELISE and later Shohoz. One of them, Sudipto Chowdhury, used to throw system design questions into normal conversations. How might a Facebook-style news feed work? What happens when the scale changes? What would break first? I loved those discussions.

When I joined Cefalo near the beginning of 2022, I carried some of that culture with me. In my team, a few of us would randomly ask architecture questions, argue about possible designs, and try to reason through them together.

I also had a long LeetCode daily streak. It was not some perfect record where I solved every problem completely by myself. Some days I needed a tutorial. Occasionally life got in the way and I copied a solution just to keep the streak alive. But most days I did the work, and showing up every day kept me learning.

By then, problem solving and system design were no longer things I touched only when an interview forced me to. I had started enjoying them on their own.

Then Two AWS Recruiters Found Me

The spam-folder email was not even the only AWS message. Around the same time, another recruiter had reached out to me too, and I had already started talking to him before I noticed the first email.

For a short while, I somehow had two recruitment conversations moving inside the same company. Once the first recruiter realized another AWS process was already underway, she stepped back and the second one continued with me.

This was only the second time a company at that level had approached me directly after Google. In between, I had applied to plenty of companies myself.

This Time I Knew What I Was Preparing For

I increased the number of problems I was solving, revised low-level and high-level design, went back through system design material, and studied anything I thought could expose a weakness.

A lot of the material was not new anymore. The difference was that now I was organizing it around an interview.

My mindset was strange. Part of me assumed I would probably not get the job. Another part treated it like a personal challenge. I was going to prepare as hard as I could and give it everything I had.

Even if Amazon said no, I knew the preparation would make me better for any other company that expected the same kind of problem solving, design thinking, and communication.

I Might Not Be Able to Attend the Interview

My first important AWS coding interview was scheduled for 8 PM Dhaka time on October 4, 2022. I had taken leave from work so I could spend the day preparing.

When I woke up, there was no electricity.

Normally that would not have worried me much. I had a MacBook Air with good battery life, a UPS that could keep the laptop going for more than an hour, and mobile data as an internet backup. I had prepared for a power cut.

I had not prepared for the power cut to take the internet and most of the cellular network with it.

A major grid failure had pushed large parts of Bangladesh into blackout, including Dhaka. Fixed internet was down. The mobile network became so weak that at one point I had to go to the rooftop with my phone just to get enough signal to send an email.

By around 3 PM, I stopped practicing and shut the laptop down. The battery was no longer for preparation. I needed to save it for the interview.

I considered going to a restaurant or somewhere else with power, but that did not look realistic either. The blackout had pushed people outside, places were crowded, and the network was unreliable there too.

At 7:11 PM, less than an hour before the interview, I sent another email with the subject: "I might not be able to attend the interview."

At 7:30 PM, electricity finally came back. The internet looked stable enough. I sent another message saying I could join after all.

Then the Interview Went Better Than I Expected

I joined still carrying all of that nervous energy.

The interviewer immediately made the conversation easier. He did not feel like someone waiting for me to make a mistake. He felt more like a colleague trying to understand a problem with me.

I do not remember every detail of the problem anymore. I remember how he made the interview feel. That stayed with me enough that even now, when I interview someone, I try to create the same kind of collaborative atmosphere.

The problem started fairly simply and changed as we talked. This time I knew not to jump straight into code. I spoke out loud. I explained the approaches I could see, said which one I preferred and why, and gave the interviewer room to redirect me before I started writing.

The interview ended early, and his feedback surprised me. In effect, he said he did not have much to add. Before he could ask whether I had considered another approach, I had already brought up the alternatives myself.

Three years earlier, an interviewer asking "why?" could expose me. This time I was explaining the "why" before anyone had to ask.

I was very happy.

At 9:29 PM, after the interview was already over, the recruiter finally replied to my blackout email: "Hope you had a great interview."

October 20

On October 6, I received the invitation for the final AWS virtual interview loop. It was scheduled for October 20.

I had almost two weeks, and I used them. I studied around work, used weekends, and took extra annual leave. What I remember from that period is mostly work, food, studying, and then studying again.

By the time October 20 came, I had done as much preparation as I knew how to do.

I still felt nervous, but mostly I was ready to finally get through the day and see how the interviews went.

October 20 came.

I joined the call.

One minute.

Two minutes.

Three minutes.

Thirty minutes.

Nobody joined.

I emailed. No response.

I was upset, but I was not completely surprised.

By then, the technology job market had already started looking bad. Friends applying in Europe were running into hiring freezes, and layoffs were appearing across the industry. I had been watching all of that while preparing.

I had even checked with the recruiter earlier. At that point, my interview was still on. As October 20 got closer, replies became harder to get, but the interviews were still sitting on my calendar.

I kept telling myself not to overthink it. The meetings were still there. Maybe everything was fine. So I joined and hoped for the best.

Then the Market Caught Up With the Interview

Around a week later, I reached out again. The recruiter told me Amazon had stopped interviews for the time being. By then, the wider hiring freeze across tech no longer felt distant. He said that when hiring started again, he would try to put me near the front because I had already reached the final stage.

Strangely, I found a positive side. I had more time. I could revisit the same material, understand it more naturally, and become even better before the process resumed.

Then, later in the year, I saw the recruiter post that he had been laid off from Amazon and was looking for a new job.

So I went back to the other AWS recruiter who had originally contacted me and explained what had happened. I asked whether there was anything she could do.

She told me she had been laid off too.

I was connected with both of them on LinkedIn. Months later, I saw them join new companies.

I was disappointed about what happened to my interview, but at that point I felt worse for them. I had missed an opportunity. They were the ones who had actually lost their jobs.

This Failure Felt Different

I tried again later, after giving the situation time to settle. Over the next couple of years I reached out to other recruiters and explained how far the process had gone. Nothing came from it.

So this became another interview story that did not end with an offer.

But it did not feel like Google, and it did not feel like the interviews where I walked away knowing I had not prepared enough.

This time I had prepared as well as I knew how. I had become better at problem solving. I understood the design topics because I actually cared about them. I communicated well in the interview, and the feedback was good.

And it still did not happen.

By then, I was already familiar with doing my best and still not getting the result. Robotics had taught me that long before software engineering did.

The difference was that this time I did not walk away thinking I should have tried harder.

I had been ready to give my best.