DEV
Download on the App Store

DEV episodes

  • The Complete List of Programming Languages 2025: What You Need to Know

    Not all programming languages are created equal — and in 2025, the gap between choosing the right one and the wrong one can mean the difference between a system that scales and one that fails. This episode of Development cuts through the noise to examine the languages actually shaping modern software, drawing on the complete 2025 programming language guide to deliver a clear-eyed look at where each language fits, what it costs, and what it's worth.

    Here's what the episode covers:

    • C and C++ — why two languages from the 1970s and 80s still underpin embedded systems, high-frequency trading, and AAA game engines, and why mastering them commands some of the highest salaries in the industry.
    • C# and Java — the workhorses of enterprise software, each with distinct ecosystems (Microsoft's .NET and Unity for C#; Netflix, Amazon, and Minecraft for Java) and real tradeoffs in memory use and verbosity.
    • Go (Golang) — the quietly dominant force in cloud-native development, with a simple syntax, excellent performance, and average developer salaries climbing past $135,000 a year.
    • JavaScript and its ecosystem — why JavaScript is the web's native tongue, how Node.js, Next.js, and Electron.js extend it far beyond the browser, and what it means that Discord, Slack, and VS Code are all built on web technologies.
    • PHP and Python — PHP's unfair reputation versus its real-world dominance (including Laravel and much of the internet's back end); Python's unmatched readability, AI/ML library ecosystem, and the performance tradeoffs that come with it.
    • SQL, LabVIEW, and Scratch — the specialized languages that don't fit the general-purpose mold but remain indispensable in data management, scientific research, and computer science education respectively.

    The episode's central argument is one worth holding onto: there is no universally best programming language, only the right language for a given problem. Understanding that distinction is what separates thoughtful builders from reactive ones — whether you're writing the code yourself or making decisions about who should.

    More from the show: if you're thinking critically about the tools your team uses, don't miss The SaaS Audit: How to Find the Tools Worth Replacing First.

    DEV

    RFP

    9 min
  • The SaaS Audit: How to Find the Tools Worth Replacing First

    Most small and mid-sized businesses carry a SaaS stack that feels both essential and absurd at the same time. Some of those subscriptions are load-bearing walls; others are doing something a weekend script could handle. The hard part isn't knowing that the bloat exists — it's knowing where to cut first, and in what order, without breaking anything that actually matters. This episode of Development walks through a structured audit methodology designed for operators who want answers, not abstractions.

    The episode covers a repeatable framework for evaluating every tool in your stack and sequencing replacements intelligently:

    • Why cost is the wrong starting point — a high invoice number tells you nothing about how embedded a tool is or how painful it would be to replace.
    • The complexity-to-frequency ratio — a two-axis test for every tool that reveals which subscriptions carry the least replacement risk and should be targeted first.
    • The four quadrants of your stack — low complexity/low frequency tools are your first targets; high complexity/high frequency tools may never be worth touching; and the "low complexity, high frequency" category is the sleeper opportunity where savings compound fastest.
    • Three questions to answer before you build anything — who owns the replacement after it's live, what are the precise inputs and outputs, and what does the review process look like before you retire the old tool.
    • A worked example — a concrete e-commerce scenario (weekly inventory summary email, ~$400/month in combined subscriptions) that illustrates what a well-scoped first build actually looks like in practice.
    • The audit as a recurring habit — why treating this as a quarterly discipline beats treating it as a crisis response when a bill gets too painful to ignore.

    For operators thinking seriously about custom internal tools as a replacement strategy, or who want to understand what replacing SaaS subscriptions looks like across a full business stack, vb.co goes deeper on ownership models, build-versus-buy decision frameworks, and the failure patterns that catch non-engineers off guard. You can also use the savings calculator to put real numbers behind your own stack before deciding where to start. More from the show: Bid/No-Bid Is Arithmetic Before It Is Judgment applies a similarly structured decision lens to a completely different business problem.

    VB

    RFP

    9 min
  • Bid/No-Bid Is Arithmetic Before It Is Judgment

    Most bid/no-bid conversations jump straight to judgment — incumbency risk, relationships, competitive fit — without ever running the numbers that should come first. This episode of Development makes a case that's simple but easy to overlook: arithmetic is the gate, and judgment is only useful once a pursuit clears it. The discussion is grounded in the bid/no-bid arithmetic article from RFP.co, which lays out the underlying model in full.

    Here's what the episode covers:

    • The expected-value formula. A bid's worth equals the probability of winning multiplied by the contract's margin contribution, minus the fully loaded cost of the pursuit — a calculation most teams never write down.
    • Why pursuit cost matters as much as win rate. Two pursuits chasing the same contract can have opposite expected values purely because one costs more to execute, and lowering bid cost is mathematically equivalent to raising win probability by the same proportion.
    • Break-even win rate as a decision tool. Dividing pursuit cost by contract contribution produces the minimum win probability a bid must clear before it's worth starting — a number teams already have before the solicitation is even opened. Tools like go/no-go scoring can formalize that threshold before the conversation gets emotional.
    • The hidden cost of "bid less, bid better." Concentrating resources on opportunities where qualification, past performance, and opportunity matching are already strong dramatically shifts the portfolio math — without requiring any improvement in win rate.
    • Protests through an arithmetic lens. GAO data from fiscal year 2025 shows a 52% "effectiveness rate," but most of that relief is agency-initiated re-runs — a remedy that costs money, reveals your pricing, and compounds the original loss rather than correcting it.
    • Sequencing as the real leverage point. The bid/no-bid gate is the only moment in the pursuit lifecycle where saying no costs nothing; once resources are committed, every subsequent decision carries sunk-cost pressure.

    The episode draws directly on the RFP.co article linked above — worth reading alongside a pursuit calendar, especially for teams whose reviews tend to begin with relationships and end with someone who's already started writing. For more from the show, check out Why AI Won't Replace Manual QA Anytime Soon, which examines a different kind of quality gate in the proposal process.

    RFP

    8 min
  • Why AI Won't Replace Manual QA Anytime Soon

    As AI tools take on more of the software development lifecycle, it's tempting to assume quality assurance is next on the automation chopping block. But a closer look at what QA actually demands — curiosity, empathy, judgment, and collaboration — reveals a much more complicated picture. This episode of Development digs into the case for why manual QA remains essential, even as AI-powered testing tools grow more capable by the month.

    The episode walks through four core reasons why human testers can't simply be swapped out for automated systems, covering everything from the limits of trained models to the irreplaceable social dynamics of a real QA team:

    • Contextual understanding: AI executes tests against predefined conditions — but real-world bugs often emerge from unpredictable user behavior that no training set fully anticipates. A human tester notices when tabbing through a form makes the cursor vanish; an AI won't flag it unless it was specifically told to look.
    • Judgment and user empathy: Deciding whether a bug actually matters to a user requires emotional context that AI lacks. A missing button, a vague error message, or an ill-timed pop-up each carry different weight depending on where they appear in a workflow — and only a human tester truly feels that friction.
    • Exploratory testing: Some bugs surface only under rare, oddly specific conditions. Human testers find them through natural curiosity and improvisation; automated tools only catch what they've been programmed to look for, which creates dangerous blind spots.
    • Flexibility in fast-moving environments: When requirements shift — and in modern development, they always do — human testers adapt on the fly. AI models require retraining, data updates, and test case reviews, making them brittle in agile workflows.
    • Collaboration and advocacy: QA isn't a solo function. Human testers ask questions, push back on design decisions, and advocate for end users in meetings. AI can generate a report; it can't argue that a user flow is confusing and explain why.
    • Where AI genuinely helps: Tools like Selenium, Applitools, and Testim.io add real value for regression testing, visual consistency checks, and processing large data volumes at speed — but as amplifiers of human judgment, not substitutes for it.

    The episode closes with a clear-eyed verdict: the strongest QA process pairs AI's speed and scale with human nuance and context. That isn't a stopgap until AI improves further — it's simply sound engineering practice. For more on where the industry is heading, check out the episode Web Development Trends Shaping 2026 and Beyond.

    DEV

    9 min
  • Web Development Trends Shaping 2026 and Beyond

    The gap between websites that feel polished and purposeful and those that feel dated is growing fast — and the difference often comes down to a handful of deliberate choices. This episode of Development works through the top 20 web development trends for 2026 and beyond, separating the durable shifts from the passing fads and offering a grounded look at what's actually defining the modern web.

    Here's what the episode covers:

    • High-contrast design: Why today's dark-mode aesthetic is more sophisticated — and more accessible — than its early-2000s predecessor, and how off-black, off-white, and intentional accent colors are driving it.
    • Single-page layouts: A balanced take on when the seamless scroll-through experience is the right call and when it actively works against discoverability and SEO goals.
    • Responsive design as a non-negotiable: With Google's mobile-first indexing now the default, treating responsive layouts as optional is a rankings liability — not a stylistic choice.
    • Sticky navigation vs. parallax scrolling: Data from Smashing Magazine shows users navigate sticky menus 22% faster; meanwhile, Nielsen Norman Group research and Apple's own product decisions signal that parallax has worn out its welcome.
    • Content infrastructure: The case for outsourced content at scale, clickable tables of contents for long-form posts, and writing with Latent Semantic Indexing in mind to capture broader topical authority.
    • Platform choices: Why custom WordPress development is winning over template-based builds for brand differentiation, and why Shopify's ~20% e-commerce market share makes it a specialization worth pursuing for developers.

    The episode draws a clear throughline across all of these trends: the features and practices that are sticking around aren't the flashy ones — they're the ones that reduce friction, improve clarity, and serve users on every device. More from the show: check out Python in 2025: Why the World's Favorite Language Keeps Getting Better for another forward-looking look at where the industry is headed.

    DEV

    9 min
  • Python in 2025: Why the World's Favorite Language Keeps Getting Better

    Python has quietly become the connective tissue of modern software. It powers platforms used by hundreds of millions of people, sits at the heart of the AI revolution, and remains the go-to language for data scientists and financial analysts worldwide. This episode of Development digs into the key Python development trends shaping 2026 — examining not just how popular the language is, but why that popularity keeps compounding.

    Here's what the episode covers:

    • Python's real-world footprint: From Instagram and Spotify to Dropbox and Uber, the episode maps out just how much of the software world already runs on Python — including 21% of Facebook's codebase.
    • Readability as a competitive advantage: Python's plain-English syntax isn't just beginner-friendly — it accelerates code reviews, reduces debugging time, and lowers the cost of onboarding across engineering teams.
    • Data science and analytics dominance: With roughly 58% of Python projects tied to data analytics and a global market projected to exceed $100 billion by 2027, the episode explores the rich library ecosystem — Pandas, NumPy, Matplotlib, SciPy, and more — that makes Python the default choice for researchers and data professionals.
    • AI and machine learning leadership: Python's role in AI development is no accident. The episode explains why its readable syntax, broad library support, and tools like PyTorch have made it the language of choice for organizations like OpenAI.
    • Finance and high-volume data workloads: Stock market analysis, portfolio optimization, fraud detection, and cryptocurrency markets are all areas where Python's ability to handle massive datasets at speed gives it a decisive edge.
    • The framework landscape: The episode walks through Python's three framework categories — full-stack (Django, TurboGears), micro (Flask), and asynchronous (Sanic, Tornado, FastAPI) — explaining when each makes sense and what trade-offs developers should weigh.

    The episode also touches on Python's open-source nature, its extensibility with languages like C++, and its cross-platform portability — as well as honest caveats about where other languages like Julia might be a better fit for specific workloads. More from the show: if you enjoyed this one, check out Why Your AI Is Slower Than a 1998 Modem — And How to Fix It for a deep dive into AI performance bottlenecks and how to solve them.

    DEV

    9 min
  • Why Your AI Is Slower Than a 1998 Modem — And How to Fix It

    A model that aces every benchmark but makes users wait five seconds for a response isn't ready for production — it's a liability. This episode of Development tackles one of the most common and costly gaps in modern AI deployment: the difference between a transformer model that works and one that works fast enough. Drawing from this in-depth guide on optimizing transformer models for low-latency inference, the episode walks through why inference is so expensive by design, and what engineering teams can realistically do about it.

    Here's what the episode covers:

    • Why transformers are inherently compute-hungry — every token generated requires loading and applying hundreds of millions (or billions) of parameters, creating a latency problem baked into the architecture itself.
    • The quadratic cost of self-attention — why longer inputs don't just take a little more time, they can take dramatically more, and what that means for real-world use cases like extended conversations or long documents.
    • Model compression strategies — a clear-eyed look at quantization (including quantization-aware training), pruning, and knowledge distillation, with honest assessments of where each technique can backfire.
    • Hardware choices and their trade-offs — from GPUs and TPUs to dedicated AI accelerators, why running transformer inference on the wrong hardware is a silent performance killer, and how toolkits like TensorRT can help close the gap.
    • Serving infrastructure and deployment models — how frameworks like NVIDIA Triton and ONNX Runtime enable dynamic batching and smarter scheduling, plus the latency trade-offs between cloud, edge, and on-premise inference.
    • Treating optimization as an ongoing discipline — why a one-time tuning sprint isn't enough, and how profiling tools and a layered approach to trade-offs separate teams that stay fast from those that fall behind.

    The episode makes a compelling case that speed and accuracy aren't opposing goals — they're both engineering problems, and both deserve the same rigor. The strategies discussed here aren't theoretical; they're the same techniques production teams are applying right now to close the gap between a model that impresses in a notebook and one that holds up under real user load. More from the show: if you're interested in customizing models for specific domains, check out the episode on Fine-Tuning LLaMA 3 With LoRA: Making AI Work for Your World.

    DEV

    9 min
  • Fine-Tuning LLaMA 3 With LoRA: Making AI Work for Your World

    General-purpose language models are impressive until you need them to be specific. This episode of Development examines how teams can close the gap between what LLaMA 3 knows broadly and what a real-world application demands, using a technique that has quietly made fine-tuning accessible to organizations well outside Big Tech. The discussion is grounded in this practical guide to fine-tuning LLaMA 3 on a custom dataset with LoRA — a step-by-step resource for developers ready to move from experimentation to execution.

    The episode walks through the full arc of a fine-tuning project, from understanding why specialization matters to the realities of shipping a domain-adapted model into production. Key topics include:

    • Why base models fall short for specialized tasks — pretrained on broad internet-scale data, LLaMA 3 lacks exposure to proprietary terminology, internal documentation, and domain-specific context that real applications depend on.
    • How LoRA (Low-Rank Adaptation) works — instead of retraining billions of parameters, LoRA freezes the original model weights and inserts compact, trainable adapter layers, representing updates as low-rank matrix factorizations that drastically cut compute requirements.
    • Hardware and environment setup — realistic guidance on VRAM requirements (24 GB minimum), GPU options, cloud compute alternatives, and the Python/PyTorch/Hugging Face PEFT stack needed to get started.
    • Dataset preparation as the make-or-break step — deduplication, formatting, tokenization, and the 80/20 train-validation split, plus why overfitting on small datasets is a more common failure mode than any configuration error.
    • Training, monitoring, and iteration — configuring Hugging Face's Trainer, choosing a learning rate, reading the loss curve, and knowing when results mean the process worked versus when they mean something quietly went wrong.
    • From evaluation to production — comparing fine-tuned outputs against the base model, and treating a deployed fine-tuned LLaMA 3 instance with the same operational discipline as any other production service.

    The broader argument the episode makes is a strategic one: LoRA didn't just reduce the cost of fine-tuning — it redistributed who can do it. The combination of an open-weight foundation model worth building on and a parameter-efficient adaptation method means capable engineering teams can now produce AI that genuinely knows their domain, runs on infrastructure they control, and wasn't built by a handful of well-resourced labs. If you enjoyed this episode, the show's deep dive on FAISS and HNSW: The Duo Making Vector Search Actually Scalable pairs well with it — another look at the infrastructure layer that makes production AI systems work at scale.

    DEV

    8 min
  • FAISS and HNSW: The Duo Making Vector Search Actually Scalable

    Vector search sits at the heart of modern AI applications, but the gap between a working prototype and a production-ready system can be enormous. This episode of Development digs into the engineering reality of similarity search at scale, drawing on this deep-dive on implementing HNSW with FAISS for scalable AI to explain why the tools most teams start with eventually betray them — and what to use instead.

    The episode traces the full arc of the vector search problem: from naive approaches that collapse under real-world data volumes, through the seductive-but-limited world of tree-based indexes, and finally into the FAISS + HNSW combination that forms the backbone of many production AI systems today. Here's what's covered:

    • Why brute-force search fails at scale: Linear search is fine for small datasets, but the curse of dimensionality makes it computationally ruinous once vector counts climb into the millions.
    • The limits of KD-Trees and Ball Trees: These structures are elegant in low dimensions but degrade sharply as dimensionality increases — the very setting where modern deep learning embeddings live.
    • What FAISS actually gives you: Not a single algorithm, but a toolkit of indexing strategies — Flat, IVF, and Product Quantization — each designed around different trade-offs between speed, accuracy, and memory.
    • The case for approximate nearest-neighbor search: Why accepting a tiny margin of imprecision in high-dimensional space is a pragmatic engineering decision, not a compromise — and how it unlocks orders-of-magnitude performance gains.
    • How HNSW works: The Hierarchical Navigable Small World algorithm applies small-world network theory to vector search, building a multi-layered graph that delivers logarithmic search complexity instead of linear.
    • Tuning and benchmarking in practice: The two parameters that dominate HNSW performance (efConstruction and efSearch), why they must be calibrated empirically, and how to benchmark against recall rate, query latency, and memory — on your own data, not someone else's.

    The episode also flags practical pitfalls: index configurations that quietly become memory bottlenecks, and the limits of GPU acceleration when the surrounding data pipeline isn't designed to match. The throughline is that vector search is an active systems engineering discipline, not a plug-and-play solved problem — and the decisions made early have compounding effects as data grows.

    For more on building sophisticated AI systems, check out the earlier episode When One AI Agent Just Isn't Enough: Multi-Agent Collaboration With AutoGPT.

    DEV

    8 min
  • When One AI Agent Just Isn't Enough: Multi-Agent Collaboration With AutoGPT

    Scaling an AI workflow beyond a single agent sounds like a natural next step — until you're wrangling shared memory pools, circular communication loops, and agents that flatly disagree with each other. This episode of Development digs into the real engineering work behind multi-agent collaboration, drawing on this in-depth guide to implementing multi-agent systems with AutoGPT to unpack what it actually takes to make autonomous agents cooperate at scale.

    AutoGPT is more than a GPT wrapper — it's a modular framework with persistent memory, recursive task planning, and full agent lifecycle management. But out of the box, it doesn't hand you multi-agent coordination. You build that yourself. Here's what this episode covers:

    • Why multi-agent systems exist: The core case for parallelizing complex workflows — research, execution, and critique happening simultaneously rather than sequentially.
    • Role design as a foundation: Why every agent needs a clearly scoped responsibility (Researcher, Executor, Critic, Coordinator) before a single line of code is written.
    • Communication architecture: Comparing HTTP endpoints, shared queues, WebSockets, and direct function calls — and why ambiguous protocols lead to agents querying each other in circles.
    • Conflict resolution strategies: How to handle agents that reach contradictory conclusions, from majority-vote systems to hierarchical overrides and meta-level arbiters.
    • Implementation realities: Python 3.11+, LangChain, Docker containerization, API token burn rates, and why verbose timestamped logging is non-negotiable from day one.
    • Scaling and maintainability: Caching aggressively, keeping agents hot-swappable, externalizing configs, and resisting the instinct to add more agents when too many agents are already the problem.

    The episode closes with a reminder that multi-agent collaboration is genuinely powerful — but that power comes with proportionally more failure surfaces, communication overhead, and unpredictable behavior. Architecture and observability aren't afterthoughts here; they're what separates a well-coordinated system from an expensive, tireless mutiny. For more on AI tooling in practice, check out the earlier episode Building an AI Code Refactoring Tool With GPT 5.6 Sol.

    DEV

    9 min

About DEV

From the publisher's feed

Software and web development from the side that has to ship it and then live with it. Architecture decisions with a cost attached, scoping, technical debt, hiring and vendor selection, and the AI tooling question every engineering team is now answering whether they planned to or not.