41554 blogs · [ { "id": "01a087df-af45-731a-b653-da881017b211", "title": "The Case of the Crashing Checkout Flows: My Strangest Debugging Story", "url": "https://www.sheshbabu.com/posts/my-binary-search-debugging-story/", "published_at": "2024-08-18T07:54:34+00:00" }, { "id": "01a087df-af46-7125-8e37-023b50f0f40e", "title": "Swiss Cheese Model of Software Reliability", "url": "https://www.sheshbabu.com/posts/swiss-cheese-model-of-software-reliability/", "published_at": "2024-08-17T07:47:18+00:00" }, { "id": "01a087df-af46-7125-8e37-023b51c99997", "title": "Zero-Downtime Postgres Credentials Rotation with Node.js", "url": "https://www.sheshbabu.com/posts/implementing-zero-downtime-postgres-credentials-rotation-with-node-js/", "published_at": "2024-08-13T14:03:15+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5213974a", "title": "Implementing SAML SSO in Node.js with Microsoft Entra ID", "url": "https://www.sheshbabu.com/posts/implementing-saml-authentication-in-node-js/", "published_at": "2024-08-11T14:11:30+00:00" }, { "id": "01a087df-af46-7125-8e37-023b52e7e494", "title": "Refreshing OAuth Access Tokens using Axios Interceptors", "url": "https://www.sheshbabu.com/posts/refreshing-oauth-access-tokens-using-axios-interceptors/", "published_at": "2024-08-11T01:03:50+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5347fe3d", "title": "FastAPI without ORM: Testing with asyncpg", "url": "https://www.sheshbabu.com/posts/fastapi-without-orm-testing-with-asyncpg/", "published_at": "2024-08-10T02:04:59+00:00" }, { "id": "01a087df-af46-7125-8e37-023b538db9df", "title": "System Design for Entity Resolution", "url": "https://www.sheshbabu.com/posts/system-design-for-entity-resolution/", "published_at": "2024-08-08T11:13:13+00:00" }, { "id": "01a087df-af46-7125-8e37-023b53f2459a", "title": "Demystifying Postgres Schema Migrations: Building it from Scratch", "url": "https://www.sheshbabu.com/posts/demystifying-postgres-schema-migrations/", "published_at": "2024-08-07T13:24:45+00:00" }, { "id": "01a087df-af46-7125-8e37-023b546bc4bd", "title": "FastAPI without ORM: Getting started with asyncpg", "url": "https://www.sheshbabu.com/posts/fastapi-without-orm-getting-started-with-asyncpg/", "published_at": "2024-08-05T14:38:35+00:00" }, { "id": "01a087df-af46-7125-8e37-023b554cdc26", "title": "How Big Things Get Done", "url": "https://www.sheshbabu.com/posts/how-big-things-get-done/", "published_at": "2024-08-04T10:47:13+00:00" }, { "id": "01a087df-af46-7125-8e37-023b55695d2b", "title": "Graph Retrieval using Postgres Recursive CTEs", "url": "https://www.sheshbabu.com/posts/graph-retrieval-using-postgres-recursive-ctes/", "published_at": "2024-07-28T08:37:10+00:00" }, { "id": "01a087df-af46-7125-8e37-023b561f4db0", "title": "Remove PDF password protection using qpdf and AppleScript", "url": "https://www.sheshbabu.com/posts/remove-pdf-passwords-using-qpdf-and-applescript/", "published_at": "2024-07-21T09:13:30+00:00" }, { "id": "01a087df-af46-7125-8e37-023b567a465e", "title": "Killing long running queries in Postgres", "url": "https://www.sheshbabu.com/posts/killing-long-running-queries-in-postgres/", "published_at": "2024-07-20T09:32:04+00:00" }, { "id": "01a087df-af46-7125-8e37-023b56b8aff5", "title": "Implementing React-like Composition using Go's html/template", "url": "https://www.sheshbabu.com/posts/react-like-composition-using-go-html-template/", "published_at": "2024-05-22T22:13:31+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5778d82f", "title": "What Every Programmer Should Know About Load Testing", "url": "https://www.sheshbabu.com/posts/what-every-programmer-should-know-about-load-testing/", "published_at": "2024-03-24T06:13:54+00:00" }, { "id": "01a087df-af46-7125-8e37-023b582e60ca", "title": "Taurus: Writing JMeter Load Tests As Code", "url": "https://www.sheshbabu.com/posts/taurus-writing-jmeter-load-tests-as-code/", "published_at": "2024-03-23T00:11:01+00:00" }, { "id": "01a087df-af46-7125-8e37-023b58e890da", "title": "Analyzing Slow Python Code using cProfile", "url": "https://www.sheshbabu.com/posts/analyzing-slow-python-code-using-cprofile/", "published_at": "2024-03-22T10:49:00+00:00" }, { "id": "01a087df-af46-7125-8e37-023b59880777", "title": "Thoughts on the Future of Software Development", "url": "https://www.sheshbabu.com/posts/thoughts-on-the-future-of-software-development/", "published_at": "2024-03-18T09:57:18+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5a7fea13", "title": "System-wide text summarization using Ollama and AppleScript", "url": "https://www.sheshbabu.com/posts/system-wide-text-summarization-using-ollama-and-applescript/", "published_at": "2024-03-11T01:06:21+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5b569b63", "title": "Entity Resolution Challenges", "url": "https://www.sheshbabu.com/posts/entity-resolution-challenges/", "published_at": "2023-08-01T22:06:45+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5bb3913f", "title": "Alerting: Expectation vs Reality", "url": "https://www.sheshbabu.com/posts/alerting-expectation-vs-reality/", "published_at": "2023-07-22T05:23:10+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5c6b6503", "title": "Exploring Singapore’s OneMap API", "url": "https://www.sheshbabu.com/posts/exploring-singapore-onemap-api/", "published_at": "2023-06-29T08:07:54+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5ca5c15a", "title": "Structured JSON Logging using FastAPI", "url": "https://www.sheshbabu.com/posts/fastapi-structured-json-logging/", "published_at": "2023-06-24T07:25:26+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5d8c3e5a", "title": "Why use Azure OpenAI when you have OpenAI?", "url": "https://www.sheshbabu.com/posts/why-use-azure-openai-when-you-have-openai/", "published_at": "2023-06-21T17:03:26+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5e76e643", "title": "A Gentle Introduction to LLMs for Product Teams", "url": "https://www.sheshbabu.com/posts/gentle-introduction-to-llms/", "published_at": "2023-06-12T17:39:29+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5e8a467c", "title": "Detecting Clusters in Graphs using NetworkX", "url": "https://www.sheshbabu.com/posts/detecting-clusters-in-graphs-using-networkx/", "published_at": "2023-03-12T13:43:07+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5ef6d032", "title": "Generating Unique Pairs in Python", "url": "https://www.sheshbabu.com/posts/generating-unique-pairs-in-python/", "published_at": "2023-03-12T13:33:59+00:00" }, { "id": "01a087df-af46-7125-8e37-023b5f340ccd", "title": "Loading Amplitude Events Data into Pandas DataFrame", "url": "https://www.sheshbabu.com/posts/loading-amplitude-events-data-into-pandas-dataframe/", "published_at": "2023-03-12T13:20:01+00:00" }, { "id": "01a087df-af46-7125-8e37-023b602a3a7d", "title": "Make your backend more reliable using Nginx caching proxy", "url": "https://www.sheshbabu.com/posts/nginx-caching-proxy/", "published_at": "2022-07-10T04:01:04+00:00" }, { "id": "01a087df-af46-7125-8e37-023b607b7acb", "title": "Single Page Applications using Rust", "url": "https://www.sheshbabu.com/posts/rust-wasm-yew-single-page-application/", "published_at": "2020-08-11T03:30:00+00:00" }, { "id": "01a087df-af46-7125-8e37-023b616850f6", "title": "Beginner's guide to Error Handling in Rust", "url": "https://www.sheshbabu.com/posts/rust-error-handling/", "published_at": "2020-08-02T13:00:00+00:00" }, { "id": "01a087df-af46-7125-8e37-023b624ca883", "title": "Clear explanation of Rust’s module system", "url": "https://www.sheshbabu.com/posts/rust-module-system/", "published_at": "2020-07-19T02:38:14+00:00" }, { "id": "01a087df-af46-7125-8e37-023b631d7f6a", "title": "Rust for JavaScript Developers - Pattern Matching and Enums", "url": "https://www.sheshbabu.com/posts/rust-for-javascript-developers-pattern-matching-and-enums/", "published_at": "2020-07-12T05:48:03+00:00" }, { "id": "01a087df-af46-7125-8e37-023b640d8ef0", "title": "Rust for JavaScript Developers - Functions and Control Flow", "url": "https://www.sheshbabu.com/posts/rust-for-javascript-developers-functions-and-control-flow/", "published_at": "2020-07-05T13:18:00+00:00" }, { "id": "01a087df-af46-7125-8e37-023b64924b79", "title": "Rust for JavaScript Developers - Variables and Data Types", "url": "https://www.sheshbabu.com/posts/rust-for-javascript-developers-variables-and-data-types/", "published_at": "2020-07-02T14:39:59+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6540c8ce", "title": "Rust for JavaScript Developers - Tooling Ecosystem Overview", "url": "https://www.sheshbabu.com/posts/rust-for-javascript-developers-tooling-ecosystem-overview/", "published_at": "2020-06-28T13:35:17+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6580d83b", "title": "Automatic PageView Tracking using React Router", "url": "https://www.sheshbabu.com/posts/automatic-pageview-tracking-using-react-router/", "published_at": "2020-06-20T06:27:51+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6603edde", "title": "Publishing an npx command to npm", "url": "https://www.sheshbabu.com/posts/publishing-npx-command-to-npm/", "published_at": "2020-06-19T14:13:45+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6668a06b", "title": "Running Express over HTTPS in localhost", "url": "https://www.sheshbabu.com/posts/running-express-over-https-in-localhost/", "published_at": "2020-06-19T11:29:14+00:00" }, { "id": "01a087df-af46-7125-8e37-023b66cb15a7", "title": "Visual explanation of SAML authentication", "url": "https://www.sheshbabu.com/posts/visual-explanation-of-saml-authentication/", "published_at": "2020-06-18T23:31:25+00:00" }, { "id": "01a087df-af46-7125-8e37-023b67c44f28", "title": "Blocking usage of the any type in TypeScript codebases", "url": "https://www.sheshbabu.com/posts/blocking-usage-of-the-any-type-in-typescript-codebases/", "published_at": "2020-05-05T15:32:06+00:00" }, { "id": "01a087df-af46-7125-8e37-023b67dde233", "title": "How to prevent code reviews from slowing down your team", "url": "https://www.sheshbabu.com/posts/how-to-prevent-code-reviews-from-slowing-down-your-team/", "published_at": "2020-05-03T10:36:12+00:00" }, { "id": "01a087df-af46-7125-8e37-023b67f199d3", "title": "Ways to manage config in frontend and their tradeoffs", "url": "https://www.sheshbabu.com/posts/frontend-config-management/", "published_at": "2020-05-01T03:43:36+00:00" }, { "id": "01a087df-af46-7125-8e37-023b687251d2", "title": "Minimal Viable Search using Postgres", "url": "https://www.sheshbabu.com/posts/minimal-viable-search-using-postgres/", "published_at": "2019-12-01T11:40:19+00:00" }, { "id": "01a087df-af46-7125-8e37-023b68b49a40", "title": "Career advice for new developers", "url": "https://www.sheshbabu.com/posts/career-advice-for-new-developers/", "published_at": "2019-11-30T11:29:19+00:00" }, { "id": "01a087df-af46-7125-8e37-023b69151f21", "title": "Organizing HTTP requests using the API module pattern", "url": "https://www.sheshbabu.com/posts/organizing-http-requests-using-api-module-pattern/", "published_at": "2019-08-17T08:47:02+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6a107787", "title": "How we use Storybook for documentation and code reviews", "url": "https://www.sheshbabu.com/posts/how-we-use-storybook-for-documentation-and-code-reviews/", "published_at": "2018-11-14T04:03:54+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6a4627a8", "title": "RedMart’s experience with PWA", "url": "https://www.sheshbabu.com/posts/redmart-experience-with-pwa/", "published_at": "2018-10-25T04:39:35+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6aef985c", "title": "Packaging Node.js code into cross platform executables", "url": "https://www.sheshbabu.com/posts/packaging-node-js-code-into-cross-platform-executables/", "published_at": "2018-03-30T18:54:23+00:00" }, { "id": "01a087df-af46-7125-8e37-023b6baf433e", "title": "Tips for using ESLint in a legacy codebase", "url": "https://www.sheshbabu.com/posts/tips-for-using-eslint-in-a-legacy-codebase/", "published_at": "2018-02-24T18:28:07+00:00" }, { "id": "01a087df-af47-7195-bad2-66b38f4b0e49", "title": "Measuring response times of Express route handlers", "url": "https://www.sheshbabu.com/posts/measuring-response-times-of-express-route-handlers/", "published_at": "2018-01-27T10:57:03+00:00" }, { "id": "01a087df-af47-7195-bad2-66b38ff2017a", "title": "Speed up your code reviews using ESLint and Prettier", "url": "https://www.sheshbabu.com/posts/speed-up-your-code-reviews-using-eslint-and-prettier/", "published_at": "2017-09-07T12:00:00+00:00" }, { "id": "01a087df-af47-7195-bad2-66b390db0886", "title": "Disabling Bunyan in tests", "url": "https://www.sheshbabu.com/posts/disabling-bunyan-in-tests/", "published_at": "2017-07-25T14:03:33+00:00" }, { "id": "01a087df-af47-7195-bad2-66b3913d1d56", "title": "Unit testing Express route handlers", "url": "https://www.sheshbabu.com/posts/unit-testing-express-route-handlers/", "published_at": "2017-07-08T02:22:49+00:00" }, { "id": "01a087df-af47-7195-bad2-66b3917e9019", "title": "Working with Fetch api", "url": "https://www.sheshbabu.com/posts/working-with-fetch-api/", "published_at": "2016-09-25T10:20:00+00:00" }, { "id": "01a087df-af47-7195-bad2-66b3918053ec", "title": "Using Optimizely with React", "url": "https://www.sheshbabu.com/posts/using-optimizely-with-react/", "published_at": "2016-07-31T08:34:00+00:00" }, { "id": "01a087df-af47-7195-bad2-66b3925ec56f", "title": "Guidelines to choose a JavaScript library", "url": "https://www.sheshbabu.com/posts/guidelines-to-choose-a-javascript-library/", "published_at": "2016-06-12T05:38:45+00:00" }, { "id": "01a087df-af47-7195-bad2-66b3929c1f02", "title": "Writing maintainable tests using the data driven approach", "url": "https://www.sheshbabu.com/posts/writing-maintainable-tests-using-the-data-driven-approach/", "published_at": "2016-06-06T22:49:08+00:00" } ] posts Claim your blog
Back to sheshbabu.com
Blog · corpus.blog/blogs/sheshbabu.com/posts

sheshbabu.com

sheshbabu.com

2024

2023

2022

2020

2019

2018

2017

2016