Trainer Road React Developer

  • Software Development
  • Full-Time

Posted on January 4th, 2019

Compensation: $100,000

Do you do your own dishes? We've got a job for you (and it's not dishwashing ;-) ).

Do you put them in the sink and expect someone else to do them? Move on, please.

Do you get pissed (in a professional way) when someone else leaves their dishes in the sink? Please apply!

TrainerRoad is looking to expand our engineering group. We're looking for smart software engineers who "get things done." We’re interested in remote candidates in the USA or candidates interested in working in our Reno office.

Areas of work include React, TypeScript, Electron and React Native.

We're looking to hire 3x Javascript Developers to join our team.

App DevelopmentWe're moving our apps from cross-platform Xamarin to Electron/React Native. You'd be involved in this process and would work with an experienced engineer(s) to rebuild a section of the app.

Our goal is to increase the speed of app development. We do this through HRM, fast computers, a great build chain, automated testing, clear and well-defined issues and a dedicated QA team that tests every PR.

We track what our users do, learn from that and improve the product. We want this loop to be a quick as possible.

Our website is built in Angular 2+. With our move to React on the app side we'll be making new elements in React on the web.

This job is primarily for Electron (using React) and React Native app development, but there's room for someone to move to the web in the future or split their time between web/app.

Engineering Principles we believe in- Write good code, but not necessarily great code.Good code ships, great code gets "tinkered" with and debated about ad nauseam.

  • Good code is understandable. We admit it, we've made things too complex in the past. We've had complex class hierarchies and really shown off our CS skills.

Sure, there's fewer lines of code, but it takes someone a few days to figure out what's going on and it's easy to write bugs.

We believe in a few more lines of code for the sake of clarity and debugging ease.

  • Good code is testable, and we're pragmatic about testing. You don't get the same testing ROI for every line of code. We believe to test the areas that are most likely to break, are tricky or are likely to be changed. We still run thousands of unit tests per build, but we're not testing 1+1 = 2.
  • Quick builds will set you free! To be a successful engineer, you need to get into "flow" (more on that below) as often as you can. That's why we love HRM.
  • We want just enough process to be awesome, and nothing more.We have engineers review issues before a sprint for clarity and completeness. When they submit a PR there's always code review, UI/Unit tests run, then QA manually tests.

For the web, we automatically push every PR that's merged into Master.

For the app, we do weekly releases where there's a final regression test with all merged PRs from the previous week.

Our process prevents bugs/regressions and ultimately saves a lot of time.

  • Long-running branches are the devilOften times projects will take weeks/months before they are launched.

Instead of experiencing a merge/testing hell at the end of the project we encourage small PRs into master with a "feature flag" on the new project that allows employees to use the feature in production but not our users.

Cool Things we Do- Every PR has a set of unit tests and automated UI tests run against it.- Every PR is code reviewed.- We have a dedicated QA team to manually check your PR (it requires four testers to sign off).- Every web PR that is approved is automatically deployed (CI).- We've got a beta system that has a flow of production data that helps you develop and test your code without worry of breaking things.- Everything is hosted on Azure. There's plenty of dev/beta/test servers and databases to use.- The web and app team have their own Product Managers.- We run two-week sprints. The web/app team reviews, estimates, and discusses all sprint issues before they are free to be worked.- We often pair program.- The majority of our engineers are remote.- We have a skilled design team that handles the HTML/LESS for app and website.

Who We're Looking ForWe want smart engineers who get shit done! Not only do you have to be smart, but you also have to be pragmatic.

Let's say you need to paint a room white.

Smart and Pragmatic Engineer: A pragmatic engineer fills up a sprayer (rather than use a paintbrush), gets to work, and makes sure they don't paint themselves into a corner.

Smart Engineer (but not pragmatic): A smart engineer who's not pragmatic might design a system to change the color of the room in just 30 seconds. Sure, it would take 2 months to build the system but we could change colors so quickly! It's totally optimized for repainting!

If the second example sounds like you, please do not apply. We know it's fun to go hog wild in projects but we need to "get shit done". There's a whole line of other engineers and designers waiting for that room to get painted so they can do their own work on it.

We're a Team, not a FamilyIt sounds harsh to say, but we're not a Family. I know lots of businesses call themselves a family, but I think it's BS. If you get drunk at work and yell at someone, we're going to let you go (although we would give Grandma a pass at Thanksgiving).

This post has been shortened, to see the rest please follow click to Apply

Apply for this Position