Open In App

AirAsia Interview Experience for Senior Mobile App Developer (Android)

Improve
Improve
Like Article
Like
Save
Share
Report

I have attended the AirAsia – Senior Mobile Developers position interview on 14 Nov 2019.  There was a total of five rounds for this position and each round was too challenging. These rounds were 

Round 1 (In-discussion with Lead Tech Recruiter 15 minutes): This round is one to one discussion between the candidate and Lead Tech Recruiter, this round can be on Skype or Telephonic Conversation.

Expectations:

  • How much applied candidates know about this position and company.
  • What the candidate is currently doing and how much he has experience in this position.
  • To know about total work experience in Kotlin and Android development.
  • Candidate’s availability for next round
  • Why the candidate is interested to join this company and the reason for looking for a new job.

Round 2(Android assessment,1 week): In this round, Lead Tech Recruiter will provide an android technical assignment and the candidate has to complete this within a given time and need to submit it on GitHub / bitbucket, etc. 

Expectations:

  • How good is your algorithm, technique you apply to make the app faster, etc?
  • Scalability
  • Testability
  • Design patterns
  • Demoable code
  • Clear Separation of Concerns (Good Class Design)
  • Functional Correctness and Completeness
  • Readability
  • Modularity and Extensibility
  • Exception handling

Background: All engineers in Company X take it in turns to support the business for half a day at a time. Currently, generating a schedule that shows whose turn is it to support the business is being done manually, and we need to automate that!

Task: Your task is to design and build an online “Support Wheel of Fate”. This should repeat selecting two engineers at random to both complete a half-day of support (shift) each to ultimately generate a schedule that shows whose turn is it to support the business.

Fetch the list of engineers from an API which returns the following response:

{
 "engineers": [
   {
     "id": 0,
     "name": "Bogdan"
   },
   {
     "id": 1,
     "name": "Nic"
   },
   {
     "id": 2,
     "name": "Tung"
   },
   {
     "id": 3,
     "name": "Gautam"
   },
   {
     "id": 4,
     "name": "Bala"
   },
   {
     "id": 5,
     "name": "Nazih"
   },
   {
     "id": 6,
     "name": "Huteri"
   },
   {
     "id": 7,
     "name": "Aldy"
   },
   {
     "id": 8,
     "name": "Ankur"
   },
   {
     "id": 9,
     "name": "Chinh"
   }
 ]
}  

(*) You should be able to create a mock API either by services like Apiary or create your own API somewhere in the cloud

Assumptions: You can assume that Company X has 10 engineers. You can assume that the schedule will span two weeks and start on the first working day of the upcoming week.

Rules: Currently, there are 4 rules:    

  • There are only two support shifts per day, a day shift, and a night shift.
  • An engineer can do at most one shift in a day.
  • An engineer cannot have more than one shift on any consecutive days.
  • Each engineer should have completed 2 shifts of support in any 2-week period.

Important note: 

  • These rules are liable to change in the future, so make sure your design is flexible and scalable enough to be able to add new rules.
  • All code must be accompanied by release notes that include citations of any resource, tools or frameworks used in the build.
  • Code must not contain any proprietary third-party code or components.
  • A developer cannot claim any rights in perpetuity against AirAsia for any submitted material

Deliverables: Provide a functional mobile app (together with source code in git) based on the scope of work described in this document, using the API in the format provided (which you should mock by yourself using service like Apiary or build API by your own in AWS), within the given time to complete the assignment.    

The app has UI to show the fetched list of engineers and the schedule generated by the developed algorithm. UX/UI is up to you to decide; however, the two following screens should be included:

  • Engineers list screen: A screen showing the fetched list of engineers with a “Generate Schedule” button somewhere in the UI. Clicking on the “Generate Schedule” button should navigate to the schedule screen.
  • Schedule screen: A screen showing the generated schedule. The user should be able to navigate back to the engineer’s list screen by clicking on the back button

Non-functional requirements: Code quality matters most. Please show us what code quality means for you. The more of that you do, the more you’ll be able to own our services. We will specifically look at the following factors:

  • Performance – How good is your algorithm, technique you apply to make the app faster, etc.
  • Scalability
  • Testability
  • Readability
  • Design patterns

Round 3 (HR 30min): The third round is an HR round, which discussed the salary and some technical questions etc.

Round 4(CEO 30min): Final round is between the CEO or any higher authority in the company and the candidate to discuss the future plan, and how the candidate beneficial for the company.


Last Updated : 31 Dec, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads