Deconstructing throttle in underscore.js

Ever try to build a rate limiter? underscore.js has one called throttle. And like most utility functions, its source code on the surface looks a bit dense. Teasing it apart piece by piece helps us see how it accomplishes its purpose. In plain language: “We have a browser event that fires constantly, but we don’t… Read More

Streamlined, Manual JSON Parsing in Swift

There’s plenty of articles out there about how to parse JSON in Swift, what libraries to use.  Apple even posted one themselves as I was finishing up this post.  What I’d like to talk about here is the way the uShip iOS app handles JSON parsing, which is a variation of Apple’s approach. Sharing maintainable Swift code is… Read More

What We’re Reading

uShip Engineering values a culture of continual learning. A degree may land you an entry level position, but in software development especially, education is an ongoing process in both formal and informal settings. As such, we implore our team members to continually stretch the bounds of their knowledge, and we love to dive into the… Read More

Consul Clustering: Our Experience

Introduction Consul is a distributed key-value store, heavily opinionated towards service discovery. If you’re not familiar with the basics of service discovery, Gabriel Schenker, who we’ve had the pleasure of working with, has an excellent introduction to service discovery. In this blog post we will cover how we set up and expanded our Consul cluster…. Read More

Connectivity between Nginx and Consul-Template

Overview In the past couple of weeks, I have been wrestling with the connectivity between Nginx and Consul-Template.  While it’s fairly straightforward to get Consul-Template to control Nginx, having them work well within Docker isn’t the easiest thing in the world.  But that is jumping quite a bit forward, let’s start with the problem before… Read More

April Fools – Developer Style

Here at uShip we are pretty big fans of open sourcing code. At the same time, we are also fans of a good ol’ prank. Hence, we have decided to open source a few of our favorite code pranks to share with the world (and just in time for April Fool’s Day). But first, a… Read More

JavaScript for C# Developers

Overheard at work today: “…this is why I hate JavaScript so much.” Sound like something you’d say? Instead of letting the hate flow through you, know that it doesn’t have to be like that. JavaScript is evolving quickly and picking up luxuries that C# has had for years. Subtle Differences Before I get into the… Read More