Cristina Poncela Cubeiro is a software and machine-learning engineer at Earendil who studies how AI coding agents reshape software development, from learning to program to maintaining production systems. As a self-described native AI engineer, she learned her craft alongside these tools and now focuses on preserving human judgment when generated code becomes dangerously easy to produce.
Poncela Cubeiro studied mathematics at the University of Bristol, taught herself software development, and worked with two British startups before joining Bending Spoons in late 2024. Her early writing about Flutter describes using ChatGPT and documentation together to solve unfamiliar implementation problems. At Bending Spoons, she developed StreamYard features spanning mobile interfaces, audio, integrations, search optimization, and user-experience measurement; her account of redesigning its mobile studio details the constraints of changing an established product.
Her assessment of Cursor and competing coding tools emphasized their ability to find relevant files and understand surrounding code. After leaving Bending Spoons in 2025, she joined Earendil and contributed a model-registry reliability fix to its open-source Pi coding-agent project.
Building software that agents and humans can understand
At AI Engineer Europe 2026, Poncela Cubeiro outlined three practical concerns:
- Generated code can masquerade as progress. Coding agents increase output while shrinking the time available to decide whether a change is necessary, coherent, or safe. Their speed can turn initially useful assistance into pressure to ship without adequate review.
- Agent-legible architecture requires explicit boundaries. Libraries give agents relatively contained problems; production applications intertwine permissions, billing, feature flags, interfaces, and state. Poncela Cubeiro advocates modular components, clearly defined execution flows, and familiar patterns that keep local changes from producing unexpected global behavior.
- Mechanical constraints make judgment actionable. Centralized SQL access, shared UI primitives, unique function names, and lint rules against overly broad exception handling constrain agent behavior while making changes easier to inspect. She has also explored TypeScript’s erasableSyntaxOnly mode to keep source code and runtime behavior more closely aligned.