The Loud Software team is looking for an experienced Senior Software Engineer to help develop industry leading control and modeling applications on multiple platforms for Mackie branded pro audio digital mixers, loudspeakers and more. This software integrates and communicates with custom hardware and firmware, and works with industry standard protocols.
This is a small, fast paced group and the Senior Software Engineer will often be asked to work on multiple applications at once to meet hardware project schedules. For some projects, they will lead larger design teams, while for other smaller projects they will be completely responsible as a solo engineer.
The Senior Software Engineer is responsible for delivering complete applications including backend, communications with hardware, model, and GUI. Most projects will be written using the Qt framework with native, platform specific customizations. Projects will include updates to existing applications such as Master Fader and Thump Connect, as well as complete ground up designs. This requires leveraging existing platforms to meet aggressive schedules as well as leading the adoption of new technologies when needed.
The Senior Software Engineer is an important contributing member along with product management and industrial design at the beginning of projects, converting product requirements and UI designs into software designs and architecture. The Senior Software Engineer performs duties with minimal supervision, to agreed long-term product-based goals. They also work with the QA group to ensure test plans provide adequate coverage and to design and implement additional tools that may be needed. The Senior Software Engineer is a strong leader and a great team member, takes ownership of their projects and guides the team through design and technical decisions to project completion.
Essential Functions/Major Responsibilities:
- Take ownership and lead software development for assigned projects. Is responsible for technical decisions
- Create and document designs and software architecture (including backend, communications with hardware, model, and GUI) based on product requirements.
- Develop code (including backend, communications, model, and GUI) based on high level design and architecture and project requirements
- Collaborate with Firmware Engineers to design, update, and implement communication protocols with product specific features
- Port and reuse code and design from existing products in new project development
- Work on multiple projects simultaneously balancing workload based on agreed upon priorities
- Create unit tests for code as required by design
- Help with scheduling, milestone creation, and sprint planning to meet requirements and ship software
- Is an active team member and leader in weekly sprint planning
- Provide guidance and help to peers and junior developers.
- Lead code reviews and provide/take constructive suggestions
- Proactively identify issues with project scope or schedule, and recommend solutions
- Create documentation and give presentations of the software designs, architecture and development decisions.
- Is a fundamental partner in user interface design
- Take an ownership role in continually improving software group processes and tools, and bringing industry best practices into the company
- Work with QA to review test plans and ensure test coverage.
- Identify, define, design and implement custom QA or Production test tools or features when needed
- Help quickly review, triage, and communicate findings of high profile field software issues
Specific Job Skills and Requirements:
- Strong object oriented software architecture, design and programming skills
- Proven track record of shipping high quality, user focused applications according to schedule
- Established history of writing clean, maintainable code
- Established history of reading, debugging and adding to code within a large existing code base
- Strong experience in C++ and C
- Strong experience developing software using the Qt framework and QML for cross platform applications
- Strong experience developing and shipping on iOS, Android, macOS, Windows, Linux, Embedded Linux
- Strong experience with automated build systems and continuous integration using Jenkins
- Strong experience using Ethernet, USB, Bluetooth, and Wi-Fi transports.
- Experience in Bonjour, networking and digital audio
- Experience with scripting languages like Perl or Python
- Experience with Objective C and Swift
- Experience with Git
- Experience working under an Agile/Scrum environment using tools like JIRA
- Experience working with 3rd party APIs and tools
- Ability to evaluate and adopt new technology
- Ability to analyze information and requirements to come up with solutions.
- Ability to find simpler solutions to existing complex problems and workflows
- Strong experience working in a software development team
- Excellent leadership skills, especially when working with peer team members
- Ability to listen to all opinions and then come to a decision that will be implemented by the team
- Ability to coach and provide guidance to other developers
- Ability to work with remote team members and team members for whom English is not their primary language
- Passion for developing beautiful, intuitive, easy to use yet powerful user interfaces and user experiences that feel at home on each platform
- Ability to work closely with UI designers and implement designs down to pixel perfection
- Ability to implement user interfaces based on existing products with limited UI design guidance
- Good interpersonal communication skills and the ability to work cooperatively to solve problems and resolve issues
- Excellent written/oral communication skills
- Understanding of Pro Audio applications, products and usage
Will act as mentor for intermediate or junior software engineers.
This position has frequent interaction with all levels of personnel from various departments in the company including other developers; hardware and firmware engineers; program and project managers; Project Managers; Software Test; Test Engineering and Product Management. This position reports to the Director of Software, Firmware and QA.
Education and/or Experience:
BSc in Computer Science or Computer Engineering or equivalent work experience
At least 5 years as a Software Engineer/Developer
- Work is performed in a general office and engineering laboratory environment.
- Some flexible working hours may be required where the intensity and demands may fluctuate.
- Some domestic and international travel may be required
- Some field research/observation and talking to customers may be required
LOUD Audio LLC believes that each employee makes a significant contribution to the company success. That contribution should not be limited by the assigned responsibilities. Therefore, this position description is designed to outline primary duties, qualifications and job scope, but not limit the incumbent nor the organization to just the work identified. It is our expectation that each employee will offer his/her services wherever and whenever necessary to ensure the success of our endeavors.