56,966 blogs · [ { "id": "01a087e3-2cad-72b9-b9b3-596e5e2386a6", "title": "Using Subagents to Improve Claude Code Results: A Step-By-Step Guide", "url": "https://software.rajivprab.com/2026/07/13/using-subagents-to-improve-claude-code/", "published_at": "2026-07-13T20:30:44+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e5f1c70c2", "title": "Tech debt can’t be solved as a roadmap item. It needs to be part of your daily routine", "url": "https://software.rajivprab.com/2025/05/10/tech-debt-cant-be-solved-as-a-roadmap-item/", "published_at": "2025-05-10T19:31:50+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e5f77cf9d", "title": "Moneyball for Software Teams – An Imperfect Heuristic for Quantifying Dev Performance", "url": "https://software.rajivprab.com/2023/07/01/moneyball-for-software-teams/", "published_at": "2023-07-01T20:24:54+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e5f799413", "title": "Product-Engineering Collaboration – Getting Past Waterfall", "url": "https://software.rajivprab.com/2022/07/24/product-engineering-collaboration-getting-past-waterfall/", "published_at": "2022-07-24T20:27:26+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e600b1b02", "title": "18 Years A Transient – My Journey Through the American Immigration System as a Computer Engineer", "url": "https://software.rajivprab.com/2022/05/10/18-years-a-transient/", "published_at": "2022-05-10T10:53:50+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e603984f2", "title": "Our Engineering Principles and Best Practices", "url": "https://software.rajivprab.com/2021/12/26/our-engineering-principles-and-best-practices/", "published_at": "2021-12-26T14:52:10+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e609342f2", "title": "My Path to Financial Independence as a Software Engineer", "url": "https://software.rajivprab.com/2021/12/26/my-path-to-financial-independence-as-a-software-engineer/", "published_at": "2021-12-26T01:22:49+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e615062b0", "title": "The Law of Net Design Costs", "url": "https://software.rajivprab.com/2021/07/11/the-law-of-net-design-costs/", "published_at": "2021-07-11T12:09:16+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e616d4192", "title": "Experiences working with an Outsourced Dev Shop", "url": "https://software.rajivprab.com/2021/04/26/experiences-working-with-an-outsourced-dev-shop/", "published_at": "2021-04-26T12:38:04+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e626a4fe8", "title": "Mutation Driven Testing – When TDD Just Isn’t Good Enough", "url": "https://software.rajivprab.com/2021/02/04/mutation-driven-testing-when-tdd-just-isnt-good-enough/", "published_at": "2021-02-04T12:47:04+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e6338aab8", "title": "Why Is There So Much Crap Software In The World", "url": "https://software.rajivprab.com/2020/12/18/why-is-there-so-much-crap-software-in-the-world/", "published_at": "2020-12-18T13:16:45+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e639dd9cd", "title": "If Founders Treated Their Investors The Same Way They Treated Their Employees", "url": "https://software.rajivprab.com/2020/08/18/if-founders-treated-their-investors-the-same-way-they-treated-their-employees/", "published_at": "2020-08-18T13:19:49+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e6483165b", "title": "Preventing Software Rot", "url": "https://software.rajivprab.com/2020/04/25/preventing-software-rot/", "published_at": "2020-04-25T13:27:59+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e64da6ffa", "title": "Bayes vs Frequentists – An Empirical Test In Code", "url": "https://software.rajivprab.com/2019/12/29/bayes-vs-frequentists-an-empirical-test-in-code/", "published_at": "2019-12-29T00:05:56+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e65135f69", "title": "When Feature Flags Do And Don’t Make Sense", "url": "https://software.rajivprab.com/2019/12/19/when-feature-flags-do-and-dont-make-sense/", "published_at": "2019-12-19T02:00:00+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e654764a2", "title": "The Birth of Legacy Software – How Change Aversion Feeds On Itself", "url": "https://software.rajivprab.com/2019/11/25/the-birth-of-legacy-software-how-change-aversion-feeds-on-itself/", "published_at": "2019-11-25T19:40:00+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e6638089b", "title": "Abstractions Are In The Eye Of The Beholder", "url": "https://software.rajivprab.com/2019/08/29/abstractions-are-in-the-eye-of-the-beholder/", "published_at": "2019-08-29T01:25:41+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e671692ce", "title": "Nuances of Overloading and Overriding in Java", "url": "https://software.rajivprab.com/2019/08/14/nuances-of-overloading-and-overriding-in-java/", "published_at": "2019-08-14T01:07:24+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e67bb8c71", "title": "Alert Fast", "url": "https://software.rajivprab.com/2019/08/04/alert-fast/", "published_at": "2019-08-04T11:12:56+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e67e0cc7b", "title": "Hiring is Broken And Yours Is Too", "url": "https://software.rajivprab.com/2019/07/27/hiring-is-broken-and-yours-is-too/", "published_at": "2019-07-27T23:13:24+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e68430d09", "title": "SSH Considered Harmful – Why You Should Be Using Persistent Sessions", "url": "https://software.rajivprab.com/2019/07/14/ssh-considered-harmful/", "published_at": "2019-07-14T14:09:09+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e6855b3d8", "title": "Cracking the Senior Software Interview", "url": "https://software.rajivprab.com/2019/06/02/cracking-the-senior-software-interview/", "published_at": "2019-06-02T21:45:44+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e68bb90ac", "title": "Rethinking Software Testing: Perspectives from the world of Hardware", "url": "https://software.rajivprab.com/2019/04/28/rethinking-software-testing-perspectives-from-the-world-of-hardware/", "published_at": "2019-04-28T21:47:47+00:00" }, { "id": "01a087e3-2cad-72b9-b9b3-596e695a8c39", "title": "An Alternative to Dependency Injection Frameworks", "url": "https://software.rajivprab.com/2018/11/06/an-alternative-to-dependency-injection-frameworks/", "published_at": "2018-11-06T19:49:16+00:00" }, { "id": "01a087e3-2cae-70d7-b84a-ae8d9c6b4074", "title": "Myths Programmers Believe about CPU Caches", "url": "https://software.rajivprab.com/2018/04/29/myths-programmers-believe-about-cpu-caches/", "published_at": "2018-04-29T20:21:00+00:00" }, { "id": "01a087e3-2cae-70d7-b84a-ae8d9d3d7320", "title": "Don’t be an Evolutionary Programmer", "url": "https://software.rajivprab.com/2018/04/29/dont-be-an-evolutionary-programmer/", "published_at": "2018-04-29T19:40:25+00:00" }, { "id": "01a087e3-2cae-70d7-b84a-ae8d9e1c31f4", "title": "Building a WebApp from A-Z: The Caucus Tech Stack", "url": "https://software.rajivprab.com/2018/04/29/caucus-tech-stack/", "published_at": "2018-04-29T18:46:21+00:00" }, { "id": "01a087e3-2cae-70d7-b84a-ae8d9e98bce4", "title": "From Hello-World to Web-Launch in 2 Years", "url": "https://software.rajivprab.com/2018/04/29/from-hello-world-to-web-launch-in-2-years/", "published_at": "2018-04-29T15:29:06+00:00" } ] posts Claim your blog
Back to Software the Hard way – Thoughts on Software Development
Blog · corpus.blog/blogs/software.rajivprab.com/posts

Software the Hard way – Thoughts on Software Development

software.rajivprab.com

2026

2025

2023

2022

2021

2020

2019

2018