Solid understanding of design patterns dependency injection, domain driven design Advanced ability to read, interpret, and perform software development activities including research, programming, consulting, functional and process documentation