All blogs / Software / engineering practice
Philosophical Hacker
Recent content on Philosophical Hacker
Software / engineering practiceAI / MLMobile / iOS / Android
- Posts
- 158 from 22 Apr 2014 to 26 Apr 2026
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://www.philosophicalhacker.com/index.xml
2026 1
2025 4
2024 13
- Value-based pricing can be a trap for early startups
- Reading Sqlite Schema Tables the Hard Way
- Which developers care most about security?
- We Need Another Code Copilot
- On OpenAI's supposed "scientific certainty" that GPT-5 will be better than GPT-4
- The UIs ChatGpt Wont Replace – Philosophical Hacker
- How AI Startups Can Beat Incumbents – Philosophical Hacker
- Under Appreciated Benefits of Selling to Startups – Philosophical Hacker
- What Your MVP Says About Your Market – Philosophical Hacker
- Look for billion dollar mistakes – Philosophical Hacker
- Dont Get Into the UX Business – Philosophical Hacker
- Internal tools often make bad startup ideas – Philosophical Hacker
- Conflicting employee vs. business incentives slow B2B SaaS growth rates – Philosophical Hacker
2023 5
- Embeddings are cooler than ChatGPT – Philosophical Hacker
- Panel Discussion: Exploring the Future of Machine Learning and AI – Philosophical Hacker
- Hacking our Way to ML-first Jupyter Notebooks – Philosophical Hacker
- The Future of Machine Learning and AI: A visionary panel discussion – Philosophical Hacker
- For Data Notebooks, Functions Arent Enough (and what to do about it) – Philosophical Hacker
2022 4
2021 8
- Optimizing Postgres Queries at Scale – Philosophical Hacker
- How Postgres Audit Tables Saved Us From Taking Down Production – Philosophical Hacker
- Lessons from Deploying 1 million Postgres Indexes – Philosophical Hacker
- Working Around a Case Where the Postgres Planner Is "Not Very Smart" – Philosophical Hacker
- How and When to Control for Confounders During Product Usage Analyses – Philosophical Hacker
- Maybe you should build a faster horse – Philosophical Hacker
- Building Better Code Review at Heap – Philosophical Hacker
- Exposing Imposter User Stories – Philosophical Hacker
2020 7
- When should we create abstractions instead of duplication? – Philosophical Hacker
- Programming and Forecasting – Philosophical Hacker
- Why Mobile IDEs Are Bad – Philosophical Hacker
- An Introduction to Gradient Descent – Philosophical Hacker
- Should we refactor files we're working on? – Philosophical Hacker
- Why and How we Should Calculate Expected Utility of Refactorings – Philosophical Hacker
- My Mid-Career Job-Hunt: A Data Point for Job-Seeking Devs – Philosophical Hacker
2019 14
- Dagger 2, 2 Years Later – Philosophical Hacker
- Maybe Don't Inject That – Philosophical Hacker
- Maybe Don't Write That Test – Philosophical Hacker
- An Intro to Gradient Descent for Kotlin Programmers – Philosophical Hacker
- Dagger 2, 2 Years Later – Philosophical Hacker
- Maybe we Should Stop Creating Inscrutable CLIs – Philosophical Hacker
- Some Tips for Delivering an Effective Roadmap Presentation – Philosophical Hacker
- How to Automate Common Jira Tasks with Go Jira Custom Commands – Philosophical Hacker
- Some thoughts on the moral implications of building habit-forming products – Philosophical Hacker
- iPhone Q1 Revenue Forecast – Philosophical Hacker
- The Cassandra Project: Towards Better Product Management via Better Forecasting – Philosophical Hacker
- Hilarious Heresy: A Review of Jessica Powell’s "The Big Disruption" – Philosophical Hacker
- Some problems with the impossibility of achieving OKRs – Philosophical Hacker
- How The Lean Principle Became Profound – Philosophical Hacker
2018 12
- How Startups Can Do Better Cohort Analyses – Philosophical Hacker
- Meditation One Year Later – Philosophical Hacker
- How Passion for Programming Can Make us Worse at our Jobs – Philosophical Hacker
- Business and the Cartesian Demon: How not to Study Business – Philosophical Hacker
- Cigarettes and Texts: Self-knowledge, Self-control, and Meditation – Philosophical Hacker
- Some thoughts on how to teach programming – Philosophical Hacker
- Keeping up with DI and Dagger – Philosophical Hacker
- Maybe We Should Go Easy on Uncle Bob – Philosophical Hacker
- Mobile Down, Smart Speakers Up: 2 Notable Trends from this Year's Internet Trends Report – Philosophical Hacker
- Patterns Principles and Tools for Testing Your React (Native) Apps – Philosophical Hacker
- The so-called 'RESTful' web in 2018 and beyond – Philosophical Hacker
- From Panic Attacks to Yoga Mats: Startups, Leadership, and my first 1000 minutes Meditating – Philosophical Hacker
2017 25
- Ya Better Recognize – Philosophical Hacker
- Hacker vs. Hustler: Reflecting on One Year at UniKey – Philosophical Hacker
- React Native at an IoT Startup – Philosophical Hacker
- An Introduction to RxJava – Philosophical Hacker
- If Android Tests Could Talk – Philosophical Hacker
- How to Abuse Kotlin Extension Functions – Philosophical Hacker
- Not Needing Dagger is a Code Smell (Pt. 1) – Philosophical Hacker
- Setting up a Jenkins Pipeline for Android Testing – Philosophical Hacker
- Android Testing Calisthenics: Domain Objects – Philosophical Hacker
- Test Driving away Coupling in Activities – Philosophical Hacker
- Architectural Insights from Test Driven Android Development – Philosophical Hacker
- Reactive Extensions for Android App Development – Philosophical Hacker
- Why Cryptography? – Philosophical Hacker
- Why Im Skeptical about Kotlin Coroutines for Android Development – Philosophical Hacker
- What Unit Tests are Trying to Tell us About Activities Pt 2 – Philosophical Hacker
- Some Resources for Learning how to Test Android Apps – Philosophical Hacker
- What Unit Tests are Trying to Tell us about Activities: Pt. 1 – Philosophical Hacker
- Towards Godless Android Development: How and Why I Kill God Objects – Philosophical Hacker
- Why Android Testing is so Hard: Historical Edition – Philosophical Hacker
- Why I Avoid Singletons for Android Data Loading – Philosophical Hacker
- Espresso Test Addiction: An Anti-pattern – Philosophical Hacker
- Exploiting Android-Specific Seams for Testing and Flexibility – Philosophical Hacker
- TDD > The Principle of Single Responsibility – Philosophical Hacker
- Why I Don't use Robolectric – Philosophical Hacker
- What Should we Unit Test? – Philosophical Hacker
2016 31
- How we Misuse Mocks for Android Tests – Philosophical Hacker
- Build Variants and Link Seams – Philosophical Hacker
- Object Seams and MVP for Testability – Philosophical Hacker
- What makes Android Apps Testable? – Philosophical Hacker
- Writing Testable Android Apps – Philosophical Hacker
- Why we Should Probably Write More Tests for Our Android Apps – Philosophical Hacker
- Using Git Submodules Effectively – Philosophical Hacker
- 3 Ways of 'Getting to Green' – Philosophical Hacker
- The goal of refactoring During TDD – Philosophical Hacker
- TDD and Startups – Philosophical Hacker
- Capital Intensive MVPs – Philosophical Hacker
- On Selling your Soul: Notes on Gregg Pollack's Founder's Talk – Philosophical Hacker
- Unit Testable RecyclerViews – Philosophical Hacker
- RxLoader: Lightweight, Boilerplate-Free Data loading with Loaders and RxJava – Philosophical Hacker
- An Espresso Test Recorder Deep Dive – Philosophical Hacker
- Why don't we have a unit test recorder? – Philosophical Hacker
- Vice: A Regression Test Generation Library – Philosophical Hacker
- How to Safely move Logic out of Activities – Philosophical Hacker
- Why we Should Stop Putting Logic in Activities – Philosophical Hacker
- A New way of Learning (Android Development) – Philosophical Hacker
- Testing Strategies with a React/Redux Architecture – Philosophical Hacker
- How React-and-Redux-like Architectures for Android can make Testing Easier – Philosophical Hacker
- PSA: Dont Use Espresso Idling Resources like Google does – Philosophical Hacker
- Process vs. Procedure Recursion – Philosophical Hacker
- Abstraction, Scope, and Bound Variables – Philosophical Hacker
- Sicp 1.1.1-1.1.7 – Philosophical Hacker
- Testing Package Implementation from 'the Outside' – Philosophical Hacker
- Table-driven tests with Gomock – Philosophical Hacker
- Integration Tests in Go – Philosophical Hacker
- Getting started with Gomock – Philosophical Hacker
- Should we use mocking libraries for go testing? – Philosophical Hacker
2015 27
- Making a TDD-based HackerNews client for Android – Philosophical Hacker
- Why Having Global Static References to Application Contexts is Probably not the Best Idea – Philosophical Hacker
- 6 Things I wish I Knew before I Wrote my first Android App – Philosophical Hacker
- My Response to Hannes Dorfmann on "the Circular Dependency Problem" – Philosophical Hacker
- MVPR: A Flexible, Testable Architecture for Android (Pt. 1) – Philosophical Hacker
- I'm taking a brief hiatus from blogging here... – Philosophical Hacker
- Taylor Swift, Photographers, and "working for nothing" – Philosophical Hacker
- Introduction to RxJava for Android (Pt. 2) – Philosophical Hacker
- Introduction to RxJava for Android: The Talk – Philosophical Hacker
- An Introduction to RxJava for Android (Pt. 1) – Philosophical Hacker
- Developer Golf – Philosophical Hacker
- Unit Testing Dynamically Constructed Views – Philosophical Hacker
- Towards A Unit Testable Fork of Google's IOSched App – Philosophical Hacker
- An Introduction to Unit Testing on Android – Philosophical Hacker
- What I've Learned From Trying to Make An Android App Unit Testable – Philosophical Hacker
- Android Unit Testing Guides – Philosophical Hacker
- How to Make Our Android Apps Unit Testable (Pt. 2) – Philosophical Hacker
- How to Make Our Android Apps Unit Testable (Pt. 1) – Philosophical Hacker
- Why Android Unit Testing Is So Hard (Pt. 2) – Philosophical Hacker
- Why Android Unit Testing is so Hard (Pt 1) – Philosophical Hacker
- Is Mark Zuckerberg a Douche-bag? – Philosophical Hacker
- Against Android Unit Tests – Philosophical Hacker
- Don't call it "MVP" – Philosophical Hacker
- How to Keep your RxJava Subscribers from Leaking – Philosophical Hacker
- Why Pirating is Probably Wrong (.java) – Philosophical Hacker
- Why Ayn Rand's Psychology is Probably Wrong (or trivial) – Philosophical Hacker
- Build Apps Smarter With Archiva and Gradle – Philosophical Hacker
2014 7
- An Alternative Multiproject Setup for Android Studio – Philosophical Hacker
- A response to Your Comments on "Why Paul Graham is (sort of) wrong about philosophy" – Philosophical Hacker
- Why Paul Graham is (sort of) Wrong About Philosophy – Philosophical Hacker
- How to Break into a Mobile Dev Career in 10 months or less – Philosophical Hacker
- Why I'll Probably Try to Manipulate You – Philosophical Hacker
- Should the Idea Person get Extra Equity? – Philosophical Hacker
- Why I'm Glad my Dream Job Didn't work out – Philosophical Hacker