django-planet

Adam Stepinski

Blog Info Instawork Engineering
Blog website Link

Tackling the Monolith/Microservices Dilemma at Instawork

Dec. 13, 2024 » Instawork Engineering » [Archived Version]

First, There Was The MonolithInstawork’s main product is implemented as a monolithic codebase using the Django framework. This choice has served us well from the founding of the company, and it exemplifies our guiding principle of “Respecting the Craft”:Develop deep expertise with a limited set of tools, and pick technologies carefully to solve a particular problemBy sticking with a monolith, engineers at Instawork need to develop expertise with only one language (Python) and one set of convent…

Read More

Refactoring a Python Codebase with LibCST

Feb. 19, 2022 » Instawork Engineering » [Archived Version]

How can an engineering team maintain consistent conventions in a growing codebase? When working on new code, engineers add new patterns to improve productivity. But usually there’s no time to refactor older code to use the new pattern. Soon, there are multiple approaches to the same problem. This actually harms productivity as engineers debate the merits of the different patterns, spend time reimplementing their features, etc.https://xkcd.com/927/So what’s the solution? Use a codemod. A codemod…

Read More

Real-time Web Apps with Zero Lines of JS

Oct. 7, 2019 » Instawork Engineering » [Archived Version]

Using Django, Intercooler, and MercurePhoto by Marc-Olivier Jodoin on UnsplashIn a previous post, I described how Instawork doubled our web development productivity by abandoning React and embracing server-rendered pages enhanced with Intercooler.js. A standard React/Redux setup requires a lot of duplicated work; logic has to be written once on the server (as the source of truth), and a second time on the client (for local state management). By doing all UI rendering in our Django codebase, we …

Read More

Iterating with Simplicity: Evolving a Django app with Intercooler.js

Oct. 24, 2018 » Instawork Engineering » [Archived Version]

About a year ago, Instawork started experimenting with a new product called Gigs. Gigs lets restaurants and caterers fill on-demand shifts with pre-qualified dishwashers, cooks, and servers from Instawork’s network of professionals. Our MVP was little more than a Google form to request shifts. This worked OK in the early days, but as the product took off, it became clear we needed a web dashboard for managers to view and edit their gigs.Our existing web dashboard (a hiring app for full time job…

Read More

Elegant Database Migrations on ECS

April 3, 2018 » Instawork Engineering » [Archived Version]

“Birds flying away” by elPadawan / CC BY SAOver the last few months, the Instawork engineering team has been moving our AWS infrastructure from manually deployed EC2 instances to an Elastic Container Service (ECS) cluster managed with CI/CD. The benefit is clear: as our engineering team and traffic grow, automated deployments and auto-scaling free us up from worrying about dev-ops and allow us to focus on product improvements.The core functionality of ECS works really well:We push a new Docker …

Read More