A few weeks ago, someone interested in one of the backend software engineering positions at Monetate asked us about what sort of interesting problems we work on.
Rather than share our answer only with this one person, we thought we’d publish it here on the engineering blog, for the benefit of anyone who might be considering applying for a job with us.
Backend engineers at Monetate get to work on a number of interesting problems.
Some of the challenges are related to speed. We need to make rapid decisions about what modifications to make on a webpage for each visitor to our clients’ sites. We allow ourselves only 500 milliseconds to get this decision back to the customer’s browser, but aim for a median of 50 milliseconds, with a standard deviation of about 25 milliseconds (so, about 95 percent of requests should be completed within a tenth of a second).
Other challenges are related to the volume of data that we collect and process. We handle millions of site visits a day, and record many data points from each visit, so it becomes challenging to efficiently perform statistical tests on the data and make use of it in other ways (e.g. machine learning and other data-mining techniques).
The convergence of both types of problems — speed and volume of data — carries with it additional challenges. As a result, we use MapReduce and other distributed computing tools extensively.
In addition to all this, we also need to build systems that scale, not only as a result of long-term growth as a company (i.e., more clients) but also as a result of short-term traffic surges, such as those that occur on Black Friday and Cyber Monday.
Our backend engineers have the opportunity to work on a variety of these problems, and also to carve out areas of specialization.
Sound like something that interests you? Browse our open positions.