At Mimiquate, we care deeply about writing expressive and maintainable Elixir code. We often look for ways to simplify complex patterns without sacrificing clarity โ and one of the most elegant tools in the Ecto toolkit is also one of the most underrated: Ecto Types. If youโve be … | Continue reading
When building a web application, you typically add authorisation checks to ensure that users can only access resources they are permitted to. For example, on a blogging platform, you'd want to ensure that users can only edit or delete their own posts, and not the posts of other u … | Continue reading
I have been learning Rust for a couple of years, and using it for pet projects and demos alike. Working for a JVM-heavy company, I thought it would be my fate forever. Last week, I had a nice surprise: I convinced my management that using Rust for a particular project was the rig … | Continue reading
When I was a developer, half of our frustrations were about technical debt (the other were about estimates that are seen as deadlines). We always made a distinction between code debt and architecture debt: code debt being the temporary hacks you put in place to reach a deadline a … | Continue reading
Four decades ago, the first domain was registered and the initial batch of top-level domains came to be. Nearly a billion domains have been registered since then. Letโs take a tour of domain milestones over the last forty years...and ask what comes next. Continue reading on www.d … | Continue reading
After months of agentic coding frenzy, Twitter is still ablaze with discussions about MCP servers. I previously did some very light benchmarking to see if Bash tools or MCP servers are better suited for a specific task. The TL;DR: both can be efficient if you take care. Unfortuna … | Continue reading
Ever since I learned about htmx a few months ago, Iโve been hooked on it. It unlocks richly interactive and performant web app designs without making you write a single line of your own JavaScript, and without a byte of client-side state (outside of the DOM and maybe a session, o … | Continue reading
After writing the blog post "We are fucked" and some other half-assed thoughts on AI and coding I was asked by the PXL college to give a presentation to students software engineering (specialisation AI). This gave me a lot of anxiety, because of instant imposter syndrome and the … | Continue reading
There are many ways to set up a startup software engineering team, and many teams follow the same progression and encounter the same issues. In this article Iโll do my best to showcase the different options and their limitations. Note that there is no perfect organisation that wi … | Continue reading
Youโve spent weeks carefully writing a design document for your software project, but what happens next? How can you get useful feedback about it from your teammates? How do you prevent your design review from dragging on for months? Iโve been through many design reviews in my ca … | Continue reading
Working with intervals is a common task in programming, whether youโre dealing with time ranges, scheduling problems, or geometric computations. A key insight when working with intervals is that checking for the absence of an overlap is often much simpler than checking for all th … | Continue reading
Building kaneo was fun. A clean, minimal kanban board. Self-hosted. Open source. No tracking, no subscriptions, no bullshit. I shipped v1, posted it on reddit, got some stars on github. People actually used it. That feeling when someone tells you they're using something you built … | Continue reading
Every team must believe in improvement, even when it no longer happens. Thatโs what retrospectives are for. Most teams also use retrospectives for documenting problems that nobody has time to fix. That way, when the retrospective comes, we can all nod in agreement that yes, the p … | Continue reading
A programming language is the single most expensive choice a company makes, yet we treat it like a technical debate. After watching this mistake bankrupt dozens of companies and hurt hundreds more, Iโve learned the uncomfortable truth: these decisions are rarely about technology. … | Continue reading
I am a programmer. A coder. A keyboard cowboy. A hacker. My day is spent punching keys; catalyzing code. Itโs fun; itโs my identity. The editor, Vim, is my workshop, my sanctum1. Here, I hone my craft, sharpen my tools, expand my capabilities through curiosity, and for a while, e … | Continue reading
If youโve spent any time in the vector search space over the past year, youโve probably read blog posts explaining why pgvector is the obvious choice for your vector database needs. The argument goes something like this: you already have Postgres, vector embeddings are just anoth … | Continue reading
Erlang's Observer is often discussed in passing and regarded as a curiosity during Elixir courses. However, Observer provides many powerful tools for monitoring and debugging your application, both in development and production. Together, we will learn how to access the Observer … | Continue reading
I second guess myself a lot about what I know, or what I think I know. Itโs even worse when it comes to the names of people I donโt normally interact with: โIโm almost positive his name is Dave, but I donโt want to get it wrong, so Iโll just wait until someone else says his name. … | Continue reading
Welcome back, friends! Did you hear the news about the inventor of the Knock-Knock joke? He got a No-bell prize. Alright, this post will be a bit longer since weโll dive deeply into the Postgres WAL and will explore how to listen for database changes through it. The Problem Letโ … | Continue reading
Couple of weeks ago when I was publishing The Hidden Cost of URL Design I needed to add SQL syntax highlighting. I headed to PrismJS website trying to remember if it should be added as a plugin or what. I was overwhelmed with the amount of options in the download page so I headed … | Continue reading
This article was very kindly sponsored by Hermit Tech, who sent me some money so that I could have a month or two to look after my mental health and write a few posts that would be useful to them without stressing too much. They are very capable data engineers (and other kinds of … | Continue reading
A lot! One of the most common reactions or questions I get about curl when I show up at conferences somewhere and do presentations: โ is curl still being actively developed? How many more protocols can there be? This of course being asked by people without very close proximity … | Continue reading
When using tsearch one usually, often, creates a tsvector column to put data in, and then create index on it. But, do you really need the index? I wrote once already that you don't have to, but then a person talked with me on IRC, and pointed this section of docs: One advantage … | Continue reading
Recently, I have built some Projects App twice as: Multi Page Application (MPA) - boosted with HTMX to support partial updates Single Page Application (SPA) - implemented with the help of React The goal here was to revisit Multi vs Single Page Applications debate and compare: … | Continue reading
Iโm Vaishant, one of the co-founders of Greptile - an AI that does a first-pass review of pull requests with complete context of the codebase. Teams use it because it helps them review PRs faster and find more bugs and antipatterns. As a result, we spend a lot of time studying PR … | Continue reading
Nearly six years ago I wrote a blog post outlining how I write HTTP services in Go, and Iโm here to tell you, once again, how I write HTTP services. That original post went a little viral and sparked some great discussions that have influenced how I do things today. And after yea … | Continue reading
The docs may say this: REVOKE ALL ON DATABASE example_database FROM example_user; GRANT CONNECT ON DATABASE example_database TO example_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO example_user; ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO example_u … | Continue reading
In the last two years, code review has gotten much more important. Code is now easy to generate using LLMs, but itโs still just as hard to review1. Many software engineers now spend as much (or more) time reviewing the output of their own AI tools than their colleaguesโ code. I t … | Continue reading
tinยทker /หtiNGkษr/ to make small changes to something, especially in an attempt to repair or improve it. Continue reading on seated.ro#reading-list #development | Continue reading
In this episode, letโs look at one of my favorite new features that was included with Phoenix LiveView 1.1 - colocated JavaScript Hooks. So, what are colocated hooks? A colocated hook lives alongside your component code. This makes writing simple hooks much easier. Instead of hav … | Continue reading
Four years ago I was tasked with a project that roughly translated to โtake a JSON and run a set of subprocess commands based on that JSON.โ I was a junior software engineer at the time and I thought โGreat, an awesome time to try out a new language, Go.โ The broader team used ex … | Continue reading
There are many reasons you may want to migrate from MySQL to PostgreSQL, which we will skip over for brevity. I see many questions about moving tables and data, and sadly, the answers range from sloppy to incredibly complicated. Each database migration is unique, as issues range … | Continue reading
Laravel 12 introduces withFiltered(), a cleaner way to filter eager-loaded relationships without using messy nested closures. It lets you apply conditions directly or use reusable filter methods defined in your model. This makes your Eloquent queries easier to read, maintain, and … | Continue reading
An expression like WHERE LOWER(email) won't use an index created for the email column. By creating a function-based index (functional index) you can use this condition with full index support. Every developer has at least once been puzzled why a simple condition like WHERE lower( … | Continue reading
At Greptile, we've seen how fast teams are shipping code with the help of AI code gen tools such as Cursor and Windsurf. With the increasing amount of AI-generated code being pushed to production, engineers now face the challenge of maintaining high code quality while meeting inc … | Continue reading
Itโs Friday at 4pm. Iโve just closed my 12th bug of the week. My brain is completely fried. And Iโm staring at the bug leaderboard, genuinely sad that Monday means going back to regular work. Which is weird because I love regular work. But fixit weeks have a special place in my h … | Continue reading
August 03, 2025 Do you write Python code? Do you often need to invoke programs from your Python code that are - shockingly - not written in Python? Have you written code that looks like this? def process_data(data: bytes) -> bytes: # Create a new directory to store input and … | Continue reading
For many years, I've used third-party packages to help organize and manage middleware in my Go web applications. In small projects, I often used alice to create middleware 'chains' that I could reuse across multiple routes. And for larger applications, with lots of middleware and … | Continue reading
This past Monday, November 10th, we celebrated the 16th anniversary of Goโs open source release! We released Go 1.24 in February and Go 1.25 in August, following our now well-established and dependable release cadence. Continuing our mission to build the most productive language … | Continue reading
There's one thing that you may do when developping your first LiveView apps (or developping applications in the early days of LV) that may have important consequences in production, or even during development, which may also become a bit hard to track down. The LiveView documenta … | Continue reading
A word to the wise: Do not set any cron jobs for 2:00 am or 3:00 am on Sunday morning! Or to be safe, on other mornings besides Sunday as well, since jobs originally set to run on some particular day may eventually be changed to run on another day, or every day. Most of the time … | Continue reading
Disclaimer: The details in this post have been derived from the official documentation shared online by the OpenAI Engineering Team. All credit for the technical details goes to the OpenAI Engineering Team. The links to the original articles and sources are present in the referen … | Continue reading
This document looks at how to create a graphical UI framework that considers developer adoption, performance, display effects, and power consumption. The most popular frameworks solve real problems. It is important to ground design in real projects with real customers, be open to … | Continue reading
In computer vision, document layout analysis is the process of identifying and categorizing the regions of interest in the scanned image of a text document. A reading system requires the segmentation of text zones from non-textual ones and the arrangement in their correct reading … | Continue reading
Some of my favorite tidbits from the past year of working with Go. One of the best ways to learn something new is to write down something youโve learned about it regularly. Over the past year, Iโve been doing this with the Go programming language. Here are some of my favorite les … | Continue reading
Today weโre excited to announce ReqLLM 1.0 - a new, stable Elixir library for working with LLMs. After multiple release candidates and extensive community feedback, 1.0 is now available for teams who want a reliable, provider-agnostic way to work with LLMs using familiar patterns … | Continue reading
Learn how to use SFTP with Golang, a popular programming language. Uploading and downloading files programatically with Golang is a great way to automate transfers or build out support for SFTP inside you application. Continue reading on docs.couchdrop.io#reading-list #golang | Continue reading
During my work at InClub, I constructed a generic HTTP request helper function that we use all around our backend. So far, this function has worked for every type of HTTP call we've thrown at it. Some examples: POSTing to DeepL's translate text API GET / POST to Instagram's Grap … | Continue reading