Waseem Jan

#backend

How we moved Tasq model runs from schedules to events

Tasq watched oil and gas wells for operators. A well is just a production site out in the field. Sensors on each one sent readings like pressure and flow, and we called those readings signals. Our job was to turn that stream of data into work for the people who…

May 28, 2024| 6 min read
# aws# backend# tasq
How we merged several repos into one monolith at Tasq

At Tasq.io we had several repositories that were loosely connected but kept completely separate. Shared logic got copied from one place to another. Dependencies were tracked separately in each repo. CI/CD pipelines had to be maintained for every project on its own. Working across them felt messier than it needed…

April 13, 2024| 4 min read
# backend# tasq
Cutting $20k a year from our AWS bill at Tasq

At Tasq the AWS bill kept climbing as we grew. Nothing dramatic day to day, just a steady rise that got hard to ignore. Most of it sat in network traffic, storage, and monitoring. I dug into the invoices and the setup behind them, and three things kept showing up.…

February 24, 2024| 4 min read
# backend# tasq
Getting our pull requests under control at Tasq

When I joined Tasq, there was no shared way of shipping code. Some people pushed straight to main. Others opened pull requests with no description, no testing notes, and no real review. You often found out about a change only after it was already live, and bugs that a second…

June 11, 2023| 4 min read
# backend# tasq
API migration without breaking workflows

At BriteCore I changed how our APIs stored and returned data while other teams kept calling the same endpoints. A cleaner design inside the service was easy, but doing it without breaking their apps was not.

August 16, 2021| 4 min read
# backend# britecore
Cache generation went from 23 minutes to 12 seconds

At BriteCore I work on BriteLines, the product definition and rating service for property and casualty insurers. Carriers configure coverages, rate tables, and rules there. Quoting and rating need that configuration constantly, so we do not want every premium calculation hitting the database.

July 19, 2021| 5 min read
# backend# britecore
Why we left GraphQL for REST

We built our product APIs on GraphQL so clients could ask for exactly the fields they need. We recently moved them to REST. GraphQL is fine, it just did not fit how our product works.

July 5, 2021| 5 min read
# backend# britecore
Too many Lambdas, one database

At BriteCore, BriteLines rebuilds product caches in the background. Change a product version and we queue work on SQS. Each message starts a Lambda that rebuilds the cache for one risk type and writes it to Redis.

June 28, 2021| 3 min read
# backend# britecore
Docker cut our deploy from eight hours to one

At Active Capital IT we run a digital asset management platform for universities, museums, and libraries. People upload large image collections and videos. The app converts formats, builds thumbnails, pulls out metadata, and writes the results to a network mounted drive that all four servers can see. Celery handles that…

August 15, 2017| 3 min read
# backend# activecapital
Why I used polling instead of websockets on Chef Galaxy

Chef Galaxy has a few parts that need to update without a page refresh. Notifications show up when a chef gets hired or when a dispute moves forward. Customers and chefs message each other while planning an event. For both of these the user should not have to refresh the…

June 20, 2016| 12 min read
# backend# chefgalaxy