At Convo I interviewed about twenty mid and senior Python engineers for the same role. I used the same bar each time, and every interview started with the same question.
Chef Galaxy had a lot of work that had to happen later. Not later as in a few seconds later. Later as in next month.
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…
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…
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.…
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…
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.
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.
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.
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.
At BriteCore I work on BriteLines. We migrated our suite from Django TestCase style to pytest, crossed 900 tests, and landed near 92% coverage on the app code we chose to measure.
Owning my own home has always been a dream of mine. After several years of working as a software engineer, taking part-time jobs, and watching my spending, I saved enough by early 2016 to start building. After nearly two years of construction, it is now almost complete, and I will…
In 2014 I took a small Upwork contract to build a profiles module in Python Flask. The client liked the work and sent another. Then another. After a few of those I was deep enough in the product that they asked if I wanted to come on as a partner.…
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…
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…
I co-founded Chef Galaxy. It connects customers with chefs for events like birthdays and weddings. Think of it as an Upwork for hiring a chef. We also have a social feed around food and a Q&A section where people ask food questions and chefs answer. That is a lot for…