Experienced Ruby Developer for our Syncs Team

Silverfin • Posted August 11th

Software Development
Silverfin logo

We start with the cliff notes about the position. If this appeals to you, continue reading for a more long text about working at Silverfin and your role 👇

According to our vision to build a diverse, equitable and inclusive organisation, our policy is to only make a final hiring decision if minority 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.

What can we offer you?

  • Actual, proper work-life balance
  • A salary range of €75.000 - €110.000 a year
  • Choose your own working hours and work 100% remotely
  • Personal growth training and opportunities
  • Join a distributed remote-first engineering team with 35 colleagues in 15 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
  • We offer monthly company-wide Wellbeing Days for all employees (10 paid days off in 2022)

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.

If you’re any good at Ruby, this is probably not the first job ad you’ve seen, so we’ve done our best to stand out while also accurately presenting what we’re all about. If it sounds like you would enjoy working with us, don’t hesitate to apply or drop us a line with questions on [email protected].

Ahum. Here it comes.

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 day more than 15.000 financial service professionals use Silverfin to help and advise more than 200.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 kind 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 debts.
  • Improving our syncs interacting with 3rd party API to optimise the amount of queries we perform and reduce necessary pressure. Sobriety at it’s finest!
  • 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 makes the engineering team at Silverfin special?

We’re a remote-first engineering team of 35 people distributed in 14 different countries. 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 our wiki, 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 working at Silverfin look like?

We work in nimble teams around 5 people in size, with each team taking ownership of a specific set of features of the application. Teams are responsible for a full slice across the stack, so both the backend as well as the frontend of each part is maintained by the same people. In team syncs, however, we almost have no front-end work to do, as most of of our work features do not involve a UI.

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. Team syncs also owns a Ruby client app that runs on windows servers to interface with local accounting software.

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 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 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 language.
  • You get Rails
  • Your work hours have some overlap with EU business hours (we require your local timezone to be within CET +/- 3h)
Nice to have’s

These would be nice but are definitely not necessary. Don’t worry if none of the following applies to you.
  • 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
  • Knowledge of running Ruby on Windows machines

You can apply today and we’ll start having interviews from 18 July. There’s no benefit to applying early, so you can take your time answering the application questions.