Building a scalable GraphQL server, with lessons from OData

GraphQL is awesome for clients. GraphQL offers a lot of power and flexibility to the API consumer. For example, the following query will fetch a list of users along with their id, email, and group: { users { id email group { id name } } } The API consumer loves this because: They get

Sendwithus + Asana = Swusana

At Sendwithus, we love Asana and use it to track all tasks and projects across the company. That said, there are couple of areas that we thought could use some polish. This blog post talks about a tool we created to help make Asana more effective for us, called Swusana. Swusana is an open-source script

QA Testing a Product with Cypress

Do you feel confident your team is shipping code that won’t break production? Building a product is tough: ensuring the promised value of your product matches the value that is delivered can be difficult. Deploying possibly untested code to your application has the potential to break features in unanticipated, and often unseen, ways. Fortunately, your

Shifting from Monolith to Microservice

I am proud of the codebase we have at Sendwithus today, and of the road we took to get here. As we rewrite components as microservices, I’ve had time to reflect on that road. My goal with this post is to document our path, thought processes, and goals, in the hope it may help others.

How to improve your API without pissing off your customers

Have you ever written software that was perfect after release? Did you ship it to production and never push an update again? I haven’t. And APIs are no exception. After you publish your API, you’ll probably receive a flood of requests to better support different use cases. Customers will ask for more fields in your

Sendwithus and Asana: Making the Most of the Right Tool

At Sendwithus, we use Asana to track all tasks and projects within the company, from Sales to Marketing to Operations, including Product Development (but that’s a separate blog post). Asana allows us to funnel tasks to the right people, making sure no task is ever lost while ensuring cross-team collaboration and approval. General Company Structure