We're looking for an experienced senior Ruby on Rails developer to join our team, building and maintaining software which helps people interact with their local governments to get permission to make good things happen in outdoor spaces (parks, streets, etc.) around the world. We're a fully-remote, small, friendly team of two existing developers, a product manager, and CTO. We currently work from the UK, Spain and Poland.
We're looking for someone keen to take a long-term view of evolving a platform, improving its maintainability and flexibility over time; grappling with technical and practical trade-offs and helping us decide where to invest our time to maximise our impact and best serve our users now and in years to come.
Description You will be working on a Ruby on Rails application used by local governments to manage permitting for outdoor filming and events. The system has tens of thousands of users and has helped in processing more than 70,000 applications for permits of different types, including for filming blockbuster films and for holding major outdoor festivals.
The platform is a Ruby on Rails monolith, currently running on Rails 6.1, hosted on AWS, with automated tests and deployments.
What will you be doing? As the most experienced developer in our team, your role will involve helping to shape the future direction of the platform, contributing to key architectural decisions, helping the other developers become more effective, and day-to-day development. You will also be involved in some DevOps.
Specific work will include:
Development: - Researching and analysing potential solutions;
- Developing new functionality;
- Refactoring existing code;
- Writing automated tests for new or existing functionality;
- Helping to improve our deployment pipeline and development environment.
Technical leadership: - Helping to shape the technical future of the product and leading, hands-on, the improvement of the system;
- Mentoring, sharing knowledge, and helping team members to improve their skills in an environment which values and encourages improvement;
- Code reviews - promoting best practices and leading by example, showing how knowledge can be shared effectively in reviews;
- Suggesting ways for the team to work more effectively;
- Working with other team members to refactor code to simplify and improve the maintainability of parts of the system;
- Being part of any recruitment efforts.
Why Join Us? Work on software that makes a difference: - Help people interact more effectively with their local governments;
- Help good things to happen in outdoor spaces around the world (community-building local events, filming of quality films, improvements to important physical infrastructure).
Have a big impact: - We're a small company and team, so everyone's contribution is seen and valued;
- You'll be working with the CTO and involved in key technical decisions;
- Have a big say in how we work and the directions we choose.
Be part of a team that cares about code quality and about learning and improving together: - Teammates who are kind and who care about what they do;
- Ongoing investment in improving the maintainability of the codebase and system as a whole;
- Fortnightly retrospectives;
- Technical book club;
- Regular feedback.
Flexibility: - Fully remote;
- Flexibility around hours if you need it.
Skills We're Looking For: These are the types of skills that we're looking for (but if there's anything you can't do yet, we'll help you learn): - Excellent written and oral communication (in English);
- 3+ years' working experience with Ruby on Rails;
- 5+ years' professional software development experience;
- Demonstrable knowledge of front-end technologies such as JavaScript, HTML & CSS;
- Passion for writing simple, clean code;
- A good understanding of object oriented analysis and design (you may be a fan of Sandi Metz);
- Experience writing unit tests;
- A great team player – you will enjoy working collaboratively, learning from and teaching the other members of your team.
Also desirable: - Prior experience developing in an Agile team environment.