The position involves designing software tools and subsystems to support software reuse and domain analyses, managing their implementation, and overseeing software development and support using formal specifications and design techniques. Responsibilities include estimating software development costs and schedules, reviewing existing programs for refinements, and formulating specifications for software applications. The role also includes program design, coding, testing, debugging, and documentation, as well as instructing and checking the work of other personnel. Quality assurance review and evaluation of software products are also key responsibilities.