2025
Total Posts: 428
- 2025-12-31 2025: Year Review
- 2025-12-28 Advent of SQL 2025 Day 14: Ski Resort Paths
- 2025-12-28 Advent of SQL 2025 Day 15: Confirmation Phrase Dispatches
- 2025-12-27 Guide to Local LLM Models
- 2025-12-27 How I left youtube
- 2025-12-27 Text editors should be worse
- 2025-12-27 Don’t become the machine
- 2025-12-27 13 Years of Rust and the birth of Rue
- 2025-12-27 Advent of SQL 2025 Day 12: Archive Flight Records
- 2025-12-27 You’re not burning out, you’re essentially starving
- 2025-12-27 Advent of SQL 2025 Day 13: XML Travel Manifests
- 2025-12-27 Structured output can create fake confidence
- 2025-12-27 Vibe Coding is broring
- 2025-12-27 Writing HTML by hand is easier and cheaper then debugging your SSG in 2025
- 2025-12-26 Techstructive Weekly #74
- 2025-12-26 Advent of SQL 2025 Day 11: Behavior Score
- 2025-12-25 Advent of SQL 2025 Day 10: Misdelivered Presents
- 2025-12-24 Advent of SQL 2025 Day 9: Evergreen Market Orders
- 2025-12-23 Advent of SQL 2025 Day 8: Product Catalog
- 2025-12-22 Advent of SQL 2025 Day 7: Polar Express Mixin
- 2025-12-21 Advent of SQL 2025 Day 6: Days of Delight
- 2025-12-20 Duplicate Reports
- 2025-12-20 The strange case of engineers who dismiss AI
- 2025-12-20 Stop crawling my html, use the API
- 2025-12-20 Advent of SQL 2025 Day 5: EchoTrack Wrapped
- 2025-12-20 Deliver Code you have proven to work as a software developer
- 2025-12-20 The time elemet that should actually do something
- 2025-12-19 Techstructive Weekly #73
- 2025-12-19 Advent of SQL 2025 Day 4: WinterFest Volunteers
- 2025-12-18 Advent of SQL 2025 Day 3: Hotline Messages
- 2025-12-17 Advent of SQL 2025 Day 2: Snowballs
- 2025-12-16 Advent of SQL 2025: Wish List
- 2025-12-13 Vibe Coding is made and depressing
- 2025-12-13 If you’re going to vibe code, why not do it in C or even Assembly
- 2025-12-13 A TSP game I wanted for 10 years: built in 4 hours
- 2025-12-13 Software never Fails
- 2025-12-13 Craft Software that make people feel something
- 2025-12-13 The Gemini API Key Frustration
- 2025-12-13 I read more than I write, do you?
- 2025-12-13 Growing Software
- 2025-12-13 Why Transformers must hallucinate
- 2025-12-13 How HTML changes in EPUB
- 2025-12-13 Please don’t automate science
- 2025-12-12 Techstructive Weekly #72
- 2025-12-12 SQLITE SQL: Create Table with STRICT Option
- 2025-12-06 On 10 years of writing a blog that nobody reads
- 2025-12-05 Techstructive Weekly #71
- 2025-11-29 Shuffle: Making random feel more human
- 2025-11-29 Rabbit hole learning
- 2025-11-29 How i overcame inertia with a weekend project
- 2025-11-29 Techstructive Weekly #70
- 2025-11-22 Make your own website
- 2025-11-22 How bcrypt can be unsafe for more than 72 characters
- 2025-11-22 here
- 2025-11-22 A project is not a bundle ot tasks
- 2025-11-22 Why Software Development fell to AI first
- 2025-11-22 The 18th November 2025 Cloudflare Outage Report
- 2025-11-22 Fizzbuzz without conditions or booleans
- 2025-11-22 I can’t recommend Grafana to everyone
- 2025-11-22 Alien Authors
- 2025-11-21 Techstructive Weekly #69
- 2025-11-15 From words to worlds with spatial intelligence
- 2025-11-15 On doing things
- 2025-11-15 The quite power of SQL
- 2025-11-15 How to demo
- 2025-11-15 The AI Wildfire is coming and its going to be very painful and incredibly healthy
- 2025-11-15 How to stop having FOMO as a software engineer
- 2025-11-15 Parsing integers in C
- 2025-11-15 Why I stopped trying to be a great engineer
- 2025-11-14 Techstructive Weekly #68
- 2025-11-08 Mr. TIFF
- 2025-11-08 Lessons from vibe coding
- 2025-11-08 Learning loops and LLMs
- 2025-11-08 Is it really good enough
- 2025-11-08 You should write an agent
- 2025-11-08 AI is Dunning-Kruger as a Service
- 2025-11-07 Techstructive Weekly #67
- 2025-11-01 Code like a surgeon
- 2025-11-01 AI can write code, but can’t build software
- 2025-11-01 It's insulting to read your AI-generated blog post
- 2025-11-01 Sabbaticals keep our attrition at bay
- 2025-11-01 Why Python’s OrderedDict maintain the order
- 2025-11-01 Techstructive Weekly 66
- 2025-10-25 15 Go subtleties you must know
- 2025-10-25 You cannot outsource understanding
- 2025-10-25 How do arrays work?
- 2025-10-25 Techstructive Weekly 65
- 2025-10-25 I used to like software development, but not anymore
- 2025-10-18 Techstructive Weekly #64
- 2025-10-18 There are no programmers in Star Trek
- 2025-10-18 LLMs are getting better at character-level manipulation
- 2025-10-18 Notes on switching to Helix from Vim
- 2025-10-18 Secret Life of Local First Value
- 2025-10-18 Just the grind won’t get you there
- 2025-10-18 Syntax highlighting is a waste of the information channel
- 2025-10-18 Craft, not fame, makes your story worth telling
- 2025-10-17 Test after resolving merge conflicts
- 2025-10-11 Why we need junior engineers
- 2025-10-11 Techstructive Weekly #63
- 2025-10-11 Asynchronous Work is the enemy of project based success
- 2025-10-11 Python splitlines does a lot more than new lines
- 2025-10-11 Give me AI slop over human sludge any day
- 2025-10-11 My approach to building large technical projects - Mitchel Hashimoto
- 2025-10-11 Development gets better with age
- 2025-10-11 How I learned to stop worrying and started trusting and using AI Agents
- 2025-10-04 The simple habit that saves my day
- 2025-10-04 We traded blogs for black boxes and now we are paying for it
- 2025-10-04 this book
- 2025-10-04 Advice I wish I knew as a junior developer
- 2025-10-04 The beauty of Programming
- 2025-10-04 Why hiring only senior engineers is killing companies
- 2025-10-04 Techstructive Weekly #62
- 2025-10-04 Write the damn code
- 2025-10-04 SQL Heuristics: ORs are expensive
- 2025-10-04 An opinionated critique of Duolingo
- 2025-10-04 Failing to understand exponential again
- 2025-10-04 Cursor AI Foundations
- 2025-09-28 SQLite SQL: Create Table with Select
- 2025-09-27 Processes and Threads: Planetscale Blog
- 2025-09-27 Techstructive Weekly #61
- 2025-09-27 A New kind of Code
- 2025-09-27 Be careful with Go struct embedding
- 2025-09-27 I don’t want to code with LLMs
- 2025-09-27 Artists are losing work, wages, and hope as bosses and clients embrace AI
- 2025-09-27 One last id
- 2025-09-27 How I a non-developer describe a developer
- 2025-09-26 SQLite SQL: Create Table If Not Exists
- 2025-09-24 SQLite SQL: Create Temporary Table
- 2025-09-22 SQLite SQL: Collate Column Modifier
- 2025-09-20 SQLite SQL: Many to Many Table without RowID
- 2025-09-20 My Favorite Postgres 18 feature: Virtual generated columns
- 2025-09-20 Boring is good
- 2025-09-20 What AI chatbots are doing under-the-hood, LLMs from scratch part 1
- 2025-09-20 Creating a static site for all my bookmarks
- 2025-09-20 ![
- 2025-09-20 Myopic Focus
- 2025-09-20 Building a lexical analyzer from scratch in C
- 2025-09-20 Go Struct Alignment: A Practical Guide
- 2025-09-20 Techstructive Weekly #60
- 2025-09-20 Work Hard, have fun, go home
- 2025-09-20 The Sad, Sad world of Tech Blogging during the Era or Technological Stagnation
- 2025-09-20 Representing Graphs
- 2025-09-20 Magical Systems Thinking
- 2025-09-19 SQLite SQL: One to One Relations
- 2025-09-18 SQLite SQL: Many to Many Relations
- 2025-09-17 SQLite SQL: Self Join Relations
- 2025-09-16 SQLite SQL: One to Many Relation with Foreign Key
- 2025-09-15 SQLite SQL: Foreign KEY table constraint
- 2025-09-14 SQLite SQL: PRIMARY KEY table constraint
- 2025-09-13 Become the person who does the thing
- 2025-09-13 13 Reason why SQL has to GO
- 2025-09-13 What would you do with 52 hours of discretionary time
- 2025-09-13 The last programmers
- 2025-09-13 Techstructive Weekly #59
- 2025-09-13 Just use SQL they say
- 2025-09-13 SQLite SQL: PRIMARY KEY column constraint
- 2025-09-13 When the Job search becomes impossible
- 2025-09-13 IT manager needed tech support because they had never heard of a command line
- 2025-09-13 Forward vs Reverse Proxy
- 2025-09-13 Blogs used to be different
- 2025-09-13 The AI Trap: Why do they quit coding
- 2025-09-13 Package Managers are evil
- 2025-09-13 I wrote a journal entry for everyday in 2024
- 2025-09-12 SQLite SQL: CHECK column constraint
- 2025-09-11 SQLite SQL: GENERATED column constraint
- 2025-09-10 SQLite SQL: DEFAULT column constraint
- 2025-09-09 SQLite SQL: UNIQUE column constraint
- 2025-09-08 SQLite SQL: NOT NULL column constraint
- 2025-09-07 SQLite SQL: Create Table with column constraints
- 2025-09-06 Authorisation explained
- 2025-09-06 A programmers guide to stress
- 2025-09-06 Why Sync?
- 2025-09-06 Vibe Coding is Legacy code
- 2025-09-06 An illustrated guide to OAUTH 2
- 2025-09-06 Reading with AI
- 2025-09-06 How to learn System Design
- 2025-09-06 Static Site enable a good time travel experience
- 2025-09-06 The modern job hunt: Part 1
- 2025-09-06 SQLite SQL: Create Table with column types
- 2025-09-06 SQL Needed structure
- 2025-09-06 You have to feel it
- 2025-09-06 Techstructive Weekly #58
- 2025-09-05 SQLite SQL: Create Table Bare Bones Table
- 2025-09-04 SQLite SQL: Create Table Basic
- 2025-09-03 SQLite dot commands: header command
- 2025-09-02 SQLite dot commands: Output mode separator command
- 2025-09-01 SQLite dot commands: Output mode
- 2025-08-31 SQLite dot commands: change directory command
- 2025-08-30 Grok 2.5 is not really open source
- 2025-08-30 AI Slop in Open Source Contributions
- 2025-08-30 Learning Peal in one day and the importance of building strong foundations
- 2025-08-30 Techstructive Weekly #57
- 2025-08-30 SQLite dot commands: run system shell commands
- 2025-08-30 OCR is Legacy tech
- 2025-08-29 SQLite dot commands: read command is recursive?
- 2025-08-28 SQLite dot commands: read file or standard output
- 2025-08-27 SQLite Scalar function: 3 valued iif and if scalar function
- 2025-08-26 SQLite functions: unistr and unistr_quote
- 2025-08-26 SQLite functions: unistr and unistr_quote
- 2025-08-25 SQLite dot commands: html tables with output and once
- 2025-08-24 SQLite: Randomly order rows
- 2025-08-23 Go is still not good
- 2025-08-23 Do blogs need to be so lonely
- 2025-08-23 Exploring EXIF
- 2025-08-23 SQLite Scalar Function: Random
- 2025-08-23 How AI writing supercharged an addictive pattern
- 2025-08-23 Why building my blog is more fun than filling it
- 2025-08-23 How to stop feeling lost in tech
- 2025-08-23 Stupid things that work
- 2025-08-23 What makes a good software engineer
- 2025-08-23 5 Docker networking concepts that everyone should know
- 2025-08-23 Techstructive Weekly #56
- 2025-08-23 Left to Right Programming
- 2025-08-23 Ask LLMs what time it is
- 2025-08-23 LLMs makes us dumber in the longer run
- 2025-08-23 No AI is not making Engineers 10x productive
- 2025-08-22 SQLite functions: Generate_Series Examples
- 2025-08-22 SQLite functions: Generate_Series Examples
- 2025-08-21 SQLite functions: generate_series
- 2025-08-21 SQLite functions: generate_series
- 2025-08-20 SQLite Dot command: Once
- 2025-08-19 SQLite Dot command: Output
- 2025-08-16 I tried coding with AI, I became lazy and stupid
- 2025-08-16 How React works behind the scenes (under the hood)
- 2025-08-16 1910: The year where the modern world lost its mind
- 2025-08-16 How I code with AI on a low budget/free
- 2025-08-16 Cross Site Request Forgery
- 2025-08-16 Grug brained AI developer: LLM Appendix
- 2025-08-16 Why I choose OCAML as my primary programming language
- 2025-08-16 Hugo + Obsidian + Git Pipeline
- 2025-08-16 Curate your own newspaper with RSS
- 2025-08-16 Techstructive Weekly #55
- 2025-08-16 AI Efficiency? Give me a break
- 2025-08-09 The art of saying yes: How do I do so many things
- 2025-08-09 How to become a confident software engineer
- 2025-08-09 100 Rust exercises to learn Rust
- 2025-08-09 Stop building AI tools backwards
- 2025-08-09 The fastest way to detect vowel in a string (Python)
- 2025-08-09 Python’s pass by value and pass by reference
- 2025-08-09 Flashy, Fancy shortcuts aren’t always suitable
- 2025-08-09 Techstructive Weekly #54
- 2025-08-09 Don’t tell engineers what to do?
- 2025-08-06 OpenAI releases Open Weight models GPT-OSS
- 2025-08-02 Overthinking GIS
- 2025-08-02 Death by AI
- 2025-08-02 Why I do programming
- 2025-08-02 Why GenAI Infrastructure feels backward
- 2025-08-02 HTTP VS Websockets: The breakthrough moment that clicked
- 2025-08-02 Learning GRPC Completely in Golang
- 2025-08-02 More than Code
- 2025-08-02 What are JSON Web tokens (JWT)
- 2025-08-02 Techstructive Weekly #53
- 2025-07-30 Tmux scroll mode select and copy
- 2025-07-28 Just Fucking use kubernetes
- 2025-07-27 Kubernetes isn't for you
- 2025-07-26 Why LLMs struggle with analytics, and how tinybird solve it
- 2025-07-26 Memcached Architecture
- 2025-07-26 The Business case for Vanilla JS
- 2025-07-26 Techstructive Weekly #52
- 2025-07-26 How I keep up with AI progress and you should too
- 2025-07-26 SQLite Internals: Pages and B-Trees
- 2025-07-26 Rickrolling Turso
- 2025-07-26 Rate Limiting explained in 252 words
- 2025-07-26 Simon Wilson’s commentary on GitHub Spark
- 2025-07-19 How I do it - Daniel Stenberg(Creator and Maintainer of cURL)
- 2025-07-19 Techstructive Weekly #51
- 2025-07-19 The great SQLite rewrite
- 2025-07-19 Kubernetes is not just for Black Fridays
- 2025-07-12 I still care about the code
- 2025-07-12 How AI is changing the Software Hiring in 2025
- 2025-07-12 How Cloudflare’s R2 actually works
- 2025-07-12 Tools: Code is all you need
- 2025-07-12 How to get a job at Canonical
- 2025-07-12 Techstructive Weekly #50
- 2025-07-05 Techstructive Weekly #49
- 2025-07-05 How long context fail
- 2025-07-05 Claude Code is my Computer
- 2025-07-05 Writing code was never the bottleneck
- 2025-07-05 Why I want to write again
- 2025-07-05 How we accidentally solved robotics by watching 1M hours of YouTube
- 2025-07-05 CS50 SQL Lectures Playlist
- 2025-06-28 Golang 1.25 interactive tour
- 2025-06-28 Using AI right now: A quick guide
- 2025-06-28 SQL Join flavors
- 2025-06-28 Anatomy of a SQL Engine: Dolthub Blog
- 2025-06-28 Gemini CLI breakdown by Simon Wilson
- 2025-06-28 Pheonix. new Fly’s entry for AI coding agents
- 2025-06-28 Docker launches hardened base images
- 2025-06-28 Techstructive Weekly #48
- 2025-06-28 Kubernetes isn’t for you
- 2025-06-28 AI-free Writing
- 2025-06-28 Now might be the best time to learn software development
- 2025-06-21 A Linear Algebra Trick for computing Fibonacci Numbers Fast
- 2025-06-21 What would Kubernetes 2.0 be like
- 2025-06-21 The art of saying no
- 2025-06-21 A tale of two Claudes
- 2025-06-21 Techstructive Weekly #47
- 2025-06-21 Feedback is not attack
- 2025-06-21 This AI Agent should have been a SQL Query
- 2025-06-21 Never Just
- 2025-06-14 Programming with Agents: Sketch.dev
- 2025-06-14 I am disappointed in AI discourse
- 2025-06-14 AI IDEs Free Tier War
- 2025-06-14 The Software Engineering Identity Crisis
- 2025-06-14 The Gentle Singularity: Sam Altman’s Blog
- 2025-06-14 How I finally understood Docker and Kubernetes
- 2025-06-14 Anyone can cook: How 37 Signals hired a junior developer
- 2025-06-14 Techstructive Weekly #46
- 2025-06-14 Janvi Kalra
- 2025-06-07 AI changes everything
- 2025-06-07 My AI Skeptic friends are all nuts
- 2025-06-07 Styling the icons for HTML date and time types: Cassidy Williams Blog
- 2025-06-07 My Engineering Craft regressed
- 2025-06-07 First User Framework
- 2025-06-07 Techstructive Weekly #45
- 2025-06-07 AI is rotting my brain
- 2025-06-01 Getting Python version in a UV project
- 2025-05-31 Radicle
- 2025-05-31 Read out the thing you have written
- 2025-05-31 Explaing Transformers in simple words:
- 2025-05-31 Techstructive Weekly #44
- 2025-05-31 The Copilot Dillusion:
- 2025-05-31 Am I online?
- 2025-05-31 Let’s Fing Go:
- 2025-05-25 A draft post
- 2025-05-24 Techstructive Weekly #43
- 2025-05-24 No docs, no bugs
- 2025-05-24 Nothing makes me want to hire someone less than them showing an open-to-work badge
- 2025-05-24 Build systems
- 2025-05-24 Revenge of the junior developer
- 2025-05-24 Glauber Costa on Technical Blogging
- 2025-05-22 I kind of hate Agentic IDEs for the sake of productivity
- 2025-05-19 Appwrite is now Full-Stack-as-a-Service with Sites
- 2025-05-17 MCP: A protocol to watch
- 2025-05-17 A critical look at MCP
- 2025-05-17 Techstructive Weekly #42
- 2025-05-17 What will coding look like in 2027
- 2025-05-17 I just want to code
- 2025-05-10 Techstructive Weekly #41
- 2025-05-10 What even is Vibe coding
- 2025-05-03 Getting started with Pulumi
- 2025-05-03 Be Kind
- 2025-05-03 Why can’t I be technical
- 2025-05-03 Habits I recommend to a software developer
- 2025-05-03 Techstructive Weekly #40
- 2025-05-03 Horseless Carriages
- 2025-04-26 What to work on next?
- 2025-04-26 The lack of frequency increases the pressure to deliver quality
- 2025-04-26 AI-assisted search
- 2025-04-26 Techstructive Weekly #39
- 2025-04-26 We’ll always need junior programmers
- 2025-04-19 The Best Programmer I know
- 2025-04-19 How to build an Agent
- 2025-04-19 Techstructive Weekly #38
- 2025-04-19 Our best customers are now Robots
- 2025-04-19 Believe it’s going to work even though it probably won’t
- 2025-04-12 Techstructive Weekly #37
- 2025-04-12 Universal basic dead-end
- 2025-04-12 We won’t hire a junior engineer with 5 years of experience
- 2025-04-11 Add hunks: only line specific changes with git add -p
- 2025-04-11 Add hunks: only line specific changes with git add -p
- 2025-04-05 A programmer’s Reading List: 100 Articles I Enjoyed Part 1 (1-50)
- 2025-04-05 Techstructive Weekly #36
- 2025-04-05 Format JSON in Vim with JQ
- 2025-03-29 Techstructive Weekly #35
- 2025-03-29 My 6 months with the GoTH stack: building frontends with Go, HTML, and a little duct tape
- 2025-03-29 The worst programmer I know
- 2025-03-29 Your manager should never have to ping you
- 2025-03-29 Deep vs Shallow Go Interfaces
- 2025-03-28 Robots Generate, Humans Manifest
- 2025-03-22 Techstructive Weekly #34
- 2025-03-22 Friction is necessary in our lives, more the solutions, more the problems.
- 2025-03-22 Learn Go Templates: A practical guide to layouts, data rendering in Golang
- 2025-03-22 AI LLM Agents are just graphs, frameworks over-complicate things
- 2025-03-20 Zellij Open Scrollback Edit mode
- 2025-03-20 Zellij Open Scrollback Edit mode
- 2025-03-16 https://evolveasdev.com/blogs/guide/learn-go-templates-a-practical-guide-to-layouts-data-binding-and-rendering
- 2025-03-15 Techstructive Weekly #33
- 2025-03-15 Building Websites with LLMs
- 2025-03-15 Yes you are screwed
- 2025-03-15 Porting Typescript compiler to Golang
- 2025-03-09 youre screwed unless you take action
- 2025-03-08 Beware of the Makefile Effect
- 2025-03-08 python is tactile
- 2025-03-08 Why is everyone trying to replace software engineers
- 2025-03-08 Techstructive Weekly #32
- 2025-03-01 A blog, If you can keep it
- 2025-03-01 Initial impression of GPT 4.5: Simon Wilson
- 2025-03-01 Personal Software is becoming a trend
- 2025-03-01 Techstructive Weekly #31
- 2025-02-22 Why Blog if nobody reads it
- 2025-02-22 Techstructive Weekly #30
- 2025-02-15 ASDF has been re-written in Golang from BASH
- 2025-02-15 My writing process, and how I keep it sustainable
- 2025-02-15 A slow blogging year
- 2025-02-15 Techstructive Weekly #29
- 2025-02-15 How we replaced our react frontend with Golang and Webassembly
- 2025-02-08 How Serverless is killing the traditional backend role
- 2025-02-08 How to write better tests in Go
- 2025-02-08 Techstructive Weekly #28
- 2025-02-08 Top 10 Clean Code Rules
- 2025-02-08 So I rolled my own Static Site generator
- 2025-02-01 How I am moving away from Google Ecosystem
- 2025-02-01 How AI might change programming?
- 2025-02-01 A year of writing
- 2025-02-01 GO’s wired little iterators
- 2025-02-01 Techstructive Weekly #27
- 2025-01-25 How HTTPS Works Comic
- 2025-01-25 Doing hard things while living life - why we build vade studio in clojure
- 2025-01-25 Techstructive Weekly #26
- 2025-01-18 Techstructive Weekly #25
- 2025-01-18 Golang 1.24 Interactive Guide
- 2025-01-18 How HTTP/2 Works and How to Enable It in Go
- 2025-01-18 Hot Take:
- 2025-01-12 Golang Web: DELETE Method
- 2025-01-11 Building Effective Agents (Anthropic Blog)
- 2025-01-11 Distributed and Async task Queues with Python and celery
- 2025-01-11 Techstructive Weekly #24
- 2025-01-11 Simon Wilson Predictions for AI/LLMS for 1/3/6 years
- 2025-01-11 FastAPI Documentation: Concurrency and Async/Await
- 2025-01-11 Golang Web: PATCH Method
- 2025-01-11 Living the future by the numbers
- 2025-01-11 Human writing in the age of AI
- 2025-01-04 Techstructive Weekly #23
- 2025-01-04 Are Pointers faster than Values
- 2025-01-04 Docker Networking Basics
- 2025-01-02 Golang weak package
- 2025-01-02 Understanding Go's Weak Package