By Omar Mujtaba, Mobile Technical Lead at SiteMinder
Anyone who has spent time in the world of hotel tech, especially today, knows how fast-moving and dynamic the industry is. There is immense room for innovation, particularly with the rapid evolution of AI and the constant demand for more seamless customer experiences.
This is why at SiteMinder, when we hire software engineers, we aim to hire craftsmen — not just carpenters who can hammer nails into wood.
Think of it like furniture making: anyone can assemble a cupboard with straight planks and some nails, but true craftsmen know the finer details of the grain, the weight, the joints, the finishing. They build beauty and durability, not just function.
The same analogy applies to software engineering.
Anyone can stitch together a working app using modern frameworks, libraries or build an app from AI. But when things go wrong — when performance lags, when UX demands precision, when the stack’s convenience breaks down — do they know how to go back to fundamentals and solve the real problems?
This distinction is critical to how we interview and hire engineers at SiteMinder.
I’m the Technical Lead of the Mobile Application Development Team at SiteMinder, responsible for leading our Android and iOS native app teams. As part of my role, I actively hire mobile app developers to ensure our teams remain strong, agile, and technically excellent.
Today, I’ll walk you through how I approach hiring, using examples from interviewing Android engineers to illustrate the process — though the same philosophy applies across platforms.
At SiteMinder, technical leads are active participants in hiring tech talent across our global offices – from Sydney to Manila to London.
Tech Leads conduct the final stage technical interviews because we will be the line managers and will be accountable for these engineers. We have to make sure that the person not only looks good on paper but also genuinely possesses the skills and mindset required to thrive here.
Even if a candidate impresses in the early screening stages, the technical interview is where they have to prove they are a craftsman, not just a code assembler.
One important lesson we've learned over time: years of experience do not automatically mean technical depth.
Early on, I used to adjust my interviews based on tenure — giving advanced questions to those with longer careers. Over time, I realized that regardless of claimed experience, I have to always start with fundamentals.
Some of the biggest surprises came from candidates with 10+ years of experience who initially sounded strong — but struggled badly when asked fundamental, critical questions.
This changed my entire approach: every candidate, regardless of title, starts with the basics.
When interviewing, I start by telling the candidate:
This sets a professional but comfortable tone and encourages genuine technical discussion.
One of my go-to exercises when hiring Android engineers is what I call the "Two Screens Test."
I ask candidates:
Suppose you have two screens:
I ask them:
At first glance, this seems straightforward — and in real-world apps, it is.
But there is so much an interview can demonstrate through this simple example.
An engineer's answer could — and should — touch on:
A true craftsman naturally brings up these points, asks clarifying questions, and reasons through trade-offs.
The depth of the conversation reveals far more than any memorized textbook answer.
In contrast, the typical answer I get always involves using some convenience libraries the Android system provides like Lifecycle-aware ViewModels, Couroutines for safe networking, etc:
"I'll create an Android ViewModel, make the API call using coroutines, and update the UI using Observables or LiveData when the data comes back."
Some candidates also mention breaking down business logic into service and repository layers — which is technically correct at a high level.
But when I follow up with:
"Let’s imagine you don't have lifecycle-aware ViewModels or modern coroutine libraries. How would you manage threading, state, and lifecycle manually?"
— that’s where many candidates falter.
This is when you can distinguish the true craftsmen.
Candidates who really understand Android fundamentals (or iOS, in the case of mobile engineers generally) can still reason through a clean, safe, scalable solution — even without relying on frameworks or libraries.
Modern tools like Jetpack Compose and SwiftUI simplify many aspects of mobile development — but real senior engineers must be able to think beyond them.
Why is this important if frameworks can get the job done? At SiteMinder, we’ve had real-world cases where we hit performance limits using frameworks.
For example:
Only engineers who understand the lower layers could help us do that.
This is why it’s imperative that senior engineers detach themselves from library comfort zones and go back to first principles when needed.
While we prioritise fundamentals, we also value engineers who stay up to date with the latest stacks. It shows curiosity and a growth mindset — traits we look for at SiteMinder. Our goal is to hire technical experts and then train them on the hotel industry and customer needs to build truly impactful products.
Technical skill is critical — but so is fit with our values.
At SiteMinder, we don't just hire people who can deliver — we hire people who embody our culture and the values we all adhere to:
Engineers here have autonomy and are trusted to deliver high-quality outcomes without micromanagement.
There’s no clock-watching. The quality of your work speaks louder than your hours logged.
Your code, your collaboration, and your technical decision-making are always visible to your peers — and if you cut corners, it shows.
Being a strong engineer is not about knowing everything.
It’s about:
At SiteMinder, we don't rush to fill seats.
We wait — sometimes months — to find engineers who are genuine craftsmen: engineers who build with care, reason with depth, and elevate the teams they join.
That’s why we say:
We hire craftsmen, not just coders.