Abstract is a design workflow platform for teams to version, manage, and collaborate on Sketch files. Since launching in July 2017, over 5,000 design teams across 75 countries have adopted Abstract, including teams from Shopify, Cisco, Intuit, Spotify, Salesforce, Instacart, OpenTable, and more.
At Abstract, we are actively working to build a diverse and inclusive organization. Here, diversity includes age, economic class, educational background, ethnic variance, familial status, gender, gender expression, gender identity, marital status, national origin, religious affiliation, sex, sexual orientation, transgender status, or veteran status.
Abstract is headquartered in San Francisco but many of our teams and roles are remote-first (US-based only at this time). If you have a passion for rolling up your sleeves, building new programs, and have a strong, team-player mentality, we’d love to hear from you!
About the Role
At Abstract we develop desktop and web applications that help teams design with confidence by providing a version control system and collaboration platform focused on design artifacts. We are looking for Full-stack engineers able to work with our React UI components, while mostly focusing on Go HTTP services, and/or our Ruby API.
We use Go throughout our application stack, so Go engineers on the team will enjoy a wide range of projects. We run numerous services written in Go on the web, and also interact with design data on the desktop using a CLI application written in Go. Our RESTful API is powered by Ruby, and is at the core of our product architecture.
In a typical week as a Full-Stack Software Engineer on the Collaboration Squad, you might:
- Discuss, plan, and build new features and web APIs
- Diagnose performance issues and improve processing time for key operations
- Triage and fix bugs, often working directly with our customers
- Participate in peer code reviews through pull requests to make sure we're moving fast while also maintaining high quality code
- Collaborate with fellow engineers and designers to build user-facing features that leverage our APIs and integrated libraries
- Owns small-to-large projects of increasing complexity and scope, including code shared across services or areas
- Be part of the Collaboration squad and work closely with designers, product managers, and engineers (across the stack) to ensure Abstract is the collaboration platform for designers
Practical skills you'll need for success:
- Curiosity, and a commitment to life-long learning
- Experience building end-to-end web applications
- A product mindset and a willingness to ask questions in order to improve the product, not only in its technical implementation but also in how well it’s serving the needs of our customers
- The ability to make things happen even when the path is not well defined
- Ability to clearly discuss and explain complex technical topics
- Commitment to improvement and an understanding of technical trade-offs
- Ability to collaborate cross-functionally with designers, product managers, as well as customers
- Willingness both to listen to others and to be heard
- Experience communicating technical concepts to peers, junior engineers, and non-technical audiences
- Enthusiasm for jumping in to diagnose and fix the core issues when things inevitably break. This is software, after all!
Bonus points if you have:
- Designed high-volume APIs
- Experience working with Git libraries such as go-git
- Worked in an environment with microservices or another service-oriented architecture
- Designed and built applications with Docker or Kubernetes
- Worked on small teams and are comfortable wearing multiple hats
- Experience working in an agile environment
- Experience working remotely
- Mentorship experience