Architectural Strategies Definition
- 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, processes, and technologies. Identifies opportunities to improve/refine these and harvest artifacts and patterns used on specific projects for general use.
- Participates in governance/stewardship of Service Oriented Architecture (SOA) artifacts and definitions, including enterprise services, enterprise data, business events/topics, contracts and associated publish/subscribe participants.
- Participates in recommendations on platforms, technologies and tools.
Solutions Design and Implementation
- Participates in discussions with Business Analysts and domain experts to determine requirements and model business processes.
- Assesses architectural requirements/constraints such as security, scalability, performance, availability, and redundancy. Ensures requirements can be met 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 evolves pattern-based designs appropriate for the solution with a clear separation of concerns, e.g. presentation and data access patterns, service/application layers, domain model, infrastructure services, etc. Grows and evolves the design, ensuring the integrity of the design is maintained over the course of a project.
- Communicates and socializes 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, frequent check-ins, continuous integration, collaboration, continuous review/feedback, etc.
- Coaches and mentors developers on project team on design/implementation approaches and techniques.
- Writes code and critiques developers’ code.
- Ensures designs and implementations fulfill not only functional needs but also non-functional needs such as maintainability, pluggability, extendibility, testability, stability, configurability and supportability.
- Produces additional technical documentation such as high-level design, support documentation and data dictionaries, based on need and value. Ensures all artifacts are placed under version control and organized in accordance with agreed standards.
- Assists in the accomplishment of Insperity Company goals.
- Helps other employees to accomplish Insperity Company goals.
- Performs other duties as may be assigned by department supervisor.
- Participates in the Disaster Recovery plan as required.
Qualifications
- Bachelor’s Degree in Computer Science or related field (or equivalent work experience) is required.
- Five or more years of professional experience is required.
- Solid grasp of design patterns and principles, particularly Object-Oriented Design (OOD), Service-Oriented Architecture (SOA) and Event-Driven Architecture (EDA).
- Deep understanding of architectural concepts and the fundamentals of good software design
- Ability to deliver innovative solutions and to make sound qualitative judgments on appropriateness and effectiveness of solution approaches.
- Expertise in C# and VB.NET.
- Broad knowledge and experience of Microsoft development technologies, particularly .NET Framework, WCF, WF, WPF, XAML, Silverlight, LINQ, ADO.NET Entity Framework, ASP.NET, and Visual Studio Team System.
- Good working knowledge of JavaScript/AJAX/jQuery, HTML, XML and XSLT.
- Good working knowledge of SQL Server, SQL language, and relational concepts.
- Familiarity with Unified Modeling Language (UML).
- Knowledge of ancillary technologies in use at Insperity, such as Java, PowerBuilder, IBM Informix, Informatica and WebFOCUS, or an ability to quickly learn any of these if needed.
- Strong teamwork and collaborative skills.
- Strong verbal and written communication skills, with an ability to express complex technical concepts in business terms.
- 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.