By the end of 2019, I was still very confident about myself as an engineer.

I had graduated at the end of 2018 after spending years building robots and helping lead BRACU Duburi, including our autonomous underwater vehicle. I was already working at a startup, and somehow my first real job title was Senior Software Engineer.

There is a whole story behind that title. I wrote about it in I Started as a Senior Engineer by Accident.

The strange part was that I was actually doing well at the job. I was wearing every hat I could, building things, solving problems, and shipping a freight management system that people were using. But the more I studied software engineering, the more I started wondering whether I was learning it properly.

That did not scare me much. When it comes to learning, I have never had much ego. If I knew I was missing something, I could study it. The harder problem was not knowing what I did not know.

Earlier that year, my first proper software engineering interview had been with Google Taiwan. I did not pass it, but even that somehow left my confidence mostly intact. My conclusion was simple: I needed to prepare better next time.

Finding NewsCred

So I started looking at some of the technology companies in Bangladesh that seemed to have strong engineering teams. One of the names that kept standing out was NewsCred, which was later acquired by Optimizely.

I looked through the people working there on LinkedIn, and they all looked pretty cool. That sounds like a very simple way to evaluate a company, but I was a fresh graduate. I was trying to understand the industry from whatever signals I had.

One name I recognized was Mifta Sintaha from BRAC University. I did not know her personally, but during university we used to watch her YouTube tutorials when trying to understand different computer science topics. I already admired the quality of what she taught. Seeing that someone I had learned from worked at NewsCred became one of the biggest reasons I wanted to work there too.

My thinking was basically: this looks like a good company, so why not join it?

I submitted my CV. It had robotics, competitions, projects, and everything else I had been doing around university. Getting the HR call did not surprise me much. That was simply where my confidence was at the time.

The HR conversation itself gave me an even better impression. As far as I remember, we spoke in English. In Bangladesh, an HR screening could easily happen in Bangla, so to the version of me in 2019, the English conversation reinforced the image I already had of NewsCred as an international, polished technology company.

I was not especially comfortable speaking English in interviews yet, but I did not see that as a serious problem either. It was another skill I could learn.

They asked why I wanted to switch. I told them I was working at a startup and wanted to work on a bigger product with a stronger team, learn more, and prove myself. The screening went fine, and they invited me to an on-site coding interview.

This Looked Like a Real Tech Company

There was one practical problem: I did not own a laptop. I had a very good desktop at home, but the only laptop I had was the one my office had given me. So I took leave, packed my office laptop, and carried it to an interview at another company while being slightly terrified about the whole thing.

My startup was in Banani and NewsCred was in Gulshan, so the trip itself was not far. The difference between the offices felt much larger.

The company I worked for was operating out of an apartment. We had a small room, and sometimes even the air conditioning did not work. NewsCred was in a proper office building. The moment I entered, everything looked polished.

There was a pool table, table tennis, casual spaces, and what looked like a proper lunch setup. None of that proves anything about engineering quality, but to me it looked like the technology companies I had only seen online.

Someone who started their career in an office like that might have considered it normal. I did not. Coming from a startup running out of an apartment, it felt like I had walked into a different version of the software industry.

I wanted the job even more.

The First Coding Round

The coding problem was different from the algorithm-style preparation I had done for Google. Looking back, I would describe it as a low-level design problem. I could choose the language, so I used Python.

For a non-technical reader, this kind of exercise is not about building a complete app. It is more like sketching the internal structure of a small piece of software in code: what parts should exist, what each part should be responsible for, and how they should work together.

For an engineer, I would now connect this kind of problem with low-level design, separation of responsibilities, design patterns, and ideas such as SOLID. I do not know exactly what they expected from a fresh graduate, but these were areas I had barely explored at the time.

The problem was difficult for me at first. I thought for a long time, eventually recognized a structure that made sense, wrote the solution, and submitted it.

Normally there was supposed to be another discussion afterward, but they did not do it. They told me they would contact me again.

I was still confident.

I Had My Own Explanation

The role looked like one meant for fresh graduates or engineers early in their careers. In my head, I had already built a freight management system that worked and had users. My title said Senior Software Engineer. So instead of wondering whether my solution had exposed gaps in my engineering knowledge, I came up with another explanation.

Maybe they could not assess me properly because I was beyond the fresher level.

I am not writing that to make my younger self sound clever. I genuinely thought it. I had almost no frame of reference for what a mid-level or senior software engineer was supposed to know. I had a title, a working product, and a lot of confidence. What I did not have was perspective.

Two days later, NewsCred called me back. They said they had not been able to assess me properly and wanted me to take another coding round.

To me, that sounded almost like confirmation. I assumed the next problem would be harder because perhaps they were trying to assess me for something closer to a mid-level or senior role.

I went back. They gave me a different coding problem. This time I felt I handled it better. I solved it more cleanly, and on the same day they moved me to the interview afterward.

Then They Started Asking Why

I do not remember every question from that conversation. They asked about me, what I was working on, and then started going deeper into programming decisions I had made.

Why did I do something in a particular way? Why did I choose one approach instead of another? What would happen if something changed?

Some answers I could explain. Some I stumbled through in English. For others, I realized I had made decisions mostly by intuition.

At one point, an interviewer asked whether I had just answered something from intuition. I said yes.

That question stayed with me because it exposed something I had not been able to see from inside my startup. I knew how to make things work. I could build features, debug problems, and keep moving. But I could not always explain the engineering reasoning behind the choices I was making.

Then they asked why I wanted to join NewsCred.

By then, I knew the interview was not going particularly well. I also wanted the job badly enough that my answer stopped sounding like a normal interview answer.

I started telling them how difficult it was to grow in my current environment. I told them I was not learning the way I wanted to, that the company did not have the engineering culture I was looking for, and that I knew I could improve if I could just work somewhere like NewsCred.

Some of that was true. It was also not a professional way to handle the interview. They were assessing whether I could do the job. Wanting a better environment to grow in was not, by itself, a reason they should hire me.

By the end, I was struggling to keep the conversation purely professional. I was not really explaining why they should hire me anymore. I was trying to explain why I needed a place like NewsCred.

The Reality Hit

They said no.

And this time, I could not explain the result away.

My coding itself was not the problem. I could make things work. What I was missing were some of the software design fundamentals that stronger engineering teams expected even from junior engineers: how to structure a solution cleanly, make it easier to change, and reason about why one design was better than another. My interview was not strong enough either. Wanting to learn badly was not the same thing as already having those skills.

For the first time, the gap between the title I had and the engineer I actually was became difficult to ignore. I had spent months believing that whatever I did not know, I could simply learn. NewsCred forced me to confront the harder part: I did not even know where some of the gaps were.

Google had made me think I needed to prepare better for interviews.

NewsCred made me realize the problem was bigger than interview preparation.

I had a lot more software engineering to learn.

That was the part that stayed with me. I did not know what I did not know.