Odoo Dubai Interview Experience | Software Engineer | 5 YOE
Summary
I interviewed for a Software Engineer role at Odoo in Dubai, completing a Coderbyte assessment, HR round, and a 3-hour technical interview that included a binary-tree coding problem, a system-design case on warehouse inventory, and a data-modelling exercise; the interviewers were satisfied with my approach and I am awaiting the final update.
Full Experience
I recently went through the interview process for a Software Engineer position at Odoo Dubai and wanted to share my experience, particularly the technical rounds, for candidates preparing for similar roles.
I applied directly through the Odoo careers website and received an email confirming that my profile had been shortlisted.
Round 1 - Online Assessments
The first assessment was a Coderbyte coding test featuring a medium-level stack-based problem.
Around 10 days after completing it, I received a second Coderbyte assessment focused on logical reasoning and puzzles.
Approximately 20 days later, I received the invitation for the HR round.
Round 2 - HR Interview
The HR discussion covered my professional background, experience, current role, career expectations, and what I was looking for in my next opportunity.
After this round, I received an invitation to schedule the technical interview.
Round 3 - Technical Interview
The technical interview lasted approximately 3 hours and consisted of three sections.
1. Coding - Binary Trees
The first problem was to determine whether two binary trees are identical, similar to LeetCode's Same Tree problem.
I explained the recursive traversal approach, comparing corresponding nodes and handling null-node cases.
2. System Design - Warehouse Inventory Management
The second section involved designing an inventory management system handling receiving and delivering inventory while maintaining:
- Quantity on hand
- Inventory value
- Average unit cost
The first part focused on calculating inventory value and average unit cost when receiving new stock.
The second part introduced FIFO costing. Each receiving transaction retained its quantity and unit cost. During delivery, inventory had to be consumed from the oldest available batch first.
I used a queue to maintain receiving transactions chronologically. Delivery operations consumed inventory from the front of the queue and handled partial consumption when a batch was only partially used.
The interviewer was satisfied with both the implementation and my reasoning.
3. Data Modelling
The final section was a data-modelling exercise. I was given a business problem and had to identify the required entities, attributes, and relationships.
I completed the exercise within the allotted time and explained the reasoning behind the model.
Overall Experience
The technical round focused heavily on problem-solving, data structures, system thinking, and data modelling.
I particularly appreciated that the interviewer encouraged me to think out loud and explain my assumptions and reasoning throughout the process.
At the end, I was told that my problem-solving approach and overall interview performance were satisfactory, and that I should expect an HR update within a week or two.
It has now been two weeks without any further communication. While I haven't received an official rejection, I’m considering the process closed from my side and moving forward with other opportunities.
Overall, it was a valuable interview experience and a good opportunity to work through practical engineering problems.
Disclaimer: This is based on my personal interview experience and may vary depending on the role, team, and candidate.
Interview Questions (2)
Same Tree
Given the roots of two binary trees, determine if the two trees are structurally identical and the nodes have the same values.
Input: TreeNode* p, TreeNode* q
Output: true if the trees are identical, otherwise false.
Example:
Input: p = [1,2,3], q = [1,2,3]
Output: true
Warehouse Inventory Management System Design
Design an inventory management system for a warehouse that supports receiving and delivering inventory while tracking:
- Quantity on hand
- Total inventory value
- Average unit cost
- FIFO costing for deliveries (oldest stock is consumed first)
The system should allow adding receiving transactions (quantity and unit cost) and processing delivery transactions that reduce inventory according to FIFO, updating the quantity, value, and average cost after each operation.