Delivers consistent, pattern-based, robust, maintainable, standards conformant designs and solutions that fulfill business requirements. Works collaboratively with development team to create and deliver such solutions. Ensures all produced work aligns with Department’s strategic vision. Participates in formulation and communication of architectural strategies.
Possesses leadership skills needed to guide developers in delivering code that conforms to produced design. Works with Product Owners in ascertaining roadmap feasibility; delivers solutions based on roadmap that adhere to given constraints with focus on quality and time-to-market. Helps Scrum Masters/Project Managers in release planning.
Under limited supervision and moderate decision-making: Solutions Design and Implementation:
- Participates in discussions with Product Owners, Business Analysts and domain experts to determine requirements and model business processes.
- Uses empirical data to assess architectural requirements/constraints such as security, scalability, performance, availability, and redundancy. Ensures requirements can be met with minimal upfront design at an acceptable cost and with acceptable tradeoffs.
- Ensures physical and logical designs fit within our enterprise architectural framework and conforms to accepted architectural standards.
- Identifies necessary interactions with other applications/services and defines message exchange patterns, data contracts, and service-level agreements (SLA).
- Formulates and evolves pattern-based designs appropriate for the solution with a clear separation of concerns. Grows and evolves the design, ensuring the integrity of the design is maintained over the course of a project.
- Communicates and evangelizes the design across the team and fosters an environment of shared goals, collective ownership, and collaboration in building a design strategy.
- Encourages adoption and adherence to good development practices such as well factored, ‘intention revealing’ code, comprehensive automated tests, code review, gated check-ins, and continuous integration.
- Coaches and mentors developers and teams on design/implementation approaches and techniques.
- Brings consensus amongst developers on design and implementation strategy.
- Publishes technical documentation such as high-level design, logical diagrams, support documentation based on need and value.
- Writes code and critiques developers’ code.
- Measures various code metrics like Maintainability Index, Cyclomatic Complexity, Depth of Inheritance and Class Coupling; refactors code as needed to attain better metrics.
- Ensures designs and implementations fulfill not only functional needs but also non-functional needs such as security, maintainability, extensibility, testability, stability, configurability and supportability.
- Works with teams designated to improve application health, performance, and supportability.
- Participates in technical and leadership trainings as needed and/or recommended by supervisor.
- Engages in Architectural Review of others’ designs and implementations.
- Provides architectural guidance on solution design and integration strategies, in the form of standards documentation, examples, training and consultancy.
- Works with other Solutions Design team members to encourage a common approach across projects with regard to patterns, principles, practices, and technologies.
- Participates in governance/stewardship of architectural patterns and definitions.
- Engages with Enterprise Technology Stakeholders in evaluating and adopting technology, platform and tools.
- Bachelor’s degree in Computer Science or related field is required.
- 7+ years of professional experience is required.
- Solid grasp of design patterns and principles, Object-Oriented Design (OOD), Service- Oriented Architecture (SOA), Microservices and Event-Driven Architecture (EDA).
- Ability to deliver innovative solutions and to make sound qualitative judgments on appropriateness and effectiveness of solution approaches.
- Deep understanding of architectural concepts and the fundamentals of good software design.
- Problem solving skills and being resourceful is required.
- Ability to quickly learn technologies and concepts as needed.
- Expertise in C#.
- Broad knowledge and experience of Microsoft frameworks, particularly .NET/.NET Core, ASP.NET/ASP.NET Core, MVC/WebAPI, WCF, WF, and Entity Framework/other ORM.
- Expertise in SQL Server, T-SQL, and relational concepts
- Experience in REST API, JSON, XML and XSLT
- Working knowledge in security aspects like OWASP and static code analyzers like SonarQube.
- Experienced in Agile/SCRUM methodologies and Agile modeling.
- Knowledge of Architecture Frameworks like TOGAF is a plus.
- Working knowledge of Roslyn Compiler platform is a plus.
- Knowledge of Containerization is a plus.
- Strong teamwork and collaborative skills.
- Strong verbal and written communication skills, with an ability to express complex technical concepts in business terms using diagrams and presentations as needed.
- Communicates tactfully and effectively, and maintains positive and effective work relations with those encountered in the course of employment.
- Possesses a strong customer service attitude.
- Exhibits a passion for learning and continuous improvement. Takes responsibility for acquiring new skills and broadening knowledge
- Exhibits a commitment to the utilization of defined standards and processes.