Job Description:
We are looking for a Software Engineer III (Full-Stack) to join our engineering team building scalable systems for a global e-commerce platform used by millions of users worldwide.
The ideal candidate should have strong problem-solving skills, good knowledge of Data Structures & Algorithms, and a solid understanding of system design and distributed architecture.
Key Responsibilities:
- Design, develop, and maintain scalable backend services using Java.
- Build RESTful APIs and microservices.
- Work with Kafka for event-driven architecture and asynchronous processing.
- Contribute to frontend development using React.js / Node.js.
- Participate in system design discussions and architecture decisions.
- Write clean, maintainable, and well-tested code.
- Troubleshoot production issues and improve system performance.
DSA / Coding Expectations
Candidates should be comfortable solving problems related to:
Linked List:
- Implement a stack or a queue using a linked list.
- Detect if a linked list has a cycle.
- Find the middle element of a linked list in a single pass.
Arrays & Strings:
- Find two elements in an array whose sum equals a given number.
- Find the longest increasing subarray in an array.
- Rearrange an array of positive and negative numbers so all positive numbers are on one side.
- Decode a given input string by converting ASCII values to characters.
Trees & Graphs:
- Change a binary tree so the parent node is the sum of its children.
- Perform pre-order traversal of a binary tree without recursion.
- Build a binary search tree (BST) from an unsorted array.
- Implement left/right rotation functions for an AVL tree.
System Design & Problem Solving
Candidates should also be comfortable discussing and solving system design problems such as:
- Flatten a complex, nested map data structure into a single-level map with concatenated keys.
- Design a website that processes user requests and sends email notifications asynchronously.
- Discuss architectural contributions from previous projects (for experienced roles).
- Basic understanding of distributed systems, scalability, queues, caching, and databases.