1. Randy Stokes
14721 Chicago Ave. #6, Burnsville, MN 55306 • 612-247-3466
RestokesConsulting@gmail.com • www.linkedin.com/in/randallstokes/
Software Architect / Engineer skilled in product development
Professional developer and team leader with a passion for code quality, performance, and solid design.
Proven track record of designing, coding, and testing software components and user interfaces. Known for
leadership and team development. An enthusiastic point person for new product development who believes
there’s something magical about bringing ideas to life.
KEY QUALIFICATIONS
• Expert in C++ (including C++11/14).
• Fluent in Windows development and Visual Studio 2010/2013.
• Experienced in ActionScript, Git, C#, Java.
• Experienced in Agile and Test Driven Development (TDD) methodologies.
• Familiar with Macintosh OSX, XCode, Objective-C, Jira, Perforce, Rally.
• In-depth skills in 2D graphics, Unicode, MIDI processing, digital musical notation.
• Strong writer; capable and well-liked team member; respected leader with good judgment.
R E STOKES CONSULTING INC
Contractor, Owner
Noteflight Inc (http://www.noteflight.com) – contract 10/2014 – 03/2015
Worked on the client side of their online music notation website. Implemented major expansions to their
playback system, adding playback of accelerandos, ritards, fermatas, and caesuras. Designed and
implemented a build time system for regression testing of playback using JSON files, with an interactive
front end for in-depth analysis. Coded in Adobe Actionscript, some Java. Used Git for source control.
SENIOR SOFTWARE ARCHITECT
MakeMusic Inc., Eden Prairie, MN, 1989 – June 2014
Key player in the design, development and maintenance of Finale, a world leader in music notation
software. As one of the first 7 staff for the predecessor company (Coda), helped transform the industry
from sheet music to software products, while providing leadership to assist in company growth to 135
employees.
Key Projects and Accomplishments
C++ and C++11/14
Designed and implemented a cross-platform string class to transparently manage text encodings
including Unicode, MBCS, and 8 bit code pages. Designed and implemented the high performance
multiple document data management system at the core of the flagship product Finale.
Leadership and Mentoring
Experienced manager of teams of 3 to 5 developers. Led the team charged with converting our massive
code base to Unicode. Led the conversion of a Windows application to 64 bit. Trained both new and
experienced team members in product architecture and coding standards. Wrote Coding Standards
document for team use.
2. Randy Stokes – Resume – Page 2
Finale 2014
Teamed with a small group of engineers responsible for porting the Macintosh product to a Cocoa
environment. Involved writing a new GUI shell layer to replace an aging Carbon shell, working with a
third-party contractor to convert hundreds of dialog boxes to a Cocoa methodology, and maintaining
cross-platform compatibility with the Windows code base.Performance Tuning
Achieved solid performance gains of as much as 75% by using solid coding practices and tools such as
Intel Parallel Studio, Vtune, Visual Studio 2013, XCode.
Static Analysis
Through regular application of PC-Lint and CppCheck, identified thousands of points for improvement
in the Finale code base.
Unicode
Managed and directed a small team to convert older 8 bit and MultiByte Character Set (MBCS) code
to use Unicode. Worked with UTF-8, UTF-16, UTF-32 encodings, management of Unicode fonts, as
well as older fonts in a Unicode context.
Graphics
Handled the process of rendering music notation, which is a product of realizing a complex and
variable rule set through a variety of output devices using 2D graphics (GDI+, CoreGraphics) and
typography. Designed and implemented an abstract graphics context layer for managing display,
printer, and Postscript output formats. Designed and implemented “Engraver” slurs that intelligently
position themselves and flow for natural musical effect.
Fonts
Designed and implemented a font annotation mechanism that binds custom metadata with existing fonts
in order to provide unique information not directly available in the fonts themselves, such as advanced
character metrics, connection points for stems, and clef placement lines.
Music Playback
Managed the process of rendering musical information for playback to MIDI and audio formats.
Linked Parts
Designed and implemented the system that manages multiple parts documents within a score. This
requires the ability to selectively link and unlink various items between the part and the score, such as
individual positioning of elements dynamics or articulations.
EDUCATION
Bachelor of Music Composition, Cincinnati College-Conservatory of Music –
summa cum laude
INTERESTS & ONGOING TRAINING
Gaming and gaming engines – Unity (open source), QT (cross-platform development environment)
Woodworking – Creating one-of-a-kind, hand-carved music boxes
UX concepts – Committed to making software more productive, accessible and fun for users