All blogs / Software / engineering practice
The Programmer's Paradox
theprogrammersparadox.blogspot.com
A blog about software development and programming.
- Posts
- 562 from 28 Jul 2007 to 29 Oct 2026
- Posting
- weekly (52 in the last year)
- Kind
- personal blog
- Feed
- http://feeds.feedburner.com/TheProgrammersParadox
2026 44
- Little Things
- Tactics vs Strategy
- Synchronization
- Preservation
- Bloat
- Webapps
- Oversimplication
- Ordering
- Yak Shaving
- Setbacks
- Flow Design
- Uncertaincy
- Properties
- Methodology
- Predictions
- Hedging
- Data Stitching
- Language Ideas
- The Craft of Programming
- Structureless
- Software Systems
- Round Holes
- Versioning
- Feedback
- Security
- Goodness
- Shortcuts and Makework
- Users
- Strange Loops
- The Quality Bars
- Outlines
- Cogtastic
- Interviews
- Functions
- Stress
- When the Bubble Bursts
- Data Collection
- Blockers
- Systems Thinking
- Reap What You Sow
- Dirty Little Secret
- This Week's Turbo Encabulator
- Against the Grain
- New Year
2025 44
- A Manifestation of my Understanding
- The Value of Data
- Expressive Power
- Software Failures
- Integrations
- Unknown unknowns
- Intent
- The Structure of Data
- Fishbowl
- Patience
- Experimentation
- The Value of Thought
- Nexus Point
- Codebase Organization
- Manifestations
- Sophistication
- Ordering
- Bad Engineering
- Static vs Dynamic
- Encapsulation vs Fragmentation, Again
- Determinism
- Anything Goes Style
- Assumptions
- Industrial Strength
- Building Things
- Brute Force Style
- House of Cards Style
- Intrinsic Complexity
- Habits
- Two Passes
- Computations
- The Easy Tradeoff
- Interface Consistency
- Reinventing the Wheel
- Herding Cats
- Development Automation
- Concurrency
- The Digital Realm
- Mastery
- Control
- Integrated Documentation
- Self Describing
- Complexity
- Data Collection
2024 51
- Datasource Precedents
- In Full
- The Right Thing
- Portability Layer
- Wobble
- Clarity of Expression
- The Value of Technology
- Full Speed
- The Beauty of Technology
- Programming
- Avoidance
- Time
- Complexity
- Editing Anxieties
- Ambiguities
- Value
- Learning
- Navigation
- Nailed It
- Coding Style
- Massively Parallel Computing
- Updating Software
- Expression
- Effective Management
- AI
- Guessable
- Outside
- Dirty Writes
- Data Modelling
- Identitynet
- Data Driven Programming
- Megafunctions
- Iterative Development
- Symmetry
- The Origin of Data
- Optimizations
- Scope
- Expression
- Over Complicated
- Mangled Complexity
- Software Development Decisions
- Ratcheting
- Coding
- Self-Inflicted Pain
- A Rose by Any Other Name
- Natural Decompositions
- Anti-patterns
- Context
- Buy vs Build
- Lessons Learned
- Time vs Risk
2023 52
- Identity
- Software Knowledge
- Fragmentation
- Solving Hard Problems
- Observable on Steriods
- Bottom Up
- The Power of Abstractions
- Time Ranges
- Special Cases
- Two Generals
- Impermanence
- Curiosity
- Feedback
- Trifecta
- Historic Artifacts with Data
- Modelling Complex Data
- The Groove
- Patching is not Programming
- Cache Invalidation Problem
- Development Workstations
- Complexity and Principles
- Usablity Tradeoff
- Unknowns
- Git Outta Here
- 10x Developers
- Amnesia
- Variants
- Control
- Take the Long way Home
- Fix the Real Problem
- Clever and Over-engineered
- Nothing beats Experience
- Documentation as Blueprints
- Engineering over Process
- Complexity Blowout
- Transactional Integrity
- Software Development Ethics
- Devops
- Waterloo Style
- Strong Coding Habits
- Connectors
- Agile, Stand-ups, TDD and Code Reviews
- Scaling Methodologies
- Refactoring
- Expectations
- Velimus Insitum Spectare Futurum
- Finding Friction
- Finding Intrinsic Complexity
- Difficult Choices
- Once
- Software Evolution
- Dependencies
2022 37
- Et cetera
- Split Level
- Determinism
- Definitions
- Problem and Solution Spaces
- Orientation
- Software Development Power Tools
- Identity
- Lost
- Informality
- Follow Suit
- Knowable
- Bugs
- Naming
- Operational Issues
- Data Engineering
- Dynamic Systems
- Phone vs Cable
- Helpers or Encapsulation
- Reinvention
- Software Factories
- Would you like Fries with that?
- End-points and Computations
- The Code
- Architecture
- Basic Rules of Coding
- Twisted
- Encapsulation vs Fragmentation
- Agility
- Clarity
- Vertical and Horizontal
- Functions
- Paradigms, Patterns and Idioms
- Piecewise Construction
- Principals of Software Development
- Good vs. Bad
- Readability
2021 26
- Upside Down
- Non-destructive Refactoring
- It’s Slow, We Should Rewrite it
- Self-describing Names
- Idempotent
- Time Consuming
- Priorities
- Managing
- Friction
- Data Flow
- What Should Have Happened ...
- Irrational Mappings
- System Inventory
- Redundancies
- Quality Categories
- Knowing How Things Work
- Gyrations
- Multi-tasking
- Theory and Practice
- Plumbing
- Newbie Mistakes
- Machinery
- Default Requirements
- Analysis
- Structuring Code
- Quality
2020 36
- Bugs and Weaknesses
- Enhancements
- Habits
- Keep Your Eye on the Ball
- Software Development Workflow
- Programming
- The Good, the Bad, and the Ugly
- Laws of Software Development
- Debugging
- Defensive Coding: Minimal Code
- Defensive Coding: KISS
- Integrity and Professionalism
- Developer Management
- Duality
- Puzzles
- Defensive Coding: Names and Order
- Defensive Coding: Locality
- Normalization Revisited
- Defensive Coding: Direction
- Defensive Coding: Cleanup
- Opaque Boxes
- Innovation
- Defensive Coding
- Comments...
- Naturally Encapsulated Coding
- Common Questions
- Disorganization
- Basic Expectations
- Development and Operations
- Bullet Specs
- Universal Truth
- Organizing Complexity
- Testing for Oversimplification
- Globals
- How to Shoot Yourself in The Foot
- Artificial Complexity
2019 7
2018 2
2017 13
2016 7
2015 22
- Routine Software
- Requirements and Specifications
- Containers, Collections and Null
- Software Engineering
- Organization
- Abstraction
- Data Modelling
- Just Managing
- Digital Discussions
- Intelligence
- Privacy
- Sweatshops
- Encapsulation
- Get Serious
- Flashlights
- Special Case Considered Harmful
- Shades of Grey
- Types of Data
- The Data
- Static vs. Dynamic
- Scale and Organization
- Reactive vs. Proactive
2014 23
- Thinking About What You Don't Know
- Definitions
- Bad Process
- Error Handling
- The Necessity of Consistency
- The Depth of Knowledge
- Estimation
- Tuesday
- Mathematics and Software Development
- Software Development
- Technology
- Recycling
- Requirements
- Predictions
- Architecture
- What and How
- Collective Protection
- Unwinding Complexity
- Levels of Code
- Principles
- Rights of the Modern Age
- Controlling Complexity
- The Quality of Code
2013 12
2012 26
- State of the New Machines
- Theory and Practice
- Best Practices
- Work Smarter...Not Harder
- Setting Up Development
- Programming Style
- Knowledge Bases
- Serializations
- Cooperation vs. Competition
- Smart
- Architecture
- Five Years
- What is Complexity?
- Globals and State
- Micromanaging Software Development
- Another Stinkin’ Analogy
- How do you design software?
- New Layout
- Bag O'Tricks
- Structured Questioning
- Organization
- Lost in Thought
- Working Environments
- Complexity and Decomposition
- Software Clearing Houses
- The First Principle of Software
2011 34
- An Informal Ramble
- The Engineering of Software
- Getting to the Truth
- Problems and Solutions
- The Big Idea
- Thinking About It
- Problem Solving
- Layering, Architecture and Convergence
- Contradictions
- Know your Limits
- Styles, Standards and Conventions
- Prototype or System
- The Customer is Always Right
- Roles and Responsibilities
- Following the Path
- The Boundary Between
- Focus
- Deep Refactoring II
- Deep Refactoring
- Software Virgin
- Risk and Inexperience
- Acting on My Behalf
- Getting Things Done
- Resilience
- Industrial Strength Requirements
- How Many Programmers are there?
- Economy of Expression
- How to Waste Your Time While Programming
- Greed and the Ownership of Data
- Patents and Routine Engineering
- Failure
- One Eye Open
- Big Data from Small Source Code
- Top-down and Bottom-up
2010 30
- Facts, Opinion and Context
- The Effects of Computers
- Random Acts of Madness
- The Myth of Code Reuse
- Reducing Test Effort
- Code Validation
- Software that Annoys Me
- Rock Hopping
- Construction Metaphors
- Micro vs. Macro
- Intellectual Leverage
- Design by Committee
- Syntactic Noise
- Paragraphs and Functions
- Feedback
- Truth and its Consequences
- The Different Phases of Development
- The Personality Effect
- Why
- Insane Complexity
- Data Vaults
- Development Ideas
- Future Considerations
- The Edit Loop
- The Value Proposition
- 97 Things Every Programmer Should Know
- Data, Data, Data
- Big and small experiences
- Privacy Concerns
- The Generation of Complexity
2009 30
- Quickie: Let it be Free
- Transformers
- Spaghetti Code
- Prime Perspectives
- Programming Structure
- Fundamental Laws
- The Value of Code
- Not Interested
- Bxml
- Tightly Bound
- Halting a Problem
- Dynamic Ramblings
- Bugs and Misfortune
- In Our Dependence
- Programming Knowledge
- Programming is Simple!
- Chinese Plumbers
- Architectural Ramblings
- Driven by Work
- The End of Coding as We Know It
- My PC Crashed (Again)
- About, Next and Garbage
- Faux Stylin'
- In Framing Work
- 97 Things Every Software Architect Should Know
- Building in Quality
- Maneuverability and Sales
- In Expression
- Good Thing Going
- Digging into Data
2008 37
- My Stack Overfloweth
- The Best of The Programmer's Paradox
- The Lines of Progress
- Code Normal Forms
- Revisiting the Structure of Elegance
- Less Than Best Practices
- The Structure of Elegance
- The Necessity of Determinism
- 7 Fabulous Ways to Great Programming
- A Dependency Too Far
- Some Lessons from Experience
- 97 Things -- The Strength of Communication
- Social Disorder Revisited
- Social Disorder
- Pattern for Pattern
- The Art of Our Understanding
- Meta Blogging Madness or Mania
- Resources for Software Development
- Readability
- Structuring Noun & Verb Data
- The Essence of Software
- Jurassic Office Park
- Hard Code'n
- Software Blueprints
- Creatively Speaking
- The Essence of Analysis
- Controlling Development Chaos
- Testing for Battleships
- The Science of Information
- In Object-Orientation
- Testing Perspectives
- Fundamental Coding Issues
- The Power of Expression
- The Age of Clarity
- Essential Development Problems
- The Construction of Primitives
- Abstraction and Encapsulation
2007 29
- A Silly Little Storm
- The Nature of Simple
- Fixing your Development Environment
- Pedantically Speaking
- From Our Inner Depths
- Mind the Gap
- Acts of Madness
- Is Open Source hurting Consulting?
- The Art of Encapsulation
- Repeated Expressions
- Goto The Next Goto
- First Principles and Beyond
- Wasted my Time
- Lost in Processing
- Architectural Blueprints
- Turbulent Waters
- Paddling Upstream
- Patterns of Misdirection
- Underlying Issues
- 4 Easy Ways to Design Better Software
- Is Open Source hurting Computer Science?
- Few Technological Conveniences
- Driving Design
- In the Still of the Night
- Return to the Dreaded M...
- With Cat-like Dignity and Grace...
- As Written
- Two Great Problems
- Altered States