41554 blogs · [ { "id": "01a0d5a6-5ee3-738a-9fcf-920bac0fd7f9", "title": "This month in Radicle CI, September 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-09/", "published_at": "2026-09-17T14:35:27+00:00" }, { "id": "01a0874e-8765-7100-a389-c5fc092ab73b", "title": "Thinking about software freedom", "url": "https://blog.liw.fi/posts/2026/software-freedom/", "published_at": "2026-09-01T13:40:06+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cad5cc25", "title": "This month in Radicle CI, August 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-08/", "published_at": "2026-08-19T07:57:44+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cb4af35a", "title": "This month in Radicle CI, July 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-07/", "published_at": "2026-07-22T13:31:13+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cbd5668c", "title": "On the new SFC recommendations for LLM/generative AI use", "url": "https://blog.liw.fi/posts/2026/sfc/", "published_at": "2026-06-19T03:25:08+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3ccabd52a", "title": "State of Radicle CI and where it's going: June 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-06/", "published_at": "2026-06-17T07:51:27+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cd2e3a35", "title": "State of Radicle CI and where it's going: May 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-05/", "published_at": "2026-05-20T06:57:25+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cdea4db8", "title": "State of Radicle CI and where it's going: April 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-04/", "published_at": "2026-04-15T08:27:34+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cebf2601", "title": "State of Radicle CI and where it's going: March 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-03/", "published_at": "2026-03-18T11:27:29+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cef612b7", "title": "The path less traveled by", "url": "https://blog.liw.fi/posts/2026/path-less-traveled/", "published_at": "2026-03-11T12:36:10+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cf26a260", "title": "Ergonomic function arguments in Rust", "url": "https://blog.liw.fi/posts/2026/rust-fn-args/", "published_at": "2026-03-11T05:49:26+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3cf4abf3f", "title": "State of Radicle CI and where it's going: February 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-02/", "published_at": "2026-02-19T14:12:09+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d00b3978", "title": "Riki: the shortcut directive", "url": "https://blog.liw.fi/posts/2026/riki-05/", "published_at": "2026-01-31T14:51:56+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d0851837", "title": "Riki: positional parameters for directives", "url": "https://blog.liw.fi/posts/2026/riki-04/", "published_at": "2026-01-24T06:31:45+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d163bf59", "title": "State of Radicle CI and where it's going: January 2026", "url": "https://blog.liw.fi/posts/2026/radicle-status-quo-01/", "published_at": "2026-01-21T09:14:51+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d20d1c9e", "title": "Riki: shortcut directive failure", "url": "https://blog.liw.fi/posts/2026/riki-03/", "published_at": "2026-01-18T13:10:14+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d22d14d6", "title": "Riki internal linking tests", "url": "https://blog.liw.fi/posts/2026/riki-02/", "published_at": "2026-01-17T14:13:23+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d27bab82", "title": "riki site generation, step 1", "url": "https://blog.liw.fi/posts/2026/riki-01/", "published_at": "2026-01-07T10:39:25+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d294b67d", "title": "A sartorial adventure", "url": "https://blog.liw.fi/posts/2025/sartorial/", "published_at": "2025-12-22T05:53:23+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d339ffef", "title": "State of Radicle CI and where it's going: December 2025", "url": "https://blog.liw.fi/posts/2025/radicle-ci-status-quo/", "published_at": "2025-12-02T14:13:59+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d3d07447", "title": "Stopping evil and open source: my thoughts", "url": "https://blog.liw.fi/posts/2025/stop-evil/", "published_at": "2025-11-30T15:24:42+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d3f97c71", "title": "Ambient CI, progress this year", "url": "https://blog.liw.fi/posts/2025/ambient/", "published_at": "2025-11-02T06:41:33+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d44142d1", "title": "sopass 0.6.0: a command line password manager", "url": "https://blog.liw.fi/posts/2025/sopass-0.6.0/", "published_at": "2025-10-31T14:48:42+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d4b9688d", "title": "Obnam 3 status: chunks, credentials, help?", "url": "https://blog.liw.fi/posts/2025/obnam-status/", "published_at": "2025-10-26T10:48:45+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d4ce187e", "title": "clingwrap, a Rust library for command line applications", "url": "https://blog.liw.fi/posts/2025/clingwrap/", "published_at": "2025-10-15T04:34:57+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d54d81c6", "title": "sopass and cross-device syncing in a password manager", "url": "https://blog.liw.fi/posts/2025/sopass-crdt/", "published_at": "2025-10-04T04:21:12+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d63045ad", "title": "I don't accept donations", "url": "https://blog.liw.fi/posts/2025/donations/", "published_at": "2025-09-24T11:51:56+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d6a67bf8", "title": "Future of vmdb2: need help", "url": "https://blog.liw.fi/posts/2025/vmdb2/", "published_at": "2025-09-14T04:02:38+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d6a916ab", "title": "callisto: free, experimental CI server, initially for Rust projects", "url": "https://blog.liw.fi/posts/2025/callisto/", "published_at": "2025-09-11T11:37:05+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d73d1d83", "title": "Human vs JSON output formatting: avoid mixing concerns", "url": "https://blog.liw.fi/posts/2025/output-formatting/", "published_at": "2025-09-08T06:47:22+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d7d55ea1", "title": "Why I use Debian", "url": "https://blog.liw.fi/posts/2025/why-debian/", "published_at": "2025-08-30T12:03:32+00:00" }, { "id": "01a0874e-8767-721c-9ea2-e2c3d80a08b3", "title": "riki page names and internal links", "url": "https://blog.liw.fi/posts/2025/riki-pagenames/", "published_at": "2025-08-17T11:35:20+00:00" }, { "id": "01a0874e-8768-73f4-a5e0-39cff47aa4d2", "title": "Implementing an ikiwiki subset in Rust", "url": "https://blog.liw.fi/posts/2025/riki-relaunch/", "published_at": "2025-08-14T17:28:30+00:00" }, { "id": "01a0874e-8768-73f4-a5e0-39cff57a33f9", "title": "Using Radicle CI for Development", "url": "https://blog.liw.fi/posts/2025/radicle/", "published_at": "2025-07-23T12:35:40+00:00" }, { "id": "01a0874e-8768-73f4-a5e0-39cff64b2633", "title": "Command line interfaces in Rust", "url": "https://blog.liw.fi/posts/2025/rust-cli/", "published_at": "2025-07-16T16:11:46+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1800cbd1", "title": "Framework 13 inch AMD and HP Thunderbolt4 Dock G4", "url": "https://blog.liw.fi/posts/2025/hp-tb4-dock/", "published_at": "2025-05-26T14:47:21+00:00" }, { "id": "01a0874e-876b-739a-a834-658c18744bc6", "title": "Why is Debian the way it is?", "url": "https://blog.liw.fi/posts/2023/debian-reasons/", "published_at": "2025-04-11T15:33:41+00:00" }, { "id": "01a0874e-876b-739a-a834-658c189a656b", "title": "Why does Debian change software?", "url": "https://blog.liw.fi/posts/2025/why-debian-changes/", "published_at": "2025-04-11T11:13:58+00:00" }, { "id": "01a0874e-876b-739a-a834-658c198b432f", "title": "Interviewed on the Open Source Security podcast", "url": "https://blog.liw.fi/posts/2025/oss-podcast/", "published_at": "2025-04-02T04:21:56+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1a201b03", "title": "Obnam, again", "url": "https://blog.liw.fi/posts/2025/obnam3/", "published_at": "2025-03-13T09:05:36+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1b1e0d1d", "title": "I don't like Docker or Podman", "url": "https://blog.liw.fi/posts/2025/docker/", "published_at": "2025-01-16T06:23:19+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1bef7a4c", "title": "Backup software implementation, part 7", "url": "https://blog.liw.fi/posts/2024/backup-impl-7/", "published_at": "2024-12-31T14:34:45+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1c68702b", "title": "A QEMU question regarding user mode networking", "url": "https://blog.liw.fi/posts/2024/qemu-network/", "published_at": "2024-12-08T09:40:51+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1c7c0768", "title": "Backup software implementation, part 6", "url": "https://blog.liw.fi/posts/2024/backup-impl-6/", "published_at": "2024-11-07T06:01:32+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1d106ac9", "title": "Backup software implementation, part 5", "url": "https://blog.liw.fi/posts/2024/backup-impl-5/", "published_at": "2024-10-18T09:37:17+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1d5cac55", "title": "Error messages when running programs in Rust", "url": "https://blog.liw.fi/posts/2024/rust-run-command-errors/", "published_at": "2024-10-16T04:55:20+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1e360fa3", "title": "Backup software implementation, part 4", "url": "https://blog.liw.fi/posts/2024/backup-impl-4/", "published_at": "2024-10-11T04:38:26+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1e81102f", "title": "Backup software implementation, part 3", "url": "https://blog.liw.fi/posts/2024/backup-impl-3/", "published_at": "2024-10-08T05:08:08+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1f3638de", "title": "Ambient, a CI engine", "url": "https://blog.liw.fi/posts/2024/ambient/", "published_at": "2024-09-23T18:10:40+00:00" }, { "id": "01a0874e-876b-739a-a834-658c1fabff0c", "title": "Backup software implementation, part 2", "url": "https://blog.liw.fi/posts/2024/backup-impl-2/", "published_at": "2024-09-16T15:09:41+00:00" }, { "id": "01a0874e-876b-739a-a834-658c20679a70", "title": "Backup software implementation", "url": "https://blog.liw.fi/posts/2024/backup-impl-1/", "published_at": "2024-09-15T13:24:55+00:00" }, { "id": "01a0874e-876b-739a-a834-658c2153a631", "title": "Framework 13 AMD, first impressions", "url": "https://blog.liw.fi/posts/2024/framework/", "published_at": "2024-09-08T16:52:36+00:00" }, { "id": "01a0874e-876b-739a-a834-658c22234e0d", "title": "Software supply roles", "url": "https://blog.liw.fi/posts/2024/swroles/", "published_at": "2024-08-31T17:23:29+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc8ea2f43f", "title": "Checklist for primary laptop", "url": "https://blog.liw.fi/posts/2024/laptop-checklist/", "published_at": "2024-04-21T06:20:06+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc8f514fa5", "title": "Debian Git monorepo", "url": "https://blog.liw.fi/posts/2024/monorepo/", "published_at": "2024-04-01T05:31:27+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc8f7d1e66", "title": "vmdb2 version 0.40 released", "url": "https://blog.liw.fi/posts/2024/vmdb2-0.40/", "published_at": "2024-03-23T14:18:39+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc902a6818", "title": "40 years as a programmer", "url": "https://blog.liw.fi/posts/2024/40/", "published_at": "2024-03-12T15:13:52+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc90ccf227", "title": "Billion file filesystem", "url": "https://blog.liw.fi/posts/2024/billion/", "published_at": "2024-02-05T07:26:00+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc91515c13", "title": "The XY solution", "url": "https://blog.liw.fi/posts/2023/xysolution/", "published_at": "2024-02-04T08:09:40+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc91bccff2", "title": "De-duplicating $PATH", "url": "https://blog.liw.fi/posts/2023/pathdedup/", "published_at": "2023-12-26T06:57:43+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc927a3724", "title": "New PGP key, and practice around it", "url": "https://blog.liw.fi/posts/2023/pgp/", "published_at": "2023-11-13T19:09:57+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc930b67c3", "title": "Updated my GTD introduction guide", "url": "https://blog.liw.fi/posts/2023/gtdfh/", "published_at": "2023-11-08T06:28:31+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc93753a31", "title": "Tickets, issues, tasks", "url": "https://blog.liw.fi/posts/2023/ticketing/", "published_at": "2023-10-05T15:17:15+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc947022a5", "title": "New job: Radicle", "url": "https://blog.liw.fi/posts/2023/radicle-job/", "published_at": "2023-09-18T14:33:58+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9558cd7b", "title": "vmdb2 and v-i releases", "url": "https://blog.liw.fi/posts/2023/vmdb2-v-i/", "published_at": "2023-08-13T15:15:54+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9636188b", "title": "Using clap to build nice command line interfaces", "url": "https://blog.liw.fi/posts/2023/clap/", "published_at": "2023-06-21T05:36:24+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc96b401f6", "title": "CI annoyances", "url": "https://blog.liw.fi/posts/2023/ci-annoyances/", "published_at": "2023-05-28T13:12:44+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc97b04bd6", "title": "'The early days of Linux' on LWN", "url": "https://blog.liw.fi/posts/2023/early-linux/", "published_at": "2023-04-21T15:45:30+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc980c3ffe", "title": "Tricking your brain to get things done", "url": "https://blog.liw.fi/posts/2023/braincare/", "published_at": "2023-02-19T08:20:37+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9851dbd5", "title": "Rant: year of Linux on the desktop", "url": "https://blog.liw.fi/posts/2022/goalposts/", "published_at": "2022-12-29T17:45:39+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc98f1be85", "title": "Can you run your test suite successfully 1000 times in a row?", "url": "https://blog.liw.fi/posts/2022/kilotest/", "published_at": "2022-12-25T13:51:16+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc99c4c559", "title": "Keyboardio Model100 keyboard: review at one month", "url": "https://blog.liw.fi/posts/2022/11/model100/", "published_at": "2022-11-29T07:24:00+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9a693698", "title": "Rust training for FOSS devs: November 20", "url": "https://blog.liw.fi/posts/2022/11/rust-fossdev/", "published_at": "2022-11-13T11:59:30+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9b493cdc", "title": "Rust training for FOSS devs: how did it go?", "url": "https://blog.liw.fi/posts/2022/10/rust-fossdev/", "published_at": "2022-10-16T06:27:24+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9b7b713d", "title": "Rust training for FOSS programmers", "url": "https://blog.liw.fi/posts/2022/09/23/rust-fossdev/", "published_at": "2022-09-23T05:55:17+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9b974bc2", "title": "Not breaking things is hard", "url": "https://blog.liw.fi/posts/2022/09/14/not-breaking/", "published_at": "2022-09-14T18:35:00+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9c30dd18", "title": "Earth 2.0 by Soile Mottisenkangas", "url": "https://blog.liw.fi/posts/earth-2.0/", "published_at": "2022-08-22T05:28:14+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9c572a98", "title": "DPL elections: candidate counts", "url": "https://blog.liw.fi/posts/dpl-election-candidates/", "published_at": "2022-08-22T04:52:09+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9caf8830", "title": "FUUG grant for Obnam development: what happened then", "url": "https://blog.liw.fi/posts/fuug-grant-part2/", "published_at": "2022-08-22T04:52:09+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9d39019d", "title": "v-i version 0.2: non-interactive Debian installer for bare metal machines", "url": "https://blog.liw.fi/posts/2022/08/07/v-i/", "published_at": "2022-08-07T13:21:32+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9df0e9cb", "title": "On home Internet routers", "url": "https://blog.liw.fi/posts/2022/08/06/router/", "published_at": "2022-08-06T19:44:31+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9e92adce", "title": "Obnam 0.8.0 - encrypting backup program", "url": "https://blog.liw.fi/posts/2022/07/24/obnam-0.8.0/", "published_at": "2022-07-24T09:32:51+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9f306a53", "title": "Rust training", "url": "https://blog.liw.fi/posts/2022/06/27/rust-training/", "published_at": "2022-06-27T12:14:05+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bc9fe169cc", "title": "Unix command line conventions over time", "url": "https://blog.liw.fi/posts/2022/05/07/unix-cli/", "published_at": "2022-05-07T05:21:31+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca02372df", "title": "Release notes: why and how?", "url": "https://blog.liw.fi/posts/2022/04/28/release-notes/", "published_at": "2022-04-28T07:06:18+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca0a404fb", "title": "On Linus's Law", "url": "https://blog.liw.fi/posts/2022/04/07/linus-law/", "published_at": "2022-04-07T11:11:03+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca17ce941", "title": "A year of README reviews", "url": "https://blog.liw.fi/posts/2022/03/31/readmes/", "published_at": "2022-03-31T07:44:14+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca1958c4a", "title": "v-i 0.1, a Debian installer using vmdb2", "url": "https://blog.liw.fi/posts/2022/03/06/v-i/", "published_at": "2022-03-06T17:16:08+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca22287ef", "title": "Insert a million rows into Sqlite, from Rust", "url": "https://blog.liw.fi/posts/2022/03/05/sqlite/", "published_at": "2022-03-05T07:22:55+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca276496c", "title": "sq stakeholder interviews: summary", "url": "https://blog.liw.fi/posts/2022/03/02/sq-interviews/", "published_at": "2022-03-02T15:51:42+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca30e9e07", "title": "Subplot talk at FOSDEM", "url": "https://blog.liw.fi/posts/2922/02/28/subplot-fosdem/", "published_at": "2022-02-28T09:04:10+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca3155b37", "title": "Security ratchet", "url": "https://blog.liw.fi/posts/2022/02/23/security-ratchet/", "published_at": "2022-02-23T12:23:29+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca40e2663", "title": "My split external brain", "url": "https://blog.liw.fi/posts/2022/01/15/environments/", "published_at": "2022-01-15T16:23:47+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca4ac1689", "title": "We're breaking Subplot for a while", "url": "https://blog.liw.fi/posts/2022/01/04/subplot-breakage/", "published_at": "2022-01-04T11:13:23+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca5603ed5", "title": "A custom Debian installer: v-i", "url": "https://blog.liw.fi/posts/2022/01/01/v-i/", "published_at": "2022-01-01T20:05:43+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca5c06b61", "title": "Obnam 0.6.0 released: encrypting backup program", "url": "https://blog.liw.fi/posts/2021/12/04/obnam-0.6.0/", "published_at": "2021-12-04T07:49:46+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca5e3997f", "title": "Obnam 0.5.0 released: encrypting backup program", "url": "https://blog.liw.fi/posts/2021/11/21/obnam-0.5.0/", "published_at": "2021-11-21T07:51:01+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca5ffe586", "title": "User guide for Sequoia sq: feedback please", "url": "https://blog.liw.fi/posts/2021/11/09/sq-user-guide/", "published_at": "2021-11-09T08:09:02+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca6ba566c", "title": "Essay on re-thinking email", "url": "https://blog.liw.fi/posts/2021/10/25/rethinking-email/", "published_at": "2021-10-25T07:28:34+00:00" }, { "id": "01a0874e-876c-7056-99e2-27bca70a4d4a", "title": "I work on Sequoia-PGP now", "url": "https://blog.liw.fi/posts/2021/10/19/sequoia-job/", "published_at": "2021-10-19T06:00:32+00:00" } ] posts Claim your blog
Back to blog.liw.fi
Blog · corpus.blog/blogs/blog.liw.fi/posts

blog.liw.fi

blog.liw.fi

2026

2025

2024

2023

2022

2021