Software Architect - Skills & Responsibilities

Post date: May 5, 2012 8:39:06 AM


As ususal finding definition of software architecture is easy but to find definition of a software architect may be tricky. Software Architecture may contain many things and the role software architect may be doing or responsible for one or few of them. So don't expect (in the industry) that what ever is defined as software architecture is responsibility of a software architect.

Software Architect is a role in software development who identifies various components of a software system to be built, who creates high level design (architecturural view) of the systems using combination of architectural styles. Software Architect looks at various non functional requirements of the system and makes provision in the software to satisfy those non functional requirements. He identifies proven solutions of recuring problems (paterns) to fit in to the overall structure of the software.

Common Skills:

    • Good command over programming language and frameworks (for example - GWT, Spring, Hibernate, Portals, CMS etc)

    • UML and UML Tools

    • Should be able to create various views from the requirements.

    • Should be able to apply patterns to achieve non functional requirements.

    • Knowledge of measurement and profiling tools for performance, security etc.

    • Knowledge of code review tools.

Common Responsibilities:

    • Define overall structure of the software system by identifying architecture style/styles to be applied

    • Makes decisions to satisfy non functional requirements

    • Should be able to troubleshoot when problems arise

    • Identifies major components of the software system and their relationship.

    • Should introduce best practices in the team and review for implementation of those best practices.

    • Should make sure that design and architecture is correctly implemented.

Skills and responsibilities as in job posts:

Title: Software Architect / Business Analyst UI Information Architecture



    • To be considered for this role, you must have experience of the following:

    • Software architecting

    • Object-oriented analysis and design

    • ERDs or UML class diagrams

    • Relational database design

    • User-stories documentation (Agile and/or Waterfall)

    • Software engineering, including analysis, design, development and testing

    • As a Software Architect / Business Analyst, you must have knowledge of web technologies and UI wire-frame design.

    • Experience of working as a business analyst within an Agile environment would be a distinct advantage, but this is by no means essential.


    • Liaising with clients and stakeholders to analyse and define Project scope

    • Directing and running requirements gathering and analysis workshops

    • Producing detailed and annotates software wire-frames and Specifications

    • Assisting the Project Manager and Developers with change management and new features

Title: Lead Developer Software Architect Data Warehouse Database

Experience: 10+ years in Software Development and Software Architecture

Skills: Solid background in C#.Net, Microsoft Visual Studio .Net

    • Deep knowledge of SQL Server programming and T-SQL

    • Good understanding of WCF and multi-threading

    • Unit and End-to-End testing experience through the whole development project life cycle

    • Preferred: Experience with Data Warehouse design, architecture and profiling

    • Plus: WPF, Scalable Software, Source Control Systems like Rational Clear Case or Microsoft Visual Studio Team Edition


    • Drive for creative, innovative solutions

    • Prototype/experiment/simulate

    • Prepare architectural documents and presentations

    • Work on technology trend analysis/roadmap s

    • Tolerant of ambiguity, willing to backtrack, seek multiple solutions, good at working at an abstract level

    • Influence business strategy

    • Understand what the developers want and need from the architecture

    • Help developers see the value of the architecture and understand how to use it successfully

Title: Software Architect

Experience: At least 4 years of experience in SOA (Service Oriented Architecture) and Web Services. Candidate would have been a tenured technologist on multiple successful SOA implementations.


    • This position requires a good understanding of the SOA; having performed a lead role in the establishment of an SOA environment and successful implementation of applications using SOA. Proven track record driving application architecture in a high growth enterprise environment.

    • Solid Quality Assurance experience including strategy planning, reporting and metrics analysis including experience managing and building test processes and frameworks; architecting, designing and delivering solutions in the areas of SOA and Quality Assurance including a strong knowledge of all stages of software quality assurance including black box testing, gray box, white box testing, performance, stress and load testing, requirements analysis, test planning, reporting/control and root cause analysis.

    • Proven repeated experience in developing, implementing, and managing load, performance, stress, and capacity testing strategies in complex enterprise environments including integrated applications using EAI tools.

    • Proven experience in multiple environments with designing/programming skills with strong Object Oriented skills using some of the open architecture standards such as XPDL, BPEL, UML, Servlets, SOAP, WSDL, JSPs, JDBC, SQL, JNDI, XML, HTML and J2EE best practices, design principles, and techniques with SOA applications and ESB software (e.g., TIBCO BusinessWorks, BEA WebMethods)

    • Strong understanding of system, regression and user acceptance testing, familiarity with testing tools to include functional automation tools and test case management and defect management tools.

    • Experience identifying and documenting the requirements with clients so strong verbal, written communication, interpersonal, and customer relationship skills are required.

    • Additionally, the following education/experience is strongly preferred: Bachelor's Degree or Graduate Degree in Computer Science, or related fields.


    • Ability to accurately and efficiently architect and implement products of chosen expertise as a single Business Unit multi-product solution and/or a cross Business Unit multi-product integrated solution within the client environment through utilizing Company Services Best Practices.

    • Meet or exceed customer expectations by designing, scoping, assessing and delivering solutions that address the client's business requirements and are within the ''Scope of Work'' as agreed to by Company and Customer.

    • Effectively troubleshoot technical integrated solution implementation issues for solutions of chosen expertise.

    • As a project technical team member contribute product and solution expertise, and provide project planning support as required to deliver a successful client engagement.

    • Adhere to Time and Expense Policy as posted on QMS.

    • Meet target Billable Utilization objective as defined for this role.

    • Serve as a mentor to Associate Services Architects who are actively engaged as part of the project team on assigned client engagements.

    • Demonstrate a commanding ability to assess the client's current infrastructure, business requirements and planned budget to effectively position a complete Company solution that adhere's to Company Services Best Practices.

    • Help build the knowledge base in the communities in which you choose to participate in – including lessons learned, best practices, tools, and methods and learning events using SharePoint as the enabling technology.

Title: Software Architect



    • Comprehensive knowledge of C, C#, Java and their standard libraries

    • Proficient with development in a Linux/Unix environment

    • Proficient with unit testing frameworks

    • Experience in a Software Architecture role with a demonstrated history of solving architectural and efficiency problems

    • Some experience in project planningand estimation

    • Some experience in a supervisory or leadership role

    • Excellent time management skills, able to prioritize tasks to meet deadlines

    • Excellent critical-thinking and problem-solving skills

    • Excellent written and oral communication skills

    • Able to collaborate and contribute in a team environment

    • Resourceful and able to quickly learn new technologies and concepts

    • Superior grasp of optimal Architecture strategies

    • Superior analytical and design skills

    • Superior skills in developing and debugging software

    • Extensive experience and knowledge with multiple development environments and tools

    • Extensive experience in a wide range of relevant technologies/platforms/protocols

    • Superior technical knowledge in software development methodologies, design and implementation


    • Demonstrate product expertise.

    • Architect solutions to complex challenges and work with development teams to ensure proper implementation

    • Stay abreast of new technologies andtrends in the area of expertise (competitive products, new and innovative ways to implement solutions, efficient design and coding practices, performance improvements etc.) to continuously improve the way product development teams deliver

    • Develop and re-factor code for high performance

    • Provide assistance to other developers on-site and off-site

    • Oversee and guide detailed technic alanalysis and design of highly complex software components

    • Participate in software design/code reviews to ensure that high quality code is produced according to specifications in adherence to company standards

    • Lead and mentor other team members (when required)

    • Demonstrate superior analytical skills to help troubleshoot and fix highly complex code defects

    • Review and analyze existing technologies and provide recommendations for integrations, improvements & enhancements, or opportunities for reuse

    • Work with Customer Support and Customers to ensure that their issues are dealt with (includes expert troubleshooting) in an effective manner

    • Provide knowledge transfer presentations to teams from all functional areas and adjust the agenda according to skill sets

Title: Software Architect


    • Requires extensive experience and in-depth knowledge in one or more of the following:Open OS Framework integration

    • Platform architecture and Hardware IPC

    • Android OpenOS software architecture

    • Window Phone OpenOS software

    • OpenOS RIL

    • PreferredMasters or PhD in Software Engineering, Computer Science, or related field

    • Experience or knowledge with Android is an added advantage

    • Expert level in C/C++ programming and object oriented techniques

    • Expert in UML usage as well as corresponding tools (e.g. Enterprise Architect or Rational Modeler)

    • Fluency in English to support work with multicultural teams internally and externally

    • Experience interacting with marketing, customers, and software development organizations to develop system requirements and architectures

    • Demonstrated progression in career from software implementation through software design, architecture of subsystems, and architecture of complete embedded systems including both software and hardware components


    • The role of the Software Architect is to autonomously drive architectural topics between marketing and development teams. To achieve this, the Software Architect must:

    • Support development of system requirements derived from a variety of sources such as customer inputs, marketing inputs, competitive assessment and industry standards (e.g. 3GPP)

    • Support the business organization and customers in understanding the impact of requirements on mobile phone products

    • Support allocation of requirements to hardware and software components of wireless phone/modem solutions

    • Work jointly with hardware architects to define the HW/SW interfaces

    • Partition the required SW functionality between system elements such as processors, co-processors, micro-code engines and HW accelerators

    • Define system software architecture to support required functionality

    • Work with software development teams during implementation to ensure consistency between architecture and implementation

    • Understand and manage tradeoffs between cost, effort and flexibility

    • Act as a technical leader for dedicated topics inside the R&D organization

Title: Software Architect/Engineer

Experieince: Minimum 10 years experience.


    • Experience with the full life cycle software development process including requirements analysis, software design, prototyping, programming, debugging and testing, system software integration and testing, software deployment and user training.

    • Proficiency with object oriented design and programming practices is required.

    • Development experience utilizing Visual Studio and Eclipse

    • Experience using DODAF 2.0 and UML to facilitate team design interaction and to document software design artifacts.

    • General understanding of standard software design patterns and when to use them.

    • Experience with specific unit test frameworks and how they are used to reduce defect occurrences.

    • Comprehensive knowledge of the principles, concepts and theories of systems and software design engineering is a must.


    • This position requires a motivated team player with excellent customer relations and interpersonal communication skills.

    • The successful candidate will perform software system requirements analysis and will lead the design, coding, implementation and testing of software applications supporting common operating environment middleware and battle command software based applications.

    • The successful candidate must also provide technical leadership, facilitate design and code reviews and mentor other engineers.

    • The successful candidate must interface with the user/sponsor and all other stakeholders in order to determine their (evolving) needs.

    • Responsibilities will also include leading tasks within a larger project, as well as making formal presentations to management and customers.

    • The successful candidate must be capable of working independently for extended periods of time and be able to both recommend and manage changes to project objectives and priorities.

Title: Software Architect



    • Mastery of modern programming languages such as Java, .Net, etc.

    • Competence in Rich Internet Application (RIA) development (HTML, CSS, JavaScript).

    • Strong understanding of networking (Protocols, Physical Layers, etc).

    • In depth knowledge of software design patterns, software architecture, and Service Oriented Architectures.

    • Familiarity with open source software development.

    • Experience with Agile software development processes.

    • Preferred:Mastery of the Enterprise Java (JEE) tech stack (i.e. application servers, EJB, etc).

    • Experience with cloud computing concepts as well as mobile computing platforms.

    • Knowledge of distributed application / systems architecture.

    • User Interface Design Experience.

    • Windows, Linux, Unix Operating System Experience.


    • Analyze requirements, operational environments, and existing system interfaces.

    • Design enterprise software architectures for large-scale applications integration using service oriented architectures.

    • Develop individual application architectures for applications in a variety of DoD domains.

    • Conduct research on emerging software technologies, tools, and standards.

    • Evaluate and participate in the development of open source software products.

    • Potentially lead a team of developers though the product development lifecycle using agile software development methodologies.

    • Evaluate, analyze and comment on existing software architectures.

    • Participate in business development and growth by identifying key client capability gaps and proposing potential solutions.

    • Participate in active software development and integration efforts.

    • Ensure the applicability, usefulness, and quality of delivered software systems.

Title: Software Architect



    • Depth of technical skills and expertise in programming methodologies and practices, application platforms and

    • frameworks, service orientation, technology standards and specifications, and technical modeling of systems and services in one or more domains relevant to current and/or future frog services

    • Expertise in preparing and delivering proposals and presentations to all levels of a client organization (including

    • executives)

    • Experience in both quantitative and qualitative analysis and building substantiated recommendations of appropriate technology solutions that address user experience, technical, operational, and business considerations in parallel

    • Demonstrated ability to lead software systems design, provide appropriate team support and maintenance of artifacts throughout the software engineering lifecycle, and collaborate with software engineers, design technologists and creative leaders on common user experience goals expressed through software realization


    • Lead application and/or solution architecture definition on software design and engineering engagements

    • Lead technical requirements gathering, use-case discovery, and gap analysis efforts on relevant platforms and frameworks to drive strategic architecture and user experience recommendations

    • Participate in proposal generation, project planning, feature scoping, level of effort estimation, and delivery methodology tasks in both the business development and initial client engagement phases

    • Develop and maintain technical requirements specifications and software architecture documentation and diagrams throughout the engagement

    • Provide proactive thought leadership, domain expertise, and strategic problem solving to the project team throughout the design and development lifecycle

    • Serve as a primary technical contact for client and third-party technical leads and domain experts during project discovery, design, and implementation phases while assisting the project leadership team in the management of client expectations regarding technology activities during the engagement

    • Assist in the definition and evolution of new service offerings related to technical expertise and capabilities of the local studio

    • Evangelize and promote technology innovation opportunities across creative, strategy, and program management disciplines

Title: Software Architect



    • Understanding of the technologies needs to create distributed large-scale systems

    • Strong organizational skills

    • Excellent hands-on technical skills

    • Experience working on an Agile Scrum team / project

    • Has successfully implemented Web 2.0 APIs and User Interfaces using REST, Java, JavaScript, Backbone and OpenSocial Gadgets

    • Experience with SIP, RTP, RTSP protocols desired

    • Has working knowledge of static analysis, code complexity, and other recent innovations in software development tools and processes

    • Experience providing technical leadership and direction to team members

    • Demonstrated technical ownership/leadership of large component(s) or whole product/platform


    • Research technical approaches that address system requirements

    • Collaboratively architect a system comprising of Cisco, open source, and third-party components

    • Write specification documents and drive sign-off

    • Implement new features and extend existing functionality

    • Connect business requirements with technical solutions and vice-versa

    • Use static analysis, code complexity, and other state-of-the art software development tools and processes to develop high quality software.

    • Develops efficient and effective automated unit and feature tests for new and existing software

    • Escalate issues to management as appropriate

    • Influence beyond current team/ownership

    • Mentor fellow engineers and resolve technical conflicts

    • Experience with web 2.0 technologies, DB, SIP, RTP, RTSP

    • Experience with JAVA in a UNIX/Linux environment.

    • Excellent written and verbal communication skills and cross-team collaboration skills.

    • Ability to lead, guide and direct a team of engineers in developing the best possible solutions