Wayfair believes everyone should live in a home they love. Through technology and innovation, we make it possible for online shoppers to quickly find what they want from a selection of more than 14 million items across home furnishings, décor, home improvement, housewares, and more. Our media assets which include images, videos, documents, and 3D models enable shoppers to make purchasing decisions.
Wayfair’s Catalog Media - The Production Management team oversees Wayfair’s proprietary virtual asset production experience from start to end. We provide workflow and management capabilities to enable scalable, cost-efficient, transparent, and high-quality asset creation. We are in the process of rebuilding our platform in microservices architecture and Domain-driven design principles. In this role, you will work closely with the PM to define solutions to user problems, design, implement, deploy, monitor and provide production support. If you enjoy working in a challenging and collaborative environment and building scalable solutions, come talk to us!
What You’ll Do
- Lead the design and implementation of new services that are performant, reliable, secure, testable, maintainable, and well documented
- Make improvements to existing services that increase performance, reliability, security, testability, and maintainability
- Architect and write robust, well-tested code for major team initiatives
- Design systems that are user-centric, scalable, and provide visibility into reporting.
- Participate in team strategy, roadmap definition, and sprint planning
- Participate in design and architecture discussions
- Educate, Mentor, and help provide a delightful development experience for all of Wayfair’s engineers
- Provide high-quality reviews, both for code changes and architectural designs
- Work cross-functionally with different roles and teams, such as product management, core areas of the business, and other engineering teams to understand the problems we need to solve, and solution against them
What You’ll Need
- 5+ years of experience as a full-stack software engineer with experience in designing and building large distributed systems.
- You have experience in developing services, troubleshooting & debugging distributed systems.
- You are able to make tradeoffs across more than one programming paradigm (knowledge of Python is a plus)
- An ability to understand and make tradeoffs between different technologies and patterns
- Deep understanding and experience of object-oriented design and design patterns
- You know how to make large software projects maintainable and extensible in the long run and have experience with technologies such as databases, queues, workers, concurrency, indexes, etc.
- You are curious about software and how things work, you work to understand technical problems deeply, and you stay current.
- Working knowledge of large scale distributed systems and streaming platforms like Kafka is a plus.