John Farrier
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
- Vibe Coding Is Not a Software Engineering Methodology
- Email Updates Are Back, Plus What You Missed
- Best AI for Senior C++ Developers in 2026
- Code Is Cheap. Accountability Is Not.
- I Performed AI-assisted Website Migration. The Engineering Still Mattered.
- C++26 Memory Safety Is the First Serious Answer to the Rewrite Fantasy
- Engineering Manager Span Of Control In The Age Of AI
- Ohio Data Centers Need Standards, Not a Place in the Constitution
- Evidence-First Delivery: Stop Reviewing Diffs. Start Reviewing Evidence.
- Vibe Engineering: We Are All Vibe Coders Now
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 10/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 9/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 8/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 7/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 6/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 5/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 4/10)
2025 21
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 3/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 2/10)
- Modern C++ Firmware: Proven Strategies for Tiny, Critical Systems (Part 1/10)
- A Lesson in Managing Opportunity Costs
- AI Coding Shootout: Claude or ChatGPT for Coding Assistance?
- Build vs. Integrate: The Trades (and Biases) We Ignore
- 60 Second Lesson: C++ Token Pasting Metaprogramming
- Why Better Project Metadata Makes Humans and LLMs Unstoppable
- The Generalist Engineer: A Software Engineer's Perspective
- The Hidden Price of Non-Standard Dev Tools
- CMake Optimization: Boost Build Speed with These Expert Tips
- The CAP Theorem: Unlocking the Secrets of Distributed Systems
- Update: Conditional Moves vs. Branches - What Compilers Really Do
- Branch Prediction: The Definitive Guide for High-Performance C++
- C++ Performance Checklist for Low-Latency Systems — John Farrier
- 7 Interesting (and Powerful) Uses for C++ Iterators — John Farrier
- The Customer Engagement Challenge: How Junior Engineers Commonly Fail — John Farrier
- High-Performing Developers Have One Secret: They Ask for Help — John Farrier
- ZeroMQ's REQ/REP Pattern Magic: Lightning-Fast C++ & Python Messaging — John Farrier
- The Definitive Guide to the C++ final Keyword — John Farrier
- The Hidden Killer of Programmer Productivity — John Farrier
2024 36
- 25 Years of Coding Wisdom in 30 Seconds — John Farrier
- Standardizing the Handling of Non-Source Files in CMake Projects: The Config Target — John Farrier
- 12 Ways C++ Developers Increase Cyber Attack Vulnerabilities and How to Prevent Them — John Farrier
- Exploring C++ std::span - Part 5: Performance and Practicality — John Farrier
- Const-Correctness and Type Safety with C++'s std::span
- Exploring C++ std::span - Part 3: Subviews and Slices — John Farrier
- Exploring C++ std::span - Part 2: Accessing Elements and Iterating — John Farrier
- Exploring C++ std::span - Part 1: An Introduction To the Non-Owning View — John Farrier
- The Humble and Surprising C++ Semicolon; Origins, Use, and Art — John Farrier
- Powerful Tips and Techniques for std::mutex in C++ — John Farrier
- OpenAI Structured Outputs: Transforming Data Interpretation — John Farrier
- The Role of Technical Management and Mentorship in Your Career — John Farrier
- Kolmogorov Complexity: Practical Examples for Simplifying Code — John Farrier
- A Guide to Building Better Blog Posts with AI — John Farrier
- In-Source vs. Out-of-Source Builds — John Farrier
- The Definitive Guide to std::expected in C++ — John Farrier
- C++ Error Handling Strategies - Benchmarks and Performance — John Farrier
- Agile Failure - What Drives "268% Higher Failure Rates?" — John Farrier
- Breaking Free from Zero-Sum Thinking — John Farrier
- Custom Allocators in C++: High Performance Memory Management — John Farrier
- Why Mastering std::vector Is Essential for C++ Developers — John Farrier
- Harnessing Data-Driven Decision-Making in Software Development — John Farrier
- Generative AI Acceleration in the Air Force — John Farrier
- Leveraging the Power of Transparent Comparators in C++ — John Farrier
- Looking for Pointers: The C++ Memory Safety Debate — John Farrier
- An Inescapable Trap: Everyone Can Be Socially Engineered — John Farrier
- Projects vs. Products: Perspectives on DoD Software Execution — John Farrier
- Data Structures and Algorithms with the C++ STL
- The Service Locator Pattern: A Robust C++ Implementation — John Farrier
- Build One to Throw Away: Embracing Iteration — John Farrier
- The "No Silver Bullet" Principle in Modern Software Development — John Farrier
- The Decorator Pattern: From Basic to Advanced Concepts in C++ — John Farrier
- The Second-System Effect
- IEEE Floating Point for Engineering Mathematics
- Navigating the Man-Month Myth
- The Impact of FedRAMP Equivalency on Defense Contractors — John Farrier
2023 19
- Winning at Game Theory with "The Price is Right" — John Farrier
- Dancing on a Knife Edge: Goodhart's Law in Action — John Farrier
- Unlocking the Power of std::hash in C++ Programming — John Farrier
- Navigating the Pitfalls of 'Hero Culture' in Team Management — John Farrier
- Breaking Down C++20 Callable Concepts — John Farrier
- Talent Rotation: Stop the Downward Spiral — John Farrier
- Demystifying Static vs. Dynamic Linking in C++ — John Farrier
- Dissecting the Mind of the Optimistic Programmer — John Farrier
- C++ STL Data Structures and Algorithms Book Topics
- → Continue Reading
- Push/Pull Communication Development in Agile Teams — John Farrier
- "Tech Stacks" are fast Becoming "Tech Piles" — John Farrier
- The Ghostbuster Interview and Hiring Process — John Farrier
- → Continue Reading
- How Pair Programming For Engineers Builds Quality — John Farrier
- How to Build Technical Capital — John Farrier
- Algorithmic SemVer
- Use Reasonable Defaults To Build Better Teams — John Farrier
- → Continue Reading