Test-driven development is a concept of writing application code after writing tests. It requires from a developer to first define what is the expected outcome before starting the implementation.
Bitmasks are a very useful way to compress multiple boolean flags in a single variable. It can reduce memory usage and operations on bits are basically as fast as they can get. In practice, any time you want to have multiple flags describing something in your application, a bitmask could be the right tool for the job.
ECS (Entity Component System) is a great architectural pattern that is perfect for building medium to big games, that offers some advantages over traditional OOP (Object Oriented Programming). In short, when using ECS, every game object consists of Entity - unique ID, multiple Components that hold data, and Systems that operate on and manipulate components. This separation allows for much easier implementation of independent features than big objects built with inheritance.