Senior Software Engineer in Test - remote

Formsort
Posted 2 years ago
Formsort is reinventing how internet businesses build and optimize their most valuable forms. Forms mediate all transactions online;applying for a mortgage, personalizing your clothing subscription, and signing up for a vaccine appointment all consist of sets of forms embedded within websites or apps. To create these experiences, businesses have historically defaulted to dedicating precious engineering resources to re-invent how forms are built.

Formsort changes all that by empowering the full growth team to launch and optimize these experiences and freeing engineers from the critical path when it comes to improvement. Companies like GoodRx, Candid, and Calibrate all use Formsort to power their most valuable customer conversations.

Formsort is a remote-only company. You may apply from anywhere that maintains a 3-4 hour overlap with the Eastern Standard Time Zone (EST), UTC -5.

The role

We are looking for a Senior Software Engineer in Test (SET) to own automated testing at Formsort, to take the company to the next level of reliability and scalability.

The ideal candidate is a testing evangelist and practitioner, and can envision, implement, and maintain a variety of testing approaches, ranging from low-level unit tests through to production-like integration tests. You'll be working on both our own application code, as well as for the form flows created by our customers: improving test coverage of our admin tool (the studio) the flow renderer, as well as the flows (user-generated content) that the tool creates.
There is a huge variety in form design patterns, aesthetics, and paradigms that can be built within Formsort: letting our developers and users confidently make big changes is a critical foundation of our business.

Some of the testing-related engineering challenges we face on a daily basis:

  • Bringing continuous integration testing to the masses. As developers, we're familiar with test fixtures, integration tests, CI/CD dashboards, and release testing. But non-technical creators don't have access to any of these powerful concepts: the systems you design and implement will put this power into users' hands.
  • Multi-dimensional versioning is difficult. At any given time, any of our clients may be using any subset of our features, potentially in an A/B test, with users scattered across current and previous versions of flows. Making sure we don't break any permutation can only be only be achieved through automation.
  • Choosing the right testing tools. Today we use py.test, jest, react-testing-library, cypress, puppeteer, CodePipeline. But this list is incomplete, and we are always looking for the best way to prevent mistakes, while keeping developer productivity high.
  • Multi-platform: Flows produced in Formsort need to reliably run across all browsers, in embedded contexts, all the time. We fix the nasty browser quirks for our customers, and make sure that they stay fixed, so that our customers can focus on their businesses.
  • Maintain trust with our clients. We should prevent problems from happening in the first place, and be the first ones to know when something goes wrong, whether it's due to our own code, a browser update, or a client-initiated change. Errors and problems should be transparent, actionable, and quickly resolved.
Formsort of the future will not only let our users build forms, but will elevate their forms in ways they didn’t know to ask or to look for. To get there, we need you!

As an ideal candidate...

  • You have 3+ years of experience in software engineering, ideally having focused heavily on frontend and backend testing automation in the past.
  • You have a strong grounding in testing best practices and loves the idea of bringing it to a young and growing company.
  • You have experience with popular testing libraries, frameworks, and services, such as Cypress and py.test.
  • Are immersed in the testing community, and is aware of the latest developments in browser technologies, frameworks, and libraries.
  • You work at many levels of scale: you can sit down and write a unit test, but enjoy zooming out to set up a testing pipeline for an entirely new class of problems.
  • You can manage large projects: delivering small, incremental improvements during the duration of an effort to ensure that feedback loops and learning never stops.
  • You mentor junior teammates, and is either a manager (or would like to manage teammates someday).
  • Self-starter attitude: you take joy in identifying and executing high-impact improvements and refactorings independently.
  • Remote work makes you happy: you're good at collaborating with a team that's geographically distributed, and enjoy having a balanced lifestyle.

About the team

Formsort was founded by members of the founding team of Better to solve for the missing infrastructure required to move complex commerce online. Our distributed 10+ person team is located across the United States and Europe from California to Turkey.


Ideal timeline


Today

  • We interview you, talking through your existing projects, focusing on the motivations behind your choices and the tradeoffs that you made along the way.
  • We hire you.

The first few weeks

  • Ship a code change to production the first day.
  • Get to know the full stack and identify areas with low test coverage or cumbersome workflows.
  • Become familiar with examples of flows that our clients run in production, to build realistic and impactful tests.
  • Add any missing tooling to increase developer productivity.

The first few months

  • Work with engineering team to ship a new system: client-editable test cases and monitoring for production flows.
  • Reduce the number of defects in shipped code by increasing test coverage: both independently and by collaborating with the rest of the dev team.
  • Build process and workflow to ensure an ongoing high level of quality.

The first few years

  • Work with mobile developers to make a reliable iOS and Android version of Formsort