Senior Software Engineer
Full Time -
Favor’s mission is ‘Anything Delivered’. Our engineers make high-touch logistics happen. The Favor technology platform is the engine behind the business enabling millions of Favors. Our technology efficiently manages the real-time assignment of Runners to Favors, facilitates communication between customers, Runners, and support, keeps thousands of customer and Runner mobile applications in sync, and more.
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? Our engineers create the tools and applications necessary to connect our customers, Runners, merchants, and support teams. As a Staff Software Engineer at Favor you will be responsible for all phases of development, testing, and deployment of our web applications, back-end services, databases, and data warehouse. 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.
At Favor, we are committed to building a world class team that shares a passion for modern, clean code and products that make a difference. We need engineers like you to help us achieve our mission of ‘Anything Delivered’.
- Write clean, performant, and tested application code.
- Design, implement, test, and maintain new and existing features.
- Independently build, diagnose, and fix high complexity technical issues.
- Recommends changes to processes and tools at the team level based on industry standards, patterns and practices.
- Leads creation of documentation and provides training around technology stacks and standards.
- Engage and collaborate with other teams to ensure timely, high quality, solution delivery while balancing new feature work and tech debt management.
- Communicates individual and project-level development statuses, issues, risks, and concerns to technical leadership and management.
- 5+ years of industry engineering experience.
- Ability to lead larger initiatives working with the product, design, and engineering teams.
- Advanced understanding of software design patterns to write clean, well-structured, idiomatic code leveraging the full power of a language.
- Creates solutions to problems under various constraints using novel algorithms and data structures.
- Writes atomic tests with minimal side effects and has a strong understanding of test automation techniques.
- Able to gather and define software requirements considering multiple patterns and strategies in order to build efficient solutions.
- Knowledge of how different parts of a system architecture will work together and can diagnose issues within the system.
- Ability to use debugging tools to trace and diagnose issues.
- Expert knowledge of REST + JSON, API versioning strategies, and security best practices.
- Communicates difficult technical concepts in precise, concise, and unambiguous terms.
- Can read and understand an execution plan for the purposes of optimizing table structure and tuning queries.
Ideal Candidates Will Include:
- Appreciate simple design
- Love to write clean, well tested code - test first or TDD approaches a plus
- Like working with other engineers in a collaborative and iterative environment
- Have experience in a high-growth startup
- Love to learn and teach equally while and possessing a growth mindset
- Communicate well with technical and non-technical stakeholders
- Participate actively in the local development and/or open source communities
- Have worked with public cloud providers and cloud native application development
- Have experience or familiarity with one or more of the following technologies: Scala, Python, Java, Node.js, MySQL, Kafka, Docker, Kubernetes, Terraform, AWS, Elasticsearch, JUnit, NUnit.