As Software Architect, you will lead the design effort on a variety of projects in a highly collaborative, fast-paced environment. Your role is to design innovative solutions to real market problems. You will work closely with product and marketing managers, user interaction designers, and other software engineers to develop new product offerings and improve existing ones. This position reports to the Robotics Software Manager.
Identify the appropriate software architecture based on the requirements and design elements contained in a system specification.
Record software architecture in a software architecture document using use cases and the Unified Modeling Language (UML).
Maintain and evolve software architecture documents based on evolving system requirements and industry trends and technologies.
Analyze risk and report problems in meeting system requirements.
Provide supporting information to the Engineers to aid in the creation of a system specification.
Assist Software Designer/Implementers with the creation of detailed software design specifications.
Lead the review process for software architecture documents.
Perform software version control and maintain periodic compilation schedule.
Participate in the system specification review process to ensure system requirements can be translated into valid software architecture
Comply with all applicable product development processes. Perform detailed software design as well as implements and/or maintains code according to duties and responsibilities
Ensure the overall integrity of the software architecture and validates it against the system specification.
Integrate internal and external product design into a cohesive user experience
Work with visual designers to improve and refine product visual design and consistency
At least 6 years of programming experience
At least 3 years of UML experience
At least 3 years of experience with software source control and version control
Experience in 3-dimensional navigation preferred
Excellent interpersonal and communication skills
Mastery of user interaction design skills
Must be organized, have an eye for detail, and be able to put ideas into a tangible form
Ability to prioritize and manage work to critical project timelines in a fast-paced environment. Ability to develop new approaches to complex design problems