Overview
Skills
Job Details
This role is 4 days on-site.
This position directs all aspects of Software Architecture (SA) including the use, integration, design and life cycle of applications across the enterprise. Creates high-level architectural specifications, ensuring feasibility and integration with existing systems/platforms. Responsibilities include both leadership and participation in the development of requirements and principles of the future state of SA, as well as ensuring that application design, implementation and documentation are in line with the guidelines of the architectural standards. Responsible for ensuring standards of application development (code quality, application security, integration and technology toolset) are followed.
Assumes the role of architect on multiple projects and guides teams in daily design and refactoring tasks. Participates with the architecture team in evaluating emerging technologies and documenting existing architectures. Determines specifications, then plans, designs and provides direction to address complex critical application or system needs, utilizing appropriate processes and designs in accordance with the Software Development Life Cycle. Performs a variety of tasks, thus, a wide degree of creativity and latitude is expected.
Responsibilities:
- Provide architectural guidance and oversight in the design and implementation of all active projects. Lead design and technical problem-solving meetings with developers. Identify and define integration points with third party solutions.
- Recommend design methodologies that consistently yield the right level of technical design to ensure development of software solutions that conform both to customer requirements and software development standards. Monitor and oversee code quality on active projects through the use of code reviews, code analysis tools, and joint refactoring sessions.
- Work closely with other staff to provide roadmaps depicting future state of enterprise applications and technology.
- Provide research, education and training on design best practices to development staff.
- Performs other duties as assigned.
Expectations:
- Approach design tasks pragmatically and be able to balance the desire for ideal designs with the realities of project goals and constraints. When appropriate, be willing to present multiple design options to a team for consideration along with the implementation costs and the benefits and drawbacks of each option.
- Collaboratively work with developers on design tasks and be able to clearly and diplomatically articulate the rationale behind technical designs. Although the software architect will have significant authority on technical architecture, consensus among developers is generally preferable.
- Participate with the architecture team to provide guidance and direction for all domains associated with architecture for the enterprise.
- Assist and work with other application development staff to solve technical issues related to software development and support.
- Present clear view of architectural direction for enterprise application development in regards to integration, technology and life cycle controls as they relate to the strategic goals and plans of the organization.
- Ensure architecture documents and application standards are maintained and visible to team members.
- Independently manage workload and set priorities while remaining flexible to accommodate deadlines and projects initiated by others.
- Provide strong leadership skills and mentoring to the development staff.
- Continually expand knowledge of available tools and best practices and encourage the use of those tools and practices to support application development needs for the IT department.
- Evaluate potential application of new technologies for utilization within the business environment and encourage use of technologies that enhance performance and risk mitigation.
- Balance multiple tasks, priorities and deadlines.
- Protect business records created or used in business processes to ensure availability, confidentiality, integrity; and the retention and destruction of such as specified by relevant policies.
- Ability to handle multiple tasks simultaneously, ability to problem solve, memory for details, ability to prioritize, and ability to maintain concentrated mental and visual attention for sustained periods
Knowledge and Skills:
Experience: A minimum of eight years of application development experience with a wide range of application types, including web and cloud-based applications as well as at least four years of experience in application and system design, with a strong focus on scalable, distributed architectures, particularly within the Microsoft Azure cloud environment.
Education: Bachelor s degree in Computer Science or related technology degree. Professional certificate or a graduate degree preferred.
Interpersonal Skills: A significant level of trust and diplomacy is required, in addition to normal courtesy and tact. Work involves extensive personal contact with others and/or can be of a personal or sensitive nature. Work may involve motivating or influencing others toward a common vision/goal. Outside contacts become important and fostering sound relationships with other entities (companies and/or individuals) becomes necessary.
Other Skills:
- Strong knowledge of OOP design patterns and anti-patterns, MVC architecture, refactoring catalogs, and reusable frameworks.
- Experience with multiple modeling tools.
- Familiarity with Microsoft technologies is required.
- Knowledge of security techniques related to application development and thorough knowledge of the techniques required to protect against basic vulnerabilities.
- Experienced with data mart and data warehousing concepts and tools.
- Advanced level programming skills.
- Experience working with an Agile methodology and Test Driven Development is a plus.
- Experience with financial applications or accounting a plus.
- Ability to think orderly, logically and analytically and strong problem solving skills.
- Must be able to work and travel independently and use general office equipment.
- Must be goal-oriented and have strong sense of team solidarity.