This is Part 2 of a series. Please make sure and read Part 1 before continuing. Deploying Habitat In Part 1 of this series, we generated a new “webserver” cookbook, built a Habitat package with it and then pushed that to the Habitat Builder. Now, we’re going to deploy a Windows server on Amazon Web Services. This server… Read More
shipping code
Effortless AMI Deployments with Chef Infra and Habitat – Part 1
Background At uShip, we’ve been moving to an AMI deployment strategy for standing up web servers that houses our main application. We made the decision as part of a larger strategy to ensure our environments (dev, qa, prod, etc.) were as similar as possible. We figured that if we could build a single AMI that… Read More
uShip University: Continuing Education for Developers, by Developers
At uShip, our employees, especially software developers and engineers, like to be constantly learning and challenged as it ultimately makes them happier people and co-workers. They also like to know the company supports them exploring new interests, mastering current expertise, and being naturally curious. So in December 2017, we launched uShip University, a new program… Read More
Distributed Operations: How uShip Built a Culture of Code Ownership for Faster Feature Delivery
Article originally published by VictorOps The original all-hands-on-deck culture faltered during growth. Raleigh Schickel, DevOps Manager, has seen uShip evolve from a small team with a few developers, to a larger company with a dev team size of 60 and growing. Initially, everyone was always on-call for their own code. But this culture of ownership… Read More
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
Visual Studio+ReSharper-level Productivity in VSCode
Update 2017-05-22: This post originally written for a project.json .NET Core project. It has been edited for a .csproj .NET Core project. Visual Studio Code (aka VSCode) is a lightweight text editor from Microsoft. Many people think just because it is a “text-editor”, they will be missing the features they are used to from an… Read More