What We’re Reading Between Pushes, Vol. 2

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

Not all <video> is created equal.

Recently at uShip, we launched a new homepage as part of our “Design Language System” (DLS) initiative. The new homepage featured an animated “shipper” and “carrier” having a conversation. This is achieved through the use of a <video> tag, a feature proposed in 2007 by Opera, and iterated greatly throughout the following years. This blog will… Read More

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