Job
Description
Job Area: Engineering Group, Engineering Group > Software Engineering
General Summary:
As an SDK (Software Development Kit) developer, you design, develop, and maintain SDKs that allow developers to build applications for a specific platform or framework. Responsibilities include collaborating with cross-functional teams, documenting SDK usage, and troubleshooting issues. The ideal candidate will have extensive design and architecture experience, and a proven track record of building highly scalable systems. You will be responsible for driving the team’s long-term vision and architecture, drive/shape roadmaps, and provide technical leadership to the engineering team. You will be responsible for design, development, delivery and support of large-scale, multi-tiered, distributed software applications. In addition to strong technical knowledge, you will be someone who thrives in a fast paced environment, and is passionate about solving ambiguous, challenging problems that have not been solved before. This role offers wide scope, autonomy, and ownership. Basic Qualifications
Bachelor’s degree in computer science or related field 8+ years of computer science fundamentals (object-oriented design, data structures, algorithm design, problem solving and complexity analysis) experience8+ years of professional front end development experienceDemonstrated passion for user experience and improving usabilityExcellent communication skills, both written and verbalAbility to work in a fast-paced and agile development environment and to learn new frameworks/stacksSelf-directed and capable of quickly shipping code in a dynamic environment
Preferred or Additional Requirement:
Domain Expert in Linux Distributions such as (Yocto, OpenWRT).Hands on exposure to development on Linux based systems spanning Linux kernel and user-space, including operating system concepts, file systems, processes, and architecture.Experience contributing to open source projects and understanding of open source licenses and community practices.Solid understanding of Linux security, networking and user management.Solid understanding of data structures.Exposure to a full product lifecycle on a semiconductor platform.Hands on experience in bootloader, kernel, complex issues analysis, using tools like GDB, strace, dmesg and system logs.Ability to thrive in a changing environment.Programming Language
Skills: C, C++, Python and shell scripting.Ability to lead engineers in varying types of executing tasks.
Skills:
C, Python scripting, bash script programmingLinux System concepts,Linux Kernel Internals and driver concepts.Exposure to distributions: , openwrt, yocto
SCM toolsgit, repo
Automation development experience with Github, Jenkins
Prior experience in Continuous Integration and Build System is a plusStrong debugging and problem-solving skillsPassionate about the Build and Integration and software automationKnowledge in managing source control systems, software versioning, Git branching strategies and integrations on multiple projects and repositories.Excellent communicative, interpersonal and leadership skills with ability to work efficiently in both independent and teamwork environments.
Key Responsibilities:
Collaborate cross-functionally with stakeholders to gather and understand the requirementsParticipate in setting standards for various stages in project lifecycle.Lead the team to deliver a high-quality product on a defined schedule.Highlight risks and gaps early in the project life-cycle to identify the correct path forward.Evaluate new tools and technology to ensure an automated and stable environmentDoing Impact analysis (arch, tech teams, baseline), providing inputs to leads, propose Branching strategy & interim milestones.Ensure meeting release criteria for key customers - Sanity, Stability, Conformance Test Suites, Power, Performance, fine-tuned testing based on need.Task definition and work breakdown including time estimation.Ability to work with minimal requirements and manage multiple tasks.Collaborate closely with Software and Test Teams.Excellent understanding of CI systems.Maintain the current CI system including defect investigation.
Minimum Qualifications:
Bachelor's degree in Engineering, Information Systems, Computer Science, or related field and 4+ years of Software Engineering or related work experience. OR
Master's degree in Engineering, Information Systems, Computer Science, or related field and 3+ years of Software Engineering or related work experience. OR
PhD in Engineering, Information Systems, Computer Science, or related field and 2+ years of Software Engineering or related work experience. 2+ years of work experience with Programming Language such as C, C++, Java, Python, etc.