41554 blogs · [ { "id": "01a087b3-8061-72ba-90f9-2ca0ee29cc54", "title": "Optimizing for Reviewers: The Three Step AI Dev Loop", "url": "https://npf.io/2026/04/optimize-for-reviewers/", "published_at": "2026-04-19T16:01:33+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52b5447c2", "title": null, "url": "https://npf.io/blog/", "published_at": "2026-04-19T16:01:33+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52b783f37", "title": null, "url": "https://npf.io/", "published_at": "2026-04-19T16:01:33+00:00" }, { "id": "01a087b3-8061-72ba-90f9-2ca0ef0512b3", "title": "Why Infer Types?", "url": "https://npf.io/2022/05/why-infer/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52c2414f6", "title": null, "url": "https://npf.io/series/bite-sized-go/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52cbe3e54", "title": null, "url": "https://npf.io/tags/bite-sized-go/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52d8a70aa", "title": null, "url": "https://npf.io/tags/go/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52e00d354", "title": null, "url": "https://npf.io/tags/golang/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52e81973f", "title": null, "url": "https://npf.io/series/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52ea4ec92", "title": null, "url": "https://npf.io/tags/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db52fa2cccd", "title": null, "url": "https://npf.io/tags/type-inference/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53040ecbd", "title": null, "url": "https://npf.io/tags/types/", "published_at": "2022-05-26T13:03:00+00:00" }, { "id": "01a087b3-8061-72ba-90f9-2ca0ef7f52db", "title": "Safer Enums", "url": "https://npf.io/2022/05/safer-enums/", "published_at": "2022-05-13T13:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db531484112", "title": null, "url": "https://npf.io/tags/enums/", "published_at": "2022-05-13T13:03:00+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad85f7c978c", "title": "Error Flags", "url": "https://npf.io/2021/04/errorflags/", "published_at": "2021-04-08T03:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5335cc7b6", "title": null, "url": "https://npf.io/tags/error-handling/", "published_at": "2021-04-08T03:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db534151a92", "title": null, "url": "https://npf.io/tags/errors/", "published_at": "2021-04-08T03:03:00+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad8603728bf", "title": "How to Pay Remote Workers", "url": "https://npf.io/2019/07/how-to-pay-remote-workers/", "published_at": "2019-07-26T16:47:11+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5349f5c97", "title": null, "url": "https://npf.io/series/remote-work/", "published_at": "2019-07-26T16:47:11+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad860f46687", "title": "Do or Do Not", "url": "https://npf.io/2019/06/do-or-do-not/", "published_at": "2019-06-08T03:40:50+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad86163e17c", "title": "Hiring Remote", "url": "https://npf.io/2019/05/hiring-remote/", "published_at": "2019-05-15T03:05:55+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad862632859", "title": "Retooling Retool", "url": "https://npf.io/2019/05/retooling-retool/", "published_at": "2019-05-12T01:42:34+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad86358068c", "title": "Init Is Bad and You Should Feel Bad", "url": "https://npf.io/2019/04/init-is-bad-and-you-should-feel-bad/", "published_at": "2019-04-12T15:04:21+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad8637029b4", "title": "Starlight", "url": "https://npf.io/2018/12/starlight/", "published_at": "2018-12-07T14:59:12+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad863c63c74", "title": "Mage - make/rake for Go", "url": "https://npf.io/2018/09/mage/", "published_at": "2018-09-20T02:50:51+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db538a21584", "title": null, "url": "https://npf.io/code/", "published_at": "2018-09-18T23:00:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db538f254b2", "title": null, "url": "https://npf.io/mage/", "published_at": "2018-09-18T23:00:00+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad863d197ff", "title": "Handle and Check - Let's Not", "url": "https://npf.io/2018/09/check-and-handle/", "published_at": "2018-09-06T17:49:33+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad86444b080", "title": "Go2 Contracts Go Too Far", "url": "https://npf.io/2018/09/go2-contracts-go-too-far/", "published_at": "2018-09-05T18:00:18+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53a9e15da", "title": null, "url": "https://npf.io/gnorm/", "published_at": "2018-06-02T17:00:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53b8a354f", "title": null, "url": "https://npf.io/starlight/", "published_at": "2018-06-02T17:00:00+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad8650d8024", "title": "Comment Your Code", "url": "https://npf.io/2017/11/comments/", "published_at": "2017-11-17T19:48:09+00:00" }, { "id": "01a087b3-8062-71eb-b6f1-2ad86593fc40", "title": "Code Must Never Lie", "url": "https://npf.io/2017/08/lies/", "published_at": "2017-08-29T16:40:19+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53d60c637", "title": null, "url": "https://npf.io/tags/programming/", "published_at": "2017-08-29T16:40:19+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53e5ec91b", "title": null, "url": "https://npf.io/2017/07/adapting-funcs/", "published_at": "2017-07-15T14:55:43+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53f2941e7", "title": null, "url": "https://npf.io/series/3.5-years-of-go/", "published_at": "2017-03-24T08:01:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db53f994c60", "title": null, "url": "https://npf.io/2017/03/3.5yrs-500k-lines-of-go/", "published_at": "2017-03-24T08:01:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5401f14d9", "title": null, "url": "https://npf.io/series/writing-go-applications/", "published_at": "2016-10-19T02:08:09+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db540c508dd", "title": null, "url": "https://npf.io/2016/10/reusable-commands/", "published_at": "2016-10-19T02:08:09+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5412ef5ef", "title": null, "url": "https://npf.io/tags/hugo/", "published_at": "2016-10-16T00:01:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db542216cdd", "title": null, "url": "https://npf.io/2016/10/vanity-imports-with-hugo/", "published_at": "2016-10-16T00:01:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5425ae4c1", "title": null, "url": "https://npf.io/gorram/", "published_at": "2016-10-02T23:00:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5427fc072", "title": null, "url": "https://npf.io/series-desc/3.5-years-of-go/", "published_at": "2016-08-24T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5435e6d29", "title": null, "url": "https://npf.io/desc/", "published_at": "2016-08-24T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5441e4741", "title": null, "url": "https://npf.io/desc/series-3.5-years-of-go/", "published_at": "2016-08-24T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db544488524", "title": null, "url": "https://npf.io/series-desc/", "published_at": "2016-08-24T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5454582ea", "title": null, "url": "https://npf.io/2015/12/enums/", "published_at": "2015-12-02T04:00:19+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5463f8390", "title": null, "url": "https://npf.io/2015/10/errors/", "published_at": "2015-10-10T04:00:19+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db546928a76", "title": null, "url": "https://npf.io/tags/executables/", "published_at": "2015-06-30T16:44:29+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db546f66520", "title": null, "url": "https://npf.io/tags/package/", "published_at": "2015-06-30T16:44:29+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db547ccc3bf", "title": null, "url": "https://npf.io/2015/06/deputy/", "published_at": "2015-06-30T16:44:29+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db548943abe", "title": null, "url": "https://npf.io/tags/testing/", "published_at": "2015-06-26T10:41:56+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5497dc85a", "title": null, "url": "https://npf.io/2015/06/testing-exec-command/", "published_at": "2015-06-26T10:41:56+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db549f3b4f6", "title": null, "url": "https://npf.io/tags/godoc/", "published_at": "2015-06-11T11:37:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54a644834", "title": null, "url": "https://npf.io/2015/06/wip-godoc/", "published_at": "2015-06-11T11:37:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54ac16695", "title": null, "url": "https://npf.io/pie/", "published_at": "2015-06-02T17:00:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54b124f84", "title": null, "url": "https://npf.io/2015/05/pie/", "published_at": "2015-05-26T02:44:32+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54ba26bf5", "title": null, "url": "https://npf.io/tags/plugins/", "published_at": "2015-05-26T02:44:32+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54bdddfe2", "title": null, "url": "https://npf.io/2014/10/go-nitpicks/", "published_at": "2014-10-28T10:17:21+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54c4f9780", "title": null, "url": "https://npf.io/2014/10/why-everyone-hates-go/", "published_at": "2014-10-14T14:46:28+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54c6f5798", "title": null, "url": "https://npf.io/2014/10/deploy-discourse-juju/", "published_at": "2014-10-01T10:31:49+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54d486e7e", "title": null, "url": "https://npf.io/tags/discourse/", "published_at": "2014-10-01T10:31:49+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54deacfe6", "title": null, "url": "https://npf.io/tags/juju/", "published_at": "2014-10-01T10:31:49+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54e4bad25", "title": null, "url": "https://npf.io/2014/08/intro-to-toml/", "published_at": "2014-08-16T07:31:51+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54e6cb083", "title": null, "url": "https://npf.io/series-desc/bite-sized-go/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54f431229", "title": null, "url": "https://npf.io/series-desc/hugo-101/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db54f764b4c", "title": null, "url": "https://npf.io/series-desc/remote-work/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5502356d5", "title": null, "url": "https://npf.io/desc/series-remote-work/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55035020e", "title": null, "url": "https://npf.io/desc/series-bite-sized-go/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55099d4a3", "title": null, "url": "https://npf.io/desc/series-hugo101/", "published_at": "2014-08-12T11:09:35+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db551755b5f", "title": null, "url": "https://npf.io/series/hugo-101/", "published_at": "2014-08-08T11:12:44+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5524b8e12", "title": null, "url": "https://npf.io/2014/08/making-it-a-series/", "published_at": "2014-08-08T11:12:44+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55332122e", "title": null, "url": "https://npf.io/2014/08/hugo-beyond-the-defaults/", "published_at": "2014-08-08T10:07:46+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db553fa3801", "title": null, "url": "https://npf.io/npipe.v2/", "published_at": "2014-08-01T10:15:15+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db554600f76", "title": null, "url": "https://npf.io/2014/08/hugo-is-awesome/", "published_at": "2014-08-01T06:45:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db554ec440d", "title": null, "url": "https://npf.io/2014/08/first/", "published_at": "2014-08-01T06:30:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db5553f9d2a", "title": null, "url": "https://npf.io/lumberjack.v2/", "published_at": "2014-07-28T11:28:15+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db555529a31", "title": null, "url": "https://npf.io/about/", "published_at": "2014-07-28T11:14:25+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db555e91176", "title": null, "url": "https://npf.io/2014/07/ci-for-windows-go-packages-with-appveyor/", "published_at": "2014-07-09T17:43:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55622c46b", "title": null, "url": "https://npf.io/2014/07/intro-to-boltdb-painless-performant-persistence/", "published_at": "2014-07-07T08:25:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db556a49936", "title": null, "url": "https://npf.io/tags/persistence/", "published_at": "2014-07-07T08:25:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db557a0d6a6", "title": null, "url": "https://npf.io/2014/06/autogenerate-docs-with-this-one-dumb-trick/", "published_at": "2014-06-17T05:59:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db557c474c1", "title": null, "url": "https://npf.io/tags/beyond-compare/", "published_at": "2014-05-14T13:09:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db557fbb010", "title": null, "url": "https://npf.io/tags/diff/", "published_at": "2014-05-14T13:09:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55809dd80", "title": null, "url": "https://npf.io/2014/05/diffing-go-with-beyond-compare/", "published_at": "2014-05-14T13:09:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db558e73d1b", "title": null, "url": "https://npf.io/2014/05/intro-to-go-interfaces/", "published_at": "2014-05-13T07:08:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db559001e9f", "title": null, "url": "https://npf.io/2014/04/mocking-functions-in-go/", "published_at": "2014-04-10T11:35:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55904b0f7", "title": null, "url": "https://npf.io/2014/04/effective-godoc/", "published_at": "2014-04-01T06:43:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db559d1015c", "title": null, "url": "https://npf.io/2014/03/unused-variables-in-go/", "published_at": "2014-03-28T16:13:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55a735211", "title": null, "url": "https://npf.io/2014/03/go-and-github/", "published_at": "2014-03-21T06:29:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55aa25b0f", "title": null, "url": "https://npf.io/2014/03/go-tips-for-newbie-gophers/", "published_at": "2014-03-15T09:00:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55b8508ad", "title": null, "url": "https://npf.io/2013/11/working-at-canonical/", "published_at": "2013-11-10T16:14:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55b8a7d08", "title": null, "url": "https://npf.io/2013/09/60-days-with-ubuntu/", "published_at": "2013-09-28T08:03:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55c6c8845", "title": null, "url": "https://npf.io/2013/04/statically-typed-generic-data-structures-in-go/", "published_at": "2013-04-17T08:01:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55d0d3a44", "title": null, "url": "https://npf.io/2013/01/go-is-for-open-source/", "published_at": "2013-01-29T07:45:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55de14966", "title": null, "url": "https://npf.io/tags/open-source/", "published_at": "2013-01-29T07:45:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55e43745d", "title": null, "url": "https://npf.io/2013/01/what-i-love-about-go/", "published_at": "2013-01-25T08:49:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55e49773d", "title": null, "url": "https://npf.io/2013/01/gocog/", "published_at": "2013-01-25T08:33:00+00:00" }, { "id": "01a0dee6-e364-737d-af58-0db55ef6e02c", "title": null, "url": "https://npf.io/2012/11/go-win-stuff/", "published_at": "2012-11-16T11:01:00+00:00" } ] posts Claim your blog
Back to npf.io
Blog · corpus.blog/blogs/npf.io/posts

npf.io

npf.io

2026

2022

2021

2019

2018

2017

2016

2015

2014

2013

2012