{"posts":[{"title":"How Would Leonardo da Vinci Handle Anti-Semitism If He Lived in 2026?","href":"/blog/how-would-leonardo-da-vinci-handle-anti-semitism-if-he-lived-in-2026/","date":"June 20, 2026","description":"A thought experiment on how a secular Jewish Leonardo da Vinci might metabolize anti-Semitism in 2026 through discipline, visibility, and building.","categories":["Jewish thought","Founder mindset"],"tags":["Leonardo da Vinci","Anti-Semitism","Sublimation","Jewish identity"]},{"title":"Let's call them rigs, not agentic harnesses","href":"/blog/lets-call-them-rigs/","date":"May 20, 2026","description":"A naming proposal for practical AI agent setups: call the runnable system around an agent a rig.","categories":["AI systems","Software tooling"],"tags":["AI agents","Rigs","Naming"]},{"title":"Practical AI systems need boring edges","href":"/blog/practical-ai-systems/","date":"May 20, 2026","description":"A sample note on why useful AI products depend on review loops, source-backed claims, and constrained automation.","categories":["AI systems","Product infrastructure"],"tags":["Review loops","Constrained automation","Source-backed claims"]},{"title":"Free Real-Time Error Alerting for Your Go App with Telegram","href":"/blog/free-real-time-error-alerting-for-your-go-app-with-telegram/","date":"April 26, 2026","description":"Most monitoring tools cost money. Datadog, PagerDuty, Sentry — they all have free tiers that run out fast. But if you’re running a side…","categories":["Software tooling"],"tags":["Medium"]},{"title":"How Much Does a Ghostwriter Cost? (2026 Pricing Guide)","href":"/blog/how-much-does-a-ghostwriter-cost-2026-pricing-guide/","date":"February 27, 2026","description":"How Much Does a Ghostwriter Cost?","categories":["Writing"],"tags":["Medium"]},{"title":"CHAPTER EIGHT: A MORNING IN 2038","href":"/blog/chapter-eight-a-morning-in-2038/","date":"February 23, 2026","description":"The texture of ordinary life in the world that emerged","categories":["Personal essays"],"tags":["Medium"]},{"title":"The Meaning Machine","href":"/blog/the-meaning-machine/","date":"February 20, 2026","description":"How humans solved the purpose problem before — and why this time is different","categories":["Personal essays"],"tags":["Medium"]},{"title":"OpenClaw is powerful, but most setups still depend on a single machine.","href":"/blog/openclaw-is-powerful-but-most-setups-still-depend-on-a-single-machine/","date":"February 18, 2026","description":"Skyclaw changes that.","categories":["AI systems"],"tags":["Medium"]},{"title":"Razroo: A Founder Postmortem in the Age of Autonomous AI","href":"/blog/razroo-a-founder-postmortem-in-the-age-of-autonomous-ai/","date":"February 18, 2026","description":"What happens when the abstraction layer you’re building collapses beneath you?","categories":["AI systems"],"tags":["Medium"]},{"title":"Unlocking the Migraine Puzzle: How AI, Genetics, and Nutrition Solved My Chronic Migraines","href":"/blog/unlocking-the-migraine-puzzle-how-ai-genetics-and-nutrition-solved-my-chronic-migraines/","date":"February 15, 2026","description":"Chronic migraines aren’t just headaches — they’re a full-system crash that can derail your life. For years, mine felt like unpredictable…","categories":["AI systems"],"tags":["Medium"]},{"title":"🧱 How to Create a True AWS Sandbox Account (and Deploy to It via GitHub Actions)","href":"/blog/how-to-create-a-true-aws-sandbox-account-and-deploy-to-it-via-github-actions/","date":"October 28, 2025","description":"Why You Need a Sandbox Account","categories":["Software tooling"],"tags":["Medium"]},{"title":"so true","href":"/blog/so-true/","date":"October 25, 2025","description":"“so true” is published by Charlie Greenman.","categories":["Personal essays"],"tags":["Medium"]},{"title":"Citizen Equity Dividend (CED): Turn Every Paycheck Into a Shareholder Stake","href":"/blog/citizen-equity-dividend-ced-turn-every-paycheck-into-a-shareholder-stake/","date":"June 26, 2025","description":"A two-percent auto-save that may out-compete UBI in a post-scarcity world.","categories":["Economics"],"tags":["Medium"]},{"title":"AI Routing: The Missing Quality Layer Above RAG and MCPs","href":"/blog/ai-routing-the-missing-quality-layer-above-rag-and-mcps/","date":"June 20, 2025","description":"How a lightweight “traffic‑cop” model keeps your enterprise chatbots from hallucinating — while finally giving mini‑models a job they’re…","categories":["AI systems"],"tags":["Medium"]},{"title":"A Wake-Up Call: Battling Morning Migraines with Sleep, Genetics, and Lifestyle Hacks","href":"/blog/a-wake-up-call-battling-morning-migraines-with-sleep-genetics-and-lifestyle-hacks/","date":"May 1, 2025","description":"A Wake-Up Call: Battling Morning Migraines with Sleep, Genetics, and Lifestyle Hacks Migraines are more than “just headaches.” For many sufferers, the worst attacks come right after.","categories":["Health"],"tags":["Medium"]},{"title":"The Cost of Sacrifice: A Startup Founder’s Lesson in Optimal Functionality","href":"/blog/the-cost-of-sacrifice-a-startup-founder-s-lesson-in-optimal-functionality/","date":"April 20, 2025","description":"This message is for startup founders — or anyone pouring their soul into a new venture or product that hasn’t yet hit product-market fit…","categories":["Personal essays"],"tags":["Medium"]},{"title":"The Quiet Compounding of One Relentless Year","href":"/blog/the-quiet-compounding-of-one-relentless-year/","date":"April 17, 2025","description":"Birthday Reflection · April 17, 2025","categories":["Personal essays"],"tags":["Medium"]},{"title":"Proposed Unified Field Theory","href":"/blog/proposed-unified-field-theory/","date":"November 22, 2024","description":"A New Perspective on Spacetime and Quantum Fields","categories":["Personal essays"],"tags":["Medium"]},{"title":"Wait… is AI Already Conscious? 🤖😳 Hear Me Out:","href":"/blog/wait-is-ai-already-conscious-hear-me-out/","date":"October 8, 2024","description":"Could AI interacting with the world spark consciousness?","categories":["AI systems"],"tags":["Medium"]},{"title":"Is AI in its Edison vs. Tesla Moment?","href":"/blog/is-ai-in-its-edison-vs-tesla-moment/","date":"October 2, 2024","description":"In the race toward Artificial General Intelligence (AGI), there’s an uncanny echo of a historical rivalry — Edison vs. Tesla. Today, tech…","categories":["AI systems"],"tags":["Medium"]},{"title":"The Unresolvable Tension Between Moral Individualism and Collective Governance: Can We Ever Find Balance?","href":"/blog/the-unresolvable-tension-between-moral-individualism-and-collective-governance-can-we-ev/","date":"September 29, 2024","description":"In a world that is growing increasingly connected, the tension between moral individualism — the belief in personal autonomy and…","categories":["Personal essays"],"tags":["Medium"]},{"title":"Universal Basic Income Is the Natural Order of Progression","href":"/blog/universal-basic-income-is-the-natural-order-of-progression/","date":"September 9, 2024","description":"Want to listen to the youtube audio article? Click here https://www.youtube.com/watch?v=oK7zhZDstpM","categories":["Personal essays"],"tags":["Medium"]},{"title":"Introducing Founder Mode The Book!","href":"/blog/introducing-founder-mode-the-book/","date":"September 6, 2024","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"The 1%: The Rare Trait of Prescience in a World of Uncertainty","href":"/blog/the-1-the-rare-trait-of-prescience-in-a-world-of-uncertainty/","date":"September 2, 2024","description":"In a world where predicting the future seems more like a game of chance than a skill, there exists a small group of individuals who appear…","categories":["Personal essays"],"tags":["Medium"]},{"title":"My Prediction on AI and Coding: From the Present to Infinity","href":"/blog/my-prediction-on-ai-and-coding-from-the-present-to-infinity/","date":"September 1, 2024","description":"🚨 Warning: It gets trippy towards the end. Read at your own discretion. 🚨","categories":["AI systems"],"tags":["Medium"]},{"title":"How I Used My Vector DB to Extract Information from 65536 Different Data Entry Points","href":"/blog/how-i-used-my-vector-db-to-extract-information-from-65536-different-data-entry-points/","date":"August 28, 2024","description":"In the era of big data, extracting meaningful information from vast datasets is both an art and a science. With 65536 data entry points to…","categories":["AI systems"],"tags":["Medium"]},{"title":"Sales Tip: Why Tuesday at 11 AM Is the Best Time to Reach Out","href":"/blog/sales-tip-why-tuesday-at-11-am-is-the-best-time-to-reach-out/","date":"August 25, 2024","description":"In the world of sales, timing is everything. Reaching out to potential clients at the right moment can make the difference between being…","categories":["Writing"],"tags":["Medium"]},{"title":"Addressing America’s Public Health Crisis","href":"/blog/addressing-america-s-public-health-crisis/","date":"August 23, 2024","description":"A Systematic Approach to Healthier Communities","categories":["Health"],"tags":["Medium"]},{"title":"Unexpected delight of OpenAI’s Structured Output","href":"/blog/unexpected-delight-of-openai-s-structured-output/","date":"August 23, 2024","description":"Simply Better AI","categories":["AI systems"],"tags":["Medium"]},{"title":"Exploring the Power of Dyson Spheres Around Black Holes: A Glimpse into Advanced Civilizations","href":"/blog/exploring-the-power-of-dyson-spheres-around-black-holes-a-glimpse-into-advanced-civiliza/","date":"August 21, 2024","description":"In our quest to understand the cosmos and the potential for advanced civilizations, one concept that continually sparks curiosity is the…","categories":["AI systems"],"tags":["Medium"]},{"title":"Navigating the Noise: The Five Key Focus Areas for Building Your Own Path","href":"/blog/navigating-the-noise-the-five-key-focus-areas-for-building-your-own-path/","date":"August 19, 2024","description":"In today’s world, it’s easy to get lost in the endless stream of information, opinions, and distractions. With so much noise, many people…","categories":["Personal essays"],"tags":["Medium"]},{"title":"AI Parameters vs. Human Synaptic Weights: The Path to AGI","href":"/blog/ai-parameters-vs-human-synaptic-weights-the-path-to-agi/","date":"August 18, 2024","description":"Artificial Intelligence (AI) has made remarkable strides over the past decade, with advancements driven by increased computational power…","categories":["AI systems"],"tags":["Medium"]},{"title":"The Real Cause of Inflation According to Elon Musk","href":"/blog/the-real-cause-of-inflation-according-to-elon-musk/","date":"August 16, 2024","description":"Inflation is one of the most hotly debated topics in economics, and Elon Musk, a figure known for his sharp commentary on a wide range of…","categories":["Economics"],"tags":["Medium"]},{"title":"Why I Now Recommend Utility-First CSS Like Tailwind as a Software Architect","href":"/blog/why-i-now-recommend-utility-first-css-like-tailwind-as-a-software-architect/","date":"August 13, 2024","description":"Let’s Get Straight to It: We Now Have AI Autocomplete","categories":["AI systems"],"tags":["Medium"]},{"title":"CAP (Customizable Adaptive Prompt) Architecture","href":"/blog/cap-customizable-adaptive-prompt-architecture/","date":"June 17, 2024","description":"How to Drag and drop AI to customize your application on a per user or per org basis","categories":["AI systems"],"tags":["Medium"]},{"title":"Are People Fundamentally Wired Different?","href":"/blog/are-people-fundamentally-wired-different/","date":"June 16, 2024","description":"How This Can Help You Be a Better Communicator","categories":["Personal essays"],"tags":["Medium"]},{"title":"How I Became a Top 10 GitHub Contributor World-Wide","href":"/blog/how-i-became-a-top-10-github-contributor-world-wide/","date":"May 29, 2024","description":"Five Strategies You Can Use","categories":["Software tooling"],"tags":["Medium"]},{"title":"Serverless Mono Repo State Machine using only AWS S3 and API requests","href":"/blog/serverless-mono-repo-state-machine-using-only-aws-s3-and-api-requests/","date":"April 28, 2024","description":"Sharing state across Lambdas — The most efficient approach","categories":["Software tooling"],"tags":["Medium"]},{"title":"10 Albums I love To…","href":"/blog/10-albums-i-love-to/","date":"April 7, 2024","description":"…Listen To While Coding","categories":["Software tooling"],"tags":["Medium"]},{"title":"Using Versioning for AWS GSIs","href":"/blog/using-versioning-for-aws-gsis/","date":"February 26, 2024","description":"No Maintenance Windows Needed","categories":["Software tooling"],"tags":["Medium"]},{"title":"How To Become A Top-10 Github Contributor World-Wide","href":"/blog/how-to-become-a-top-10-github-contributor-world-wide/","date":"February 6, 2024","description":"A Master-Class in Software By Charlie Greenman(A Top-10 Github Contributor World-Wide)","categories":["Software tooling"],"tags":["Medium"]},{"title":"How to Unit Test an AI Prompt","href":"/blog/how-to-unit-test-an-ai-prompt/","date":"February 5, 2024","description":"Using Jest and Typescript","categories":["AI systems"],"tags":["Medium"]},{"title":"My favorite music to listen to","href":"/blog/my-favorite-music-to-listen-to/","date":"January 28, 2024","description":"Graded as top 10 over the past decade(10 for 10)","categories":["Music"],"tags":["Medium"]},{"title":"Why No Recession but Market Worse than ever been","href":"/blog/why-no-recession-but-market-worse-than-ever-been/","date":"January 24, 2024","description":"Here is the outline of why this is happening","categories":["Economics"],"tags":["Medium"]},{"title":"Tech Salaries Are Not High Enough","href":"/blog/tech-salaries-are-not-high-enough/","date":"August 31, 2023","description":"Why I wouldn’t go into Tech","categories":["Personal essays"],"tags":["Medium"]},{"title":"Title: Exploring the Enigma of Dolphin Communication and Its Potential Impact","href":"/blog/title-exploring-the-enigma-of-dolphin-communication-and-its-potential-impact/","date":"August 27, 2023","description":"A Business Minded Approach","categories":["Personal essays"],"tags":["Medium"]},{"title":"Open-Source AI is Mis-leading","href":"/blog/open-source-ai-is-mis-leading/","date":"August 25, 2023","description":"Here is why","categories":["AI systems"],"tags":["Medium"]},{"title":"Angular Property is used before its initialization error","href":"/blog/angular-property-is-used-before-its-initialization-error/","date":"August 24, 2023","description":"This is now showing up with latest Typescript I will explain why","categories":["Software tooling"],"tags":["Medium"]},{"title":"No, we are not in a Recession","href":"/blog/no-we-are-not-in-a-recession/","date":"August 17, 2023","description":"but here’s why there aren’t any jobs","categories":["Economics"],"tags":["Medium"]},{"title":"Applying Fermi Paradox to AI","href":"/blog/applying-fermi-paradox-to-ai/","date":"August 9, 2023","description":"and why there may or may not be multiple universes","categories":["AI systems"],"tags":["Medium"]},{"title":"Why most APIs use buffers over strings","href":"/blog/why-most-apis-use-buffers-over-strings/","date":"July 22, 2023","description":"and why you should too","categories":["Software tooling"],"tags":["Medium"]},{"title":"Digital Education + Mentorship","href":"/blog/digital-education-mentorship/","date":"April 30, 2023","description":"How we solve education","categories":["Personal essays"],"tags":["Medium"]},{"title":"My Thoughts On How We Can Prevent An All Powerful AGI","href":"/blog/my-thoughts-on-how-we-can-prevent-an-all-powerful-agi/","date":"March 25, 2023","description":"With One Single Regulation","categories":["AI systems"],"tags":["Medium"]},{"title":"Introducing Fractional Birthdays 🍰 🎉","href":"/blog/introducing-fractional-birthdays/","date":"February 14, 2023","description":"Another one to add to the Recreational Mathematics list","categories":["Personal essays"],"tags":["Medium"]},{"title":"Deploying Angular Universal to AWS","href":"/blog/deploying-angular-universal-to-aws/","date":"February 6, 2023","description":"Using Lambda/Serverless (No cold starts. As professional as it gets)","categories":["Software tooling"],"tags":["Medium"]},{"title":"The Dynamics of Innovation Has Changed","href":"/blog/the-dynamics-of-innovation-has-changed/","date":"September 18, 2022","description":"What Most People Are Missing Out On","categories":["Personal essays"],"tags":["Archive"]},{"title":"Web Scraping is Officially Legal","href":"/blog/web-scraping-is-officially-legal/","date":"April 20, 2022","description":"and why Public APIs are now even more important","categories":["Software tooling"],"tags":["Medium"]},{"title":"We are now in the Innovators Economy","href":"/blog/we-are-now-in-the-innovators-economy/","date":"April 17, 2022","description":"and why this really matters","categories":["Economics"],"tags":["Medium"]},{"title":"Web4","href":"/blog/web4/","date":"April 13, 2022","description":"The Symbiotic Web","categories":["AI systems"],"tags":["Archive","AI"]},{"title":"How to Write Cold Emails","href":"/blog/how-to-write-cold-emails/","date":"March 27, 2022","description":"Charlie Greenman Edition","categories":["Writing"],"tags":["Medium"]},{"title":"How to Remove Stale Git Branches","href":"/blog/how-to-remove-stale-git-branches/","date":"February 17, 2022","description":"A short technical note on Git workflow maintenance.","categories":["Software tooling"],"tags":["Archive","Git"]},{"title":"Angular Observables","href":"/blog/angular-observables/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Content Projection","href":"/blog/content-projection/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Life Cycle Hooks","href":"/blog/life-cycle-hooks/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Modules","href":"/blog/modules/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Observables","href":"/blog/observables/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Pipes","href":"/blog/pipes/","date":"April 24, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Forms","href":"/blog/forms/","date":"April 22, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Reactive Forms","href":"/blog/reactive-forms/","date":"April 22, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Attribute Directives","href":"/blog/attribute-directives/","date":"April 21, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Input","href":"/blog/input/","date":"April 21, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Output","href":"/blog/output/","date":"April 21, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Transitions and Triggers","href":"/blog/transitions-and-triggers/","date":"April 20, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Correlation ID Service","href":"/blog/correlation-id-service/","date":"April 19, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Facade Pattern","href":"/blog/facade-pattern/","date":"April 19, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Integrating a Component with @ngrx/store","href":"/blog/integrating-a-component-with-ngrx-store/","date":"April 19, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","NgRx"]},{"title":"State Management - Properly Unsubscribing","href":"/blog/state-management-properly-unsubscribing/","date":"April 19, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"@ngrx/router-store","href":"/blog/ngrx-router-store/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","NgRx"]},{"title":"Accessibility with Codelyzer","href":"/blog/accessibility-with-codelyzer/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Angular Elements - An Introduction","href":"/blog/angular-elements-an-introduction/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Angular Material Typography","href":"/blog/angular-material-typography/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Benefits of Unit Testing, TDD, and BDD","href":"/blog/benefits-of-unit-testing-tdd-and-bdd/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","Testing"]},{"title":"Cold v Hot Observables","href":"/blog/cold-v-hot-observables/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Compodoc","href":"/blog/compodoc/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Constants","href":"/blog/constants/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Coverage Reporting","href":"/blog/coverage-reporting/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Customize Angular Material Design","href":"/blog/customize-angular-material-design/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Data Access Folder/File Structure","href":"/blog/data-access-folder-file-structure/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Debugging Rxjs","href":"/blog/debugging-rxjs/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","RxJS"]},{"title":"Declaration Files","href":"/blog/declaration-files/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Dependency Injection","href":"/blog/dependency-injection/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Enums as Constants","href":"/blog/enums-as-constants/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Interfaces and Unions","href":"/blog/interfaces-and-unions/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Interfaces and Unit Testing","href":"/blog/interfaces-and-unit-testing/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","Testing"]},{"title":"Internationalization and Localization","href":"/blog/internationalization-and-localization/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Introduction to RxJS - The RxJS Airplane","href":"/blog/introduction-to-rxjs-the-rxjs-airplane/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","RxJS"]},{"title":"Lazy Loading Images","href":"/blog/lazy-loading-images/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Lazy Loading Modules","href":"/blog/lazy-loading-modules/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Mocking Data","href":"/blog/mocking-data/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Network Aware Predictive Pre-Loading","href":"/blog/network-aware-predictive-pre-loading/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"NG Container Hack for Structural Directives","href":"/blog/ng-container-hack-for-structural-directives/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Pre-loading with Route Guards","href":"/blog/pre-loading-with-route-guards/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Re-Usable State - An Anti-Pattern","href":"/blog/re-usable-state-an-anti-pattern/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Routing","href":"/blog/routing/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"RxJS and Facades","href":"/blog/rxjs-and-facades/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","RxJS"]},{"title":"Sass Error Reporting","href":"/blog/sass-error-reporting/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Scully - Static Site Generation for Angular","href":"/blog/scully-static-site-generation-for-angular/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"The Case for Using Ngrx/Entity by Default","href":"/blog/the-case-for-using-ngrx-entity-by-default/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","NgRx"]},{"title":"Transformation","href":"/blog/transformation/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Types of property source are incompatible","href":"/blog/types-of-property-source-are-incompatible/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Versioning","href":"/blog/versioning/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Visual Unit Tests with Cypress","href":"/blog/visual-unit-tests-with-cypress/","date":"April 18, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","Testing"]},{"title":"Form Validation Architecture","href":"/blog/form-validation-architecture/","date":"April 13, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Unit Testing","href":"/blog/unit-testing/","date":"April 13, 2021","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","Testing"]},{"title":"Medicine","href":"/blog/medicine/","date":"April 6, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"How R̶e̶m̶o̶t̶e̶ Work Should Look","href":"/blog/how-remote-work-should-look/","date":"April 4, 2021","description":"I recently saw an article about a large tech company requiring employees once again to work from its office starting September 1st. This…","categories":["Personal essays"],"tags":["Medium"]},{"title":"Organization","href":"/blog/organization/","date":"March 17, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Caffeine","href":"/blog/caffeine/","date":"March 9, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Shopping Online","href":"/blog/shopping-online/","date":"March 2, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"The Future of the Professions","href":"/blog/the-future-of-the-professions/","date":"February 28, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Obtaining a Coach","href":"/blog/obtaining-a-coach/","date":"February 22, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"The Headspace Guide to Meditation and Mindfulness","href":"/blog/the-headspace-guide-to-meditation-and-mindfulness/","date":"February 20, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Positive Aware Attitude","href":"/blog/positive-aware-attitude/","date":"February 14, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Zero to One: Notes on Startups, or How to Build the Future","href":"/blog/zero-to-one-notes-on-startups-or-how-to-build-the-future/","date":"February 11, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"The Five Hour Rule","href":"/blog/the-five-hour-rule/","date":"February 5, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Facts and Fallacies of Software Engineering","href":"/blog/facts-and-fallacies-of-software-engineering/","date":"February 3, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Rule of Three","href":"/blog/rule-of-three/","date":"January 28, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Leadershift by John C. Maxwell","href":"/blog/leadershift-by-john-c-maxwell/","date":"January 27, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Research Rule of 3 to 4 Years","href":"/blog/research-rule-of-3-to-4-years/","date":"January 21, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"The Culture Code","href":"/blog/the-culture-code/","date":"January 21, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Singularly Focused","href":"/blog/singularly-focused/","date":"January 12, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"You Don't Have To Be Ruthless To Win","href":"/blog/you-don-t-have-to-be-ruthless-to-win/","date":"January 12, 2021","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Agile as Lifestyle","href":"/blog/agile-as-lifestyle/","date":"January 6, 2021","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Art of Stacking","href":"/blog/art-of-stacking/","date":"December 20, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Devel Up — LaTeX for Notes, Authoring, and Academia.","href":"/blog/devel-up-latex-for-notes-authoring-and-academia/","date":"December 5, 2020","description":"The Technical Writing Companion","categories":["Writing"],"tags":["Archive","Technical writing"]},{"title":"[WIP]Dynamic Layout Component and Dynamic Class Based on Route","href":"/blog/wip-dynamic-layout-component-and-dynamic-class-based-on-route/","date":"December 1, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Scheduling","href":"/blog/scheduling/","date":"November 29, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Always Have a Backup","href":"/blog/always-have-a-backup/","date":"November 25, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Base Persona","href":"/blog/base-persona/","date":"November 17, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Managing the Unmanageable","href":"/blog/managing-the-unmanageable/","date":"October 18, 2020","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Why I No Longer Use Instagram and TikTok","href":"/blog/why-i-no-longer-use-instagram-and-tiktok/","date":"October 11, 2020","description":"I tried…","categories":["Personal essays"],"tags":["Medium"]},{"title":"Hit Refresh","href":"/blog/hit-refresh/","date":"October 5, 2020","description":"Book notes on software, business, and professional judgment.","categories":["Books"],"tags":["Archive","Book notes"]},{"title":"Obtaining A Network","href":"/blog/obtaining-a-network/","date":"October 3, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Obtaining A Mentor","href":"/blog/obtaining-a-mentor/","date":"October 2, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Surplus More Is More","href":"/blog/surplus-more-is-more/","date":"October 1, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Recurring Surplus","href":"/blog/recurring-surplus/","date":"September 30, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Introducing SMAG Architecture — Part 5","href":"/blog/introducing-smag-architecture-part-5/","date":"September 17, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"SMAG Architecture — Part 2","href":"/blog/smag-architecture-part-2/","date":"September 16, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"SMAG Architecture — Part 3","href":"/blog/smag-architecture-part-3/","date":"September 16, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"SMAG Architecture — Part 4","href":"/blog/smag-architecture-part-4/","date":"September 16, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"SMAG Architecture — Part 1","href":"/blog/smag-architecture-part-1/","date":"September 15, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Career and Education","href":"/blog/career-and-education/","date":"September 14, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"The Case for Using Ngrx/Entity by Default","href":"/blog/the-case-for-using-ngrxentity-by-default/","date":"September 14, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","NgRx"]},{"title":"Recurring Tasks","href":"/blog/recurring-tasks/","date":"September 13, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Redux Vs. RxJS + Ngrx/store in 2020","href":"/blog/redux-vs-rxjs-ngrx-store-in-2020/","date":"September 10, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","NgRx","RxJS"]},{"title":"What is The Industrious Framework?","href":"/blog/what-is-lean-creativity/","date":"September 10, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Angular Form Validation","href":"/blog/angular-form-validation/","date":"September 6, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Introduction","href":"/blog/introduction/","date":"September 6, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Personal essays"],"tags":["Archive"]},{"title":"Same Clothing Everyday","href":"/blog/same-clothing-everyday/","date":"September 5, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Smart Phone Needed?","href":"/blog/smart-phone-needed/","date":"September 4, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"The Benefits of a Mono Repo & Tooling Needed","href":"/blog/the-benefits-of-a-mono-repo-tooling-needed/","date":"September 3, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Alarm Clock Trifecta","href":"/blog/alarm-clock-trifecta/","date":"August 30, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Enums vs Constants","href":"/blog/enums-vs-constants/","date":"August 30, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Reading","href":"/blog/reading/","date":"August 25, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Food","href":"/blog/food/","date":"August 23, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Weekend Getaways","href":"/blog/weekend-getaways/","date":"July 23, 2020","description":"A personal systems note on building an industrious life without letting work define it.","categories":["Personal systems"],"tags":["Archive","Personal systems"]},{"title":"Micro Front End Architecture — Design Principles and Final Thoughts","href":"/blog/micro-front-end-architecture-design-principles-and-final-thoughts/","date":"June 28, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"How to Unit Test throwError","href":"/blog/how-to-unit-test-throwerror/","date":"June 21, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend","Testing"]},{"title":"Git Versioning","href":"/blog/git-versioning/","date":"June 11, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]},{"title":"Solving CORS Issues with Cypress","href":"/blog/solving-cors-issues-with-cypress/","date":"June 10, 2020","description":"Technical notes on Angular and frontend architecture.","categories":["Software tooling"],"tags":["Archive","Angular","Frontend"]}]}