Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by David Murray
Cleaning Up Unused Indexes Without Breaking Performance
Indexes tend to outlive the problems that created them. It usually starts with a slow query. An engineer adds an index, the immediate issue goes away, and everyone moves on. At the time, the decision makes sense. The problem is that the index often stays in place long after the application changes, a report is replaced, or a feature quietly falls out of use. Over time, a busy table can collect a long list of nonclustered indexes. Some are still doing useful work.
Stop Sending Every SQL Query to Your Most Expensive Model — Build a Router Instead
If you've built or integrated an AI SQL assistant into your stack, you've likely hit this wall: it works great in the demo, it works great in week one, and then usage scales and the model API bill scales right alongside it. The default fix — swap in a cheaper model everywhere — usually just trades your cost problem for a quality problem. The better fix is architectural: route each query to the model tier its actual complexity requires.
One of our most important goals at Heroku is to be boring. Don’t get us wrong, we certainly hope that you’re excited about the Heroku developer experience — as heavy users of Heroku ourselves, we certainly are! But, even more so, we hope that you don’t have to spend all that much time thinking about Heroku.
Transformer-Based Language Models for Group Randomized Trial Classification in Biomedical Literature: Model Development and Validation
Traditional Machine Learning Models (Baseline Model) Evaluation Metrics Precision=True PositivesTrue Positives+False Positives Recall=True PositivesTrue Positives+False Negatives F1 Score=2×Precision×RecallPrecision+Recall Specificity=True NegativesTrue Negatives+False Positives WeightedAverage=∑i=1Cmi∙niN BioMedBERT Fine-Tuning BioMedBERT Data Tokenization Addressing Class Imbalance Weighted Categorical Cross-Entropy Loss=−∑i=1N∑j=1Cwj⋅yi,j⋅log(Pi,j) where C is the number of classes, N is...
Evolving the Backend Storage for Platform Metrics
One of our most important goals at Heroku is to be boring. Don’t get us wrong, we certainly hope that you’re excited about the Heroku developer experience — as heavy users of Heroku ourselves, we certainly are! But, even more so, we hope that you don’t have to spend all that much time thinking about Heroku.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with David
Contact David, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack