Position: Middle/Senior Embedded Software Engineer (С++)
Company: Infopulse
Category: C++
Experience required: 5y
English level: upper

Our world-known customer Bose has spent over 50 years finding new ways to bring quality audio and simplicity to people - in their home, on the go, or wherever music is enjoyed. The Out Loud Audio product team is focused on bringing these values to wherever you listen to music or watch TV.  We want to be there providing a premium polished experience, with awesome sound. There are a few catches though… Making things look simple is a really hard work. Out Loud Smart product can create and interact with a complex ecosystem of products.  Bose products can form multi-room groups, transmit and receive audio over Bluetooth, interact with your TV, streaming players, voice assistants, and home automation equipment.  Pulling all these pieces together is a big challenge. It takes a combination of deep technical knowledge and broad system thinking. The payoff is a powerful system that appears simple and inviting to all persons, to enjoy casual TV watching, dance parties, movies nights, and sporting events with their family and friends.
Are you ready to jump in and make every home theater, tailgate, or casual listening experience the best? The right candidate is obsessed with the fine details that make a seamless experience, with astonishing lifelike sound, for our customers. The right candidate is committed to motivating and engaging an interdisciplinary team to bring the latest technology, in streaming music, high definition video, and control integration to every customers home.

**Areas of Responsibility**
•	Feature negotiation with marketing and user experience teams. Requirements & risk analysis, work breakdown, priority management, software component and release management. Take information gained and translate to architecture and planning approach
•	Develop phased software release plan for integration of products and features. Co-develop release plan with the software quality team
•	Identifying software components to be created or modified
•	Manage schedule milestones and integration across your team while accepting features from other teams
•	Architect and design new software components for integration into new and existing products
•	Utilizing new platforms or augmenting existing designs to accommodate new and often unanticipated features
•	Integrate products into a unified cloud and mobile application ecosystem
•	Work collaboratively with other cross functional engineers to execute software delivery plans
•	Design and implement software components within the framework of a software architecture
•	Generate use cases and interact with the User Interface community to validate designs
•	Develop automated acceptance tests for user interface and application software components
•	Interact with multiple software leads and program managers to align deliveries and achieve project objectives
•	Balance program cost, usability objectives, certification requirements, and technical constraints to deliver products that delight
•	Balance priorities across multiple products and deliverable timelines
•	Be a guiding star for a medium-sized distributed team with focus on a culture of continuous improvement

**Qualifications**
•	BSEE/BSCS/BSCE (MSCS preferred) with a minimum of 4 years of related work experience. MBA candidates with strong technical experience or computer science undergraduate work will also be considered
•	Significant experience with modern object-oriented and functional concepts (lambdas, templates, and generic programming) utilizing C++ ‘11/‘14
•	Experience architecting and designing complex embedded software systems, including open source and 3rd party library integration and design for reuse
•	The ability to develop a deep technical understanding of a diverse set of technologies from HDMI to Bluetooth and networking protocols
•	Significant experience with Linux application development and inter-process communication
•	Experience with source code management (SCM) tools (Subversion, Git, Perforce, etc.)
•	Experience creating and validating customer requirements
•	Experience optimizing code to meet hard deadlines
•	Familiar with concepts surrounding digital audio including sample rate conversion, distributed time synchronization, ALSA, and multi-channel audio decoders
•	Exposure to embedded development in C on 32bit micro controllers

**Will be an advantage**
•	Experience with consumer facing products
•	Experience designing within an embedded RTOS environment
•	Experience with machine learning
•	Experience with Fluoride Bluetooth stack
•	Experience with video products, HDMI, or Voice Assistants
•	Experience with Python/JavaScript
•	Experience with continuous integration tools
•	Experience with web applications utilizing JavaScript, HTML 5, and CSS
•	Experience with websockets, google protocol buffers, JSON
•	Experience integrating products with mobile applications and cloud infrastructure

**Personal skills**
•	Ready to contribute to an enthusiastic and talented team of software engineers to bring new products and compelling experiences to market. The perfect candidate will jump in at any stage and guide a team through integration of platform and product specific features
•	An infectious desire for test driven development and continuous integration
•	Ability to communicate complex concepts including software architecture and sequence interactions to technical and non-technical peers
•	Pursue multiple technical approaches and identify the best approach for a given set of constraints
•	Ability to feel confident and sell a technical approach
•	Commitment to thorough documentation in wiki and traditional design document formats
•	Strong written communication and presentation skills
•	Experience with project management tools such as JAMA/JIRA
•	The ability to think critically, boil problems down to their essence, and design an abstract solution