41554 blogs · [ { "id": "01a087eb-0a2d-736e-acc7-e46b40d220d4", "title": "Distributive Conditional Types in TypeScript", "url": "https://tejasbubane.github.io/posts/2026-07-04-typescript-distributive-union-types/", "published_at": "2026-07-04T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b412a078f", "title": "Upcoming changes in Rails rate limiter", "url": "https://tejasbubane.github.io/posts/rails-rate-limit-upcoming-changes/", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b417e13ec", "title": "Implementing account-specific rate limits in Rails", "url": "https://tejasbubane.github.io/posts/rate-limit-rack-app-per-account/", "published_at": "2026-05-30T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4209af7c", "title": "Year in Books 2025", "url": "https://tejasbubane.github.io/books/year-in-books-2025/", "published_at": "2025-12-31T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b42b0b18b", "title": "India after Gandhi", "url": "https://tejasbubane.github.io/books/india-after-gandhi/", "published_at": "2025-12-29T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4378f909", "title": "Rails pluralization with translations", "url": "https://tejasbubane.github.io/posts/2025-12-04-rails-pluralize-translate/", "published_at": "2025-12-04T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b43b58cfd", "title": "Adding IP restriction to Rack app for specific accounts", "url": "https://tejasbubane.github.io/posts/ip-restrict-rack-app-per-account/", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b43e72ee5", "title": "Pattern matching on custom objects in Ruby", "url": "https://tejasbubane.github.io/posts/ruby-pattern-matching-custom-objects/", "published_at": "2025-03-27T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b444d5d6f", "title": "Using PostgreSQL database constraints", "url": "https://tejasbubane.github.io/posts/using-postgres-database-constraints-in-rails/", "published_at": "2025-03-25T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4501fca7", "title": "Arbitrary handling of mock arguments in RSpec", "url": "https://tejasbubane.github.io/posts/arbitrary-handling-of-mock-arguments-in-rspec/", "published_at": "2025-01-31T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4556eeed", "title": "Writing elegant custom matchers in RSpec", "url": "https://tejasbubane.github.io/posts/rspec-custom-matchers/", "published_at": "2025-01-03T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b45c62298", "title": "Caching optimizations", "url": "https://tejasbubane.github.io/posts/caching-optimizations/", "published_at": "2024-12-24T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4647cb25", "title": "Redis pipelines to the rescue", "url": "https://tejasbubane.github.io/posts/redis-pipelines-to-the-rescue/", "published_at": "2024-10-11T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b46fb6bd1", "title": "Spotting flaky tests", "url": "https://tejasbubane.github.io/posts/2022-11-08-spotting-flaky-tests/", "published_at": "2022-11-08T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b477d2757", "title": "Exception handling with Sidekiq", "url": "https://tejasbubane.github.io/posts/2022-05-29-sidekiq-exception-handling/", "published_at": "2022-05-29T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4815386e", "title": "PostgreSQL generated columns in Rails", "url": "https://tejasbubane.github.io/posts/2021-12-18-rails-7-postgres-generated-columns/", "published_at": "2021-12-18T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4825c483", "title": "Complete testing of sidekiq jobs", "url": "https://tejasbubane.github.io/posts/2021-10-23-complete-testing-sidekiq/", "published_at": "2021-10-23T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4895e27b", "title": "Currying Reducers", "url": "https://tejasbubane.github.io/posts/2021-02-22-currying-reducers/", "published_at": "2021-02-22T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b48e07672", "title": "Refactoring Filters", "url": "https://tejasbubane.github.io/posts/2021-01-17-refactoring-filters/", "published_at": "2021-01-17T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b49a85a75", "title": "Redis connection pool in Rails", "url": "https://tejasbubane.github.io/posts/2020-04-22-redis-connection-pool-in-rails/", "published_at": "2020-04-22T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b49b461e0", "title": "Unit testing rack middleware", "url": "https://tejasbubane.github.io/posts/2019-11-12-unit-testing-rack-middleware/", "published_at": "2019-11-12T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4a129661", "title": "Functor Composition", "url": "https://tejasbubane.github.io/posts/2019-10-02-functor-composition/", "published_at": "2019-10-02T00:00:00+00:00" }, { "id": "01a087eb-0a2d-736e-acc7-e46b4ae400fb", "title": "Serializers Everywhere", "url": "https://tejasbubane.github.io/posts/2019-01-21-serializers-everywhere/", "published_at": "2019-01-21T00:00:00+00:00" } ] posts Claim your blog
Back to Tejas' Blog
Blog · corpus.blog/blogs/tejasbubane.github.io/posts

Tejas' Blog

tejasbubane.github.io

2026

2025

2024

2022

2021

2020

2019