Pros
I was initially put off by many of the reviews for RV on here, but I took the job on the good will of some friends who were already here. It was the best decision for my family I've made in years. Tech managers genuinely care about the happiness of their employees. Though the work hours are technically 9-5, there is flexibility work time, so long as you get you commitments complete. If you need to go pick your kids up and take them to the doctor, there is no problem at all. I have a teammate who gets in every day at 7 and leaves at 3. I can't speak to the culture of the sales team, but as a member of the "tech" branch of RV, this is easily the best job I've ever had. We have enormous input into the tech decisions that are being made, decisions that will have huge affects on all of our partners. Developers are empowered to contribute in meaningful ways, using the tooling they as a group decide to be most appropriate. Want to consider a new/different architectural approach to something we're building? You are encouraged to do so. A rising tide lifts all boats. I have a clear, actionable career path with steps, positions, promotions, and responsibilities clearly defined that give me something to work towards for the next 5+ years, and they include things that will make me a better developer or manager. There is huge diversity in the types of development work done, and cross-team training is highly encouraged. Want to clock in, get some CSS/HTML done, and clock out? Those jobs are here (although people who are passionate about the client's success tend to do the best). Want to develop ground up website architectures? They got those too. Interested in Devops? Cloud services? Security? UX design/development? Want to build internal software products instead of websites? iOS/android programming? Want to build alexa skills? You can do any of those things here. There are internal teams solely dedicated to employee training & mentoring. Want to learn React but don't know where to start? Don't feel comfortable with git or the command line? Attend one of the many free workshops dedicated to teaching those things. There is even a program dedicated to training non-tech employees how to become a developer, where graduates of the program are hired directly as developers on the "tech" team. There's also a similar program that provides a similar service for people who aren't current RV employees. Being at a company where there's no ambiguity on whether or not you can move up on the team is refreshing, coming from a company that had none of that at all.
Cons
RV has high standards. You definitely don't have to be the best programmer, but you DO have to have a passion & drive to better yourself and your craft. People who don't have that drive don't tend to do well here. The interview process is rigorous. You have a technical screening call, followed by a take home project, followed by multiple in-person interviews including a whiteboard session. My advice is that the best thing you can do in the interviews is just be very very passionate. You don't have to know everything, or have experience with all the hot new tools. It's most important to show your drive & passion to better yourself. The pace of learning & performance is fast, but not unhealthy fast. As a father of 3, I was worried I wouldn't be getting home until 8 or 9 everyday or this would affect my family life. That has simply not been true at all. It's true you often have deadlines you need to hit, but the management team does a great job of trying to keep them realistic, or cutting scope on the project if the deadline isn't realistic, so that it becomes doable. Because things move quickly, there is a lot of constant change occurring. In the codebase and in the company. People change teams & seats at the company with regularity, as the needs of different partners change rapidly. The pace also means there is a lack of process around some things that could benefit from it. Some people like this, others don't. It depends on your personality. But things tend to fall on the "let's figure out how to get something done and just do it", instead of "let's create a Jira task and get approval from 3 different people, and detailed, granular requirements before we begin" side of things.