[{"data":1,"prerenderedAt":54},["ShallowReactive",2],{"$f1h0idiptwodjd":3,"recommended":23},{"title":4,"path":5,"date":6,"updated":7,"tags":8,"excerpt":12,"readingMinutes":13,"commentCount":14,"html":15,"comments":16,"next":17,"prev":20},"[TSTIL] FDA Crawler","\u002F2022\u002F10\u002Ffda-crawler\u002F","2022-10-30T08:29:00.008Z","2024-06-11T08:26:01.665Z",[9,10,11],"easee","regulatory","the-software-that-i-love","[ This is a part of \" The Software That I Love \", a series of posts about Software that I created or had a small part in ] Some industries see a lot of competition even though there's not a lot of commercial traction…",1,0,"\u003Cp>[ This is a part of &quot;\u003Ca href=\"\u002F2022\u002F10\u002Fthe-software-that-i-love\u002F\">The Software That I Love\u003C\u002Fa>&quot;, a series of posts about Software that I created or had a small part in ]\u003C\u002Fp>\n\u003Ch2>2021 - FDA Crawler\u003C\u002Fh2>\n\u003Cp>Some industries see a lot of competition even though there's not a lot of commercial traction yet. There the battles are fought not over customers and revenue, but over patents and certifications. With easee we were operating in a similar environment. It was very important for me as CTO \u002F product person to figure out what our competitors were doing. One of the tools that I developed for this is the FDA crawler. It scrapes the FDA API for product and company registrations and serializes it in a git repository. Every week the script runs and with the git history you can see exactly if there are any created, updated or deleted listings. Any new company or product category is instantly visible. Well, sort of, because the database is only updated manually once every couple of weeks. We typically see news via a google alert weeks before it is visible in the official channels. Nevertheless, this serialization to git is a nice pattern that I hope to use for more purposes. It helps us keep track of any new competitors in the USA. It's a tiny script but really effective and sure beats checking the database manually.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>next\u003C\u002Fstrong>: \u003Ca href=\"\u002F2022\u002F10\u002Fcowboy-e-bike-remote-control\u002F\">2022 \u003Cstrong>-\u003C\u002Fstrong> Cowboy e-Bike Remote Control\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>previous\u003C\u002Fstrong>: \u003Ca href=\"\u002F2024\u002F03\u002Fthe-waterrower-camera\u002F\">2021 - The WaterRower Camera\u003C\u002Fa>\u003C\u002Fp>\n",[],{"title":18,"path":19},"Gear","\u002F2022\u002F11\u002Fgear-or-steal-my-look\u002F",{"title":21,"path":22},"[TSTIL] decrypt.py","\u002F2022\u002F10\u002Fdecryptpy\u002F",[24,29,34,37,41,44,47,51],{"title":25,"path":26,"note":27,"series":28},"Mapping out Dark Code","\u002F2026\u002F03\u002Fmapping-out-dark-code\u002F","2026",false,{"title":30,"path":31,"note":32,"series":33},"The software that I love","\u002F2022\u002F10\u002Fthe-software-that-i-love\u002F","Series · 36 posts",true,{"title":35,"path":36,"note":27,"series":28},"Navigating the Fog of War: Age of Empires, AI Agents, and the Rise of Dark Code","\u002F2026\u002F05\u002Fnavigating-fog-of-war-age-of-empires-ai\u002F",{"title":38,"path":39,"note":40,"series":28},"The Future of Programming Systems - four thoughts","\u002F2024\u002F09\u002Fthe-future-of-programming-systems-four\u002F","2024",{"title":42,"path":43,"note":40,"series":28},"Always Optimize the Feedback Loop","\u002F2024\u002F07\u002Falways-optimize-feedback-loop\u002F",{"title":45,"path":46,"note":40,"series":28},"\"Security Is Our Top Priority\" is BS","\u002F2024\u002F07\u002Fsecurity-is-our-top-priority-is-bs\u002F",{"title":48,"path":49,"note":50,"series":28},"10x teams","\u002F2025\u002F02\u002F10x-teams\u002F","2025",{"title":52,"path":53,"note":50,"series":28},"Hiring, from the Other Side","\u002F2025\u002F10\u002Fhiring-from-other-side\u002F",1792876808857]