Job Summary
Architecting and designing of technical solutions for UI/UX on STB. Requirements analysis and development of architectural proof of concept works and artefacts. Research industry-wide solutions and recommend tools and technologies. Prototyping new features and solutions. Integration strategies dependency mapping for the various work packages of the release. Mentorship of Technical Teams. Influential in company-wide technology decisions. Qualifications B.Sc. (Electronic and/or Computer Engineering) or similar qualification. Postgraduate or PhD in the fields of Software or Hardware Engineering (optional). Relevant industry-wide patents preferred. TOGAF certification preferable. Experience Typically, 12+ years of appropriate experience in embedded software design/development, preferably STB. Excellent hands-on experience with Architecting and Designing for Embedded Devices. Strong knowledge of embedded software development, integration, debugging/troubleshooting, testing, configuration, support and maintenance processes with multiple vendor components. Strong knowledge of core Java language. Strong knowledge of Web technologies (e.g. WS, RESTful, etc.) and scripting languages (e.g. HTML, Javascript, CSS etc.). Strong knowledge of networking technologies, protocols such as - HTTP, WS, FTP, UDP, UPnP, RTSP, RTP. Strong knowledge of embedded hardware systems, real-time Linux operating systems. Strong knowledge of Database Design and Management tools (SQLite, etc.). Strong experience in Systems Design Methodologies (UML and other Modelling Techniques). Experience in Mentoring and Leading Technical Design Teams and good with Whitepapers and Technical presentations. Exposure to various SDLC methodologies like Agile, Waterfall, Hybrid, DevOps etc. Nice to have knowledge of embedded C/C++ languages. Experience with Architectural design tools like Enterprise Architect, IBM Rational or similar. Experience with SDLC Tools, e.g. IBM Jazz, Jira, HP Quality Centre. Nice to have of Hardware Design and Components for STB. Â Behavioural Competencies Strategic Thinking Analytical Thinking Accountability Teamwork Delegation Clear Communication Perseverance Motivating Prioritization Participates in pre-product discussions with stakeholders. Suggests product requirements for existing technologies. Writes and maintains technical requirements specifications (functional, non-functional). Is responsible for identifying resolving technical risks. Advises stakeholders on what the company's systems can do and also impact on wider scope of E2E system. Monitors the evolution of standards that are relevant to the business / projects. Assists Project Product Management in defining phases. Active role in Change Request / Enhancement requests process for technical impact assessments. Breaks down product use cases into technical system / component use cases. Leads the core team for systems / components based on existing products to meet the customer needs. Defines and reviews system architecture component specification documents. Defines and reviews the interfaces with third-party suppliers. Performs analysis of requirements including gap analysis. Reviews list of materials (BOM) impacted by design. Provides guidance on requirements and system architecture to Developers, QC, Systems Integration Systems Engineers. Ensures the delivered solution meets the business technical requirements for moderately complex systems. Reviews lower-level component design. Provides input to the analysis of in-field issues defects. Breaks down high-level use cases into component-level use cases, identifying modules impacted. Breaks down requirements into use cases for component backlogs. Works with product team (BAs) to understand functional user requirements / behaviour. Â Responsible for the component design including some of the following: Design patterns and framework to use. Implementation technologies. Third-party or Open-source components. Internal modules design interactions. Collaborates on Interface Definitions / APIs with other component providers. Considers trade-off between design sophistication and time-to-market when making architectural decisions. Tracks design decisions that result in technical debt. Owns the evolution of the component design / architecture. Ensures implementation respects rules of agreed framework. Applies best practices of software design. Involved in implementing the design, often writing framework code / foundation architecture. Offers guidance to developers, QA Integration teams. Provides training on components if needed. Participates in ongoing Change Request Processes.