<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://blog.dannycastonguay.com/feed.xml" rel="self" type="application/atom+xml" /><link href="https://blog.dannycastonguay.com/" rel="alternate" type="text/html" /><updated>2026-03-15T15:37:23+00:00</updated><id>https://blog.dannycastonguay.com/feed.xml</id><title type="html">Home</title><subtitle>Direct, driven (and mostly tolerable).</subtitle><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><entry><title type="html">How To Write an Email</title><link href="https://blog.dannycastonguay.com/how-to-write-an-email/" rel="alternate" type="text/html" title="How To Write an Email" /><published>2026-03-15T00:00:00+00:00</published><updated>2026-03-15T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/how-to-write-an-email</id><content type="html" xml:base="https://blog.dannycastonguay.com/how-to-write-an-email/"><![CDATA[<p>This is not about grammar. It is about speed, clarity, and judgment.</p>

<p>We write emails so the reader can understand the point in seconds, decide quickly, and forward the message without extra explanation.</p>

<h1 id="1-start-with-the-point">1. Start with the point</h1>

<p>The first sentence should say the ask, decision, risk, or update.</p>

<p>Do not warm up. Do not build suspense. Do not tell a story.</p>

<h1 id="2-put-bad-news-first">2. Put bad news first</h1>

<p>If something is wrong, say it early.</p>

<p>Do not hide the problem behind context or politeness.</p>

<h1 id="3-use-as-few-words-as-possible">3. Use as few words as possible</h1>

<p>Every sentence should earn its place.</p>

<p>Delete filler, repetition, and softening language.</p>

<h1 id="4-be-literal">4. Be literal</h1>

<p>Say exactly what you mean.</p>

<p>Do not use sarcasm, hints, irony, or coded language.</p>

<p>Do not make the reader guess.</p>

<h1 id="5-be-specific">5. Be specific</h1>

<p>Use names, numbers, dates, and facts.</p>

<p>Bad: There were some delays.</p>

<p>Good: Vendor X missed the March 12 deadline. Launch now moves to March 19 unless we reduce scope.</p>

<h1 id="6-one-email-should-do-one-job">6. One email should do one job</h1>

<p>An email should mainly do one thing: ask, decide, update, escalate, or confirm.</p>

<p>If you have three unrelated topics, send three emails.</p>

<h1 id="7-make-the-next-step-obvious">7. Make the next step obvious</h1>

<p>Say who needs to do what by when.</p>

<p>If you want a decision, say the deadline.</p>

<p>If you want feedback, say what kind of feedback.</p>

<h1 id="8-separate-facts-judgment-and-recommendation">8. Separate facts, judgment, and recommendation</h1>

<p>Facts are what happened.</p>

<p>Judgment is what you think it means.</p>

<p>Recommendation is what you think we should do.</p>

<p>Keep those distinct.</p>

<p>If something is uncertain, say that clearly. Do not present a guess as a fact.</p>

<h1 id="9-write-for-forwarding">9. Write for forwarding</h1>

<p>The email should still make sense if someone forwards it to another person with no extra context.</p>

<p>That means the topic, names, dates, and decision should all be clear inside the email itself.</p>

<h1 id="10-ai-is-fine-generic-language-is-not">10. AI is fine. Generic language is not.</h1>

<p>It is fine to use AI to draft or review an email.</p>

<p>But edit it until it sounds specific and human.</p>

<p>If a sentence could be pasted into any company, it is too generic.</p>

<p>Avoid phrases like:
I hope this email finds you well
I wanted to reach out
Please be informed
Kindly
Just circling back
Revert to me</p>

<p>Use normal words instead.</p>

<h1 id="11-respect-time">11. Respect time</h1>

<p>Aim for an email that can be read on one screen.</p>

<p>If it must be longer, put the punchline first and then add short sections underneath.</p>

<h1 id="12-do-not-save-face-at-the-expense-of-clarity">12. Do not save face at the expense of clarity</h1>

<p>Be respectful, but do not hide the truth.</p>

<p>Direct is better than vague.</p>

<p>Clear is better than polite but useless.</p>

<h1 id="13-keep-threads-clean">13. Keep threads clean</h1>

<p>Reply on the same thread only if the topic is still the same.</p>

<p>If the topic changes, start a new email with a new subject line.</p>

<p>CC only people who need to act or know.</p>

<h1 id="14-subject-lines-help-triage">14. Subject lines help triage</h1>

<p>The subject line should help the reader triage the email fast.</p>

<p>Good:
Action needed today: approve revised offer
Decision needed: pricing for Client X
Update: contract signed with Acme
Risk: launch delayed by one week</p>

<p>Weak:
Quick question
Following up
Hi
Update</p>

<h1 id="15-default-structure">15. Default structure</h1>

<p>Subject: [Action, Decision, Update, Risk]: [topic]</p>

<p>[First sentence: the ask or punchline.]</p>

<p>[Two to five lines of facts, with names, numbers, and dates.]</p>

<p>[Recommendation or next step.]</p>

<p>[Owner and deadline.]</p>

<h1 id="16-examples">16. Examples</h1>

<p>Weak:</p>

<p>Hi John, hope you are well. I wanted to reach out regarding the vendor situation. As you know, we have been discussing timelines internally and there have been a few complications on their side, so I thought I would share some context before getting your thoughts. Please let me know what you think.</p>

<p>Better:</p>

<p>Subject: Decision needed: vendor delay on onboarding</p>

<p>Vendor X missed the March 12 deadline. If we keep the current scope, onboarding moves to March 19.</p>

<p>My recommendation is to remove feature Y and keep the March 15 launch.</p>

<p>Please reply by 3 pm today so we can confirm with the client.</p>

<p>Weak:</p>

<p>Just wanted to flag that there may possibly be some issues with the campaign performance and we may need to revisit the targeting.</p>

<p>Better:</p>

<p>Subject: Risk: campaign under target this week</p>

<p>The campaign is 18 percent below target after four days.</p>

<p>Likely cause is narrow audience targeting.</p>

<p>Recommendation: expand targeting today and review performance again tomorrow at 2 pm.</p>

<h1 id="17-when-not-to-use-email">17. When not to use email</h1>

<p>Do not use email for long back and forth, unresolved debate, or high emotion.</p>

<p>Use a call or chat when speed matters more than record keeping.</p>

<p>Then send a short email summary with the decision.</p>

<h1 id="18-final-rule">18. Final rule</h1>

<p>A good email does not try to sound smart, warm, or impressive.</p>

<p>It makes the reader understand the point fast.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[This is not about grammar. It is about speed, clarity, and judgment.]]></summary></entry><entry><title type="html">On The Imposter Syndrome</title><link href="https://blog.dannycastonguay.com/on-the-imposter-syndrome/" rel="alternate" type="text/html" title="On The Imposter Syndrome" /><published>2026-02-25T00:00:00+00:00</published><updated>2026-02-25T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/on-the-imposter-syndrome</id><content type="html" xml:base="https://blog.dannycastonguay.com/on-the-imposter-syndrome/"><![CDATA[<p>This post is for you if you suffer from imposter syndrome. I wrote it for a junior analyst on one of our teams at bld.ai serving a global data center operstor.</p>

<p>It can feel intimidating when you are surrounded by people who have 10, 15, 20 or even 30 years of experience. Some of them have probably spent nights inside data centers fixing outages. Some have canceled vacations to handle incidents. Some have led big deployments and messy turnarounds. They have battle scars.</p>

<p>But here is what actually matters.</p>

<p>The hardest thing to find is not experience. It is someone who gets things done.</p>

<p>Most people do not like to work that hard. Most people are not reliable. Most people do not respond fast. Most people do not close loops. Most people do not keep learning. If you simply behave differently, you already stand out.</p>

<p>Experience gives pattern recognition. It helps people see risks earlier. That is valuable. But execution creates trust. When you respond quickly, prepare properly, follow through, and take ownership, people relax when you are on something. They stop asking how many years you have. They care that things move forward.</p>

<p>Also remember this. None of them had tools like ChatGPT 10 or 15 years ago. A lot of what we are building now, AI, automation, new infra patterns, is new to almost everyone. The playing field is flatter than it looks. You can compress learning cycles massively today if you are disciplined. You can research faster, simulate scenarios, draft solutions, and prepare sharper questions.</p>

<p>So do not be intimidated by tenure.</p>

<p>Focus on what you can control:</p>

<ol>
  <li>Be responsive.</li>
  <li>Overprepare.</li>
  <li>Write things clearly.</li>
  <li>Close every loop.</li>
  <li>Admit when you do not know something and fix it fast.</li>
  <li>Keep learning daily.</li>
</ol>

<p>If you do that consistently, your value will be obvious. Experience earns respect over time. Execution earns respect immediately.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[This post is for you if you suffer from imposter syndrome. I wrote it for a junior analyst on one of our teams at bld.ai serving a global data center operstor.]]></summary></entry><entry><title type="html">The Feedback Matrix</title><link href="https://blog.dannycastonguay.com/the-feedback-matrix/" rel="alternate" type="text/html" title="The Feedback Matrix" /><published>2025-11-18T00:00:00+00:00</published><updated>2025-11-18T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/the-feedback-matrix</id><content type="html" xml:base="https://blog.dannycastonguay.com/the-feedback-matrix/"><![CDATA[<p>When giving feedback on someone’s work, most feedback falls into a simple two by two matrix.</p>

<p>One axis is agreement versus disagreement.
The other axis is effort versus no effort.</p>

<p>Bottom left is the most common and mostly useless feedback. You agree and you suggest something that is missing.
“This is good. Did you think about adding X?”</p>

<p>This kind of feedback feels helpful, but it usually is not. Ideas are cheap. You are pushing work back onto someone who has already done the work and probably already thought about that idea and decided not to include it. Sometimes it is fine, but most of the time it adds little value.</p>

<p>A step up is when you agree and you do the work.
“This is good. Here is a sentence you can add.”
Or a concrete image, sketch, calculation, or paragraph.</p>

<p>This is good feedback. You put in effort. You made the feedback actionable. You saved them time. If you are faster or better at a specific skill, design, math, writing, this can be genuinely helpful.</p>

<p>Another form of good feedback is when you disagree, but you do not do the work.
“I think this part is wrong.”
“I see a hole in this argument.”
“I disagree with this assumption.”</p>

<p>This still has value. Disagreeing thoughtfully is harder than agreeing. If you are right, you are pointing out something important they may not have considered. You have not fixed it, but you have surfaced a real issue.</p>

<p>Great feedback is when you disagree and you do the work.</p>

<p>You point out what is wrong and you propose a better version.
You rewrite the paragraph.
You fix the logic.
You sketch an alternative design.
You show how you would approach the problem.</p>

<p>That is great feedback.</p>

<p>This framework applies to everything: Presentations. Writing. Code. Design. Math proofs. Data analysis. Product specs. Business strategy. Pricing models. Sales scripts. Marketing copy. Hiring decisions. UX flows. Architecture diagrams. Operating procedures. Checklists. Recipes. Photography composition. Sound mixing. Choreography. Yoga poses. Ballet movements. Weightlifting form. Climbing routes. Jiu jitsu positions. Parenting. Negotiation. Thinking.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[When giving feedback on someone’s work, most feedback falls into a simple two by two matrix.]]></summary></entry><entry><title type="html">Ray-Ban Meta Glasses (Gen 2)</title><link href="https://blog.dannycastonguay.com/ray-ban-meta-glasses-gen2/" rel="alternate" type="text/html" title="Ray-Ban Meta Glasses (Gen 2)" /><published>2025-11-17T00:00:00+00:00</published><updated>2025-11-17T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/ray-ban-meta-glasses-gen2</id><content type="html" xml:base="https://blog.dannycastonguay.com/ray-ban-meta-glasses-gen2/"><![CDATA[<p>Today I met with an offshore operator in Singapore. They charter boats, move crews, move cargo, keep offshore platforms running. Someone in the meeting said something simple and true: no matter how much technology you give people, people remain a major factor in the equation.</p>

<p>He is right. There is a lot of tacit knowledge in operating a ship that never shows up in documentation. A skilled crew member still knows how to do things much better than AI can today.</p>

<p>Safety has the same dynamic. Many are moving away from BBS toward human performance. BBS is measuring near misses with an accounting lens. Human performance is changing the process instead of blaming the individual. It is about improving the system itself.</p>

<p>But something bigger is coming that most industries have not absorbed yet. Wearables.</p>

<p>We already see them in consumer life: rings that track sleep, watches that track runs, bikes connected to the internet. And now the <a href="https://www.ray-ban.com/usa/ray-ban-meta-ai-glasses-gen-2">Ray-Ban Meta glasses</a>. This may be the first form factor that can replace the phone as the primary device we use.</p>

<p>You do not understand it until you put them on. These glasses feel like the BlackBerry moment. Not the iPhone yet, but the first credible step toward it.</p>

<p>Gen 1 felt gimmicky so I skipped it. Gen 2 is different. Eight hours of battery. A case that extends it. Pictures that are good. Recordings that are good. It has replaced my iPhone as my primary camera. I now take more pictures with my glasses than with my phone.</p>

<p>It is also replacing my AirPods. AirPods slip. The glasses do not. They are more comfortable. The audio is not as clear because the speakers sit further from my ears and people with big heads might feel the frame is small. But I still prefer using the glasses.</p>

<p>Talking on the phone is not the biggest shift. The glasses are becoming one of my primary interfaces to LLMs. For almost two years ChatGPT has been my main LLM because it has my memories and I can access it everywhere. But the glasses are even more convenient because they are on my face. I say hey Meta and I begin a conversation. Those conversations get stored. It is a real threat to ChatGPT.</p>

<p>I still prefer ChatGPT because GPT 5.1 is stronger and the speech capability is the best. Meta is better than Siri and better than Gemini but OpenAI leads in speech and conversation. ChatGPT real time can search the internet better than Grok or Gemini. Gemini still relies on older data. Everyone will eventually catch up. The point is I do not want to pick up my phone anymore. I want to talk to my glasses.</p>

<p>Two examples show the impact. When I ride my bike with my kids and talk to my parents on WhatsApp I used to keep the camera off because my phone was in my pocket. Now I turn the camera on through the glasses and they see what I see. They see my kids riding. A maintenance worker in the field could do the same thing.</p>

<p>At the airport I held my plane ticket up to my eyes and asked my glasses what my gate was. It struggled at first but after two or three tries it figured it out. It recognized the ticket did OCR and returned the gate number. A small example but a real wearable doing real time computer vision tasks.</p>

<p>Most processing is still done on the phone. The glasses do minimal processing and store pictures. The phone connects to the internet for full LLM power.</p>

<p>Ships all over the world are connected via Starlink. Underground mines have WiFi. 5G is everywhere. Wearables are everywhere. We will see massive changes bigger than we expect. Even difficult tasks where workers are blamed for mistakes will shift. Workers will adopt these technologies because they make them safer and more efficient. The incentives change and the big brother fear becomes smaller.</p>

<p>Companies that understand this without spending hundreds of millions and damaging their balance sheet will be ready. They can become more than a shipping company with ships and crews. They can become a company with ships and crews and a platform that differentiates them and supports organic and inorganic growth.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[Today I met with an offshore operator in Singapore. They charter boats, move crews, move cargo, keep offshore platforms running. Someone in the meeting said something simple and true: no matter how much technology you give people, people remain a major factor in the equation.]]></summary></entry><entry><title type="html">Science Is the Belief in the Ignorance of Experts</title><link href="https://blog.dannycastonguay.com/be-a-scientist/" rel="alternate" type="text/html" title="Science Is the Belief in the Ignorance of Experts" /><published>2025-10-26T00:00:00+00:00</published><updated>2025-10-26T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/be-a-scientist</id><content type="html" xml:base="https://blog.dannycastonguay.com/be-a-scientist/"><![CDATA[<p>That line from Richard Feynman has never been more relevant, so far.</p>

<p>As agentic AI automates many tasks in traditional expert roles like doctor, engineer, analyst, or architect, we’ll all move toward the same core function: learning how to question what the machine says.</p>

<p>AI gives us the prevailing view among experts. It is trained on large public and licensed datasets. It is the record of known results. But new knowledge does not come from agreement. It comes from doubt.</p>

<p>Our role now is to look at what the machine outputs and ask, how could this be wrong? To run experiments, to test boundaries, to consider cases that contradict the default answer. To create hypotheses, try to disprove them, and identify boundary conditions where the model fails.</p>

<p>That’s what science really is, testing claims against evidence. In this next phase, everyone becomes a scientist. Not by degree, but by method.</p>

<hr />

<p>Are you a (data) scientist?</p>

<p>In the past week alone, I’ve reviewed more than a hundred resumes from people who call themselves data scientists. Maybe that’s where we’re all heading. Soon, most jobs will involve scientific work. You’ll be a medical data scientist, a legal data scientist, a construction data scientist, and so on.</p>

<p>Do you <em>believe</em> in science? Or do you believe something to be true because someone reputable said that it is true?</p>

<p>If you do, then you are not a scientist. Because believing in science is itself unscientific. Scientists don’t believe, they doubt. The scientific method is not about proving what you already think is true, it’s about trying to disprove it.</p>

<p>That’s what the so-called “null hypothesis” means, though the name is misleading. It sounds like it means “no hypothesis,” but what it really means is this: when you hold a belief, your job is to challenge it, not defend it. You don’t collect data to prove yourself right, you collect data to see if you might be wrong.</p>

<p>A better term for the null hypothesis might be the doubt hypothesis, or even the humility hypothesis. Because real science is an act of humility.</p>

<p>It’s the same principle behind Hanlon’s Razor, don’t attribute to malice what can be explained by stupidity. When we stop assuming intent and start looking for evidence, we act scientifically.</p>

<p>So the next time you catch yourself holding a strong opinion (especially one reinforced by ChatGPT!), ask: am I trying to prove this, or am I trying to disprove it?</p>

<p>The answer will tell you whether you are just another believer, or a true scientist.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[That line from Richard Feynman has never been more relevant, so far.]]></summary></entry><entry><title type="html">When AI Codes, You Accrue Theory Debt</title><link href="https://blog.dannycastonguay.com/ai-theory-debt/" rel="alternate" type="text/html" title="When AI Codes, You Accrue Theory Debt" /><published>2025-10-01T00:00:00+00:00</published><updated>2025-10-01T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/ai-theory-debt</id><content type="html" xml:base="https://blog.dannycastonguay.com/ai-theory-debt/"><![CDATA[<p>Technical debt has been affecting software teams since Ada Lovelace started coding in the 19th century.</p>

<p>What is technical debt? It’s when the codebase of a software project starts to become difficult to maintain, for example due to:</p>

<ol>
  <li>Original developers moving on</li>
  <li>Requirements evolving</li>
  <li>Tech stacks getting older</li>
</ol>

<p>The code still works, but the concepts embedded in variable names, data models, and APIs no longer align with what the product does.</p>

<p>But with AI-augmented coding, there’s a deeper, subtler burden but much more serious burden: AI theory debt.</p>

<p>When you prompt an AI like <a href="https://lovable.dev/">lovable</a> or <a href="https://github.com/anthropics/claude-code">Claude Code</a>, it feels like magic. You get 90 percent of a working feature in minutes. Its breathtaking.</p>

<p>But you never built a theory of that code. You don’t really know why it works, where its vulnerabilities lie, or how small changes cascade. You hold the result, not the insight.</p>

<p>Later, when you try to tweak one small thing, you end up in a cascade of failures: moving a pixel shifts layout, tweaking a state variable breaks logic elsewhere, refactoring one function ruins dependencies. You realize too late the AI was smart at generating but dumb at preserving coherence.</p>

<p>That’s theory debt. Or AI theory debt. Or AI debt. Or <a href="https://news.ycombinator.com/item?id=45423917">comprehension debt</a>. Call it what you want.</p>

<p>Because you never internalized the code’s theory, you now pay for reverse engineering, debugging, and walking blind paths.</p>

<p>That Hacker News post I linked above connects to <a href="https://gwern.net/doc/cs/algorithm/1985-naur.pdf">Peter Naur’s 1985 Programming as Theory Building</a>. Naur argues that the real product of programming is not the code or documentation. =&gt; It’s the theory in the programmer’s head: how the system maps to the real world, why each design decision was made, how modifications should evolve.</p>

<p>If you lose or skip that theory, you degrade your capacity to change the system intelligently. Over time, the system devolves into patchwork, because you’re modifying without shared insight.</p>

<p>So unlike technical debt where you knowingly accept imperfections, theory debt is debt incurred by ignorance. It’s a debt you don’t see! Not until it forces you to rebuild, or abandon what you built.</p>

<p>How to manage theory debt:</p>

<ol>
  <li>Use AI to scaffold or prototype, not to design entire modules.</li>
  <li>Always annotate, document metaphors, invariants, edge cases.</li>
  <li>Force yourself to rewrite or refactor with full understanding.</li>
  <li>Build the theory: draw diagrams, write narrative, run experiments.</li>
  <li>On handover, pass not just code, but the guiding metaphors you used.</li>
</ol>

<p>Theory debt is insidious because it’s invisible until you suffer. It’s the debt of missing understanding. Don’t just borrow working code. Borrow the insight too.</p>

<p>💚💚</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[Technical debt has been affecting software teams since Ada Lovelace started coding in the 19th century.]]></summary></entry><entry><title type="html">Agentic AI Needs Problem Solvers</title><link href="https://blog.dannycastonguay.com/icpc-2025-coach-fegla/" rel="alternate" type="text/html" title="Agentic AI Needs Problem Solvers" /><published>2025-09-30T00:00:00+00:00</published><updated>2025-09-30T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/icpc-2025-coach-fegla</id><content type="html" xml:base="https://blog.dannycastonguay.com/icpc-2025-coach-fegla/"><![CDATA[<p>Earlier this month I was at the <a href="https://worldfinals.icpc.global/scoreboard/2025/finals/index.html">2025 ICPC World Finals Baku</a>. I sat down with <a href="https://icpc.global/ICPCID/0495J14HWS05">Coach Fegla</a>, who has led teams to the ICPC World Finals in twenty different years. He belongs to a very short and prestigious list. The conversation touched on AI, competitive programing, and how to teach people (how to solve hard problems).</p>

<p>Agentic AI is improving fast and one day it might be able to win a gold medal at the ICPC world final. But not yet because AI works well when it can reason from patterns it has seen before. Competitive programming is exactly hard at that. The hardest ICPC problems have clear specs and tight constraints, there is no ambiguity there. But the edge cases and tradeoffs under time and memory pressure are novel and unique. The problem setters are clever meat brains! It is perhaps one of the purest form of gym for the mind.</p>

<p>We also talked about how to learn in a world full of AI. A pure “do it yourself” path is slow. A pure “rely on AI” path is shallow. The right model is hybrid. Rotate across three kinds of problems:</p>

<ol>
  <li>Easy ones for clean code and speed.</li>
  <li>Medium ones for creativity and modeling.</li>
  <li>Hard ones that expose missing knowledge so you know what to study next.</li>
</ol>

<p>Use AI as a coach and a second pair of eyes. Do not let it replace your own thinking.</p>

<p>For parents who want their kids to become world class problem solvers, start with logic early. Blocks and visual tools are fine. If a child shows sustained interest in math and logic, move to C/C++ around 10 or 11 years old. Foundations first. Tools second.</p>

<p>For business leaders, three practical moves:</p>

<ol>
  <li>Hire for problem solving. Tools can be learned quickly by someone who can think precisely.</li>
  <li>Screen with time boxed problem work that surfaces modeling skills, edge case thinking, and clarity under pressure.</li>
  <li>Pair teams with AI for scaffolding, reviews, and search, while keeping ownership of core decisions and system design with humans.</li>
</ol>

<p>There is a longer story behind these points. The full interview is now on <a href="https://www.youtube.com/watch?v=wPCikUh1pyk">YouTube</a>.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[Earlier this month I was at the 2025 ICPC World Finals Baku. I sat down with Coach Fegla, who has led teams to the ICPC World Finals in twenty different years. He belongs to a very short and prestigious list. The conversation touched on AI, competitive programing, and how to teach people (how to solve hard problems).]]></summary></entry><entry><title type="html">On Cognitive Load</title><link href="https://blog.dannycastonguay.com/on-cognitive-load/" rel="alternate" type="text/html" title="On Cognitive Load" /><published>2025-09-02T00:00:00+00:00</published><updated>2025-09-02T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/on-cognitive-load</id><content type="html" xml:base="https://blog.dannycastonguay.com/on-cognitive-load/"><![CDATA[<p>It is day two of <a href="https://icpc.global/">ICPC</a> in Baku, Azerbaijan.</p>

<p>ICPC is the International Collegiate Programming Contest. This year about 140 teams (of 3 students) from around the world are here. Past champions and finalists include <a href="https://en.wikipedia.org/wiki/Nikolai_Durov">Nikolai Durov</a>, cofounder of <a href="https://telegram.org/">Telegram</a>, <a href="https://en.wikipedia.org/wiki/Tony_Hsieh">Tony Hsieh</a>, founder of Zappos, <a href="https://en.wikipedia.org/wiki/Craig_Silverstein">Craig Silverstein</a>, first employee of Google, and <a href="https://en.wikipedia.org/wiki/Adam_D%27Angelo">Adam D’Angelo</a>, first CTO of Facebook. They were not the CEOs, but their ability to focus on problem-solving shaped the companies they helped build. The Telegram story is a lesson on its own, but this post is not about that.</p>

<p>When I am in Singapore, I practice yoga every day. When I travel, I sometimes open ClassPass and look for a gym. There is overhead with that.</p>

<p>Today I noticed something about symmetry in yoga. Teachers often build flows that mirror left and right. Short chains for some. Longer chains for others. A class can have two or three long sequences that fill the hour. Ten minutes on one side, then the same ten minutes on the other. That is already twenty minutes.</p>

<p>I realized I do not like that in my own self-guided practice. The real issue is not symmetry. It is cognitive load. Tracking perfect mirrors adds work for the teacher and the students. You have to remember each move, in order, and then replay it. That attention cost breaks flow. The principle is balance, not bookkeeping. If you stretch one hamstring, you should probably stretch the other. If you twist one way, you should probably twist the other. Exact mirroring is not the point.</p>

<p>If you stop forcing perfect symmetry, you can feel your way as you go. You can build more interesting flows that are not mirror images yet still touch both sides. The overall practice stays balanced without the extra mental tracking.</p>

<p>I think the same thing applies to work, to building products, to launching a startup, and to raising kids. There is strategy and a plan. But there is also the moment you are in. Reducing unnecessary cognitive load makes execution better. Keep the principle. Drop the parts that only add tracking overhead.</p>

<p>I am not a yoga teacher yet, but I have facilitated about a dozen sessions so far. I used to feel pressure to comply and mirror both sides exactly. I did not want students to judge the class. Starting today, I will tell future classes that the session will not be symmetrical. I do not want them to count moves. I want them to be present. I will still call the cue. I might demonstrate. I will also invite everyone to deviate at some point and do something different.</p>

<p>Back to ICPC. Competitive programming is also about cognitive load. Great teams lower it. One person reads and reduces the problem. One codes the simplest working version. One builds tests and checks edge cases. They keep a short shared list. They reuse templates. They cut anything that does not move the solution forward. The principles stay the same. Clarity. Correctness. Complexity in bounds. The overhead goes away.</p>

<p>A side note on Gen AI and coding. It is useful to build harnesses and scaffolding, to explain proofs, and to create small variants of the same idea so you can see the invariant. Use it to offload prep work and bookkeeping. But ultimately you need to keep the thinking. That is the link to yoga. Hold the principle. Remove the unnecessary load. Do what is right in this moment and trust yourself.</p>

<p>namaste</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[It is day two of ICPC in Baku, Azerbaijan.]]></summary></entry><entry><title type="html">Fastest Path to One Million USD</title><link href="https://blog.dannycastonguay.com/fastest-path-one-million-USD/" rel="alternate" type="text/html" title="Fastest Path to One Million USD" /><published>2025-09-01T00:00:00+00:00</published><updated>2025-09-01T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/fastest-path-one-million-USD</id><content type="html" xml:base="https://blog.dannycastonguay.com/fastest-path-one-million-USD/"><![CDATA[<p>At bld.ai we work with builders. Product managers, designers, data scientists, data engineers, mobile developers. Hands-on, flat, and fast. Our overhead is software. People come for money, yes, but they stay for interesting work. Work that is project-based, non-repetitive, and challenging.</p>

<p>The question for this post is: what is the fastest way to make a million dollars? I want to frame it in a way that is not just about the million, but about creating more value and setting yourself up for ten or a hundred million. This applies at any age. It applies to my own kids, who are 11, 9, and 6.</p>

<p>First principle: ignore the million. A million is just a proxy for value. You cannot get there fast by pure hard work. You can grind through school, debt, and salary, and eventually get there, but that is following a set path.</p>

<p>Second principle: do not be a follower. You need to be contrarian. Entrepreneurial. You have to do something different.</p>

<p>Third principle: accept that it will be hard. If you want to move fast, you first have to move slow. In Jiu Jitsu you do not learn a move by going fast. You drill one move slowly, again and again, until it becomes sharp. At first you lose. You keep showing up.</p>

<p>Fourth principle: focus on one problem. Not on one fixed solution. Fall in love with the problem. Solve it over and over for different people. At the start, do it manually. Sell it yourself. Deliver it yourself.</p>

<p>Fifth principle: start from an unfair advantage. Use what you already know or have access to. A family business, an industry you touched early, or a personal struggle that gives you insight. How well you solve that first round opens the next doors.</p>

<p>Put all of this together and the answer is: start a business. It is the most direct way to create a million in value. It is closer than you think, because the world pulls on people who are contrarian, who work very hard, and who obsess over solving a real problem.</p>

<p>A concrete example. I know a Gen Z who grew up around entrepreneurs and who struggled with mental health as a teenager. The problem she understands deeply is being heard. Many people cannot afford therapy. They do not need answers. They need a human who will listen for ten minutes at a price they can afford. Ten or twenty dollars. Anonymous if needed.</p>

<p>The fastest path is not to build an app. The fastest path is to start listening. Every day. Even for one minute a day at first. Post simple office hours in communities where people already are. Offer to listen for ten minutes. Do it consistently. Take notes. See patterns. After ten people you learn. After one hundred, the model emerges. Then you can build a way to book and pay.</p>

<p>At the start you do not optimize CAC or LTV. Your only job is to help real people with a real problem. If you keep showing up, the money follows. Ten becomes one hundred, then one thousand. Investors, partners, and developers show up too, because you proved the problem is real and you solved it.</p>

<p>That is how you make a million dollars fast. Not by chasing the number, but by solving one problem with focus, hard work, and an edge.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[At bld.ai we work with builders. Product managers, designers, data scientists, data engineers, mobile developers. Hands-on, flat, and fast. Our overhead is software. People come for money, yes, but they stay for interesting work. Work that is project-based, non-repetitive, and challenging.]]></summary></entry><entry><title type="html">Open Source Cloudless AI</title><link href="https://blog.dannycastonguay.com/open-source-cloudless-ai/" rel="alternate" type="text/html" title="Open Source Cloudless AI" /><published>2025-07-13T00:00:00+00:00</published><updated>2025-07-13T00:00:00+00:00</updated><id>https://blog.dannycastonguay.com/open-source-cloudless-ai</id><content type="html" xml:base="https://blog.dannycastonguay.com/open-source-cloudless-ai/"><![CDATA[<p>I wanted a local workstation powerful enough to run the largest available AI models on consumer hardware. No proprietary cloud services. No external APIs. Fully autonomous agents for email, calendar, spreadsheets, Telegram, and more. All open source, all local, full privacy and control.</p>

<h2 id="the-exact-build">The exact build</h2>

<ul>
  <li>GPU: <a href="https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5090/">NVIDIA GeForce RTX 5090</a> with 32 GB VRAM, about $3,000. I picked it so I can run large models in GPU memory without compromises.</li>
  <li>CPU: <a href="https://www.amd.com/en/products/processors/desktops/ryzen/9000-series/amd-ryzen-9-9950x3d.html">AMD Ryzen 9 9950X3D</a>, about $700. Great multicore and cache for data loaders and local services.</li>
  <li>Motherboard: <a href="https://rog.asus.com/motherboards/rog-strix/rog-strix-x870e-e-gaming-wifi/">ASUS ROG Strix X870E-E Gaming WiFi</a>, about $450. Stable, PCIe 5.0, strong power delivery, wide connectivity.</li>
  <li>Cooling: <a href="https://nzxt.com/products/kraken-360-elite-rgb-1">NZXT Kraken Elite 360</a>, about $330, in a <a href="https://www.thermaltake.com/core-p3-tg-pro.html">Thermaltake Core P3 TG Pro</a> open frame case, about $180. Keeps temps under control and looks clean.</li>
  <li>Power supply: <a href="https://rog.asus.com/power-supply-units/rog-strix/rog-strix-1000p-gaming/">ASUS ROG Strix 1000W Platinum ATX 3.1</a>, about $270. Quiet and reliable.</li>
  <li>Storage: <a href="https://shop.sandisk.com/products/ssd/internal-ssd/wd-black-sn850x-nvme-ssd?sku=WDS800T2X0E-00CDD0">WD Black SN850X NVMe SSD 8 TB Gen4</a>, rated to about 7,300 MB per second, about $750. Fast loads and lots of room for datasets and models.</li>
  <li>RAM: <a href="https://www.corsair.com/us/en/p/memory/cmk64gx5m2b6000z30/vengeance-64gb-2x32gb-ddr5-dram-6000mt-s-cl30-amd-expo-memory-kit-cmk64gx5m2b6000z30">Corsair Vengeance DDR5 64 GB 6000 MT/s</a>, about $250. Enough for parallel jobs and big context runs.</li>
  <li>Monitor: <a href="https://prismplus.sg/collections/gaming-monitors/products/prism-49al-240hz">PRISM+ 49AL 240Hz</a>, about $1,500, for the resolution (5210 x 1440), ClearMR 13000/HDR400, and 240Hz/0.03ms response time.</li>
</ul>

<p>Total cost: about $7,000 USD (ignoring the value of my time to assemble it).</p>

<h2 id="installing-and-configuring-everything">Installing and configuring everything</h2>

<p>I first installed <a href="https://discourse.ubuntu.com/t/plucky-puffin-release-notes/48687">Ubuntu 25.04 Plucky Puffin</a>. The NVIDIA 5090 driver install was fine. The problem was <a href="https://docs.nvidia.com/cuda/cuda-installation-guide-linux/">CUDA</a> on Ubuntu 25 and getting different libraries to actually use it. Package compatibility was not there yet for the stack I needed, so I reinstalled with <a href="https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890">Ubuntu 24.04 LTS Noble Numbat</a>, which worked better.</p>

<p>I installed <a href="https://ollama.com/">Ollama</a> to run local models and added <a href="https://github.com/facefusion/facefusion">FaceFusion</a> along with a few other tools. With this, large models can live fully in GPU memory.</p>

<h2 id="the-cooler-led-problem">The cooler LED problem</h2>

<p>My Kraken screen was upside down in the open frame. On Linux, <a href="https://github.com/liquidctl/liquidctl">liquidctl</a> could read but not write orientation for this device. On Windows, I used <a href="https://nzxt.com/pages/cam">NZXT CAM</a> to flip the display.</p>

<h2 id="the-windows-detour-and-wsl">The Windows detour and WSL</h2>

<p>I installed <a href="https://support.microsoft.com/en-us/windows/ways-to-install-windows-11-e0edbbfb-cfc5-4011-868b-2ce77ac7c70e">Windows 11</a> and then the <a href="https://www.nvidia.com/en-us/geforce/game-ready-drivers/">GeForce Game Ready driver</a>. RTX 5090 owners can also see the launch driver note here: <a href="https://www.nvidia.com/en-us/geforce/news/geforce-rtx-5090-5080-dlss-4-game-ready-driver/">Game Ready for RTX 5090 and 5080</a>. For Linux tools inside Windows I enabled <a href="https://learn.microsoft.com/en-us/windows/wsl/install">Windows Subsystem for Linux</a> and installed <a href="https://ubuntu.com/desktop/wsl">Ubuntu on WSL2</a>. This gives me most of what I want from both worlds.</p>

<p>After the Windows install, the Ubuntu partition stopped booting. Fixing GRUB was not worth the time, so I kept Windows for device control and WSL for my Linux workflow.</p>

<h2 id="what-i-liked-on-windows">What I liked on Windows</h2>

<ul>
  <li>For easy window layouts I use <a href="https://learn.microsoft.com/en-us/windows/powertoys/fancyzones">PowerToys FancyZones</a>. If I just want the built in snap layouts, see <a href="https://support.microsoft.com/en-us/windows/snap-your-windows-885a9b1e-a983-a3b1-16cd-c531795e6241">Snap your windows</a>.</li>
  <li>There is a paste manager built in. It is called <a href="https://support.microsoft.com/en-us/windows/using-the-clipboard-30375039-ce71-9fe4-5b30-21b7aab6b13f">Clipboard history</a>. Press Windows and V to enable it.</li>
  <li>Driver and system updates are simple through <a href="https://support.microsoft.com/en-us/windows/install-windows-updates-3c5ae7fc-9fb6-9af1-1984-b5e0412c556a">Windows Update</a>.</li>
</ul>

<h2 id="what-i-removed-or-disabled">What I removed or disabled</h2>

<ul>
  <li>Widgets and news. Start with <a href="https://support.microsoft.com/en-us/windows/customize-the-taskbar-in-windows-0657a50f-0cc7-dbfd-ae6b-05020b195b07">Customize the taskbar</a>.</li>
  <li>Copilot prompts. For policy level control see <a href="https://learn.microsoft.com/en-us/windows/client-management/manage-windows-copilot">Manage Copilot in Windows</a>. For simple hiding, the taskbar toggle also works.</li>
  <li>Location prompts. See <a href="https://support.microsoft.com/en-us/windows/windows-location-service-and-privacy-3a8eee0a-5b0b-dc07-eede-2a5ca1c49088">Windows location service and privacy</a>.</li>
  <li>Edge nags. If you want policy control, see <a href="https://learn.microsoft.com/en-us/deployedge/microsoft-edge-policies">Microsoft Edge policy reference</a>.</li>
</ul>

<h2 id="where-this-leaves-me">Where this leaves me</h2>

<p>I wish I could run a 5090 as an external GPU on a Mac. Apple documents eGPU support only for Intel Macs with Thunderbolt 3. Apple Silicon does not support eGPU. See <a href="https://support.apple.com/en-us/102363">Use an external graphics processor with your Mac</a>.</p>

<p>For now my setup is simple. Windows for device control and drivers. WSL with Ubuntu for the tools and scripts I like. CUDA and the NVIDIA driver stack are the core of the local AI workflow. Keep the matrix handy here: <a href="https://docs.nvidia.com/cuda/cuda-installation-guide-linux/">CUDA on Linux Guide</a>.</p>

<h2 id="next-steps">Next steps</h2>

<p>Over the coming days I will build a Model Context Protocol (MCP) layer that can send emails through Gmail, run agents on a daily schedule, update Google Sheets, and handle other basic workflows. The goal is to keep everything running only on free and open source software, using Ollama as the orchestration layer.</p>]]></content><author><name>Danny Castonguay</name><email>d@bld.ai</email></author><summary type="html"><![CDATA[I wanted a local workstation powerful enough to run the largest available AI models on consumer hardware. No proprietary cloud services. No external APIs. Fully autonomous agents for email, calendar, spreadsheets, Telegram, and more. All open source, all local, full privacy and control.]]></summary></entry></feed>