Hands-on guide to the upcoming SQL/PGQ graph syntax using a patched Postgres 18 beta.| Gavin Ray Blog
Reflections and hard-won lessons from a decade exploring over 20 psychedelic compounds.| Gavin Ray Blog
A discussion on techniques available to overcome semantic errors in syntax when generating dialect-specific SQL| Gavin Ray Blog
Design-by-Contract's invariant attribute allows you to enforce important properties of systems and data structures, making it an incredibly useful tool for developers. In this blog post, we'll be exploring the development of a GCC plugin that adds support for [[invariant]] conditions in C++ classes and structs. We'll also be looking at an example of how invariant can be used to improve the integrity of a Stack data structure. This is especially timely as GCC has recently added support for Con...| Gavin Ray Blog
A tutorial on how to use Java's new Record Patterns feature to write powerful, concise pattern matching code for usecases like AST transformations and rewrite-rules in compiler passes.| Gavin Ray Blog
A dual-purpose tutorial to 1) Demonstrate how to implement the Simple Query Protocol, where Java is an implementation detail; 2) Show practical examples of most of the new features since JDK 17, including Records, Sealed Types, Pattern Matching for Switch, Virtual Threads, and Panama Foreign-Function & Memory API.| Gavin Ray Blog
A reflection on the impact of language models like Github Copilot on the experience on authoring software and the role of the developer| Gavin Ray Blog
An overview of how the Panama Foreign Memory API can be useful outside of foreign/native applications| Gavin Ray Blog
A tutorial on building a Query Expression Language/AST in Kotlin and implementing SQL generation| Gavin Ray Blog
In this post, we will explore how to build a high-performance database buffer pool in Zig using io_uring's new fixed-buffer mode.| Gavin Ray Blog