- Lead various development projects, implementation projects, and work on support requests at any given time.
- Develop software solutions by studying information needs, and conferring with users; studying systems flow, data usage, and work processes; investigating problem areas; following the software development lifecycle.
- Determine operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
- Prepare and install solutions by determining and designing system specifications, standards, and programming.
- Work with Architects, Business Analysts and System Support staff to estimate work efforts on ongoing and upcoming projects, or as directed by their Functional heads.
- Be involved in the full software development life-cycle in coordination with other engineers, QA, and designers and should be confident and adept in articulating ideas in a clear, well thought out manner.
- Updates job knowledge by studying state-of-the-art development tools, programming techniques, and computing equipment; participating in educational opportunities; reading professional publications; maintaining personal networks; participating in professional organizations.
- Support and develop software engineers by providing advice, coaching and educational opportunities.
- Ensures that code meets specifications. Writes code that is easily maintainable. Is able to debug own code for preliminary testing. Must practice standard software development methodologies and standards.
- Code, test, and implement configuration changes to software applications to meet both functional and technical requirements.
- Generate innovative ideas and support new ideas or approaches that enhance service
- Ensure that all architectural/coding guidelines are followed by all team members working with him.
- Provide guidance to and review the work of other team members as well as investigate ways to potentially improve existing code and implement improvements.
- Participate in requirements debriefing and finalizing requirements
- Participate in root-cause analysis, communicate options for resolution and provide recommendations to customer-facing technology problems
- Assist in providing ballpark estimates for prioritization
- Provide Learning of Effort (LOE) and Work breakdown System (WBS) after system design is complete
- Ensure daily check-ins have been performed
- Performing periodic dirty builds from the checked-in code to make sure the team is on the right track
- Responsible for releasing builds to internal QA teams and customer UAT teams.
- Help and mentor Junior & Senior Software Engineers with technical challenges.
- Work at the direction of the Architect from a development practices perspective. This includes but is not limited to following:
- Design/Architectural guidelines
- Applicable software coding conventions
- Source/Configuration management procedures
- Testing practices
- Work to resolve any items/bugs/changes assigned by Quality Assurance Team.
- Write unit-test code and perform unit-tests on the developed software.
- Understand and execute the unit test plans and document results properly. Investigate, analyze and report any corrective action on reported defects.
- Coordination with peers and Architects for accurate and recommended development approaches for assigned tasks.
- Perform daily check-in of the source code.
- Check projectier for daily task assignments and update the status with the progress.
- Code software fixes or change requests as assigned on projectier.
- At least sixteen years of academic education with a bachelor’s degree in any of the software development related disciplines.
- A master’s degree in software development discipline will be preferred.
The Software Architect Engineer must have strong set of skills on at least 4 different programming technologies, tools, languages or frameworks.
Example: One should have a combination similar as following.
- COMBO 1: PHP, .net, C/C++
- COMBO 2: Xcode, .net, C/C++
- COMBO 3: Java, Android, C/C++
- COMBO 4: Xcode, C/C++
Any renowned certifications in related technologies.
- Required Experience 10+ Years.
- Hands on experience over Microsoft .Net (C#, C++) and PHP based technologies
- Experience of people management and the ability to lead and influence others
- Proven experience in leading and managing the delivery of system/software development projects in a structured environment
- Experience in a variety of software development approaches and methodologies including Agile preferably
- Experience in both architecture and implementation-level software design
- Strong facilitation and coaching skills
- Excellent personal organization and ability to prioritize and carry out multiple tasks
- Able to influence and drive projects to meet key milestones and overcome challenges
- A desire to remain technically capable and an expert in current technologies