Western Governors University is committed to expanding access to higher education through innovative online degree programs. The Senior Software Engineer - Site Reliability will act as an expert in software engineering, mentoring junior engineers, leading teams, and ensuring the quality and success of projects while contributing to the overall effectiveness of the organization.
Responsibilities:
- Acts as an expert in assigned areas of software engineering. Mentors other more junior engineers to be more effective in their role
- Maintains accountability for quality of services in their assigned area and success of assigned projects for on-time, on-budget, and on-scope delivery
- Contributes as a lead or consultant for at least one team. May be a ‘go-to’ person in a particular sub-discipline or application area
- Contributes formally and informally to effectiveness of the team through formal and informal mentoring and direction during team meetings and problem solving
- Communicates effectively and regularly with other disciplines to identify and resolve problems and contribute to organization success
- Leads teams or cross-functional groups in identifying and transferring knowledge through formal and informal means (formal presentations, internal white-papers, etc)
- Acts as a planning consultant for team or portfolio when identifying technical risks and dependencies. Identifies potential problems, as well as potential solutions, far in advance and mentors other engineers in risk management
- Speaks authoritatively and accurately with respect to questions related to their area of ownership or the platform as a whole
- Contributes directly, and leads others, in rapid identification of system problems minimizing time to restoration of services
- Assists engineering management in identifying opportunities for improvement within the team, including training, technical feedback, emerging problems, etc
- Applies strategies and tools to plan and execute testing strategies to find the ‘sweet spot’ that maximizes quality while minimizing costs. Demonstrates the ‘good enough’ principle that balances quality and time to implement
- Interprets functional, non-functional, and implied requirements into designs and code that meet those specifications. Identifies gaps, risks, and deficiencies in such requirements and proposes solutions. Guides more junior engineers on how to plan and execute on requirements delivery
- Performs other job-related duties as assigned
Requirements:
- Bachelor's Degree in Computer Science, Information Technology, or related field
- 6 years of experience in software development; pioneering new approaches and technologies in engineering
- Experience in web-based applications and web services using Java, REST, ServiceNow, and other web technologies, including experience interfacing with databases, and integrating third party products with existing infrastructure
- Understanding of the processes associated with software development, including Planning, Measurement, Coding, Testing, Reuse, Tools, Abstraction, Algorithms and Complexity, Security, and basic system understanding
- Ability to employ the tools and techniques related to an engineering discipline, such as database management, user interface development, inter-process communications, etc
- Ability to create designs that can be realized in code that achieve functional and non-functional requirements for an application or at the system level. Appropriately uses design patterns, system decomposition, security, and fault tolerance. A demonstrated capability in one or more design methodologies, such as Object-oriented design, Function-oriented design, data centered design and the notations appropriate for each
- Ability to understand differences, strengths and weaknesses of various Software Development Life Cycle models, and practical considerations of options
- Understands implications of Software as a Service in the creation of software systems. Thinks of and designs for scale, reliability, and cost in a public cloud environment. Uses data and metrics to analyze Key Performance Indicators
- Ability to explain the basic value of a system and subsystems to users and how the various subsystems inter-operate to provide features. Able to act as a partner with Operations in solving problems at a system level. Knows what the system can and cannot do
- Ability to demonstrate a sense of urgency when looking for solutions to problems
- Understands the general higher education landscape, particularly with on-line higher education, including competitive landscape, opportunities, and feature gaps
- Ability to identify innovative ideas or technologies that represent opportunities to advance the capabilities of the university education platform, our efficiencies in improving our platform, or both. Can leverage change management processes to drive adoption
- Ability to make the team stronger and more cohesive
- Strong communication skills with the ability to engage others at the right level at the right time. Communicates effectively in group settings by knowing audience, listening effectively, and being responsive. Presents solutions not just problems and effectively manages expectations
- Ability to identify, mitigate, or avoid risks and works closely with leads or managers to make sure that such risks and dependencies are understood, accounted, and planned for through an appropriate strategy
- Master's Degree or PhD in Computer Science, Information Technology, or related field
- Experience with IntellliJ/VS Code, JIRA, Git
- Experience with Agile/Scrum Project Development
- Experience with Java or a similar Object-oriented language
- Experience with IDM/OSSO, Hibernate/Seam, Banner
- Experience with Application Integration with legacy systems
- Experience with Cloud-Native Development, and/or Porting/Refactoring of On-Site to Cloud (preferably AWS)
- Experience with J2EE, Java EE, JavaScript, and SQL
- Technical Certifications