Shipping Code

Populating UITableViewCells Asynchronously to Fix UITableView Lag

Note: This article was originally published on Github Abstract In general, the key to keeping the iPhone UI responsive is to avoid blocking the main thread. In the case of UITableView, this boils down to keeping tableView(_:cellForRowAtIndexPath:) as performant as possible. However, sometimes it is simply not possible to marshall…Read more

6 Major Lessons from uShip Hackathons

6 Major Lessons from uShip Hackathons

Over the past three years, hackathons at uShip have grown from an idea to a tradition. Ideally, we want each event to feel almost effortless in their planning and execution. While we’ve experienced many successes, we’ve also learned a lot of lessons along the way. Below are some of the…Read more

First Impressions of npm On-Site

First Impressions of npm On-Site

For the longest time we committed our entire node_modules folder here at uShip. We recently made the switch to npm On-Site. This is our journey. How We Use npm At uShip Here at the ‘Ship we don’t actually run a node server in production, we just use node for our…Read more

From Zero To Swagger: Retrofitting an Existing REST API to an API Specification Using Swagger

Introduction Here at uShip, our web services have gone through quite a change over the last few years. We have gone from SOAP based services to a RESTful API. Recently we dipped our toes into Swagger, an API specification framework, to provide more value to our developers and external partners….Read more

IdeaFlow for iOS

A couple months back, one of my fellow uShip developers popped his head into my team’s room at the end of the day.  “You guys going to the API meetup?”, he asked.  As an iOS developer, I don’t actually write APIs very often, but I’m interested enough in how consumable…Read more

An NHibernateMARE on Elm Street

An NHibernateMARE on Elm Street

​ We use (and generally like) the ORM NHibernate for MS SQL Server data access, but we understand why you might not. Ohhhh, the things we have seen! We’d like to share some of our favorite horrors, so that you can avoid them. ​ ​ Originally, our Repository<TEntity> base class implemented…Read more

uShip at HackTX Fall 2015

uShip at HackTX Fall 2015

Here at uShip, we love hackathons. Recently, some us went down to the University of Texas at Austin’s annual hackathon, HackTX, hosting over 750 students from all over the state. As a company sponsor, we acted as mentors for the student hackers, helping them solve a wide range of problems…Read more

End to End WebApi Configuration, Part 1: StructureMap

At uShip we’re slowly migrating to a microservice architecture from our existing massive monolith which consists of a large legacy Web Forms project, a Web Api project, and an MVC project. This has a lot of benefits, one of which is that we get to take the lessons we learned…Read more

You Should Attend A Tech Conference

Introduction Tech conferences are a great way to learn and be inspired. The following describes a few tips to know beforehand. Finding and Booking Conferences First, identify what you are looking to get out of a conference, which languages or frameworks you’re interested in, if you want to travel or…Read more

Implementing API Errors with Web API and FluentValidation

In a previous article, we talked about how APIs should return RESTful error responses so that API clients can act on them. There are plenty of articles like this one that talk about how to actually integrate the FluentValidation framework into the Web API pipeline, so we won’t go into…Read more