Blog Posts

Making Django Upgrades Easy(er)

At Rover Engineering, we recently undertook a major project to upgrade our Django version from 1.8 up to 1.11. As a team, we’ve done our share of Django upgrades before. This time however, we were particularly ambitious in upgrading three versions plus dependencies back-to-back with a goal of little to no interruption to the other projects going on in the tech team. (And we were already busy!) A couple months in, things are going pretty smoothly - we’ve managed to successfully land our other big projects, make significant progress, and we’re now about ready to put the final pieces out into production. It used to be a fairly painful process to upgrade, but we’ve definitely learned a few lessons along the way, and made our lives easier with some smart planning. Here are the lessons we’ve learned through this process:

(Read more...)

Build time optimization with pip and virtualenv

Using pip and virtualenv to manage your Python dependencies is a no brainer for development. The ability to ensure all developers use consistent versions, simplfy development environment bootstrapping, and quickly test new dependencies versions in an isolated environment are all huge wins for development. What about in a production environment or with continuous integration?

(Read more...)

Doggie Bag: Night Owl Edition

A weekly bag of snacks to take home after the meal, curated by Rover Tech.

(Read more...)

Doggie Bag: Guacamole Edition

A weekly bag of snacks to take home after the meal, curated by Rover Tech.

(Read more...)

Speeding up Django test runs by optimizing Factory Boy

From the very beginning at Rover, we’ve focused on making deploying code as fast and painlessly as possible. One important piece of our deployment infrastructure is Jenkins. As soon as we merge to master, (via a pull request) Jenkins runs our test suite—if the suite passes Jenkins automatically deploys the new version. As our app and our test suite have grown, these builds started taking longer than we’d like, so we decided to spend some time optimizing performance.

(Read more...)

JavaScript Error Reporting using Source Maps and Sentry in Django

Sure, you have error reporting for when your app 500’s, but do you know when your latest JavaScript changes to your core funnel interactions block your users from doing anything at all? Errors are far easier to catch and test for on the backend using automated unit tests, but the front-end of the web is everything but predictable. You can test to your heart’s content with qUnit or Jasmine, and automate your testing in tools like Browserstack and DalekJS, but even our best efforts will have bugs falling through the cracks.

(Read more...)

Doggie Bag: Free as in Internet Edition

Rover Tech’s weekly bag of snacks to take home after the meal.

(Read more...)

Can you code better than this rap?

In this job market, a company has to do everything it can to attract top developers

(Read more...)

Doggie Bag: Programming Sucks Edition

Rover Tech’s weekly bag of snacks to take home after the meal.

(Read more...)

How I removed email from my life

Of the many things that are really great about Rover, one of them is that we have a very healthy “email culture”. We mostly talk face-to-face or in a chat room. Most mornings, I arrive at work with very few new emails in my inbox.

(Read more...)

PhantomJS, Selenium, and Django: Headless browser testing for the rest of us

Rover.com is a Django shop, but I personally come from a Rails background. The Rails world has great tooling and infrastructure for automated functional tests - capybara, capybara-webkit, and the new hotness poltergist. Underneath poltergeist lies PhantomJS, a headless webkit with very few dependencies, excellent for automated testing. Unfortuantely, PhantomJS version 1.5 dropped Python bindings, leaving us Djangonauts out to dry. There also isn’t a great capybara equivalent in the Python world (Ghost.py is the closest).

(Read more...)

Who We Are

Rover.com connects pet parents with the nation's largest network of pet sitters and dog walkers. On Rover, pet parents can easily discover, book, and manage personalized care for their dogs including pet sitting, dog walking, and doggy day care. Founded in 2011 on the belief that everyone should have the opportunity to experience the unconditional love of a dog, Rover improves and simplifies life for pet parents and the dogs they love.

We're headquartered in downtown Seattle. We're an agile, fast-growing startup, and our leadership comes from some of the country's most respected tech companies. We've been named among Seattle's "Best Places to Work" in Seattle Met magazine, Seattle Business Magazine, and the Puget Sound Business Journal." We're also a recipient of Seattle Business Magazine's 2015 Tech Impact Awards. Needless to say (but we're going to say it anyway)-we love dogs, and we wouldn't dream of going to work without them by our sides.

Join Our Engineering Team

GitHub Repos

@roverdotcom on GitHub