Senior C++ Software Engineer
MakeMusic has an immediate opening in the Boulder office for a Senior C++ Software Engineer. You will report to the Finale Engineering Manager and work in an open and collaborative team environment to improve how music notation is created, displayed, and shared with users. In the near term you will work to modernize the Finale code base, refactor existing legacy code to make it more modular and performant, rewrite modules of code where it makes sense, add multithreading support, improve graphics and general application performance, write unit tests, and contribute to scheduled releases by way of bug fixes. In the long term you will implement new features and continue to revolutionize music notation and digital sheet music.
If you are interested in playing a role in the future of music technology then you have come to the right place. At MakeMusic we all share a passion for creating the next best thing in the world of music and we are always searching for great talent. MakeMusic is an industry leader in interactive music learning, notation software and virtual instrument technology.
Finale is the world-wide industry standard in music notation software. Anywhere music appears on the printed page, Finale likely created those pages. Finale helps the choir to sing, the band to march, the students to learn, and the orchestra to raise the excitement level in the latest blockbuster movie.
Core Functions:
- Design and implement a refactored and multithreaded cross platform system architecture leveraging C++ and QT
- Identify what existing legacy code can be leveraged and reused, and what areas would be best served by being rewritten from the ground up
- Improve the way that graphics are handled in Finale with an eye toward improving performance and enabling new features
- Analyze existing behavior/functionality and identify opportunities for UX improvements
- Identify elegant solutions to complex problems that give the project maximum velocity
- Be bold and innovative - take calculated risks and mitigate via constant evaluation in order to “fail fast” if a solution is not viable
Required Qualifications:
- Mastery of C++, preferably with a strong understanding of C++ 11/14 principles and features
- Deep understanding of data structures, algorithms, and design patterns
- Experience designing and implementing multithreaded applications
- Experience with and knowledge of graphics principles
- Creative and effective problem solver who can find solutions that allow the team and product to advance at a rapid velocity
- Self motivated and an advocate for development and design best practices
- Familiarity with music notation and the ability to read music
- Ability to work in small, cross functional teams in an open and collaborative environment
- Experience working on legacy software systems
- 5+ years of relevant software engineering experience
- Bachelors in Computer Science or Engineering, or comparable combination of work experience and coursework/education
Desired Qualifications:
- OS X/macOS familiarity, including Cocoa, Swift, Objective C/C++
- Windows familiarity, including MFC
- Experience with QT
- Database familiarity
- OpenGL or other graphics frameworks
- Experience with unit testing best practices, tools, and frameworks
Our Story:
MakeMusic joined the company's TrainingPeaks and TrainHeroic under the umbrella company Peaksware in beautiful Boulder, Colorado which has been recognized as one of Outside Magazine's "Best Places to Work" five years in a row. Through a unique approach to deliberate practice, each company within Peaksware develops software solutions and provides services focused solely on their respective markets to help guide people along their own journey of improvement and skill development.
Our Philosophy:
- DevOps - We want developers to have insight and ownership over code in production, integration tools, infrastructure, and deployment process. Developers should always ask what it takes to support their systems/code in production. We value The Phoenix Project as a reference guide.
- Product Efficiency is achieved upstream - The further down the development pipeline we have to fix bugs or rework features, the more expensive it is.
- Small, Cross-Functional Teams - QA, Dev, Design, CI, and Product working on a focused and shared vision.
- Complexity - It's easy to make something complex, but difficult to make it simple. We should always be fighting complexity. Can we deprecate systems/code? Do it. Does the system need to be that complicated? Do we build vs buy?
- Small Batch Sizes - Constantly work towards shorter release cycles as a means to shore up quality, help make sure we are working on the right things at the right time, stabilize operations, and cut down on waste.
- Performance matters - We value engineers that know not to over optimize solutions, but always think how code will perform at expected scale.
- Minimum Process Necessary - We strive to be pragmatic. Some process is necessary, but don’t forget the fundamentals of Agile.
- Managing Technical Debt - The vast majority of work is maintenance. Engineers need to have practical philosophies on refactoring. We like the theory of Broken Windows, YAGNI, and refactor as you go. We appreciate Clean Code, Working Effectively with Legacy Code, and Pragmatic Programmer as reference guides.
- Data Driven - Let’s use the data to help inform what to work on, what is causing performance issues, who is using our features... Ultimately it's the objective plus the narrative that produces great product.
Benefits and Perks:
- 100% company paid medical plan for employees with buy-up options as well as dental and vision insurance for employees (dependent coverage available)
- $1,200/year fitness reimbursement to purchase any items related to healthy living
- 3 weeks of PTO for all new hires. Increases in PTO at various years of service
- 4 week paid sabbatical for all employees after 7 years of employment
- Company paid cell phone and plan (data, text and minutes)
- Stocked kitchen with snacks and drinks
- On-site workout area access: treadmill, bike trainers, rowers, and full weight lifting gym with CrossFit equipment, with changing rooms and showers and towel service
- Flexible work schedule among a group of high-performance, highly driven professionals.
- Beautiful North East Boulder, CO location
We have a very flexible work schedule among a group of high-performance, highly driven professionals. Most of the employees at MakeMusic are musicians and are passionate about both the work they do and the products they produce.