The Curious Engineer

All blogs / C++

John Farrier

johnfarrier.com

Field notes from a software engineer on C++, systems, and engineering culture.

C++Engineering management / careersAI / MLPerformance / optimizationEmbedded / microcontrollers

Posts
93 from 16 Oct 2023 to 28 Oct 2026
Posting
weekly (24 in the last year)
Kind
personal blog
Feed
https://johnfarrier.com/rss.xml

2026 17

  1. Vibe Coding Is Not a Software Engineering Methodology
  2. Email Updates Are Back, Plus What You Missed
  3. Best AI for Senior C++ Developers in 2026
  4. Code Is Cheap. Accountability Is Not.
  5. I Performed AI-assisted Website Migration. The Engineering Still Mattered.
  6. C++26 Memory Safety Is the First Serious Answer to the Rewrite Fantasy
  7. Engineering Manager Span Of Control In The Age Of AI
  8. Ohio Data Centers Need Standards, Not a Place in the Constitution
  9. Evidence-First Delivery: Stop Reviewing Diffs. Start Reviewing Evidence.
  10. Vibe Engineering: We Are All Vibe Coders Now
  11. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 10/10)
  12. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 9/10)
  13. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 8/10)
  14. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 7/10)
  15. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 6/10)
  16. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 5/10)
  17. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 4/10)

2025 21

  1. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 3/10)
  2. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 2/10)
  3. Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 1/10)
  4. A Lesson in Managing Opportunity Costs
  5. AI Coding Shootout: Claude or ChatGPT for Coding Assistance?
  6. Build vs. Integrate: The Trades (and Biases) We Ignore
  7. 60 Second Lesson: C++ Token Pasting Metaprogramming
  8. Why Better Project Metadata Makes Humans and LLMs Unstoppable
  9. The Generalist Engineer: A Software Engineer's Perspective
  10. The Hidden Price of Non-Standard Dev Tools
  11. CMake Optimization: Boost Build Speed with These Expert Tips
  12. The CAP Theorem: Unlocking the Secrets of Distributed Systems
  13. Update: Conditional Moves vs. Branches - What Compilers Really Do
  14. Branch Prediction: The Definitive Guide for High-Performance C++
  15. C++ Performance Checklist for Low-Latency Systems — John Farrier
  16. 7 Interesting (and Powerful) Uses for C++ Iterators — John Farrier
  17. The Customer Engagement Challenge: How Junior Engineers Commonly Fail — John Farrier
  18. High-Performing Developers Have One Secret: They Ask for Help — John Farrier
  19. ZeroMQ's REQ/REP Pattern Magic: Lightning-Fast C++ & Python Messaging — John Farrier
  20. The Definitive Guide to the C++ final Keyword — John Farrier
  21. The Hidden Killer of Programmer Productivity — John Farrier

2024 36

  1. 25 Years of Coding Wisdom in 30 Seconds — John Farrier
  2. Standardizing the Handling of Non-Source Files in CMake Projects: The Config Target — John Farrier
  3. 12 Ways C++ Developers Increase Cyber Attack Vulnerabilities and How to Prevent Them — John Farrier
  4. Exploring C++ std::span - Part 5: Performance and Practicality — John Farrier
  5. Const-Correctness and Type Safety with C++'s std::span
  6. Exploring C++ std::span - Part 3: Subviews and Slices — John Farrier
  7. Exploring C++ std::span - Part 2: Accessing Elements and Iterating — John Farrier
  8. Exploring C++ std::span - Part 1: An Introduction To the Non-Owning View — John Farrier
  9. The Humble and Surprising C++ Semicolon; Origins, Use, and Art — John Farrier
  10. Powerful Tips and Techniques for std::mutex in C++ — John Farrier
  11. OpenAI Structured Outputs: Transforming Data Interpretation — John Farrier
  12. The Role of Technical Management and Mentorship in Your Career — John Farrier
  13. Kolmogorov Complexity: Practical Examples for Simplifying Code — John Farrier
  14. A Guide to Building Better Blog Posts with AI — John Farrier
  15. In-Source vs. Out-of-Source Builds — John Farrier
  16. The Definitive Guide to std::expected in C++ — John Farrier
  17. C++ Error Handling Strategies - Benchmarks and Performance — John Farrier
  18. Agile Failure - What Drives "268% Higher Failure Rates?" — John Farrier
  19. Breaking Free from Zero-Sum Thinking — John Farrier
  20. Custom Allocators in C++: High Performance Memory Management — John Farrier
  21. Why Mastering std::vector Is Essential for C++ Developers — John Farrier
  22. Harnessing Data-Driven Decision-Making in Software Development — John Farrier
  23. Generative AI Acceleration in the Air Force — John Farrier
  24. Leveraging the Power of Transparent Comparators in C++ — John Farrier
  25. Looking for Pointers: The C++ Memory Safety Debate — John Farrier
  26. An Inescapable Trap: Everyone Can Be Socially Engineered — John Farrier
  27. Projects vs. Products: Perspectives on DoD Software Execution — John Farrier
  28. Data Structures and Algorithms with the C++ STL
  29. The Service Locator Pattern: A Robust C++ Implementation — John Farrier
  30. Build One to Throw Away: Embracing Iteration — John Farrier
  31. The "No Silver Bullet" Principle in Modern Software Development — John Farrier
  32. The Decorator Pattern: From Basic to Advanced Concepts in C++ — John Farrier
  33. The Second-System Effect
  34. IEEE Floating Point for Engineering Mathematics
  35. Navigating the Man-Month Myth
  36. The Impact of FedRAMP Equivalency on Defense Contractors — John Farrier

2023 19

  1. Winning at Game Theory with "The Price is Right" — John Farrier
  2. Dancing on a Knife Edge: Goodhart's Law in Action — John Farrier
  3. Unlocking the Power of std::hash in C++ Programming — John Farrier
  4. Navigating the Pitfalls of 'Hero Culture' in Team Management — John Farrier
  5. Breaking Down C++20 Callable Concepts — John Farrier
  6. Talent Rotation: Stop the Downward Spiral — John Farrier
  7. Demystifying Static vs. Dynamic Linking in C++ — John Farrier
  8. Dissecting the Mind of the Optimistic Programmer — John Farrier
  9. C++ STL Data Structures and Algorithms Book Topics
  10. → Continue Reading
  11. Push/Pull Communication Development in Agile Teams — John Farrier
  12. "Tech Stacks" are fast Becoming "Tech Piles" — John Farrier
  13. The Ghostbuster Interview and Hiring Process — John Farrier
  14. → Continue Reading
  15. How Pair Programming For Engineers Builds Quality — John Farrier
  16. How to Build Technical Capital — John Farrier
  17. Algorithmic SemVer
  18. Use Reasonable Defaults To Build Better Teams — John Farrier
  19. → Continue Reading