Cole McIntosh

Software Engineer & Founder

The New Programming Layer: Learning to Operate Alien Technology

Andrej Karpathy captured the moment well: programming is being dramatically refactored, and there's a new layer of abstraction to master. The bits contributed by the programmer are increasingly sparse and between.

A New Layer of Abstraction

We're not just learning new languages or frameworks. We're facing an entirely new layer of abstraction that sits on top of everything we already know:

  • Agents and subagents - orchestrating AI systems that can reason, plan, and act
  • Prompts and contexts - engineering the inputs that shape model behavior
  • Memory and modes - managing persistent state and operational configurations
  • Permissions and tools - defining boundaries and capabilities for autonomous systems
  • Plugins, skills, and hooks - extending functionality through modular components
  • MCP and LSP - protocol layers for model-tool communication
  • Slash commands and workflows - user interfaces for AI-assisted development
  • IDE integrations - embedding intelligence into our existing tools

This is not incremental. It's a new programming paradigm layered on top of everything that came before.

Operating Alien Technology

The stochastic, fallible nature of these systems defies our instincts. We're trained to think in deterministic terms, to trace execution paths, to reason about code with certainty. Large language models don't work that way. They're probabilistic systems where the same input can yield different outputs, where capability and limitation blur together, and where understanding "why" something works often remains opaque.

This creates genuine cognitive dissonance. The engineering discipline we've honed emphasizes reproducibility, predictability, and debuggability. Now we're building on foundations that are fundamentally none of those things. It's like being handed powerful alien technology with no manual - everyone has to figure out how to hold it and operate it.

The 10x Question

The tools exist. The capability is there. Yet mastery remains elusive because the skill set required is genuinely new.

Traditional programming skill doesn't automatically transfer. Understanding transformers helps, but knowing how to effectively prompt, when to use agents versus direct calls, how to architect systems that gracefully handle model uncertainty - these are distinct skills that require deliberate practice.

The engineers who will thrive are those who engage now, who build mental models through hands-on experimentation, who accept that their carefully constructed expertise needs expansion.

Roll Up Your Sleeves

The programmable layer of abstraction isn't going away. It's getting deeper and more capable. Every month brings new primitives, new patterns, new possibilities. The choice isn't whether to engage with this shift - it's how quickly you adapt.

The ground is shifting. Roll up your sleeves.