Senior Software Engineer, Desktop- Files Squad

US-based remote or SF office

About Abstract
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 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
Abstract is looking for engineers to help us improve our Sketch plugin and Mac desktop application and continue building support for new file formats. 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.
Desktop engineers work in a mix of JavaScript (Electron), Objective-C, Go and C++. Familiarity with other languages like Swift, C, or C# are solid substitutes. We're more interested in your ability to learn and solve problems than your specific programming language experience.
What you’ll do:
  • Discuss, plan, and build new features using Objective-C, JavaScript, Go and/or C++. 
  • Actively contribute to decisions on desktop application architecture. 
  • Implement the best engineering practices to write well constructed and easy to maintain code and write defensive and robust tests.
  • Diagnose performance issues and improve processing time for key operations.
  • Partner with Support and QA to triage and fix bugs, sometimes working directly with customers.
  • Participate in peer code reviews through pull requests to make sure we're moving fast while also maintaining quality code bases.
  • You will work within a cross functional squad that collaborates with other disciplines like Design and Product to decide how APIs and integrated libraries should work.
  • Participate in our agile methodology (Daily Standups, Sprint Planning, Backlog Refining, Retrospectives). 
What you’ll bring:
  • A product mindset and the ability 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 requirements are a little fuzzy.
  • Clear communication skills to discuss and explain complex technical topics.
  • Enthusiasm for working on OS and low-level code.
  • When things inevitably break, you eagerly jump in to diagnose and fix the core issues.
Bonus points if you have:
  • Built native applications on OS X, Windows, iOS, or Android and can point to your work.
  • Contributed to libgit2 or Electron.
  • Built plugins for Sketch, XD, Photoshop, or Illustrator.
  • Experience with Objective-C, Go or C++.
  • Worked on small teams and are comfortable wearing multiple hats every single day.
  • An academic background in computer science balanced with a solid level of real world experience.
At Abstract, we offer resources that emphasize personal and familial wellbeing. We provide 99% healthcare coverage, including dental, vision, and life insurance. We offer 10 weeks parental leave, unlimited paid-time off, and flexible working arrangements. Additional perks include dependent care and health care FSA as well as commuter benefits for SF office employees.
To help employees plan for the future, we're able to offer competitive pay and a 401k.
We are a distributed team and we are able to offer US-based remote employment for most roles. We offer travel opportunities for company meetings, team meet-ups, and the occasional conference.
In compliance with federal law, all persons hired will be required to verify identity and eligibility to work in the United States and to complete the required employment eligibility verification form upon hire. Applicants must be currently authorized to work in the United States on a full-time basis; Elastic Projects will not sponsor applicants for work visas. 
As part of our security protocols, offers are contingent on successful completion of a background check.