Every day, millions of people rely on WeTransfer to share their creative ideas. So, the work we do matters. Come and be a part of it.
About our workflow
We believe that software is gardening. We trust each other to make good decisions, to provide and accept good feedback and we believe that Ruby is a reasonable vehicle for supporting the growth of our business.
Our main toolkit includes Rails for our majestic monolith, Rack, Sinatra and Sqewer for our services, RSpec for testing, and a number of supporting libraries. Our UI is a modern React/Redux single-page app.
We believe that a service is not something you put "out there" and forget. By maintaining our infrastructure and software well we try to keep our code clean, our tests passing, and our technical debt within reasonable margins. We are certain that any fashion, be it monoliths or microservices, is to be applied sparingly – for example, we split our services based on data isolation, vastly different load profiles, and team ownership.
We bring our code to production using continuous integration and self-service deployments. Enabled by infrastructure as code built on top of the platform-as-a-service provided by our platform team, we own our products end-to-end.
What you’ll be doing
As the software architect, you will make sure our systems evolve with the needs of the company as our products evolve and our user base grows. You will be working across all product teams to help them with systems design and engineering decisions. Your home base will be the Core Services team, which looks after a number of services that are core to our products.
Together with our Lead Engineers and VP Engineering, you will continuously monitor and refine our engineering strategy. Whenever architectural changes are proposed, you will be pulled in to advise and coordinate. But you will also initiate projects yourself, based on the engineering strategy and the needs of the business.
Impact the experience of millions of users around the world.
Who we are looking for?
We are looking for an experienced engineering lead, someone who _has seen it all_. You need to be a team player, recognising that this role is as much about influencing as it is about being an individual contributor. You're a good listener and will change your mind as new information comes to light, but you don't let different opinions lead to designing by committee. You have strong opinions, weakly held. You are comfortable presenting your plans to a big group, and being challenged on them. You're intimately familiar with all aspects of web applications, from frontend to APIs to backend systems to databases and everything in between. You're passionate about Ruby, or willing to dive in head-first and learn it inside-out. You can demonstrate fluency in multiple other languages as well.
Experience designing and evolving highly scalable systems
A good communicator, able to both paint the big picture, and zoom into extreme detail
Able to see the big picture, and imagine what the next version of it should look like
A natural tendency to teach others what you know
Experience in leading on engineering across multiple teams
Even better if you have:
- Contributed to Open Source projects (we’d love to see them!)
- A degree in Computer Science or a related field