Good understanding of object oriented and functional programming and design and software engineering practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing and operations Experience in delivering software in the Agile environment