The Curious Engineer

All blogs / Software / engineering practice

jotaen.net

jotaen.net

Jan Heuermann’s blog

Software / engineering practiceGoDev tools / editors / IDEs

Posts
102 from 21 Feb 2014 to 21 Aug 2026
Posting
monthly (9 in the last year)
Kind
personal blog
Feed
https://www.jotaen.net/index.xml

2026 9

  1. Let’s talk about “vibe writing”
  2. Let’s talk about “vibe writing”
  3. thoughts
  4. Timer – Programmable timer web app – e.g. for gym workouts or stretching sessions
  5. Timer Programmable timer web app – e.g. for gym workouts or stretching sessions
  6. How to write great PR descriptions
  7. How to write great PR descriptions
  8. Ali Baba and the Forty Relying Parties – A tale from 1001 Nights, but with passkeys
  9. Ali Baba and the Forty Relying Parties A tale from 1001 Nights, but with passkeys

2025 4

  1. 3 gripes about Go modules – (Number 4 will drive you crazy)
  2. 3 gripes about Go modules (Number 4 will drive you crazy)
  3. Fun with overflowing integers
  4. Fun with overflowing integers

2024 18

  1. Not all binary state is boolean
  2. Not all binary state is boolean
  3. Custom git subcommands
  4. Custom git subcommands
  5. Shortcut for “docker run”
  6. Shortcut for “docker run”
  7. Keep track of migration state in SQlite
  8. Keep track of migration state in SQlite
  9. Inlining images in HTML
  10. Inlining images in HTML
  11. Testing HTTP APIs with hurl
  12. Testing HTTP APIs with hurl
  13. Immediately invoked function expressions
  14. Immediately invoked function expressions
  15. Happy Anniversary! – Looking back on 10 years of blogging
  16. Happy Anniversary! Looking back on 10 years of blogging
  17. snapdiff – CLI tool, written in Rust, to analyse the difference between two directory snapshots
  18. snapdiff CLI tool, written in Rust, to analyse the difference between two directory snapshots

2023 10

  1. Let’s self-host! – Get started with self-hosting, using Docker, HAProxy and Let’s Encrypt
  2. Let’s self-host! Get started with self-hosting, using Docker, HAProxy and Let’s Encrypt
  3. “Congrats!” – The future of AI-enhanced online networking for professionals
  4. “Congrats!” The future of AI-enhanced online networking for professionals
  5. fail err – Musings about error handling syntax in Go (2/2)
  6. fail err Musings about error handling syntax in Go (2/2)
  7. The fallacy of software development principles – Why SOLID, TDD, or Clean Code won’t make us good programmers
  8. The fallacy of software development principles Why SOLID, TDD, or Clean Code won’t make us good programmers
  9. On “free” and “open-source” software – How language makes the people, and people make the language
  10. On “free” and “open-source” software How language makes the people, and people make the language

2022 6

  1. Boost klog Speeding up my Go CLI app tenfold
  2. Like App Store, but open, cross-platform and decentralised Imagining the future of software distribution
  3. if err != nil Musings about error handling syntax in Go (1/2)
  4. “Diff it to me baby (aha, aha)” A timely refactoring kata
  5. run.sh Keeping track of CLI commands in software projects
  6. [x]it! A plain-text file format for todos and check lists

2021 3

  1. klog retrospective One year into my open-source time tracking project
  2. Storytime How I failed to become a game developer at the age of 13
  3. klog Time tracking with plain text files

2020 9

  1. The Design of Everyday Code Two golden principles for building great APIs
  2. Espresso Reactive, fast and testable sketching for Arduino
  3. Waiting for Godot The hidden performance implications of sending bits over the wire
  4. The hyphen text transregional postcard How a British Lord accidentally invented the web in the 17th century
  5. Mental Poker Dealing cards, peer to peer
  6. Crypto Yahtzee Rolling the dice, peer to peer
  7. “Run” scripts Keeping track of commands in coding projects
  8. What are microservices anyway? Reasoning about application architecture
  9. connect4-ai On building a game AI for “Connect Four”

2019 6

  1. Sabbatical check-in Reflecting on 8 months of full-time self-study
  2. Arduino flightseeing An explanation of the Arduino Uno hardware components
  3. “The convoluted converter” A refactoring in 10 steps, guided by coding best pracices
  4. Running in circles How I spent half a day fixing something that was perfectly fine
  5. The continuous delivery mindset What software developers can contribute to making CD successful
  6. A faint little dot that was Pluto The story of its discovery and exploration

2018 4

  1. The art of receiving feedback Learning to listen to what others feel
  2. Web guards Strategies to check and validate HTTP requests
  3. Swing the brush Spring cleaning of my blog
  4. Open heart surgery Successful data migrations during full operation

2017 6

  1. Critical debug info Sensible logging in web applications
  2. Shearing layers About change, persistence and making decisions
  3. Docker ABC A short, fun and explorative tutorial for software developers
  4. Apartment-hunting How to approach the search in Berlin
  5. Fast, cheap and automated Deploying static websites to AWS
  6. Protect yourself A basic guideline to computer security

2016 21

  1. The job interview Asking questions as a candidate
  2. Optimizing for print The champions league of responsive webdesign
  3. The map method Exploring functional javascript
  4. Storytime Learning from challenges
  5. Run Monitor How I keep track of my run training
  6. Halftime! Five learnings from half a year of blogging
  7. Make 404s fun! Suddenly find yourself on the shell of a crashed web server
  8. Semantic versioning Communicate compatibility to API consumers
  9. JSON Web Tokens A brief primer
  10. “The discount campaign” A functional javascript code kata
  11. JavaScript city tour Two days of JSConf in Budapest (May 2016)
  12. J4N.IO – Deployment and operating From the series “Let’s build a REST service”
  13. Testing and QA of J4N.IO From the series “Let’s build a REST service”
  14. Coding J4N.IO with NodeJS From the series “Let’s build a REST service”
  15. What is a REST service? From the series “Let’s build a REST service”
  16. Let’s build a REST service Kickoff for a five part blogpost series
  17. Behind the scenes The making-of of my blog
  18. Spread your configuration Syncing dotfiles with git
  19. Asynchronous conditionals The idea behind JS promises
  20. Stop using ASCII Art Explore the super powers of your Mac keyboard
  21. Put your stuff into the world! Facing the challenges of being a software developer

2014 2

  1. Yet another website framework Trading upon constraints in small projects
  2. The beauty of C++ A tribute to the best programming language

Undated 4

  1. Mail
  2. Impressum
  3. Datenschutz
  4. Open-Source