Markham, Ontario

Android Software Developer – Automotive Infotainment

Android Software Developer – Automotive Infotainment 
Automotive Sector
Location: Markham, Ontario, Canada
Sub Domain:                      OnStar / Telephony / FSA / RDMS

KEY SKILLS/ TASKS:        Android, C++ or Java, USB knowledge is plus

Role Summary Software developers will contribute to the development of the advance Infotainment systems. Their contribution will enable customers to connect their personal consumer devices to vehicle infotainment systems. These software developers and engineers will be important members of a fast growing software group in Canada, which is part of the larger global Engineering team across continents.
 You are encouraged to apply for these positions if you have expertise in any one of the following domains:
    • User Interface and core applications and services:
    • Framework and Personalization:
    • Multimedia:
    • Connectivity:
The developer for this domain will be responsible for feature development and maintenance of core applications and services such as calling, contacts, settings, and messaging. Prior UI/UX experience is required to develop user friendly applications .
Key Responsibilities
• Contribute to develop infotainment solutions for In-vehicle devices. Responsible for the deliverables of the assigned domain such as requirements, system design, development, deployment, and maintenance of the infotainment software
• Participate in the design of a best-in-class in-vehicle platform for automotive infotainment systems
• Participate in architecture, requirements, and design, coding and test case reviews
• Participate in new feature development, maintenance of existing features and bug fixes
• Participate in feature requirement and design reviews and all relevant software development activities
• Participate in test case design reviews and conceive bug prevention proposals
• Provide clear and complete documentation based on the definition of the software development process
• Collaborate with team members in software development activities using the Scrum/Agile development process
• Senior member resumes ownership of each project, propose technical solutions, make design and implementation decisions and coach junior members
Required Skills and Experiences:
• Minimum three years of software development experience in related domains
• Minimum two years of software development experience in Android platform
• Software development experience in Linux platform
• Software design and implementation experience in an object-oriented environment
• Development experience with Java, C++, C, Android Application frameworks
• Development experience with unit test frameworks such as AndroidTestFramework, monkeyrunner, Robolectric
• Development experience with Android development toolkit and process
• Experience with Development tools such as Eclipse IDE and ADT plug-in, Android Studio
• Experience with software build tools such as makefile, ant, maven, gradle
• Experience with SCM tools such as GIT, Gerrit, Jenkins, JIRA, or ClearCase
• Practice with Scrum/Agile software development process
• Ability to perform diagnostic and investigate issues based on limited information
• Experience in developing and deploying commercial products in global market is a plus
• Excellent verbal and written communication skills
• Creative, disciplined, strong sense of responsibility to delivery result to meet schedule and commitment
• Good team player with strong interpersonal skills to work effectively in a geographically dispersed environment
• Effective communication skills and a strong problem solver
Required Domain Knowledge and Experiences
User Interface and core applications and services
o Experience in Android application and user interface development
o Excellent knowledge of Android core applications and services (telephone, message etc.)
o Prior UI/UX development experience of consumer product
• Framework & Personalization domain:
o Development experience in Android UI framework, system UI and widgets
o Development experience with Android window manager, activity manager, and package manager.
o Android multi-user domain knowledge and development experience
• Multimedia domain
o Development experience in Android Multimedia framework
o Solid working knowledge of current Android platform technologies, including media playback engine, streaming, codec, media capturing, audio framework, voice recognition, and screen sharing
o Demonstrated in-depth and breadth understanding of software technologies, including rendering, simulation, relational database, and user interface development
• Connectivity
o Development experience with implementing Bluetooth Stack, Chipset and Firmware
o Development experience with Android/Linux Wifi Stack including wpa_supplicant, wifi and network driver, chipset and firmware
o Development experience with Android/Linux USB Stack
o Demonstrated in-depth and breadth understanding of low level software technologies, such as driver, dma, interrupt, I/O, serial port etc.
o Solid working knowledge of Linux platform
o Experience with BSP development is a plus
Preferred Skills and Experiences:
• Software development experience in a variety of OS environments is a plus
• Experience with the integration of Android framework and device bring up is a plus
• Experience with the porting of Android ROM is a plus
• Experience with the development of automotive infotainment solutions is a plus
• Experience with automotive and/or portable consumer electronic devices is a plus
• Successful Track record in applying advanced technology to enhance the usability of complex systems is a plus
Education and Training:
• Bachelor's degree in Computer Science, Software Engineering, or related field.
• Graduate degree is preferred
• Professional Engineering designation is a plus