Did you ever have to maintain multiple versions of a REST API because the change you needed to make would break existing clients? Does your native app have to call multiple REST endpoints to get all the data it needs? This blog post is about how we addressed these common problems using GraphQL and our transition to GraphQL Federation at…
RetailMeNot
https://medium.com/retailmenot-engineering/ · 10 posts · history since 2017 · active
8 Oct 2021
15 Nov 2019
Background At RetailMeNot, we are excited by the promise of automating visual regression tests with Applitools . In this post, I’ll show how to make writing Applitools tests for Android a cinch. We’ll start with the official integration guide recommendations and then use JUnit and Kotlin features to make our tests concise and maintainable. This post assumes the reader is…
22 Oct 2019
We live in a day and age where consumers cannot access medication for their ailment because of cost. We are aware of the anecdotes related to delaying treatment. In the same way, some engineering teams are stuck with projects which are in an unhealthy testing state. The team goes on sprint after sprint with the situation getting worse, not better.…
18 Jan 2019
Reviewing code Happy new year! The beginning of the year is a great time to reflect on our strengths, our accomplishments, and our areas of opportunity. Perhaps you’ve decided that code reviews are one of your areas of opportunity. Wonderful! I’m so glad you’re here. I highly recommend checking out parts 1 and 2 of this series, as code review…
13 Dec 2018
Being Reviewed Putting your code up for peer review can be a scary proposition. You’ve artfully crafted this code over multiple hours and cups of coffee. Your precious, perfect baby is about to be exposed to the big, dark, scary world and torn to pieces by your coworkers. Okay, maybe I’m overstating things a bit. But code reviews can be…
26 Nov 2018
Self-Review Code reviews are an integral part of software engineering, and unless you work alone, are likely to be a regular part of your work life in building software products. Code reviews can occasionally be contentious, and about as fun as a root canal, but they don’t have to be! Over the course of this three-part blog series, I will…
19 Oct 2018
I can’t say that I was always fond of teaching. My first introduction to it was also my introduction to presenting. Many years ago, a small company I worked for held an annual conference on how to develop and work on its software platform. Having brought all the staff together, the CEO declared that everyone was expected to present. I…
1 Nov 2017
If you want to make Swift programmer shudder, just whisper the words “associated types.” They’re one of the few Swift language typing features you’re unlikely to find in other programming languages, so they can take some getting used to. Last week I tried to write a seemingly simple function, and ended up spending most of my day diving down the…
In my last post — Minimally Invasive API Versioning — I talked about how the Mobile API team at RetailMeNot handles versioning our Clojure APIs using a macro called versioned . This macro alone worked great for over a year, but we needed more. In this post I will cover how we evolved it to help ease our feature rollout…
18 Oct 2017
One of the challenges in developing an API for mobile apps is that there is not both a pleasant and reliable way of forcing them to upgrade. This means that in some cases your API needs to support apps that are several years old. The mobile API for RetailMeNot is no exception. This post walks through one of the ways…