For over four decades, Cirrus Logic has been propelled by the top engineers in mixed-signal processing. Our rockstar team thrives on solving complex challenges with innovative end-user solutions for the world's top consumer brands. Cirrus Logic is also known for its award-winning culture, which was built on a foundation of inclusion and fairness, meaningful community engagement, and delivering enjoyable employee experiences at every turn. But we couldn’t do it without our extraordinary workforce – and that’s where you come in. Join our team and help us continue to make Cirrus Logic an exceptional place to grow your career!
We are looking for an expert Software Engineer to build products alongside our applications, systems and firmware engineers. You will use your proven track record in software development and familiarity with consumer electronics and embedded systems to gain a deep understanding of each product, apply your development skills to author rich, graphical configuration, tuning and command-line tools our customers need to integrate those products into their devices. Do you have a passion for electronics, and are highly proficient in OOP languages such as Java, C# or C++? If yes, apply!
Responsibilities
Develop critical desktop tools software projects that enable graphical configuration and tuning of Cirrus Logic Integrated CircuitsWork with our applications, systems and firmware teams to define and build customer-facing toolsCollaborate closely with the development team for stand-ups, requirement gathering and estimates, and project planningBreak project requirements down into stories and tasks, along with work estimatesContribute to the continuous improvement of your team’s development processes, with a focus on quality, scalability and performance
Required Knowledge, Skills, and Experience
Bachelor's degree in Computer Science or a related discipline and 6+ years of object-oriented software development experience supporting enterprise-level softwareExpert in Java, C#, C++ or similar statically-typed system languageHands-on experience developing and testing of embedded systemsA track record of non-trivial application development for desktop or mobile devicesStrong grasp of multi-threaded systems, multi-process systems, IPCFamiliarity in Python, Ruby or similar scripting languageCuriosity about microcontrollers, digital signal processingAbility to work well with users, both internal and external to the companyStrong written and verbal communication skills
Preferred Knowledge, Skills, and Experience
JavaFX, Swing, XAML/.NET, Qt or similar high-level UI frameworksGradle or MavenFamiliarity with serial communication protocols (I2C/SPI)Strong interest in audio, embedded systems