Full Stack Software Engineer
Remote - US
Remote - Canada
We are looking for a full stack software engineer who has extensive experience with Ruby on Rails, PostgreSQL, ReactJS, Elasticsearch, and AWS infrastructure. The more legacy code you have handled and successfully migrated, the better. You should be a team player, should be able to take our requirements and acceptance testing criteria, and write high quality, easy to understand code which is easy to maintain and build upon. A well written refactored code is better than just making things work. We love pairing and doing code reviews and it would be an integral part of your role. Ideally, you should know how rails work in depth, be able to improve performance of a PostgreSQL query, solve scalability issues, create secure APIs and NextJS applications on top of it and practice clean architecture and clean coding philosophies.
What You'll Do
- Build robust, fault-tolerant, and scalable React/Rails features and applications.
- Build new ReactJS based features as per stakeholders’ requirements on top of our NextJS Video Library app.
- Make our backend for all apps lightweight by migrating all the Sidekiq/Redis jobs into AWS Lambdas. Presently we use Heroku worker dynos to run these tasks but it has its limitations. We have migrated a few of these tasks into AWS lambda. Being a serverless infrastructure, it has worked great for us.
- Merge our backend applications that share a lot of common data with each other into one single application that multiple front end applications interact with. This will remove data redundancy and provide easy maintenance opportunities we presently face issues with.
- Stack upgrades fix bugs, make apps more scalable, memory efficient, and secure.
Who You Are
- Expert/Adept in Ruby on Rails.
- Expert/Adept/Proficient in ReactJS.
- Adept/Proficient in PSQL.
- Adept/Proficient in AWS infrastructure.
- Adept/Proficient in Elasticsearch.
- Has timely delivered on successfully migrating complex legacy code to a more maintainable newer version.
- Understands the value of clean code.
- He/She Is a team player. Has worked efficiently with designers and other engineers and can pair when needed.
- Understands the value of great software architectures and can give his/her suggestions in decision making.
Engineering Team Values
- Always keep the user in mind. We build solutions for our coworkers, partners, clients, and ourselves. In each context, we keep the individual needs of the user in mind through discovery, design, engineering, and release.
- Context is key Building Products is a creative process, there is no one size fits all solution. We strive to be aware of situational context when making decisions about product, priority, architecture, process.
- Fail Fast Most products fail. The harder this is to accept, the more accepting it presents a strategic advantage! We strive to separate ourselves by spending as little time as possible on 'doomed' products. So we ask why the product or feature we are working on may fail. We do this to eliminate as much risk as possible for products that will make it launch and identify products that will not be viable as early as possible, ideally during discovery.
- Don't reinvent the wheel We are very lucky to work in such an active time for information sharing. We should always consider if there is a simple open-source solution or a paid alternative to any work we take on. We prefer stable solutions, good documentation and examples, and active communities when seeking alternatives to building something ourselves.
- Build For Future Change When considering future changes while developing today's roadmap, spec, or feature, we walk a fine line - fortune-telling is a tricky thing! All things being equal, we want code that is easy to change later (such code is by definition also easy to understand!). However ice-boxed work has a way of lingering, so be careful not to 'prefactor' too much, as unused code is unnecessary and confusing.
- Always be Learning Our field evolves at a breakneck pace. Great new products, libraries, packages, practices, etc are being shared all the time. And there is bottomless depth in the fundamentals. We are dedicated to keeping up and leveling up, and helping each other along the way
Perks + Benefits
- Competitive compensation (base salary, EOY bonus, equity)
- Full benefits package (medical, dental, vision, life insurance, FSA, HSA, 401k matching, LTD, critical illness insurance, etc)
- WFH stipend
- Quarterly L&D Opportunities
- Annual company retreat
- Accepting candidates from any geographical location; this role is currently fully remote due to COVID-19