56,966 blogs · [ { "id": "01a087e3-9f38-70c9-9e94-1765d8c10476", "title": "There are no lossless transformations of natural-language text", "url": "http://sophiebits.com/2026/06/25/there-are-no-lossless-transformations-of-natural-language-text", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765d9a6703e", "title": "Deconstructing “services”", "url": "http://sophiebits.com/2025/12/16/deconstructing-services", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765da2d6e47", "title": "I don’t want AI agents controlling my laptop", "url": "http://sophiebits.com/2025/09/09/ai-agents-security", "published_at": "2025-09-09T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dabbbbf3", "title": "Materialized views are obviously useful", "url": "http://sophiebits.com/2025/08/22/materialized-views-are-obviously-useful", "published_at": "2025-08-22T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765db3bb46b", "title": "TODOs aren’t for doing", "url": "http://sophiebits.com/2025/07/21/todos-arent-for-doing", "published_at": "2025-07-21T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dbddfb3e", "title": "Everyone is wrong about that Slack flowchart", "url": "http://sophiebits.com/2024/10/30/everyone-is-wrong-about-that-slack-flowchart", "published_at": "2024-10-30T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dcbdf482", "title": "Hire me to empower and upskill your eng team", "url": "http://sophiebits.com/2023/06/12/hire-me-to-empower-and-upskill-your-eng-team", "published_at": "2023-06-12T00:00:00+00:00" }, { "id": "01a0dd6a-4ff8-729c-9df7-7e07003f2494", "title": "Fast and maintainable patterns for fetching from a database", "url": "https://sophiebits.com/2020/01/01/fast-maintainable-db-patterns.html", "published_at": "2023-02-14T18:43:58+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dd03ffb7", "title": "How React Changed the Web Forever: A Documentary", "url": "http://sophiebits.com/2023/02/10/react-documentary", "published_at": "2023-02-10T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dda40426", "title": "Fast and maintainable patterns for fetching from a database", "url": "http://sophiebits.com/2020/01/01/fast-maintainable-db-patterns", "published_at": "2020-01-01T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765ddd6e8fc", "title": "React Conf: “Building a Custom React Renderer”", "url": "http://sophiebits.com/2019/10/24/building-a-custom-react-renderer", "published_at": "2019-10-24T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765ddfcb97d", "title": "Why review code?", "url": "http://sophiebits.com/2018/12/25/why-review-code", "published_at": "2018-12-25T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765de99f7d7", "title": "Metrics by proxy", "url": "http://sophiebits.com/2018/12/04/metrics-by-proxy", "published_at": "2018-12-04T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765ded0ea17", "title": "Yak shaving and fixing", "url": "http://sophiebits.com/2018/12/03/yak-shaving-fixing", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765ded3291d", "title": "Voice", "url": "http://sophiebits.com/2018/12/03/voice", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765dfbd013a", "title": "React Conf: “React Today and Tomorrow”", "url": "http://sophiebits.com/2018/10/29/react-today-and-tomorrow", "published_at": "2018-10-29T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e0868cb6", "title": "Why we host conference talk dry runs", "url": "http://sophiebits.com/2018/10/19/conference-talk-dry-runs", "published_at": "2018-10-19T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e093f1b6", "title": "React Podcast: Inside React", "url": "http://sophiebits.com/2018/05/29/react-podcast-inside-react", "published_at": "2018-05-29T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e112d570", "title": "Type errors with inference need stacks", "url": "http://sophiebits.com/2018/05/21/type-errors-with-inference-need-stacks", "published_at": "2018-05-21T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e1e6eaaa", "title": "Observable programming", "url": "http://sophiebits.com/2018/02/22/observable-programming", "published_at": "2018-02-22T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e21c0652", "title": "React 16: an API-compatible rewrite", "url": "http://sophiebits.com/2017/09/26/react-16", "published_at": "2017-09-26T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e30d1ee8", "title": "Hi, I’m trans.", "url": "http://sophiebits.com/2017/08/26/hi-im-trans", "published_at": "2017-08-26T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e3306a60", "title": "Initializing on the main thread using dispatch_once", "url": "http://sophiebits.com/2014/04/02/dispatch-once-initialization-on-the-main-thread", "published_at": "2014-04-02T00:00:00+00:00" }, { "id": "01a087e3-9f38-70c9-9e94-1765e389cb61", "title": "A near-perfect oninput shim for IE 8 and 9", "url": "http://sophiebits.com/2013/06/18/a-near-perfect-oninput-shim-for-ie-8-and-9", "published_at": "2013-06-18T00:00:00+00:00" }, { "id": "01a087e3-9f39-70ea-829c-7721f4ea25fa", "title": "Using React to speed up the Khan Academy question editor", "url": "http://sophiebits.com/2013/06/09/using-react-to-speed-up-khan-academy", "published_at": "2013-06-09T00:00:00+00:00" }, { "id": "01a087e3-9f39-70ea-829c-7721f5c6babd", "title": "What I did at Khan Academy, 2012 edition", "url": "http://sophiebits.com/2012/08/24/what-i-did-at-khan-academy-2012", "published_at": "2012-08-24T00:00:00+00:00" }, { "id": "01a087e3-9f39-70ea-829c-7721f6a9fe61", "title": "Preventing XSS attacks when embedding JSON in HTML", "url": "http://sophiebits.com/2012/08/03/preventing-xss-json", "published_at": "2012-08-03T00:00:00+00:00" }, { "id": "01a087e3-9f39-70ea-829c-7721f7672bdf", "title": "Rolling back to an old revision in Mercurial (like git reset)", "url": "http://sophiebits.com/2012/07/19/rolling-back-in-mercurial", "published_at": "2012-07-19T00:00:00+00:00" } ] posts Claim your blog
Back to sophiebits.com
Blog · corpus.blog/blogs/sophiebits.com/posts

sophiebits.com

sophiebits.com

2026

2025

2024

2023

2020

2019

2018

2017

2014

2013

2012