Rail Europe is looking for experienced Ruby engineers to join our existing team, where you'll help us maintain and improve our existing infrastructure, integrate new rail operator booking systems and scale effectively for our rapidly expanding user base.
This is a full-time position, working office hours, usually from 9.30-6 GMT. There’s flexibility in working hours and we offer a generous holiday allowance and a salary that reflects your experience.
This is a remote position, although you may be required to visit the office in Old Street to attend business meetings, events, and so on.
At Rail Europe we care deeply about building an inclusive, open and supportive work environment. We behave with respect for people and the planet and are seeking a diverse range of candidates that share these values.
- Our software stack consists of a pure-Ruby backend library which we use to communicate with train booking APIs, a modern Rails application, a PostgreSQL database, and two native mobile applications (iOS and Android).
- We’re integrated with multiple rail operator booking systems (with our current team we usually complete at least 1-2 major integrations each year), and we’re increasingly consuming other types of data too (e.g. timetable data for routing, real-time arrivals/departures etc).
- We need to diligently manage technical complexity, as each external system works in a slightly different way, with its own features and quirks. SOAP is (unfortunately) used by many operator APIs, which is why we released our open source library, LolSoap.
- Some of the most difficult challenges we face relate to routing and making sense of lots of data. Which routes are best to get from A to B? Which booking systems should be queried? How might we cache data without affecting the accuracy of the results?
- Because Rail Europe is the merchant of record for all transactions, we are also responsible for fraud prevention, and handling currency and other finance-related issues.
- We frequently release new features that drive rapid organic growth, and so it’s vital that we anticipate and address scaling challenges before they occur.
Candidate Essential Skills & Experience
- Has 4+ years of professional programming experience
- Has deep knowledge and experience of Ruby
- Is fluent in English and confident communicating and sharing complex information and learnings with both technical and non-technical team members
- Has a good working knowledge of modern devops technologies such as Docker
- Is comfortable designing object-oriented software from scratch, not just implementing CRUD Rails apps; a pragmatist who can see the trade-offs involved in the different approaches to solving a problem
The Ideal Candidate
Our ideal candidate meets many - but not necessarily all - of the below criteria.
- Strives to discover and understand the root cause of problems, suggesting new and improved solutions, rather than treating the symptoms
- Actively considers future maintainability when deciding how to implement something
- Has a keen appetite for self-improvement and growth, but doesn't hesitate to ask for help when needed
- Enjoys getting their teeth stuck into complicated problems, as well as being willing to pitch in on some of the more routine tasks which inevitably arise
- Is willing to participate in an on-call rota to cover technical emergencies out of hours
- Is motivated by Rail Europe's mission
- Would be happy with a salary within the range of £55,000 to 70,000 (or equivalent in another currency)
How to apply
Email [email protected].uk and tell us about your skills and experience, plus include links to any relevant public repositories. You can send a CV if you want, but we particularly like reading a well-written email.
There are some specific questions we'd like you to answer (feel free to be brief if you’d prefer to elaborate in other areas):
- What are some of the most challenging/interesting programming tasks you have worked on?
- Why do you want to work for Rail Europe?
- In what country and timezone do you live?
- What are your approximate salary expectations? (Please state currency)
We welcome applications from everybody, regardless of race, gender, or sexual orientation.
Our aim is to make the hiring process as fair and simple as possible. If your email to us answers the questions above and your experience matches what we're looking for, then you'll be asked to complete a brief coding challenge. Once submitted, your code will be scored anonymously by a developer on our team. We'll share our feedback with you via email. If your submission scored well, we'll invite you to an interview with some of our team before making an offer.
Come join us!!