There’s an important piece of infrastructure lacking the appropriate level of automation. In fact, without this part you are not connected to the Internet. I’m talking about the network hardware that moves packets between your backend servers and your customers.
[Read More]
There was a huge amount of interest in Swift after it was introduced by Apple earlier this year. Not only were iOS engineers at Shutterstock learning everything they could about the new and evolving language, but there was a ton of interest in Swift from across the engineering organization.
[Read More]
In any technology company one of the fundamental aspects of its identity is the technology stack, and programming language that it’s built on. This is what defines types of tools that are fair game, and more importantly, defines the types of engineers who are hired and capable of succeeding there.
[Read More]
As a Datavis Engineer at Shutterstock, I dive into a lot of data everyday and routinely answer questions regarding customer behaviors, site security, and latency issues. I keep a list of SQL snippets to copy and paste into my work, and I found that keeping the list of examples is easier than memorizing a bunch of similar-but-different SQL dialects.
[Read More]
For most large-scale image retrieval systems, performance depends upon accurate meta-data. While content-based image retrieval has progressed in recent years, typically image contributors must provide appropriate keywords or tags that describe the image. Tagging, however, is a difficult and time-consuming task, especially for non-native English speaking contributors.
[Read More]
One of our key missions on the search team at Shutterstock is to constantly improve the reliability and speed of our search system. To do this well, we need to be able to measure many aspects of our system’s health. In this post we’ll go into some of the key metrics that we use at Shutterstock to measure the overall health of our search system.
[Read More]
When it comes to traditional load balancers, you can either splurge on expensive hardware or go the software route. Hardware load balancers typically have poor/outdated API designs and are, at least in my experience, slow. You can find a few software load balancing products with decent APIs, but trying to use free alternatives like HAproxy leaves you with bolt on software that generates the configuration file for you. Even then, if you need high throughput you have to rely on vertical scaling of your load balancer or round-robin DNS to distribute traffic horizontally.
[Read More]
Being fast and nimble is important to us at Shutterstock, and one way we accomplish this is by working in small teams. This approach has yielded tremendous benefits over the years, but it comes with its own challenges: Shutterstock now has over 300 people and dozens of teams. How do we coordinate everything with so many different groups?
[Read More]
A few years ago, we began a fun and challenging journey to break a large, monolithic codebase into a set of isolated, independent REST services. This effort has already yielded a ton of value in simplifying our codebase and speeding up development.
[Read More]
Shutterstock developers pay a lot of attention to the user experience of our website. We have a fleet of User Experience experts who help make sure the error states our web application shows to customers are useful and actionable.
[Read More]
As an engineer, I have always been curious about why people, and especially other engineers, behave the way they do. How do engineers get “in the zone” when coding and why do they like it so much? Why are so many engineers (including myself) so averse to holding meetings?
[Read More]