Senior Frontend Engineer (React Native)
If you have a soft spot for bootstrapped, profitable, remote companies with a meaningful product, and you want to use your frontend development skills for good, you’ll like this.
Drops’ goal is to turn language learning into a delightful game while ensuring effective learning. Drops is one of the top10 most innovative education companies according to FastCompany. Our app is in the Appstore for 3+ years, teaches 35 languages, was featured by both the App Store and Play Store multiple times - App of the Year in 2018 on the Play Store - and the company is still run by the founders. We are a small, super-capable remote team mainly spread across Europe (we have a small marketing crew in California) . We’re working synchronously, so time zones matter for us. We communicate via Slack, Github and Monday. We want to be the no.1 app for vocabulary learning and we are getting there quickly with our current user base of 18 million, a monthly active of >1,500,000 and an average store rating of 4.7.
You can find us here:
You’ll be a core part of the development team, working on both our main (Drops) and auxiliary products (Droplets, Visual Dictionary, Internal CMS tools). This means a lot of ownership, which we cultivate by having a flat structure.
You’re a no-nonsense person, who is comfortable taking on larger projects, who has been working in working at a product company and has extensive front-end development experience.
You have been working with React or React Native for years, have deep knowledge of everything that’s happening in the browser or in a mobile client and looking for challenges in growing a product from an already large userbase to tens of millions of MAU, with all the complexity that’s involved in that.
You strongly prefer static typing over dynamic languages, and use every opportunity to transform code that doesn’t use types into code that does. You generally prefer to use a minimal set of simple tools to a diverse range of complex ones.
You like to have a variety of projects - at this job, you’ll be developing a complex web app, a static site generator (react-static), building internal automation infrastructure/tools and contributing to our internal content management system.
We’re building a small, but super capable team. You’re naturally more interested in the fate of the product & driven to grow professionally than in managing people.
We value clear and honest communication and transparency, it’s the linchpin of our culture and current success and freedom. You will be involved in both high and low level decision making and will be available during European working hours (9AM - 6PM GMT).
We are looking for a missionary rather than a mercenary.
What’d be different here:
- We’re a small team. We’re optimising for impact, not for headcount. You’ll be carefully considering any tradeoff that would lead to increased complexity.
- We’re using a single programming language - TypeScript. We have strict linter rules. Every pull request needs to be approved before it lands in master. We use the rebase workflow.
- We’re using React + Redux to develop UI, on both mobile and the web. We use selectors extensively. Our backend is on AWS, deployed to Lambda.
- We’re doing things in a functional way, concentrating state, minimising side effects and making dependencies explicit. We’re sharing 98%+ of the code between Android, iOS and Web.
- We’re writing software with a web developer’s mindset.
- We automate where it has positive ROI.
- Our biggest challenge is (and will remain): managing the complexity of sharing a lot of code between different apps.
- We’re not building a hierarchy. We’re encouraging everyone to be autonomous.
- Work cross functionally with our designer / data analyst / backend developer / project owner to define, scope, estimate and plan various aspects of the product.
- Work independently and with other engineers to develop new web experiences..
- Support of production applications / sites that you’ve built or helped to build.
- Communicate effectively and often to ensure that everyone is aligned.
- At least 5 years of experience in software (product) development.
- At least 2 years of experience in building with React or React Native.
- Experience architecting and developing complex web or mobile apps and static sites.
- Some experience in understanding basic funnels, and collaborating with support to resolve user-facing issues.
- Project management experience (everyone is managing projects at Drops).
- Strong verbal and written communication skills and the ability to work well cross-functionally.
- Experienced in strongly typed languages, and/or Typescript/Flow.
- European time zones