• Unnecessary abstractions - I have seen this happen when companies try to customise a standard product like Kubernetes to make the configuration easier to work with. However, what ends up happening is them defining their own standard or DSL but not keeping docs up-to-date. This makes it hard for new joiners as they have to learn this bespoke standard. If they had not added an abstraction, people who had already worked with the product would be able to jump straight into using it.
  • Definition of done
  • PR bot

API

  • add valuable info to each request context/logger, helps debugging
  • set body limit
  • request validation
  • request logger
  • request id
  • compile with version
  • use plural for arrays

Unsorted:

  • do not use down database migrations - state no longer matches version control
  • use CI/CD to maintain code quality