The Engineering team at Favor supports Favor’s mission to bring fast, fresh delivery to Texans far and wide. The Favor technology platform is the engine behind the business that enables our Runners (that’s what we call our delivery drivers) to deliver millions of Favors. Our technology efficiently manages the real-time assignment of Favors, facilitates communication between customers, Runners, and support, keeps mobile applications in sync, and more.
At Favor, we are committed to building a world-class team that shares a passion for products that make a difference with modern, clean code. Do you get a thrill when you make an impact on hundreds of thousands of users? Do you want to work for a purpose-driven and values-driven company in a high-growth environment? As a Staff Software Engineer at Favor you will be responsible for all phases of development, testing, and deployment of our native Android applications. You will work closely with our Product and Operations teams to understand customer needs, build simple solutions to complex problems, and deliver delightful experiences to all our users.
What you'll do:
- Recommend changes to processes and tools at the team level based on industry standards, patterns, and practices.
- Independently build, diagnose, and fix high complexity technical issues.
- Work with engineering and product management to plan solutions for large features; communicate individual and project-level development statuses, issues, risks, and concerns to technical leadership and management.
- Lead creation of documentation and provide training around technology stacks and standards; help other engineers understand system/application designs.
- Responsible for all phases of development, testing, and deployment of native Android applications.
Skills you have:
- A related degree or comparable formal training, certification, or work experience; advanced understanding of software design patterns to write clean, well-structured, idiomatic code leveraging the full power of a language; advanced knowledge of REST + JSON, API versioning strategies, and security best practices.
- 7+ years of relevant software engineering experience; experience in a high-growth startup a plus.
- Ability to extend and begin building upon existing application patterns for pages, components, and state; experience or familiarity with one or more of Java, Kotlin, JUnit, MVVM, MVP, Espresso, Dependency Injection, RxJava or Coroutines, Gradle, Jenkins.
Who you are:
- Excellent written and verbal communication skills; ability to communicate difficult technical concepts in precise, concise, and unambiguous terms with technical (UX, design, product management, and across engineering teams) and non-technical stakeholders, and work with other engineers in a collaborative and iterative environment.
- Ability to lead larger initiatives working with the product, design, and engineering teams; appreciation of simple design and a love to write clean, well-tested code - test-first or TDD approaches are a plus.
- Ability to use debugging tools to trace and diagnose issues; ability to gather and define software requirements, considering multiple patterns and strategies to build efficient solutions.
- Ability to create solutions to problems under various constraints using novel algorithms and data structures; strong understanding of test automation techniques and ability to write atomic tests with minimal side effects.