DEV Community

Cover image for Akuna Capital OA Experience: Communications Handler + React AI Coding Challenge
interviewshow-cs
interviewshow-cs

Posted on

Akuna Capital OA Experience: Communications Handler + React AI Coding Challenge

Before receiving my Akuna Capital OA invitation, I went through quite a few interview experiences and noticed one thing: Akuna’s question pool is relatively small, and repeated questions happen quite often.

This OA was 75 minutes with two coding problems. The first problem was a traditional programming question and I solved it in around 7–8 minutes on the first try. The second problem was an AI coding style challenge, and I spent almost 25 minutes debugging before getting all test cases accepted.

Important Note: Akuna Capital’s AI Coding Detection

One thing worth knowing before taking the OA: Akuna has implemented AI usage detection mechanisms. They analyze code structure, compare patterns against typical AI-generated outputs, and check similarities between candidates’ submissions. They also design some problems with AI traps, where blindly generated AI solutions can fail in specific ways.

The best approach is still to write the code yourself. The problems themselves are not extremely difficult, but understanding the requirements and debugging carefully are much more important than trying to generate a solution automatically.

Question 1: Communications Handler

The first problem was a communication management system. A communication line can only support two users at the same time, and you need to implement a handler that manages three operations:

  • Establish a connection
  • Hang up a connection
  • Clear all connections

There were two classes involved:

CommsHandler

The class required three methods:

  • connect: Create a connection between users. Connecting a user to themselves should throw an exception. If the line is already occupied, it should also throw an exception. Otherwise, establish the connection and return the expected message.
  • hangup: Disconnect a user. Hanging up with themselves should throw an exception. If the two users are currently connected, remove the connection. Otherwise, throw an exception.
  • clear_all: Remove all active connections unconditionally.

CommunicationException

This was simply a custom exception class. The constructor receives an error message string.

The Caller class was already implemented, so there was no need to modify it.

Solution Approach

The logic was straightforward: maintain an active_connections variable storing the two currently connected users, then handle each operation by checking the conditions from the prompt.

However, there was one easy-to-miss trap:

The variable name had to be exactly active_connections.

The boilerplate main function already referenced this variable name. I initially created my own variable name, which caused runtime errors. After changing it back, everything passed.

This was probably the most common mistake in this problem. Before writing code, carefully check the provided framework and keep all predefined variable names unchanged.

Another important detail: exception messages must match the requirements exactly. Even a small difference in capitalization, punctuation, or spacing can fail hidden test cases.

Question 2: Password Strength Checker (React AI Coding)

The second problem was an AI coding style challenge. You were given a complete React project with files such as:

  • App.tsx
  • PasswordChecker.tsx
  • PasswordStrength.tsx

The task was to implement a password strength checker that dynamically displays password strength text and background color based on how many requirements the password satisfies.

Component Responsibilities

PasswordChecker.tsx

This component was responsible for:

  • Maintaining the input state
  • Managing the input value and onChange handler
  • Handling the clear/reset action
  • Passing the current password value to PasswordStrength

PasswordStrength.tsx

This component received the password as a prop and handled:

  • Checking how many password requirements were satisfied
  • Mapping the score to a strength level such as Weak, Fair, or Strong
  • Rendering the corresponding text and background color

How I Approached the AI Coding Challenge

The difficult part was not the implementation itself. The time was mainly spent running tests, checking failures, and making targeted fixes.

My approach was:

  1. First read the test case names carefully.
  2. Use the tests as the real specification.
  3. Implement one behavior at a time.
  4. Run tests repeatedly until everything passed.

For example, test names like:

  • should be empty initially
  • should have value of Weak

were basically telling me exactly what behavior was expected. Reading the tests was much faster than only relying on the written prompt.

Final Thoughts

Both problems were not particularly difficult. The biggest time sink was the debugging process in the React AI coding challenge and the variable naming issue in the first question.

If you know these patterns beforehand, 75 minutes is more than enough time.

Akuna’s OA question pool is relatively small, and many of these problems appear repeatedly. Practicing similar questions in advance can make the actual assessment much smoother.

InterviewShow’s quantitative interview track includes preparation materials for companies like Akuna, Jane Street, and DRW, covering OA practice, problem-solving strategies, and VO preparation. More information is available at: interviewshow.com/services.

Top comments (0)