Join the team that is transforming music technology
MakeMusic has an immediate opening in our Boulder, CO office for a C# / .Net Web Developer.
You will work in an open and collaborative environment using lean agile software development processes and methodologies. You will be tackling hard engineering problems along the full stack of web based applications. From customer facing applications to internal operational systems, you will invent and develop software solutions based on cutting edge technologies. Your software and development processes will have automated operations built right in, starting with CI/CD to usage and performance data publishing. You and your team will own the software you develop end-to-end, including development, QA and operations.
Our engineers work in small scrum teams operating as feature teams. Each scrum team works across modules or components to maintain or develop new functionality. We encourage self-directed teams taking responsibility for organizing daily work as well as driving improvements related to technology and processes. You will be a member of one of these teams. You will play the broad role of a developer as described in the agile software development methodology and ensure the team succeeds.
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.
SmartMusic is award-winning interactive music software that provides a deliberate practice environment for students in band, orchestra, and choir. With a subscription to SmartMusic, students have unlimited access to the world’s largest accompaniment library for all ages and skill levels, which includes thousands of pieces of music.
Core Functions of the Role:
Work as software engineer within a small scrum team
Develop and maintain MakeMusic’s SmartMusic software and operational systems
Create and maintain CI/CD systems (e.g. automated build, test and deployment)
QA as far as not (yet) automated
Actively contribute to process improvement and technology innovation
Bachelor’s degree in Computer Science or Engineering OR comparable combination of work experience AND coursework/education
2+ years of software development experience using modern web technologies including front end and back end components (.Net, ASP.Net preferred)
Technical proficiency in strongly typed object-oriented languages (C# preferred)
Working knowledge of CI/CD and related technologies (git/github, TeamCity preferred)
First experience deploying and maintaining applications on AWS
Mastery in OO programming and SOLID principles
Self motivated and an advocate for development and design best practices
Ability to work in small, cross-functional teams in an open and collaborative environment
Experience using a language other than C#
Desire to learn and continually improve
Excellent problem solving skills
Curiosity in how things work
Employ effective ways to build software and solve problems
Interest in being a full stack developer
Ideally, you have a background in performing or even teaching music
Visual Studio 2017, VS Code
Microsoft SQL Server, Redis
AWS with with IaaS, PaaS, SaaS tools for operational concerns
TeamCity for CI and test automation. NUnit, XUnit, pytest
Git & GitHub, pull requests, code reviews
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" six 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.
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: