Ruby on Rails Engineer (contractor)
Remote
WHO WE ARE LOOKING FOR
An experienced Ruby on Rails engineer who will collaborate with our highly skilled team in developing various solutions for a world-renowned client.
Infinum’s Rails team is composed of around 13 engineers. Our primary technology is Ruby on Rails, and our database of choice is PostgreSQL. We write our projects using the DDD methodology, and are proud of our excellent test coverage across projects.
We mostly build APIs, admin dashboards, and integrations with third-party services – without us, clients aren’t served, and emails aren’t sent. Since we are big believers in keeping API documentation up-to-date with the actual implementation, we generate ours from tests.
Position specifics
This is a project-based position for an international insurance company.
You’ll be collaborating with an established engineering department that supports a mature Rails monolith with tens of supporting auxiliary services. Your day-to-day duties will revolve around supporting insurance pricing changes in various global markets. The work is very impactful but requires a safe and steady engineering approach.
You’ll encounter complex issues spanning multiple services as part of your weekly bug duty, so some experience with debugging complex systems is required.
The codebase has evolved and grown over time, so there are plenty of opportunities to showcase your talent and incrementally improve it.
This is a full-time position (40 hours per week), and we expect you to be based within the EU and available for meetings or calls between 9:00-17:00 in the CET timezone (upon prior confirmation).
01
Qualifications & Experience
- at least 4 years of experience with Ruby on Rails
- background in software development and/or computer science
- experience working with large applications in production
- comfortable taking ownership of various aspects of a project and being in charge of ensuring everything is delivered on time
- affinity for keeping up with general software development news
- deep understanding of object-oriented programming and design patterns
- experience with writing tests
- experience working with both local and international clients
- excellent knowledge of written and spoken English
- experience with JavaScript frontend frameworks is a nice-to-have
- a drive to make your code better every day
02
Your responsibilities
- planning, developing, deploying, maintaining, and documenting various software solutions
- regular dependency upgrades and security patches for CVEs
- defining tasks and providing time estimates
- writing clean, maintainable code and tests (unit/integration/end-to-end)
- rolling out new features, and analyzing (and reacting to) the results you learn about from our QA Engineers and user feedback
- collaborating with clients, project teams, and technical teams
- presenting your solutions to clients and/or a group of colleagues
- proactively communicating with other team members and project stakeholders
- using agile methodologies in development
The selection process
01
Screening interview
You talk to an Infinum Alliance person leading you through the selection process. You get to know more about Infinum, your potential future project, and your position while we also get to know you. We’ll also take a closer look at your general engineering skills.
02
Technical interview
You talk to Team Lead and Infinum Alliance about your technical expertise. It can also include a live coding assignment to better asses your technical knowledge.
03
Client interviews
You meet the Client discussing your past experience and complex technical topics to assess the fit between your expertise and project requirements.
04
Offer
All going well, in this stage we send you the offer, which includes all the information like salary details and all relevant terms for working as a project-specific contractor at Infinum.
03
Next thing you know
Before you know it, you’ll be collaborating with our Rails teams on a real-world project.
Tools
we use
GitHub
All of our work is on GitHub. Everything goes through pull requests and code reviews.
GitHub Actions
We use GitHub Actions to automate our CI/CD pipeline, ensuring that our code gets from development to production with minimal fuss.
New Relic
New Relic is our go-to solution for monitoring the performance of our apps so we can make sure there are no bottlenecks that stop everything from running smoothly.
Docker
On some projects we add Docker to our toolkit to bundle up our apps and dependencies, making deployment a breeze.
AWS
Our go to cloud-computing platform which we use for hosting our apps, working with databases, storing files and other features.
Sidekiq
Sidekiq is our behind-the-scenes hero, handling all those background tasks and making sure our apps stay lightning-fast.
JSON:API
The https://jsonapi.org/ standard is our preferred solution for server-client data exchange. We’ve built multiple gems that simplify data extraction, serialization, etc.
Bugsnag
We rely on bugsnag for capturing errors on our applications. When a problem occurs in our code, Bugsnag automatically creates an event and notifies the whole development team.
Rubocop
A Ruby static code analyzer and formatter, created by the community to make clean code, by following the best practices used by Ruby developers.
RSpec
Tests are an important part of our projects, and we use the RSpec testing framework for Ruby and as well for Rails. It is the most frequently used testing library for Ruby in production applications.
Dox
Our in-house developed Rails gem for automatically generating API documentation from Rspec tests.
Revisor
We’ve built an application that observes the health of every active project and notifies us about new CVEs. We frequently update our dependencies and like to keep our apps and infrastructure up-to-date.
Productive
Most of our projects are managed using Productive, in-house software which substitutes Jira, Asana, Trello and other issue tracking products.
Slack
Whether remote or in the office, Slack enables us to exchange information, discuss code, make decisions quickly and stay on top of things.
Handbook
Through the years we’ve built a vast repository of knowledge related to ruby, rails and backend in general. It also serves as our guide and shows how we make our applications.