Senior Back-end Engineer, Billing Extraction Team
Toptal is a global network of top freelance talent in business, design, and technology that enables companies to scale their teams, on-demand. With $100+ million in annual revenue and over 40% year-over-year growth, Toptal is the world’s largest fully remote company.
We take the best elements of virtual teams and combine them with a support structure that encourages innovation, social interaction, and fun. We see no borders, move at a fast pace, and are never afraid to break the mold.
As a member of the Billing Extraction team, you will work in an exciting and highly demanding technical project consisting of the extraction of the billing related functionality into a new independent service in order to generate a multi-service architecture that could simplify and improve the original monolithic application. You will also establish all the synchronous and asynchronous communication between the different entities, optimize the performance of the solution, generate detailed documentation, and assist and communicate with any other member or team of the company to provide information about this new paradigm and how to work effectively with it.
We are looking for multiple experienced Ruby on Rails engineers, strong proficiency in object-oriented design, deep knowledge of microservice architecture, and with the aim not only to build good software but also create optimal solutions in order to have the best result, the most readable code, the clearest documentation, and the fastest executions possible. Good communication skills and a tendency to collaborate with other members or teams are a great plus.
This is a remote position that can be done from anywhere. Due to the remote nature of this role, we are unable to provide visa sponsorship. Resumes and communication must be submitted in English.
- Write elegant, efficient, and testable code, which is easy to maintain and debug.
- Cover code with tests and perform manual testing of features.
- Review the work of colleagues.
- Propose improvements, detect inconsistencies, and fix issues on the already existing code.
- Extract functionality into independent services from a big monolithic central application.
- Participate in discussions with other members and teams in order to define, discuss, and design alternative solutions to existing problems.
- As an excellent teammate, continuously improve our team’s processes, brainstorm ideas, and communicate status and progress.
- Mentor team members, provide feedback, and continuously improve as a professional.
In the first week, expect to:
- Meet the mentors that will guide you during the onboarding month.
- Get to know our tech stack.
- Setup and configure properly all the services we are working on.
- Participate in team and cross-team meetings and get familiar with the general organization tasks.
In the first month, expect to:
- Develop your first tasks and have them deployed to production.
- Learn about the technology that powers Toptal - services, patterns, and libraries we use and develop.
- Get to know one of the services in-depth by working with other engineers, tracking issues, and reviewing changes.
In the first three months, expect to:
- Deliver value in regular cadence.
- Get comfortable with the daily work routine of our team.
- Get to know the main services we maintain.
- Review code written by colleagues.
- Actively participate in software planning, development, and maintenance.
- Be ready to propose improvements to Toptal’s processes and codebase.
In the first six months, expect to:
- Contribute to planning and executing muli-sprint initiatives inside your team.
- Lead technical initiatives on our team.
- Drive improvements to the codebase and processes.
In the first year, expect to:
- Have a detailed understanding of Toptal’s technical stack, collaboration rituals, processes, performance, and future work.
- Determine what your career path looks like at Toptal.
- Mentor Toptal’s new team members.
- Exchange 360 feedback with peers in an annual review cycle.
- Have 5+ years of web development experience.
- Have a strong knowledge of object-oriented programming, automated software testing, databases, development, and testing essential methodologies
- Have experience extracting or developing functionality at independent services that collaborate in a common architecture.
- Care about multiple quality dimensions like user impact, failure tolerance, code maintenance, implementation time, security breaches, and performance.
- Have experience developing with a web framework, desirably Ruby on Rails.
- Have experience using GraphQL.
- Have knowledge of more than one programming language.
- Be genuinely interested in technology and love to try new things.
- Seek complex problems but also consider multiple solutions, weigh them in, and decide on the best course of action.
- Grow with providing and receiving transparent but always constructive feedback.