{"id":"pg_ugqbt0vgqvwa","property_id":"prp_ne9ltqs2ecwz","domain_id":"dom_9g_goov-wlby","root_domain":"stripe.com","locale":"en","url":"https://stripe.com/blog/engineering","url_hash":"331274d6c988ead07e023977012338a18ed6a7a2b90fce376bab6139426f3fc2","path":"/blog/engineering","depth":1,"canonical_url":null,"canonical_page_id":null,"page_type":"article","page_type_guess":"article","state":"indexed","skip_reason":null,"priority":"1.4","discovered_via":"sitemap","first_seen_at":"2026-08-27T09:00:48.154Z","last_seen_at":"2026-08-27T09:02:44.568Z","http_status":200,"content_hash":"6bba1d2e0948982e0cf7f1da8b6e70cbdc805bf4bd87750977cecba24b2098ad","title":"Stripe Dot Dev Blog","description":"Learn how to build web and mobile applications to accept payments, send payouts, and manage your business online with Stripe.","author":null,"published_at":null,"modified_at":null,"word_count":335,"reading_time_sec":91,"lang_detected":"en","images":[],"links_out":null,"markdown_source":"readability","refresh_interval":"monthly","last_fetched_at":"2026-08-27T09:01:21.505Z","next_refresh_at":"2026-09-26T09:01:21.505Z","runs_count":1,"changes_count":0,"last_changed_at":null,"fail_count":0,"last_error":null,"created_at":"2026-08-27T09:00:48.154Z","updated_at":"2026-08-27T09:00:48.154Z","inlinks":0,"inlinks_body":0,"outlinks":30,"outlinks_external":6,"anchor_terms":[],"template_score":null,"cash":"0.05","cash_total":"0.10","pagerank":null,"is_orphan":true,"link_confirmed":true,"discovered_wave":0,"embedded_hash":"6bba1d2e0948982e0cf7f1da8b6e70cbdc805bf4bd87750977cecba24b2098ad","embedded_at":"2026-08-27T09:14:02.072Z","domain_name":"Stripe","brand_color":"#fd9416","domain_rank":729,"spam_score":5,"markdown":"[](https://stripe.com/)\n\n[\\[B\\] Blog](https://stripe.com/blog)[\\[E\\] Events](https://stripe.com/events)[\\[D\\] Docs](https://docs.stripe.com/)[\\[Y\\] Youtube](https://www.youtube.com/stripedevelopers)[\\[G\\] Github](https://github.com/stripe)[\\[M\\] Meetups](https://www.meetup.com/pro/stripe)[\\[U\\] Community](https://www.stripecommunity.com/home)\n\n## Blog(114)\n\n/Filters\n\n\\[\n\nFig. 3\n\n\\]\n\n[](https://stripe.com/art/index.html?config=%7B%22ampX%22:0.34922884912043817,%22ampY%22:0.366142391782254,%22aspectRatio%22:3.5991310963975267,%22axis%22:%22xy%22,%22lump%22:0.33172155507281426,%22count%22:70,%22freq%22:0.4,%22isDial%22:false,%22isLineart%22:false,%22isRing%22:true,%22isSpiral%22:true,%22left%22:4,%22mouseX%22:0.5866846039371565,%22mouseY%22:0.13641974309831856,%22noise%22:0.08586734730005265,%22scale%22:6.598315318033099,%22shape%22:%22rect%22,%22top%22:12,%22twirl%22:0,%22twist%22:1.4917267701253296,%22velocity%22:2.061707329314202%7D)\n\n10x\n\n/Date\n\n/Name\n\n-   [\n    \n    2026.8.26\n    \n    Building a data plane from scratch: Stripe’s own high-performance distributed proxy\n    \n    ](https://stripe.com/blog/building-a-data-plane-from-scratch-stripes-own-high-performance-distributed-proxy)\n    \n-   [\n    \n    2026.7.30\n    \n    Meet Stripe's Knowledge AI Platform\n    \n    ](https://stripe.com/blog/meet-stripes-knowledge-ai-platform)\n    \n-   [\n    \n    2026.7.16\n    \n    How Stripe uses graph search and state machines to auto-remediate a global database fleet\n    \n    ](https://stripe.com/blog/how-stripe-uses-graph-search-and-state-machines-to-auto-remediate-a-global-database-fleet)\n    \n-   [\n    \n    2026.6.22\n    \n    Extending Stripe’s network with stablecoins\n    \n    ](https://stripe.com/blog/extending-stripes-network-with-stablecoins)\n    \n-   [\n    \n    2026.6.15\n    \n    How API changes flow into Stripe's developer products\n    \n    ](https://stripe.com/blog/how-api-changes-flow-into-stripes-developer-products)\n    \n-   [\n    \n    2026.5.27\n    \n    Modern Java at Stripe: Language upgrades as a service\n    \n    ](https://stripe.com/blog/modern-java-at-stripe-language-upgrades-as-a-service)\n    \n-   [\n    \n    2026.4.28\n    \n    Formatting an entire 25 million line codebase overnight: the rubyfmt story\n    \n    ](https://stripe.com/blog/formatting-an-entire-25-million-line-codebase-overnight-the-rubyfmt-story)\n    \n-   [\n    \n    2026.4.16\n    \n    How we built Stripe Credits: A programmable, auditable way to pay your Stripe fees\n    \n    ](https://stripe.com/blog/how-we-built-stripe-credits-a-programmable-auditable-way-to-pay-your-stripe-fees)\n    \n-   [\n    \n    2026.4.09\n    \n    Selective Test Execution at Stripe: Fast CI for a 50M-line Ruby monorepo\n    \n    ](https://stripe.com/blog/selective-test-execution-at-stripe-fast-ci-for-a-50m-line-ruby-monorepo)\n    \n-   [\n    \n    2026.2.19\n    \n    Minions: Stripe’s one-shot, end-to-end coding agents—Part 2\n    \n    ](https://stripe.com/blog/minions-stripes-one-shot-end-to-end-coding-agents-part-2)\n    \n-   [\n    \n    2026.2.09\n    \n    Minions: Stripe’s one-shot, end-to-end coding agents\n    \n    ](https://stripe.com/blog/minions-stripes-one-shot-end-to-end-coding-agents)\n    \n-   [\n    \n    2025.9.16\n    \n    How we built it: Real-time analytics for Stripe Billing\n    \n    ](https://stripe.com/blog/how-we-built-it-real-time-analytics-for-stripe-billing)\n    \n-   [\n    \n    2025.7.10\n    \n    How we built it: Jurisdiction resolution for Stripe Tax\n    \n    ](https://stripe.com/blog/how-we-built-it-jurisdiction-resolution-for-stripe-tax)\n    \n-   [\n    \n    2024.6.06\n    \n    How Stripe’s document databases supported 99.999% uptime with zero-downtime data migrations\n    \n    ](https://stripe.com/blog/how-stripes-document-databases-supported-99.999-uptime-with-zero-downtime-data-migrations)\n    \n-   [\n    \n    2024.5.09\n    \n    Test clocks: How we made it easier to test Stripe Billing integrations\n    \n    ](https://stripe.com/blog/test-clocks-how-we-made-it-easier-to-test-stripe-billing-integrations)\n    \n-   [\n    \n    2024.4.15\n    \n    Shepherd: How Stripe adapted Chronon to scale ML feature development\n    \n    ](https://stripe.com/blog/shepherd-how-stripe-adapted-chronon-to-scale-ml-feature-development)\n    \n-   [\n    \n    2024.2.16\n    \n    Ledger: Stripe’s system for tracking and validating money movement\n    \n    ](https://stripe.com/blog/ledger-stripe-system-for-tracking-and-validating-money-movement)\n    \n-   [\n    \n    2023.3.29\n    \n    How we built it: Stripe Radar\n    \n    ](https://stripe.com/blog/how-we-built-it-stripe-radar)\n    \n-   [\n    \n    2022.9.13\n    \n    How Stripe builds interactive docs with Markdoc\n    \n    ](https://stripe.com/blog/markdoc)\n    \n-   [\n    \n    2022.5.20\n    \n    Migrating millions of lines of code to TypeScript\n    \n    ](https://stripe.com/blog/migrating-to-typescript)\n    \n-   [\n    \n    2022.5.04\n    \n    Fast builds, secure builds. Choose two\n    \n    ](https://stripe.com/blog/fast-secure-builds-choose-two)\n    \n-   [\n    \n    2022.3.28\n    \n    Sorbet: Stripe’s type checker for Ruby\n    \n    ](https://stripe.com/blog/sorbet-stripes-type-checker-for-ruby)\n    \n-   [\n    \n    2020.12.15\n    \n    Stripe’s payments APIs: The first 10 years\n    \n    ](https://stripe.com/blog/payment-api-design)\n    \n\n/Docs\n\nExplore our guides and examples to integrate Stripe.\n\n[Learn more](https://docs.stripe.com/)\n\n/Social\n\n[Youtube](https://www.youtube.com/stripedevelopers)[Twitter/X](https://x.com/stripedev)[Discord](https://discord.com/channels/841573134531821608/841573134531821612)\n\n/Resources\n\n[Docs](https://docs.stripe.com/)[Developer Meetups](https://www.meetup.com/pro/stripe/)\n\n© 2026 Stripe, Inc.\n\n[Privacy](https://stripe.com/privacy)[Legal](https://stripe.com/legal)[Stripe.com](https://stripe.com/)","storage":{"htmlKey":"stealpage/html/stripe.com/pg_ugqbt0vgqvwa/run_nygtxs_mq5e6.html.gz","markdownKey":"stealpage/md/stripe.com/pg_ugqbt0vgqvwa/run_nygtxs_mq5e6.md.gz"},"facets":{"page_id":"pg_ugqbt0vgqvwa","domain_id":"dom_9g_goov-wlby","root_domain":"stripe.com","locale":"en","format":"research","depth":1,"technicality":3,"promotional":4,"originality":5,"audience":"developer","funnel_stage":"awareness","intent":"informational","evidence":"anecdote","tone":"academic","has_code":false,"code_langs":[],"has_data":true,"has_tables":false,"has_images":false,"has_video":false,"has_faq":false,"external_links":41,"heading_count":1,"topics":["engineering","software development","payments"],"keywords":["Stripe","data plane","Knowledge AI Platform","graph search","state machines","stablecoins","API changes","Java","Ruby","test execution"],"entities":{},"takeaways":["The page showcases a series of technical blog posts from Stripe that detail the development of internal systems and tools.","Posts cover a range of topics including data infrastructure, AI platforms, and software engineering practices.","The content is primarily aimed at developers and engineers interested in learning about technical implementations at scale.","There is no direct promotion of Stripe's products, but the content is closely tied to the company's engineering work.","The page serves as a resource for developers looking to understand how a large-scale payment platform manages its technical challenges."],"summary":"The page provides a list of engineering-focused blog posts from Stripe that describe technical systems and processes used within the company.","ai_likelihood":"0","shelf_life":"dated","quality_score":"0.5065","fingerprint":"6bba1d2e0948982e0cf7f1da8b6e70cbdc805bf4bd87750977cecba24b2098ad","model":"qwen/qwen3-30b-a3b","classified_at":"2026-08-27T09:12:10.521Z","created_at":"2026-08-27T09:12:10.521Z","updated_at":"2026-08-27T09:12:10.521Z"},"assets":[{"kind":"image","src_url":"https://stripe.dev/dev_social.jpeg","r2_key":null,"alt":null,"caption":null,"width":null,"height":null,"is_hero":true,"zone":"main"}],"shots":[],"history":[{"id":"run_nygtxs_mq5e6","started_at":"2026-08-27T09:01:21.435Z","http_status":200,"fetcher":"direct","changed":false,"diff":null,"word_count":335}],"citedBy":[]}