Senior Software Engineer

Full-stackFull timeSenior

We are looking for an experienced and proactive Ruby developer to join our team. We expect them to be a passionate, opinionated and creative individual who can develop web applications from the ground up. Who will understand web strengths and constraints and build pixel perfect solutions. You should be capable, and willing, to play a key part in developing responsive web applications.

In this role, you will:

  • Maintain a complex backend which processes more than 350 million web server requests per day;
  • Build a modern API application atop a functional architecture in Ruby, Ruby on Rails, and/or Sinatra;
  • Build well factored, maintainable, and tested code using RSpec with Test & Behavior Driven Development (TDD & BDD);
  • Understand and build using strong architectural patterns beyond the standard MVC of Rails;
  • Have a strong sense of OO programming and Architectural patterns;
  • Be able to work with, mentor, and guide a distributed team of developers.

What we expect:

  • 5+ years of software development experience;
  • Experience with RoR 3.2+;
  • Experience using design and architecture patterns;
  • Strong sense of ownership, ability to work independently, and proven track record of driving products;
  • Shipped consumer API used concurrently by thousands of users.

As a plus:

  • Full stack knowledge of technologies like Ruby, GraphQL, SQL, Linux, React, Angular and AWS would be highly desirable;
  • Experience working with big data technologies and ETLs like Spark, S3, and Redshift;
  • Experience with analytics platforms, CRM, and engagement platforms (e.g., Mixpanel, Amplitude, Moengage, Quicksight);
  • DevOps experience - Docker, k8s, linux/unix;
  • Experience completing product iterations based on insights from data;
  • Knowledge of Python, Scala, Spark, Athena, or Databricks.

Join Our Team

By submitting this form, I consent to SmithySoft® processing my personal information as set out in the Privacy Policy; and I understand that given the global nature of the SmithySoft® business, such processing may take place outside of my home jurisdiction.

We Offer

remotely work icon

The ability to work remotely and a flexible work schedule

competitive income icon

Competitive income

mentoring icon

Opportunities for professional growth and mentoring

compensation icon

Compensation for the costs of specialized training and improving the level of English proficiency

certifications icon

100% reimbursement of the cost of passing profile certifications (including AWS)

sponsoring icon

Sponsoring participation in professional conferences

corporate library icon

Corporate library

knowledge-sharing icon

Knowledge-sharing atmosphere

Our Guidelines in Work

Guidelines icon
star iconstar icon
We Are In This Together
star iconstar icon

We are a team and take collective responsibility for the code we create. There’s no place for individuals withdrawing. Sure, each of us has different involvement due to levels of expertise. However, when one developer ships code, we all celebrate it, and we all do our part to support it in the future.

We Follow "The Rails Way"

We put our stakes on the Rails as the greatest way to follow. Ruby and Rails is the best "boring" combination that suits our vision, goals, and skills. We’ll always choose those tools and patterns first in a pragmatic approach. However, we’ll bring in new ideas where we see value in them. Following "The Rails Way" enables us to ship features quickly and with the minimum amount of stress by keeping the codebase well-organized, predictable, and coherent.

Investing In New Tech

The Rails are great but not almighty and we will never stop exploring new technologies. We make practical bets on solutions to sensitive problems we have right now. However, problems do not predetermine a solution, even if the solution is the most popular to solve certain problems.

We Don't Mess With Success

We code, then test, then release. If it works, then it's done. If it's not perfect now no one says it can't be perfect at all but now it is already good if it satisfies our client. We will work on it more to try and make it perfect, will kill all the bugs, but the main thing is not to do excessive tasks that will bring only hassle and no result.

Sticking To Boring Old-School

We choose "boring" technologies – reliable and proven, such as Postgres and Rails.

There Is No Progress Without A Challenge

We challenge and question each other because the truth is born in a dispute. Having healthy arguments from time to time is a great way to reach a better decision. We learn to listen to each other’s viewpoints respectfully, explain our decisions, weigh the pros and cons, empathize with differing viewpoints, look for consensus, and ultimately agree on a decision — even if it did not match initial thoughts. We argue the tech points, not the personal traits, and we try to keep these discussions meaningful.

Trust Is A Must

The team cannot exist without mutual trust. We’re trusted to get our job delivered, to do what we say we’ll do, to work with our best effort, to make our best decisions, and we’re trusted not to abuse the autonomy we’re given. In turn, we trust that others will do the same.