Ambue Property Assessment iPad App
The Context
I joined my friend Lukáš Kubánek on this project to create an iPad client app for Ambue’s risk assessment system for retrofitting properties in the UK. This was a greenfield project where we built a comprehensive field assessment tool from scratch.
My Contribution
Lukáš did excellent work designing the UI and UX of filling out these long survey forms over the year prior. I continued with:
- High-fidelity app prototypes for photo-taking workflows
- De-serializing forms provided by a new web form designer
- Planning the complete client-server communication layer to upload survey details and photos
Beyond Development
What started as a development role to help out with the app grew into something far bigger. Rather by accident, I found myself helping this non-software-engineering company align their vision with achievable milestones.
This involved:
- Translating business requirements into technical specifications
- Coordinating siloed teams of freelancers for web frontend, backend, and app development
- Advising on MVP features (including paper-based products) to validate business ideas without investing into expensive software up front
- Suggesting marketing campaigns and giveaways and tools to help people in construction meet new government regulations
Technical Challenges
The app needed to handle:
- Complex multi-page survey forms with conditional logic
- Offline-first architecture for field work without connectivity
- Efficient photo management and compression for evidence documentation
- Robust sync mechanism to handle partial uploads and conflicts
- Swift 6’s strict concurrency mode throughout the codebase
Most challenging: this app was a client application, but there was no server, nor was there an API specification. So we needed to be careful with each assumption that we made and pro-actively suggest endpoint implementations.
Technologies & Architecture
We chose The Composable Architecture (TCA):
- For its clear separation of concerns, making testing and design of components in isolation easier
- Because it’s widely popular in its niche, so that other developers can understand and build upon the framework in the future
PhotoKit integration was crucial for managing large volumes of property photos while maintaining performance on iPad hardware and offering a native look and feel. We used Mijick/Camera for prototyping and it worked really well.
Team Dynamics
Working with Lukáš was a pleasure. We’ve known each other for years (thanks to Macoun) and have a great working relationship. He’s diligent and a thorough thinker and planner, so when I joined, the project already had an extensive documentation and a robust plan for the next steps.
The company had very flat hierarchies, so I talked to the CTO and CEO a lot to coordinate business goals with software implementation, and got immediate feedback from surveyors in the field whenever needed. Since everyone on the software side worked in silos, they were both very knowledgeable in their respective field and willing to help create bridges between the realms like database backend, cloud storage, and the Elm frontend to our app.
Personal Reflections
Our main challenge was in the many decisions that needed to be made, and the lack of higher-level orchestration of any kind.
Coming into a company where people worked on a software suite as freelancers, each in their own silos, made it tough to get a picture of the whole thing. Siloed development also means that there’s inconsistent boundaries between parts, and nobody in charge of making boundaries cross-able.
Although we were hired for a rather simple job, writing an iPad client for a complex form, the lack of everything server-side made it tough to do meaningful progress. Usually, you want to end-to-end validate your approach as soon as possible to not program yourself into a corner. But when one end is wholly missing, that’s impossible. You can only suggest so much bottom-up as a gun for hire.
So quite a lot of my work turned into lobbying for inter-team decisions on communication protocols, formalizing at least parts of the shared knowledge to offset the inevitable bus factor (especially with freelancers on short contracts).
This experience echoed my role in the Tap Challenge project years earlier, where I learned to wear many hats. I made decisions not for my own benefit back then, but for the business and client’s success. That mindset of thinking beyond code I enjoy writing and all the money I would love to be making – considering business value, team coordination, and long-term maintainability – proved invaluable here at Ambue. The difference was that at Tap Challenge, I had full control as project lead; here, I had to influence without authority, making the soft skills even more critical.
Impact
Whenever I talked with the CEO and CTO, they were impressed by my out-of-the-box thinking: it showed that my work as an independent developer for so many years made it easier for me to align business value with development, and not focus on the technical side too much. Although I came aboard as a mere iPad developer for hire, I stepped up and helped with project and product management where I could.