How I Joined PlayStation

Sep 27, 2026

From the interview, to joining, to the first week and to now, about 16 months have passed. I still remember the interview process clearly, I'll get into it below. You'll notice that there isn't much I write about AI, this is because I didn't use any AI assistance for this interview. I'm not sure what the interview process is like these days. I'm sure AI has changed the process for some companies. This was my experience.

When I interviewed, I had already done a few others elsewhere. My skills weren't rusty, which is important to note first. I'd completed a few take-homes and a few remote questioning calls.

Step 1 of the interview process was a phone call with the recruiter. It was somewhat informal. We spoke about why I was looking for a new role, whether I was a British citizen, etc. mostly formalities. She asked me whether I owned a PlayStation console and if I was playing anything at the moment. This stood out to me during the call, in hindsight, it makes sense why the recruiter asked this.

Step 2 of the interview was around a 30-minute video call with the engineering lead of the team. It was also pretty informal. He asked me questions about my resume (or CV for us Brits). I spoke about my time at my previous employer, my side projects, and what I was looking for in a new role. Towards the end of the call, the engineering lead told me about the next stage of the process: the take-home exercise. He knew that my professional engineering background was mostly in C# and .NET, he made me aware that I can use any technologies. They cared about competence rather than syntax. He mentioned they were looking for correctness, creativity, and conciseness. It was particularly nice to hear this advice, I felt a sense of relief that I was through this video call stage already.

Step 3 was a take-home exercise. The engineering lead gave me a folder containing a stubbed mock API and a PDF with a brief and a list of requirements. The brief was to either create a frontend or a backend around the mock API, aggregating the data returned. The mock API returned a list of users and some other data. I started creating a backend quickly, I was excited, this could genuinely be a dream job for a dream company. I decided to use C# and .NET for the backend. It's what I was most comfortable in, and I knew I could get something working quickly.

The aim was to aggregate a list of user data. Each user had some data associated with them. I had to categorise the user depending on the data. I introduced a GetAllUsers kind of endpoint. I knew about pagination, but I'd never implemented it, so I didn't. Instead, I added an in-memory cache behind the endpoint. I was much more comfortable with this and I figured it would do the job. In a production environment, it's wrong to have these GetAllUsers kind of endpoints without pagination or caching. I knew this was a mock test, so I only implemented one of these and made a note of the other. Apart from this endpoint, I also created a GetUserById endpoint, this was much more straightforward.

Due to my excitement about the role (and perhaps speed at creating the backend), I also took on the frontend task. My frontend skills are weaker than my backend skills, especially in styling. I wanted to use a component library to get started. I decided to go for MaterialUI. I put up a basic React frontend with MaterialUI, added axios to call the backend, and called it a day. I told the recruiter I'm done and to please let the engineering lead know. A few days passed and I couldn't stop thinking about the next step of the process. I knew all the code well. I could explain all functions. I knew some gaps in the code (what I've already mentioned) so I could prepare answers for any questions that could come my way.

Step 4 of the interview process was a video call with 2 engineers from the team, a senior and a mid-level. We greeted each other, they introduced themselves and we proceeded with the call. The focus of this call was for me to go through my solution with them. I talked through the backend code, the structure of the folders, where the logic to categorise the users lived. They asked questions: why did you implement caching? How would the service scale if there was a spike in calls to the GetAllUsers endpoint? The senior engineer asked one question that I still remember clearly, as I didn't know the answer at the time. He asked me how async/await works and how it would scale if there was a spike in requests. I explained how asynchronous programming works, but I couldn't quite answer the scaling part of the question. To answer the scaling part of the question, I should've raised two points. First, if concurrency grows without an upper bound, the service can run out of memory and resources. Secondly, if the work is CPU-intensive or contains blocking code, the thread pool can be exhausted too. Writing this post a year later, I now know that under a large spike in requests, the service can exhaust finite resources: memory, threads, database connections, sockets, or downstream capacity. The bottleneck depends on the runtime and the type of work performed. Anyway, in the interview, this led to some technical discussion, and it was all in good light.

After I went through the frontend code too, we wrapped up the interview and they let me know the recruiter would be in touch with next steps.

About a week goes by and I get a call from the recruiter. The team and the engineering lead liked me and they'd love to have me join. Yay! After a 3 month notice period, I joined PlayStation around a year ago from now. The 1st of September 2025 was officially my first day.

© 2026 MIT Licensed