The Curious Engineer

All blogs / Software / engineering practice

quanttype

quanttype.net

quanttype by Miikka Koskinen

Software / engineering practiceRustPythonDatabases

Posts
262 from 14 Aug 2013 to 8 Oct 2026
Posting
monthly (9 in the last year)
Kind
personal blog
Feed
https://quanttype.net/index.xml

2026 9

  1. Code review, autumn 2026
  2. Perfect Dockerfile for Rust backends
  3. What I learned at Nordic PGDay 2026
  4. Speed up code with pi-autoresearch
  5. Software for myself
  6. Goblin Mode, or spinning up VMs for feral agents
  7. Let's automate our jobs
  8. Programming is over
  9. Yearnote 2025

2025 9

  1. PyCon Finland 2025
  2. PyCon UK 2025
  3. uv and maturin
  4. Compressing floating point data with Gorilla
  5. FP compression family tree
  6. Storing timeseries data
  7. Leader election with S3 and If-Match
  8. New winds
  9. Yearnote 2024

2024 24

  1. Weeknote 19: ADRs record decisions
  2. Weeknote 18: Code comments
  3. Weeknote 17: Caching Docker builds on GitHub Actions
  4. Weeknote 16: Late code review
  5. Weeknote 15: Technology radar
  6. Weeknote 14: Throwing it away
  7. Weeknote 13: Deterministic Simulation Testing
  8. Weeknote 12: In the weeds
  9. Weeknote 11: Weeknotes
  10. Weeknote 10: Prototyping
  11. Weeknote 9: EuroRust 2024
  12. Weeknote 8: Feedback
  13. Weeknote 7: Memray + k8s
  14. Weeknote 6: Heart of Clojure
  15. Weeknote 5: Broken Input
  16. Weeknote 4: Debugging Tools
  17. Weeknote 3: Object Storage
  18. Weeknote 2: Developer Experience
  19. Weeknote 1: Schema Evolution
  20. paketoi 0.1
  21. A toolbox of methods
  22. GitHub's PRs could be better
  23. Creating AWS Lambda zip files with Pex
  24. Yearnote 2023

2023 4

  1. Do not use requirements.txt
  2. Recipes for updating poetry.lock
  3. Branchless git workflows
  4. Yearnote 2022

2022 6

  1. SQL, Clojure, and editor support
  2. What does `identical?` do?
  3. Tasks of a schema migration tool
  4. Schema migrations and avoiding downtime
  5. Clojure and what could've been
  6. Yearnote 2021

2021 11

  1. Split tokens in Clojure
  2. Enjoying the silence
  3. clojure.xml and untrusted input
  4. clojure.spec and untrusted input
  5. Why take notes, anyway?
  6. The goal is to deliver working software
  7. Winter-posting
  8. When to not use code review
  9. Writing is a core skill for developers
  10. Clojure project automation tool of my dreams
  11. Yearnote 2020

2020 43

  1. NixOS impressions
  2. Code review in context
  3. New shell prompt with Starship
  4. Early impressions on morning pages
  5. Code review is for collaboration
  6. Why bother with Integrant?
  7. Two albums of sad music
  8. What are DIDs?
  9. Caching HTTP requests in Clojure
  10. Generating random tokens in Clojure
  11. clj-branca: lessons learned
  12. Branca and yak shaving
  13. Solving the diamond problem with shading
  14. Local memoized recursive functions
  15. No blog this week
  16. Is this art?
  17. JWT and its alternatives
  18. Looking good in a suit
  19. The minimalist program
  20. Two things that make logging out hard
  21. Summer reading
  22. Signing .jars is worthless
  23. On paddling
  24. Summer vacation
  25. Building software without hiring anyone
  26. Who is going to use the programming language?
  27. Automating spec-tools releases
  28. Have you seen the swan?
  29. Essential features of data specification libraries
  30. Schema, Spec, and Malli
  31. Elegant knowledge transfer
  32. Ricoh GR III, a year later
  33. Put files where they are expected
  34. Video calls are cool but have you tried writing
  35. Freezing deployments is risky
  36. Working from home: initial impressions
  37. Programming is writing
  38. Making decisions without asking your boss
  39. No need for something to say
  40. Logging request IDs in Tornado
  41. Hello again, Python
  42. Joys of a heavy camera
  43. Yearnote 2019

2019 16

  1. Standard problems, standard solutions
  2. Just automate syntax formatting
  3. Keeping code review fast
  4. The power of code review
  5. Coercing JSON with malli
  6. Karhunkierros IV
  7. Karhunkierros III
  8. Karhunkierros II
  9. Karhunkierros I
  10. The joys of coverage
  11. The hallway track conference
  12. Interpreting Moriyama
  13. Ricoh GR III - initial impressions
  14. Handbrewing coffee
  15. Revisiting Clojure testing
  16. Yearnote 2018

2018 12

  1. How I use tap>
  2. Clojure libraries I recommend
  3. I made a backpack
  4. Fully automated releases
  5. Migrated to Hugo
  6. Why interceptors?
  7. Lead Developer London 2018
  8. A night in Nuuksio
  9. Edit clipboard contents in Vim
  10. How to write a talk proposal
  11. Name this conversation pattern
  12. Yearnote 2017

2017 30

  1. Secure Scuttlebutt: some technical details
  2. A new JSON library appears
  3. Break from blogging
  4. What is first-order logic?
  5. Please publish changelogs
  6. Write more macros
  7. Hiking from Pyhä to Luosto
  8. Focus on understandble code
  9. What is pair programming like?
  10. Using Beeminder to keep blogging
  11. What are hybrid maps?
  12. ZuriHac 2017
  13. Commit messages are worthless
  14. On sailing
  15. On JSONfeed
  16. clojure.spec for configuration validation
  17. What is functional analysis?
  18. JUnit output for Clojure tests
  19. prog1 in Clojure
  20. Darkroom update
  21. Keskustalaisuus vaalikoneessa
  22. How I use Anki
  23. Configuring Clojure apps
  24. Thinking about gear (acquisition syndrome)
  25. Ice in black and white
  26. The surprises of photography
  27. Reading highlights from 2016
  28. Technical tooling for making better software
  29. Running ClojureScript tests with Karma
  30. Clojure test runner of my dreams

2016 25

  1. Curry On and ZuriHac
  2. Some questions (June 2016)
  3. On feeling guilty about not being good enough
  4. You'll want locally scoped CSS
  5. Why look beyond JavaScript?
  6. What is descriptive set theory?
  7. How I solved the Orbital Challenge
  8. Mamiya RB67 Pro-S
  9. What's the point of dependent types?
  10. We're in early days of software engineering
  11. Finding that lemma: Coq search commands
  12. How to divide by zero?
  13. Take better photos by looking carefully
  14. defaultdicts all the way down
  15. Runtime exceptions in Elm
  16. Multitenant Flask-SQLAlchemy
  17. What is forcing, anyway?
  18. Elementary algebra in Coq: Trivial group
  19. Please give demanding tech talks
  20. Elementary algebra in Coq: Defining a group
  21. What's in a proof?
  22. Getting started with Coq
  23. Helsinki Haskell User Group
  24. On Infinite Jest
  25. The bare minimum to know about RELAX NG

2015 39

  1. Yearnote 2015
  2. Math is hard, let's go blogging
  3. Code review requires trust
  4. Color film update
  5. Python is not good enough
  6. Printers now work
  7. Spinning while sleeping
  8. Joylent mini-review
  9. Dabbling in film photography
  10. Webpacking a project
  11. Exercising is like eating
  12. Moral obligations of ad blocking
  13. Commandments for code review
  14. Some questions I can't answer
  15. Everyday carry (August 2015)
  16. Copenhagen highlights
  17. Shell pro-tip: create weekly working directories
  18. Wash your smelly travel towel with vinegar
  19. FRP and self-adjusting computation
  20. Running is great for lazy people
  21. The Moat of Scrumbut
  22. Speech as art
  23. A Mind for Numbers
  24. Spend some time away from computers
  25. ROS: Good, bad and ugly
  26. The Law of Partial Test Coverage
  27. Good math exercises build trust
  28. Quickly jumping between git branches
  29. Emacs: Get the path for current buffer from command-line
  30. Birds and context-free grammars
  31. You should take lecture notes with pen and paper
  32. Tornien taisto is coming soon
  33. New theorem prover: Lean
  34. The value of MOOCs is not in the videos
  35. Are quantum computers faster than classical computers?
  36. This Week in Finnish Politics
  37. Types of JavaScript
  38. Setting up Coq, Ssreflect and Proof General on OS X
  39. Yearnote 2014

2014 27

  1. Ambronite mini-review
  2. Going to write a bachelor's thesis
  3. Guts of the Golden Pig
  4. Event notes: ClojuTRE 2014
  5. A photo essay: Haronmäki
  6. Customizing Nix packages
  7. Did taking photos teach me anything?
  8. Four scientific ways to hack your learning
  9. NP and non-deterministic Turing machines
  10. Why does everything fall apart so quickly?
  11. Practicing photography
  12. Houkutteleva tutkijanura
  13. In praise of Hiccup
  14. Is being normal anti-establishment?
  15. Electromagnetic Field 2014
  16. Math is programming
  17. When is static typing worthwhile?
  18. Hard things in software engineering
  19. Linux problems, April 2014
  20. Baudrillard on Jogging
  21. Renaming files with zmv
  22. Weak views, strongly held
  23. Flappy Sine
  24. nix-docker and docker volumes
  25. Baana, Helsinki
  26. Compiling assembler files with avr-gcc without C runtime
  27. People Never Change

2013 7

  1. Peruna, a horse and a medicine
  2. Mental Attitude of the Grid
  3. Silver Streetcar for the Orchestra
  4. ferret.gif
  5. Why do you write commit messages?
  6. Setting up nginx for static content with Pallet
  7. Tomaatti-Sota