Principal Software Development Engineer
At Shutterfly, we’re all about people — bringing them together, making them feel welcome, and connecting them to experiences. We make our customers’ memories last a lifetime by capturing, preserving, and sharing them through photography and personalized products. Through our family of brands, trend setting products, cutting edge technology, and best in class customer service, we help our customers, and each other, share life’s joy. Spoonflower’s mission is to inspire individuals to make, buy and sell unique products built around color and pattern. Our e-commerce website makes it possible for individuals to create, sell, and shop for unique fabrics, wallpaper, and home decor, such as bedding and table linens. As a part of the Shutterfly family of brands, Spoonflower increases the depth and breadth of what people can create, customize, and buy by connecting Shutterfly users to more than 1 million designs by independent artists in the Spoonflower global marketplace. Supporting a diverse and inclusive workforce is important to Shutterfly not only because it directly reflects our value of Embracing our Differences, but also because it’s the right thing to do for our business and for our people. Learn more about our commitment to Diversity, Equity and Inclusion at Shutterfly DE&I.
The Marketplace team is focused on building tools and services for the Artist; bringing their art to life through an easy-to-use platform, state-of-the-art image processing, and distribution channels and strategies that ensure consistency and quality. The Artist Community and Design Marketplace at Spoonflower and Shutterfly is expansive, ever-growing, and rich, and we aspire to be the premier destination for Artists to monetize their creativity.
The Technical Architect, PIM & Listings Distribution will be part of a cross functional scrum team focused on bringing our vision to fruition - specifically in developing scalable and extensible data models and mechanisms for our product and design data. We are looking for technically adept and highly collaborative developers, passionate about delivering a great platform and product to our customers. We encourage both vertical and horizontal scaling of your development skills, dependent on where you are in your professional journey, and provide access to projects, technologies, etc as is fitting. If you are interested in joining a dynamic, kind, and collaborative team - we would love to hear from you.
What You Will Do Here:
- Architects and maintains Search API and indexing backend, image processing backend, color detection/machine learning back end
- Contributes to and maintains a suite of scalable services in support of improving image processing speed, quality, and accuracy
- Advocates for and implements performance focused refactors to increase scalability and improve performance
- Mentors and develops junior and intermediate engineers - improving their skills, workflow, and confidence
- Reviews architecture proposals across teams to ladder up into overall architecture patterns and plans
- Assists in recruiting activities
- Creates documentation for existing and new services
- Support services after-hours via on-call
- Supports, where appropriate, the maintenance of a legacy application alongside creation of new services
- Participates on an Agile scrum team with product, fellow engineers, and QA
- Participates in code reviews, pair programming, and other collaborative development techniques where applicable
- Participates in an on-call structure that provides after hours support in emergent situations
- Monitors quality, optimizing performance, and developing test coverage and methodologies for continuous code release
The Skills You’ll Bring:
- 9+ years experience as a developer on production deployed services
- A degree in Computer Science or relevant experience
- Proficiency in Typescript or Rust and demonstrated learning agility over the course of your career
- Experience with Event Sourcing and Domain Driven Development as concepts - you can speak to the pros and cons of various approaches, and have ideally deployed various strategies to production and learned
- Experience with agile software development methodologies like Kanban or Scrum
- Distributed version control experience with Git
- You are self-directed and responsible for deliverables
- A team player with excellent written and spoken English communication skills
- Passionate about continuously improving user experience and delivering customer value
- Able to have a strong impact while working independently or in a team
If this aligns with your career goals, skills and experience – we want to work with you!