Engineering principles at TheyDo
These are the engineering principles we work by at TheyDo. They complement our company values and give engineers a safe room for autonomous decisions. Each principle is made applicable through two or three areas of action.
With these we declare our beliefs, paint the picture of what we see as the foundation of a great engineering culture, and take stands in areas that are highly debatable, so that every engineer on the team knows what is valued most.
1. Keep it simple
Complexity is the enemy of growth.
Focus on simple user experience
Simple for the user means simpler to build and maintain. As complexity increases linearly, the cost of change increases exponentially. Aim to simplify with each iteration.
Optimise for low cognitive load
Copying proven patterns and using boring technology is not just allowed, it is encouraged. The real value is in what you build with them.
Buy before build. Our energy is best spent on our magic sauce, so we outsource the commodities that are not our core business.
Why
"The Journey is the most powerful business tool." That is TheyDo's premise, and it makes our product manage diverse business processes, a lot of business data, and the expectations of multiple personas.
If not tamed, all of that fast-tracks us to unmanageable complexity, the type that brings a product and a business to a halt, making it unusable, unmaintainable and unchangeable.
That is why we consider it of the utmost importance to keep the product, and as a result the underlying tech, as simple as possible at every step. We know this to be a lot of work, because simple does not mean easy. Distilling complex concepts into simple solutions requires a level of clarity that is acquired only through a lot of iteration.
We don't see a way around it though. So we intentionally invest in working that simplicity into everything we build. Bit by bit.
2. Own your craft
You're the bar raiser for speed and quality.
Practice product engineering
Consume customer insights and be an end-to-end stakeholder in the product. Understand the value the product brings to customers and be opinionated about product and UX.
Think in systems. Look beyond the feature request to find platform opportunities and system-level solutions.
Release faster by slicing product functionality, not by dropping code quality. The question to ask is "Is there a smaller feature set that can be delivered in an impeccable state faster?" Build skateboards.
Internal quality enables external quality
Optimise for clarity in code and interfaces rather than for cleverness. Readability over dogmatic DRY and premature abstractions.
Great developer experience is the catalyst of high velocity. Aim to reduce the effort of maintenance rather than the effort of implementation.
The product team owns the quality and all the testing of its deliverables. The QA team is there to educate and to maintain the testing framework.
Navigate technical debt strategically
Don't ask for permission to refactor. Small, regular refactoring beats and even prevents large rewrites.
System health is as important as building new features.
Not all debt needs to be paid. Some debt naturally expires.
Why
Great engineering isn't just about writing code. It's about crafting solutions that make a real difference for customers. With that craftsmanship, code becomes clearer, systems become more reliable, and customers get better solutions.
Building a successful product is a great accomplishment for engineering. Creating an environment where successful products are repeatedly built is the next level. We want to be at that level, and we intentionally invest in the practices that shape such an environment: continuous delivery of small product additions and changes, software assessed from the perspective of both users and product developers, and developer experience as a catalyst of speed.
3. Enterprise-ready solutions
In enterprise SaaS, "it works on my machine" is not sufficient.
Performance, security and scalability are first-class citizens
The definition of done has four parts. It works. It is easy to use. It performs at scale. It is secure.
We build for ten times the current usage, for instance by testing with data sets ten times the current size.
Reliable software is more than 99.999% uptime
The software reliably does what it looks like it does.
We measure what happens on the client, the customer's machine, not just on our servers.
Why
Enterprise software isn't just about features. It's about trust. Our customers run critical business processes on TheyDo, and a single outage or security incident can damage years of built-up trust in seconds.
The stakes are particularly high in enterprise SaaS because our customers build their workflows around our platform, trust it with sensitive business data, and scale fast when they are successful.
That's why we treat performance, security and reliability not as features to add later, but as an end-to-end responsibility for every engineer.
4. Aligned autonomy
Alternate intentional collaboration with long chunks of deep work.
Autonomous decision making
Competence: use your expertise, guided by the principles, guardrails and known patterns, to make decisions autonomously.
Clarity: complex discussions and decisions are best made in written form, in a long-lasting medium. Not on Slack.
Treasure your state of flow
It is not just ok but expected that you protect your own focus time.
Deep work is not done only alone. Pairing, team work sessions and workshops are encouraged as collaborative deep work. You can collaborate with AI as well.
Learn deliberately
Share learnings proactively, especially from failures. Default to sharing in public channels rather than DMs or 1:1s.
Do minimum viable documentation: just enough to be useful.
Why
Engineering is a team sport that, paradoxically, requires intense individual focus. We work like a professional football team, in small organised groups taking the ball forward, not like a team of seven-year-olds all chasing the ball with nobody in position. We like being on Santa Fe.
In a fast-paced environment, the ability to alternate between deep individual work and effective collaboration is essential for delivering complex solutions. Complex problems require uninterrupted deep thinking. Knowledge sharing multiplies team effectiveness. Written documentation scales better than tribal knowledge. Autonomous decisions keep us moving fast. And collaborative moments, when thoughtfully chosen, create breakthrough insights.