Summary
I interviewed with Akamai for a Software Engineer II role. I successfully cleared the initial technical round, which included a coding problem and conceptual questions on networking, security, and databases, but the position was unfortunately filled due to a staffing shortage, leading to a "Silver medalist" status.
Full Experience
The Talent Acquisition team first reached out to me, informing me that my resume had been shortlisted for the Software Engineer II position at Akamai. I promptly shared my availability for the initial interview.
First Technical Round (HackerRank)
The first round was scheduled on the HackerRank platform. After a brief introduction, the interviewer delved into my resume, specifically focusing on my most recent projects. He showed particular interest in the security-related components of my work.
Following the resume discussion, I was given a coding question:
Problem: Given a linked list, return a new linked list containing only odd numbers.
Input: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8
Output: 1 → 3 → 5 → 7
I was able to solve this problem quickly and proceeded to explain its time and space complexity. The interviewer also asked follow-up questions about circular linked lists and other variants.
Next, we transitioned to conceptual questions, covering a range of topics:
- The distinction between HTTP and HTTPS
- The application of HTTP protocols in development
- What is JWT? Its elements and functions
- The significance of the JWT signature element
- The role of public and private keys in token signing
- OAuth token functionality
- The distinction between a refresh token and an access token
- Deadlock: Semaphore vs. Mutex
- CAP theorem and ACID properties
- The distinctions between CAP and ACID
- Concepts of Phantom Read and Dirty Read
- There were also several experience-based inquiries about my prior work.
At the end of the session, the interviewer mentioned that he enjoyed our conversation and appreciated my confidence.
HR Follow-up and Outcome
Soon after, I received a call from HR informing me that I had successfully passed the first round and would be moving forward to an interview with a senior team member.
However, there was a twist. I later discovered that the position had already been filled due to a personnel shortage. Despite this, the HR staff assured me that my profile would be updated in Akamai's “Silver medalist” community, and I would be given priority for any future relevant opportunities. They even confirmed this via email.
Even though the immediate outcome wasn’t in my favor, I truly value this experience and the knowledge I gained. Every interview contributes to making me better prepared for the next one.
Interview Questions (13)
Given a linked list, return a new linked list containing only odd numbers.
Input: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8
Output: 1 → 3 → 5 → 7
What is the distinction between HTTP and HTTPS?
How are HTTP protocols applied in development?
What is JWT? What are its elements and functions?
What is the significance of the JWT signature element?
What is the function of public and private keys in token signing?
What is OAuth token functionality?
What is the distinction between a refresh token and an access token?
Discuss Deadlock: Semaphore vs. Mutex.
Explain the CAP theorem and ACID properties.
What are the distinctions between CAP and ACID?
Explain the concepts of Phantom Read and Dirty Read.
Inquiries about my prior work experience were also experience-based.
Preparation Tips
My preparation primarily focused on reviewing the security-related components of my recent projects, as these were highlighted in the interview. I also refreshed my knowledge on fundamental data structures and algorithms, particularly linked lists, given the coding question.
Additionally, I studied various conceptual areas including:
- Networking protocols (HTTP/HTTPS)
- Web security concepts (JWT, OAuth, public/private keys, token signing, refresh vs. access tokens)
- Operating system concepts (Deadlock, Semaphore vs. Mutex)
- Database properties and distributed systems (CAP theorem, ACID properties, Phantom Read, Dirty Read).
This comprehensive preparation helped me confidently address both the coding and theoretical questions during the interview.
Summary
I applied directly for an SDE2 role at Akamai and secured a remote interview. During the technical round, I faced two DSA problems, one of which was 'next greatest number', an easy SQL question, and resume-based discussions. I was ultimately rejected, partly due to a laptop issue occurring during the interview.
Full Experience
I have directly applied on their portal and got the interview scheduled.
Round 1 - Technical Round
2 DSA problem 1 I was not able to solve and other was next greatest number as I have already solved this problem so I was able to tell the answer.
1 SQL problem it was easy. Some questions around my resume.
This was the bad day as I was having issue with my laptop it went to restart in middle of interview and that left a negative response from interviewer.
Verdict - Rejected.
Interview Questions (1)
I was asked a Data Structures & Algorithms problem which I recognized as 'next greatest number'. I had previously solved this problem.
Summary
I had an online coding round for a Senior Software Engineer role at Akamai, which primarily tested my Data Structures and Algorithms skills with a specific problem on minimum chunks required.
Full Experience
Round 1 (Online coding round)
I got a call from Akamai recruiter for a Senior Software Engineer role. Then a face to face interview round was scheduled for testing my DSA skills.
Interview Questions (1)
You are given a function with parameters totalPackets (int) and uploadedChunks(array of pair of integers vector<vector<int,int>). The packets can be grouped into chunks. the size of each chunk increases with the power of 2.
int minChunksRequired(int totalPackets, vector<vector<int,int>>) {}
There will be sequence of packets from [1, totalPackets] and there will be a list of pairs of integers which are the uploaded chunks. Each pair in the uploaded chunks is a starting and ending number for the range of packets that are already uploaded.
Test case
totalPackets = 10
uploadedChunks = [[1,2],[9,10]]
This is our sequence of packets (total packets is 10) [1,2,3,4,5,6,7,8,9,10]
packets starting from 1 and ending in 2 and packets starting from 9 and ending at 10 are already uploaded. We have to find minimum number of chunks of packets that's required to upload the remainging packets. The size of chunks increase in the power of 2. You can have chunks of size (1, 2, 4, .. 2 ^ n).
in our test case packets 1,2,9,10 are already uploaded. The remaining packets are 3,4,5,6,7,8 (total 6 packets). So we can split them into 2 chunks (3,4,5,6) and (7,8). We have 2 chunks of size 4 and 2.
hence the minimum number of chunks required to
upload the packets is 2