Skip to content

TableCheck-Labs/engineering-first-principles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Engineering First Principles

See the original blog post https://www.tablecheck.com/en/blog/tech/frontend-engineering-first-principles/

Principle 1: Be the developer you want to work with

It is amazing what one can accomplish if one does not care who gets the credit.

— Harry Truman

The golden rule is at the heart of our engineering culture: "Treat others as you would like others to treat you." We believe in fostering an environment of vulnerability, trust, empathy, and accountability. By supporting each other's growth, celebrating collective achievements, and practicing egoless programming, we create a team that thrives on holding ourselves accountable for our mutual success. We recognize the importance of maintaining a healthy work-life balance and prioritize personal health to ensure sustained productivity and well-being. We view our coworkers as internal customers, valuing their unique perspectives and treating our interactions as meaningful relationships rather than business transactions. By prioritizing their needs and providing exceptional support, we strengthen our team and cultivate an environment that embraces collaboration and success.

Principle 2: Practice a healthy skepticism

It is important not to worship what is known, but to question it.

— Jacob Bronowski

Embracing a healthy skepticism enables us to challenge the status quo and continuously question our understanding of problems and solutions. By acknowledging our cognitive biases and being open to alternative perspectives, we cultivate an environment of continuous learning and improvement. We encourage research, exploration, and exposure to diverse technologies, languages, industries, and cultures, seeking inspiration from external domains to solve local challenges.

Principle 3: As simple as possible, as complicated as necessary

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take.

— Antoine de Saint-Exupéry

We believe in the elegance of simplicity. Avoiding over-engineering for the sake of engineering, we strive to create solutions that are simple, maintainable, and fit for purpose. By adhering to the rule of least power, we resist the temptation to add unnecessary complexity. Our focus is on building efficient, scalable, and robust systems that solve real problems effectively.

Principle 4: Iterate quickly

Better a diamond with a flaw than a pebble without.

— Confucius

Recognizing that perfection can be the enemy of progress, we embrace an iterative approach to development. We prioritize speed and agility, valuing the ability to adapt and iterate rapidly over excessive planning and premature optimization. We understand that delivering value to our customers requires setting achievable milestones, fostering a culture of experimentation, and embracing the philosophy of "better done than perfect." We iterate, learn, and refine our solutions based on feedback and real-world usage.

Principle 5: Engineering must serve the product and customer

If I had an hour to solve a problem I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions.

— Albert Einstein

Our ultimate goal as engineers is to create value for our customers. We understand that software development is not an end in itself but a means to serve the needs of our users. We align our engineering efforts with the product vision and business goals by developing a deep empathy for our customers. We strive to understand the problems we are solving and focus on delivering solutions that truly meet the needs of our users.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published