Tech Blog > Engineering Principles
Last update 01/05/2025

Engineering Principles

Carl-Johan Backman
A shared definition of what great engineering looks like.
Engineering Principles

These are the operating principles we believe underpin a high-performing engineering organization. A shared definition of what great looks like that helps us aim higher, stay aligned, and drive real impact through technical excellence at Emma. Each principle has a set of associated practices that describe its implementation. Those practices are maintained and evolved by our community of Staff+ Software Engineers.

We engineer with people in mind.

We embrace software engineering as a team sport and socio-technological endeavour—where success depends as much on how we work together as on the systems we build. Delivering great software goes beyond writing code; it requires collaboration, communication, and shared purpose. We believe that empowered, cross-functional teams—equipped with the context, agency, and resources they need—are the key to creating value and driving innovation.

We ship with purpose and for impact.

We are empowered engineers, that act with agency and care deeply about the problems we solve and the impact we bring, not just the code we write. We strive to understand our users, our business, and our impact—so we can make smart decisions, challenge assumptions, and prioritize what truly matters. We take ownership from idea to outcome, combining product sense, data, and empathy to deliver real value.

We choose progress over perfection.

Our goal is continuous improvement. Success comes from habits that make us the best at learning, adapting, and delivering value—not chasing unattainable ideals. We measure the impact of our software, embrace mistakes as opportunities, and strive for excellence through iteration. By exploring trade-offs and making pragmatic decisions, we balance quality with momentum and maximize our ability to learn.

We build excellence in.

We provide opinionated, reusable foundations that help teams stay aligned while preserving autonomy. By making secure, cost efficient, high-quality, and compliant services the easiest path, we enable developers to move fast with confidence. Through everything as code, stellar documentation, and developer-centric platforms, we embed excellence into the way we scale.

We release small, we release often.

We act with urgency and embrace small, frequent pull requests and well-tested deployments to deliver value continuously, reduce risk, and accelerate feedback. Thin, vertical slices of functionality are shipped regularly, validated in production, and refined based on real-world insights.

We build it, we own it.

We take full responsibility for the software and data we create—designing, maintaining, observing, and firefighting as needed. Ownership extends across the entire tech stack, and we support each other in making it successful. True autonomy, mastery, and purpose come from being accountable end-to-end. (Credit to Alex Ewelöf for coining the term).

We treat data and interfaces as first-class citizens.

Data, contracts, and UIs are not afterthoughts—they are integral to how we design, build, and evolve software. Defined early and thoughtfully, they drive quality, reduce complexity, align teams, and enable loosely coupled architectures. By investing in clear, stable interfaces, we accelerate delivery, reduce friction, and shorten time to value.

0