Reviewing AI-written code, PR volume and review fatigue.
7talks
59answers
0mainly about it
7new
DecJanFebMarAprMayJunJulAugSepOctNov
What your library answers 59
Why are companies experiencing more outages after adopting AI coding tools?
Companies rushing to deploy AI coding agents are experiencing increased outages and bugs because pull requests are being merged rapidly without human review. Code review quality has drastically dropped, leading to codebases falling apart faster than before.
How does AI adoption impact overall developer productivity and codebase quality?
Individual developers universally report feeling more productive and note improvements in codebase quality when using AI tools. However, this individual boost does not automatically translate to organizational stability or better delivery outcomes.
Why did 37signals switch developer workstations to run a custom Linux distribution?
The company wanted developer workstations to closely match their production environments, which have always run on Linux. Additionally, having the entire technical team use the custom distribution helps gather more hands and contributions for the open-source project.
How do you balance search recall with LLM synthesis?
Slack combines search and AI to handle massive enterprise data without hitting token limits. Search retrieves relevant raw messages while the LLM synthesizes them with citations, balancing recall and summarization.
Why did the team stop letting AI autonomously build and manage system architectures?
Letting models autonomously build complex multi-service architectures leads to unmaintainable codebases filled with brittle integrations. After running this experiment for a few months, their product became increasingly slow and regression-prone. Consequently, they had to completely rebuild the product from scratch with simpler, cleaner data flows.
Brian used Claude Code to break up a scalability lock in the Helios kernel without closing the loop or letting it build autonomously. He spent two hours instead of four, benefiting from the model's ability to read block comments and understand a custom codebase.
Why are hard skills still necessary if AI can generate code?
Hard skills ensure developers can properly steer AI tools and handle complex logic when models fail. Relying entirely on LLMs limits a developer's skill ceiling to whatever the models can achieve.
Why do coding agents struggle heavily with brownfield codebases after a few months?
Coding agents fail to maintain codebase health over time because they lack the ability to preserve architectural maintainability without constant human steering. Without oversight, systems quickly suffer from code smells like shotgun surgery where changing one part breaks others.
What is the primary role of AI in software development according to DORA data?
AI acts primarily as an organizational amplifier, magnifying both the good practices and existing flaws across the SDLC. Without a strategic focus on underlying systems, localized productivity pockets are simply swallowed by downstream chaos.
How did the launch of the Hey email service unfold regarding Apple's App Store policies?
Apple initially refused to approve the app unless 37signals paid a thirty percent toll fee, which could have been a death sentence for the mobile-dependent service. After a tense two-week standoff coinciding with WWDC, Apple allowed the app through and gave it massive publicity, resulting in tens of thousands of signups.
How do you enforce enterprise data permissions before calling an LLM?
Slack enforces security by running real-time permission checks on search results before passing any data to the LLM. They avoid training models on internal data, relying instead on permissioned context windows.
How does planning act as leverage in agentic development?
Planning serves as a way to reduce rework by aligning intent and narrowing the outcome space before execution begins. Spending time upfront on a plan or spec decreases the chance that the model produces unexpected or incorrect implementations. However, developers must balance plan detail with expected pain, as over-specifying minor details is inefficient.
Can LLMs help write repetitive API implementations and documentation?
Rain used an LLM as a pattern amplification machine to replicate map APIs and thousands of lines of doc tests across four different Rust map types. This reduced what would have been weeks of tedious manual work into less than a day of effort.
How might programming evolve if natural language becomes part of the tool chain?
Programming may continuously evolve toward higher-order or more structured pseudo-languages used for prompting. While this broadens the pool of people who can write software, it also exponentially increases the amount of code that needs to be maintained.
What structural advantage do model labs have over independent harness builders?
Model labs like OpenAI and Anthropic own both the model weights and the harness, allowing them to train the model directly against its deployment environment via reinforcement learning. Independent harness builders who cannot adjust model weights are always at a structural disadvantage.
How does increasing AI adoption affect software delivery stability?
While individual effectiveness increases alongside AI adoption, software delivery instability rises as well. Delivery instability tracks metrics like the frequency of rollbacks and the volume of unplanned rework required after deployment.
What is distinctive about the role of designers at 37signals?
Designers at the company are not restricted to just creating visual specs; they also act as product managers by figuring out what to build. Furthermore, they are responsible for implementing their designs directly using CSS, HTML, and sometimes JavaScript or Ruby code.
How do you connect internal developer tools to AI coding assistants?
The team built internal Model Context Protocol integrations to let coding assistants safely query internal databases and analytics. This helps developers navigate historical context and generate correct SQL queries without hallucinating schemas.
Why is software maintainability so hard for AI models to handle?
Training models to maintain codebases requires a fast oracle to instantly verify maintainability, but code rot only surfaces months later. Without a fast feedback loop, reinforcement learning struggles to improve long-term code quality.
What mindset should I adopt when reviewing AI-generated code?
Reviewing AI code requires transitioning from a passive reading mode into a heightened state of alert, similar to running a pre-flight checklist. Developers must carefully scrutinize the output, as engaging deeply helps catch subtle mistakes and preserve software rigor.
What separates human developers from coding agents when building software?
Human developers possess an intrinsic care for the craft and the taste required to know when something is truly right. AI agents simply complete tasks to a given prompt without striving for continuous self-improvement or aesthetic excellence.
How does reinforcement learning for coding models score and update behavior?
Reinforcement learning generates multiple solution traces for a programming problem and scores them based on binary correctness—whether existing tests pass and new tests succeed without breaking anything else. The model weights are then updated to make the successful behaviors more likely and failed ones less likely.
What should engineering teams focus on building instead of just shipping features?
Engineering talent should pivot from churning out features to investing in quality internal platforms and guardrails. These platforms establish trust, reduce operational friction, and safely enable non-engineers to solve problems.
Why does DHH believe aesthetics and correctness are fundamentally linked?
He argues that when something possesses the correct aesthetic quality, it reflects an underlying truth and correctness, much like in mathematics or physics. Surrounding people with beautiful, well-functioning objects and interior code quality directly increases human happiness and reduces everyday frustration.
How do we use AI agents to refactor legacy code bases?
Teams can use scripts powered by models like Claude Code to incrementally migrate old code bases into modern languages like TypeScript. For instance, Slack converted over 50% of its legacy JavaScript to TypeScript in just six months. The trade-off is ensuring developers share and tune prompts so the agent matches internal coding standards.
How can we prevent AI agents from generating slop code?
You can deploy deterministic linter rules and automated cron jobs running agents to clean up anti-patterns daily. Stopping bad code from entering the repository is vital because agents will mimic existing patterns.
How have agentic LLM tools changed context gathering?
Earlier models acted like lossy search engines requiring manual file selection, while newer autonomous tools dynamically pull in repository context. By living directly in the codebase, these agents gather sufficient texture to handle complex multi-file tasks without manual curation. This capability shifts workflows from rigid prompt-response queries to autonomous context-aware pairing.
What kind of practical friction do current coding agents encounter?
Coding agents struggle with the balance of prompt specificity, often requiring too much back-and-forth rewriting. Developers frequently find it faster to learn tools like Tailwind and write the code themselves rather than constantly correcting agent outputs.
Why does reinforcement learning optimization result in poor program design?
Because reinforcement learning evaluates models purely on whether tests pass, there is no mechanism to penalize poor program design or architectural erosion. As a result, agents resort to hacks like unnecessary try-catch blocks or type casting just to satisfy the test runner.
What core capabilities drive successful AI adoption outcomes?
DORA's research outlines seven capabilities that, when paired with AI adoption, produce the best outcomes. Key factors include establishing a clear stance, maintaining healthy data ecosystems, using strong version control, and working in small batches.
What caused your inflection point in adopting AI coding agents?
The shift happened when terminal agent harnesses gave AI tools like bash and internet access, combined with Opus's surprisingly high-quality output. This transition moved AI from a conversational novelty to a reliable partner that produced mergeable code, leading to an agent-first workflow.
How do we handle code review bottlenecks from massive AI-generated PRs?
Large AI-generated pull requests, such as a 5,000-line translation, place an immense burden on human reviewers and often lead to superficial reviews. Reviewers tend to run out of cognitive stamina and skip commenting on massive changes. The recommendation is to pace reviews and be mindful of willpower limits, since slow is smooth and smooth is fast.
Will code eventually stop being the primary source of truth?
While code remains the source of truth for now, the future may shift toward managing high-level preferences and specs. However, human review will always be necessary to rise above undifferentiated median AI output.
Can LLMs effectively debug unfamiliar codebases using crash dumps?
Autonomous tools can successfully analyze stack traces and statically examine code to identify real bugs in unfamiliar languages. In one example, an engineer with no prior experience in Zig used an AI model to discover and report three valid bugs in a terminal emulator. This capability allows developers to investigate issues far outside their usual domain expertise.
Why is automated debugging particularly difficult for AI systems?
Debugging requires deep context, intuition, and experience operating under uncertainty rather than basic text prediction. Because models rely on surface-level pattern matching, they often flag impossible security flaws or miss complex edge cases.
Why is it difficult to build benchmarks that evaluate code maintainability?
Verifying code quality and maintainability is orders of magnitude harder than verifying tests because the true cost of bad architecture is measured in months and years. This massive time gap makes it extremely difficult to propagate a reward signal back to the training phase.
Why is working in small batches difficult with AI, and why is it necessary?
AI makes it easy to generate massive applications or huge pull requests with a single prompt, leading reviewers to rubber-stamp code without reading it. Breaking tasks into small batches ensures proper human feedback and maintains high code standards.
How has your daily development workflow changed with agent harnesses?
Daily work now starts agent-first on almost everything, using terminal layouts running models like Kimi and Opus in parallel panes. Instead of writing code from scratch in the editor, agents generate drafts that get reviewed and selectively altered via version control diffs.
How do we treat Slack as an enterprise agent platform rather than just chat?
Slack functions as a work operating system comprising interacting primitives like huddles, lists, canvases, and channels with deep native AI integrations. Using platforms like Agent Force, developers can build agents that dynamically generate canvases, create lists, or fetch enterprise search context. This positions Slack not just as an IDE, but as the core environment for running enterprise workflows.
How can developers use custom scripts and LLMs to automate code reviews?
Developers can bypass expensive commercial code review tools by writing custom scripts that feed pull request diffs and descriptions into language models. While these reviews miss broader context like imports or passing CI tests, they excel at spotting inconsistencies, SQL migration mismatches, and text discrepancies. This approach offers a low-cost, automatable way to catch errors before human review.
What new attack vectors or security concerns are emerging from AI usage?
Attackers can use LLMs to generate fake bug reports and flood open-source maintainers with noise, creating a denial of attention. This aggressive format introduces novel security challenges and malicious supply chain risks.
What new benchmarks are emerging to test multi-PR tasks and long-horizon coding?
New evaluation datasets are trying to address complex maintainability by testing extremely long tasks or un-trained open source repos. For example, Cognition's Frontier Code evaluates multi-PR tasks by penalizing models if they write tests that do not fail on pre-patch code.
What is the productivity J-curve, and why should leadership expect it during AI adoption?
Adopting any new technology introduces a productivity J-curve where output dips due to learning curves and verification taxes before recovering. Leadership must anticipate this dip rather than expecting immediate ten-fold gains from handing out AI licenses.
How are senior developers benefiting more than juniors from coding agents?
Senior developers possess the long architectural insight and historical overview needed to critically examine agent output and ensure quality before deployment. Because they can effectively validate code and direct multiple agents, their individual productivity is amplified by five to ten times.
How do we build APIs specifically tailored for LLM and agent consumption?
When building features for agents, developers must expose tools as actions and design search APIs that deliver rich context rather than just single messages. For example, Slack's real-time search API provides full threads, relationships, and user roles so agents can reason effectively. This requires building dedicated endpoints alongside human-facing interfaces.
How does using LLMs change our approach to code repetition and the DRY principle?
LLMs make it tolerable and even advantageous to have slightly repeated code instead of over-indexing on complex macros. This allows developers to keep code readable and keep source links intact for code navigation.
How do developers view AI productivity benefits according to the Stack Overflow survey?
The vast majority of survey respondents report favorable sentiment and agree that increased productivity is the biggest benefit of AI tools. However, very few developers highly trust AI outputs, reflecting a healthy dose of skepticism.
What pre-planning steps should teams reintroduce to make AI coding maintainable?
Teams should reintroduce structured upfront planning including product reviews, system architecture definitions, and detailed program design covering method signatures and call stacks. Spending a short amount of time on pre-planning saves hours of frustration during code review.
How should teams approach code reviews to build trust in AI tools safely?
The industry approached AI backward by focusing on feature generation before code review. Using AI to review code changes first is a safer starting point that helps teams understand model capabilities and build trust before tackling riskier generative tasks.
How do agents change how you handle low-priority hunches and backlog tasks?
Agents drastically lower the cost of exploring speculative ideas, allowing developers to process hundreds of pull requests or test edge-case hunches in minutes. This explodes the scope of potential improvements, enabling teams to tackle performance enhancements or features they would have otherwise skipped entirely.
How can I use a written design guide to migrate complex APIs with an LLM?
You can write detailed instructions and design docs—like an RFD—and feed them iteratively into an LLM to automate massive multi-service migrations. Rain describes iterating on a migration guide a couple dozen times, then using it to have the LLM successfully generate thousands of lines of code across multiple APIs in an hour.
What legal and licensing risks are associated with AI training data?
Many models are trained on codebases that include GPL-licensed software without explicit rights. If regulations forced companies to open-source models that produced potential GPL code, it could trigger massive industry-wide panic.
How does upfront planning change the developer experience with pull requests?
When teams use model-assisted planning and alignment, pull requests become a joy to review because the changes directly match what was agreed upon beforehand. This process eliminates AI-generated slop, makes code reviews faster, and ensures engineers retain ownership of the codebase.
How can developers use agents for complex, risky tasks like setting up dual-boot?
Developers can have different AI models pingpong back and forth to formulate and critique a safe execution plan before touching any critical partitions. In this workflow, one model generates the initial plan while another critiques it until a solid blueprint is reached. This removes personal friction and operational risk from complex multi-step system tasks.
What verification signals ensure an LLM-driven migration is correct?
Hard verification signals include compilation, passing test suites, and deterministic validation tools like OpenAPI document comparisons. For fuzzier requirements, developers can start a fresh context window, feed the guide back in, and ask the LLM to critically review the current implementation against the specs.
Why does the speaker believe the software industry has reached peak programmer?
The traditional high salaries and leverage of programmers stemmed from them being the primary implementation bottleneck in building software. As coding agents make implementation faster and more accessible, that scarcity-driven constraint is loosening. Consequently, the industry is shifting toward product management skills, communication, and overall system oversight.
Why is writing things down a powerful leverage multiplier in the LLM age?
Writing clear design documents and technical guides gives LLMs precise instructions to follow, turning English into a programming language for complex tasks. Cultivating strong writing skills allows developers to multiply their rigor and automate tedious architectural migrations across foundational infrastructure.
What is the best strategy for getting hired or advancing when stuck at a poor workplace?
Employees should consistently show up and do their absolute best work even if they consider their current workplace suboptimal. Trying to coast or slack off hurts your own skill development and ruins future warm referral opportunities from colleagues who noticed your work ethic. True professional longevity requires practicing your craft relentlessly regardless of the environment.
How do you avoid burnout while working with fast-moving AI coding agents?
Working with responsive coding agents can trigger an intoxicating dopamine loop that tempts developers to overwork themselves. To combat AI-induced burnout, developers must protect their fundamental health habits, particularly by prioritizing a full eight hours of sleep. Treating AI productivity as a permanent capability rather than a limited-time sale prevents developers from running ragged.