We help customers move. When they’re moving houses, it’s a stressful day. We bring order when boxes and possessions clutter the floor.
We’re looking for a Software Architect to help design the software that puts customers in control and gives moving professionals a powerful new tool. The industry still largely runs on paper and we’re bringing them into the mobile age.
We need someone who can see the entire landscape, from customer needs, to truck drivers on the ground, to dispatchers who want to be alerted to problems in the field. Moving away from an end-user perspective, there’s an array of servers, mobile apps, databases, and distributed computing queues that need to be choreographed into a reliable distributed system. Moving location doesn’t have internet or cell coverage? No problem, the inventory list can be synced when you return to cell service.
We have API integrations with the US government, a number of external parties, and national moving companies. We’re building a large distributed computing application, where we control the state machine for moves in progress and integrate with outside systems that control ordering moves, billing, and other aspects of the order lifecycle. The business operations have inherent complexity and the nature of the distributed application boggles the mind with edge conditions.
About the Role
You’ll own the overall design of our external APIs, our approach to architecting the solution, and play an outsized impact on the company’s success. Our solution is used by the US government, and you’ll regularly interact on calls with tens of people from various companies collaborating on the technical details of the overall solution. We're looking for a leader that can help balance the tradeoffs between successful on-time delivery against the long term maintenance and code maintainability. Someone who can negotiate with external parties around API development and understand the long term implications of their decisions around data model and state design. Someone who hears the articulated functional requirements but also understands the need for non-functional requirements that went unstated—yet assumed. The application is basically a complex workflow, with lots of permissions, states, and edge cases.
A design bug might result in a mover driving to someone’s house at the wrong time or with the wrong equipment. Missing a required authorization might prevent us from billing the government. We’ll need you to help cut through the noise of many layered requirements into a clear plan the team can take. Someone who has a keen mind for breaking down the complexity into a simple design with clear boundaries and an API that can stand the test of time. All the while being cognizant of the many failure modes of distributed applications.
About You
You are a seasoned software engineer or architect with a passion for building high-performance applications in a fast-paced environment. An excellent communicator who can partner with internal and external engineers to build a solution that meets the requirements while adhering to strict latency and security specifications.
- Tech Chops: You understand how to think through the application design, from mobile apps in Swift and Kotlin to server apps in Ruby, Python, or Node. Equally comfortable walking a team through a data model as discussing quarterly goals. You think in terms of data models, performance, and error handling.
- API Development: You’ve had to manage external partners consuming an API that you publish. You inherently know that once they’ve coded against it, we need to support it as moving a customer to a newer version costs hard dollars for them and us.
- Strong Communication: You’re as comfortable talking with our VP of Product as you are with engineers and our CEO. We need someone who can be the voice of the company when discussing technical issues with outsiders. Knowing how to negotiate with external stakeholders and understand how to collaborate in an environment with complex business relationships.
- Comfort with Ambiguity: You’re used to being asked open-ended questions and whittling them down to specific implementation decisions that can be implemented by the team.
- 10+ years working in software development, with 5+ years in a lead role; proven ability to drive complex app development
- Proven track record of delivering high-quality software products on time and within budget in a startup culture and fast-paced environment.
- Experience with software architecture, design patterns, security, and performance
Bonus Points For
- Prior experience working in a remote team environment
- Experience developing apps with complex workflow and a variety of personas interacting with the application
- Having worked with strict security requirements like PCI or NIST 800-171
- Experience working with global workflows where date, times, and currencies matter greatly