The Application Architect develops application architecture specifications, application partitioning, object and data modeling, database design, programming, quality assurance, and implementation support, by participating in application standards development and serves as an evangelist for best practices in development. This role is guided by an object-oriented software lifecycle framework and will continue to improve overall application technology. The Architect brings best practices to the development foundation and framework, and educates and leads the development teams toward these standards.
Key Areas of Responsibility
Develop technical coding and documentation standards.
Technically manage complex projects efforts in development, maintenance and enhancements of business system applications.
Employ object-oriented analysis and design techniques including use case analysis, object modeling, and database schema design to ensure business requirements and design goals are met.
Participate in application architecture planning (including system partitioning and framework design) to determine optimal solution architecture, efficiency, maintainability, and scalability.
Make technical decisions to meet the design goals laid out in product road map and by management.
Collaborate with the application architecture team to ensure solutions fit within the overall architecture.
Collaborate with business and project teams to gather requirements and business needs.
Develop and/or lead:
o Development of the application architecture framework. This implies mastery of the entire architecture.
o High-level system narratives, storyboards, and user interface prototypes.
o Detailed design specifications for hardware and software use by the technical team.
o System test plans, ensure software quality assurance (SQA) standards are achieved, and validate that business goals are accomplished.
o Detailed estimates for projects, including resource allocation, timelines, and budget.
Complete projects/tasks on a timely basis, according to commitments made to stakeholders and management.
Develop new architectures for applications based on no previous experience with new technology.
Monitor technical progress of project teams and provide mentoring where appropriate.
Identify issues that require more attention, and work to resolve issues based on an understanding of the business problem being solved.
Draw appropriate resources together in order to address technical issues.
Actively participate in the industry externally through internet research, white papers, or conferences.
10 years in application development.
Bachelor or Masters of Science in Computer Science, or equivalent working experience.
Other Required Qualifications
Working experience using software design support tools and productivity suites such as Microsoft Visio, Microsoft Office, and Microsoft Project.
Possess expert level knowledge of product lifecycle and understanding of the role of methodology / frameworks, highly proficient in Microsoft technologies and standards, skilled in three-tier / n-tier application development, and have a good knowledge of UML and other standard frameworks.
Demonstrate mastery in leading software development projects and managing implementation projects that utilize Microsoft and/or IBM technologies.
Possess expert level knowledge of object-oriented design, and programming techniques.
History of balancing multiple priorities simultaneously with the ability to adapt to the changing needs of the business while meeting deadlines.
Strong planning and organizational skills.
Demonstrated ability to mentor and coach others.
For Internal Applications:
Expertise in creating applications using technologies such as C#, WinForms, WPF, Web Services, Windows Services, XML, loosely coupled systems, and SQL Server.
Skilled in n-tier application development and design.
Demonstrated history of being a technical thought leader capable of transforming development processes by engaging in end-to-end idea management: generate, socialize, evangelize, implement, nurture, and cause the adoption of new technical initiatives.
Experience with any / all of the following is a plus: complex threading scenarios, test driven development, domain driven development, aspect oriented programming, and framework authorship.
Experience in leading software development teams and managing implementation projects that utilize client / server and browser/server technologies.
Experience with creating application architectures using client server, iSeries, or browser/server tools and technologies.
Demonstrate ability to work effectively with, and support the needs of, project team members and the customer support department.
Demonstrated outstanding written and verbal communication skills. Ability to work effectively with other IT teams as well as customers. Ability to effectively present information, interact with, and respond to questions from managers, employees, customers, and vendors
Demonstrated creative problem solving skills.
Demonstrated experience in teaching and/or mentoring professionals.