Experienced Ruby Engineer - Syncs Team
Posted on Thursday, August 31, 2023
We start with the cliff notes about the position. If this appeals to you, continue reading for a longer text about working at Silverfin and your role 👇
At Silverfin, we're an equal opportunity employer and value diversity at our company. Although we know we’re not perfect yet, we are working hard on it and always open for your feedback.
According to our vision to build a diverse, equitable and inclusive organisation, our policy is to only make a final hiring decision if underrepresented groups are sufficiently represented in the list of candidates applying for the position. For this reason it’s possible interviews get slightly delayed until we’ve reached that goal.
We're committed to elevating talent by creating an environment where we can all thrive together. So if you think you have what it takes, but don't necessarily check every single box, please consider applying. We'd love to hear how you might contribute to our mission and our team.
What can we offer you?
- Actual, proper work-life balance
- A salary range of €93.000 - €123.000 a year
- Flexible working hours and work 100% remotely
- Personal growth training and opportunities
- Join a distributed remote-first engineering team with 35 colleagues in 14 different countries
- A refreshing work environment with professional, friendly and welcoming colleagues
- A €1000 yearly budget for conferences, courses, workshops or other expenses that will improve your skills
- Two engineering retreats per year, somewhere in Europe
- For the third year in a row, we offer monthly company-wide Wellbeing Days for all employees (once a month in 2023, except in July and August)
What will you work on?
- Building and maintaining integrations with accountancy software packages and APIs
- Improving and expanding our on-premise Ruby client which runs on thousands of our customer’s systems
- Designing and building features to make the lives of our system administrators easier, such as an auto-updater and continuous deployment.
What are we looking for?
- You’re experienced in both Ruby and Rails, and also understand where the boundaries lie between them. You can code in Ruby without any of Rails’ training wheels if necessary.
- You’re up for mentoring coworkers and can give in-depth, productive feedback during code reviews. While you appreciate the small stuff, you recognise bike-shedding and can avoid its pitfalls.
- You enjoy integrating with APIs and aren’t easily dissuaded when encountering unreliable or poorly documented systems.
- You code with reason and can justify the important decisions you made during development.
- You can communicate clearly in English, both in writing and verbally.
- You know and can apply best practices when relevant. That means the usual like version control, testing, and refactoring; but also higher level concepts such as good object oriented design.
- You're aware of the trade-offs involved in proper engineering and can make balanced business decisions, keeping in mind all the stakeholders of the project.
- You’ve got opinions on code design and you can discuss them, but you’re professional enough to not let those opinions get in the way of a consensus if necessary.
- You have at least 4 years of experience working with Ruby, or 2 years of experience with Ruby and 4 years in one or more other programming languages
- You get Rails
- Your work hours have some overlap with EU business hours (we require your local timezone to be within CET +/- 3h)
- You can communicate clearly in English, both written and verbally
Nice to haves
- Experience as a remote worker in a fully remote team
- Experience working with large datasets and the problems they bring
- Experience in Fintech
- Accounting knowledge
These would be nice but are definitely not necessary. Don’t worry if none of the above applies to you.
What’s a Silverfin?
At Silverfin we’re trying to apply the promise of software to the age-old industry of accounting. With our SaaS we’re automating a large chunk of the busy-work that accountants are currently handling manually, and are building new tools so they can provide better services to their customers. We aim to optimise their workflow in such a way that accountants can spend more time on the much more impactful and rewarding work of advising their customers, the business owners.
The good news is we’re succeeding in doing exactly that. Every week more than 15.000 financial service professionals use Silverfin to help and advise more than 400.000 businesses. Our customers adore us! The even better news is there’s still plenty left to work on, and that’s where we hope you come in.
What’s Team Syncs?
One of the core features of Silverfin is integration with the bookkeeping software that accountants already work with, in order to import their accounting data. This means we have integrations with over 30 different vendors, and we want to add more as we expand to different markets.
Team Syncs is one of the teams responsible for creating and maintaining these kinds of integrations. The ideal candidate loves working with APIs, including the uncertainty they bring. Some APIs we need to use are poorly designed, badly documented or unreliable, and it can be challenging to build a robust integration. Yet the satisfaction of empowering our customers to import gigabytes of data from their clunky bookkeeping software and to use Silverfin's advanced features makes it all worth it.
Being a tinkerer and having persistence to solve puzzles will definitely be a plus to face our many challenges due to the plethora of different systems we interact with.
Now let’s give you something to chew on!
Our short-term roadmap will focus on:
- Refactoring and improving our own framework (written in Ruby) which is installed on windows machines and consumes our REST API. This process involves accessing raw data on customer’s machines and sometimes doing reverse engineering to collect and transmit the required data.
- Building an auto-updater for our system to be able to perform automatic updates of our Ruby client in a timely fashion over more than a thousand remote installations running at our customers’ premises.
- Improving our Ruby client’s performance
- Adding tools to our framework to debug, instrument and log errors.
Longer term we will then focus on:
- Refactoring internal data import pipeline. The main goal will be to move from sequential processing to parallel processing to improve syncs speed and stability by cutting through legacy technical debt.
- Improving our syncs interacting with 3rd party APIs to optimise the amount of queries we perform and reduce necessary pressure.
- Implement orchestration when downloading financial documents to improve performance and give our customer better feedback.
Bringing our administration sync pipeline to the next level by integrating technologies only used by our financial pipeline.
What does working at Silverfin look like?
The product team will work together with the other Silverfin engineering teams. While the product team is set up as a stream-aligned team, most other teams are set up as platform teams around modules and topics of the Silverfin application. They are helping the stream-aligned team to develop solutions fast and without a lot of mental overhead. The platform teams' focus is the stability and long term architecture of the product as well as building frameworks and libraries that can be used by the stream aligned team. If those terms are not familiar to you, check out the "Team Topologies" book by Manuel Pais and Matthew Skelton which inspired this structure.
Our ops team ensures things run smoothly, deploys happen correctly, and will work with you when issues should arise. We’re enthusiastic followers of the devops mindset, which means ops and developers work together to solve problems, and empower each-other to be self-sufficient, instead of throwing problems over the wall to the “other side”.
We run an up-to-date Rails monolith on the backend, with PostgreSQL and Redis for persistence and caching, and everything is running on a Kubernetes cluster in Google Cloud. Our daily tools include GitLab, Quip and Slack, with Zoom as our remote conferencing tool of choice.
No code gets deployed without a code-review by a peer and testing is a must. Our pipeline automates deployment when the suite is green, and deploys happen dozens of times a day. Each team is currently doing Kanban, but they’re free to follow whatever process suits them best. There are regular retros held to work towards continuous improvement.
Software for accountants is not considered to be very exciting, but we have our fair share of technical challenges. To give you a sense of scale: our database exceeds 10TB*, and our largest table has crossed the 10 billion row mark a long while back. We interface with more than 30 different external APIs, and provide third parties an API of our own.
*: Our ops team noted that this actually isn’t that hard to achieve if you’re just indexing everything, but it still sounds impressive, right?
What makes the engineering team at Silverfin special?
We’re a remote-first engineering team of 35 people distributed in 14 different countries over two continents. A priority for us is maintaining proper work-life balance. We avoid meetings as much as possible, accept deadlines only when absolutely necessary, and never expect anyone to work longer hours than they’ve signed up for. A day in our working lives is pretty boring, and we feel that’s exactly how it should be.
Working with us means you can be flexible with your schedule. It’s OK to disappear for a few hours in the middle of the day to run some errands, get a haircut, pick up the kids - whatever reason, you don’t need to explain yourself. You also fully decide when you take time off: our team is sufficiently varied and well organised that there are always enough people around to handle the load, and in the rare cases it’s not, we will decrease the load instead of asking people to move their holiday.
Being remote-first means we favour asynchronous communication. We don’t shy away from chatting in Slack, but the important decisions or discussions are done in Gitlab issues, over email, or in Quip, so there’s a written, persisted record. We’re mindful of maintaining long chunks of focussed time, which means we avoid @-mentions or PMs on Slack, and other triggers and interrupts. We encourage using Slack’s DnD function, especially when you’re not working!
We’d be really happy to welcome you in our #engineering channel, but it’s not just virtual: we make sure we regularly get to see each other in real life too. Twice a year we fly the whole engineering team together to a different location in Europe, and at least once a year we join up with the rest of the company so we can spend some time together with the other departments.
What does your future look like?
Personal growth is key to staying motivated. At Silverfin you don’t need to move to management in order to advance. We see the individual contributor track and the management track as two different growth paths which every engineer can follow and switch between. You can be promoted, including pay raises, as a contributor just like as a manager.
Everyone has a €1000 yearly budget to spend on conferences, courses, workshops or other training to improve their skills and level up. This also includes accommodation, travel costs. If the conference is on a workday you’ll get paid like any normal day.
You can apply today and we’ll start having interviews from 11/09. There’s no benefit to applying early, so you can take your time answering the application questions.
- Apply for the job right here
- Or email us with any questions on email@example.com