The Engineering team supports Favor’s mission to bring fast, fresh delivery to Texans far and wide. The Favor technology platform is the engine behind the business, enabling 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- and value-driven company in a high-growth environment? As a Senior Software Engineer at Favor, you will create the tools and applications necessary to connect customers, Runners, merchants, and support teams. 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 users.
What you'll do:
- Assist in research and fact-finding to develop or modify applications.
- Participate in the planning and execution of development projects.
- Mentor less experienced engineers and help organize squad members around project goals.
- Partner with cross-functional technology teams to integrate solutions.
- Fix bugs and perform updates to the code base while working closely with team members across Product, Design, and Engineering teams
- Responsible for all phases of development, testing, and deployment of native iOS applications.
Skills you have:
- A related degree or comparable formal training, certification, or work experience
- Knowledge of coding patterns and their applicable uses to write performant, testable code.
- 5+ years of relevant software engineering experience.
- Experience developing solutions within a system architecture such as SOA, Event-driven, or n-tier
- Experience in a high-growth startup is a plus.
- Ability to design and build technical solutions without direct oversight.
- Ability to read through code and identify areas that may lead to bugs.
- Ability to identify and communicate potential issues early and significantly contribute to team discussions.
- Ability to write tests that cover most common use cases and code paths, and use design patterns to design efficient, maintainable, and scalable features.
- Understanding of the performance impact of queries and the ability to generate complex data structures.
- Ability to extend and begin building upon existing application patterns for pages, components, and state.
- Experience or familiarity with one or more of Objective-C, Swift, XCTest, MVC, MVVM, XCUITest, Cocoapods, SPM, Alamofire, Jenkins.
Who you are:
- You appreciate simple design and love to write clean, well-tested code - test-first or TDD approaches are a plus.
- You enjoy working with other engineers in a collaborative and iterative environment.
- You have excellent written and verbal communication skills.
- You communicate clearly with technical (UX, design, product management and across engineering teams) and non-technical stakeholders.