Analyze, design, verify, validate, implement, apply and maintain software systems. Appropriately apply discrete mathematics, probability and statistics, and other relevant topics in computer science and supporting disciplines to complex software systems. Generalize techniques, as appropriate, to apply to multiple domains. Develop and provide appropriate documentation and training. Present briefings and demonstrations to stakeholders.