Lead the design and development of large-scale, multi-tiered, embedded or distributed software applications, tools, systems, and services. Contribute to software documentation. Build software components architected by senior engineers. Triage, debug, and fix bugs in day-to-day operations. Report on the status of projects and systems using available metrics.