Software Engineer

Reports to: VP Product Management and Development | Location: Mayfield Village, Ohio | Travel: 0-10%

PreEmptive Solutions creates cutting-edge software products that are used by software developers to obfuscate their applications and to provide real-time analytics about how they are used in production. Our products ship in the box with Microsoft Visual Studio™ and are installed on millions of computers worldwide. PreEmptive works with a multitude of cutting-edge technologies including pre-release versions of major Microsoft platforms, Java, Android, OSX, and iOS.

We are currently searching for a Software Engineer to join our product development team.

This is not a typical software team – our customers are programmers, our products are programmer’s tools, and the management team has deep software product experience. Our products run the gamut from low-level compiled-code modification to high-performance data brokering, and you’ll be asked to work with many of them.

We have a small, well-organized team of top-notch software developers, and we’re looking for someone who can fit right in. To apply, send your resume to

Position Summary

You will be a key member of the product development team, responsible for design, test, and implementation of PreEmptive’s commercial software products. You will learn and use multiple programming languages (e.g. C#, .NET IL, C/C++, Java, Java bytecode, Objective-C, JavaScript) and work on multiple platforms (e.g. Windows, Linux, OSX) using a variety of tools. You will participate in small, collaborative development teams using highly-effective agile processes (Scrum), and work with a variety of stakeholders including product management and development.

Because our users are developers, our testing requires a developer’s expertise – which means that our developers are also our testers. Your role will include switching from development to test, back and forth, multiple times within each iteration. Benefits include competitive pay, paid vacation and holidays, medical insurance, retirement benefits, flexible work schedules, and opportunity for advancement.

Essential Functions

  • Build and maintain robust, efficient, understandable software products that are easy for future developers to maintain.
  • Build and maintain extensive automated tests for your code.
  • Take responsibility for functional, performance, and integration testing of our products, both through manual/exploratory testing and through automated testing.
  • Participate in architecture and design discussions at the story, feature, and product levels.
  • Research into new platforms, technologies, and tools.
  • Provide requirement (“story”) feedback and work estimates (in “points”).
  • Work with, learn from, and teach yourself, your peers, and your management team.

Example problems you will be asked to solve:

  • Implement a feature based on a lightweight set of requirements in “story” form.
  • Test a feature (“story”) that another developer just finished implementing.
  • Help our product support team figure out a particularly-tricky customer issue.
  • Brainstorm ideas for how to solve a problem or implement a solution.
  • Provide feedback on recent team performance and make suggestions for future improvement.

Position Requirements

Education: Bachelor’s degree in Computer Science or applicable field.

Experience: 1+ years of professional software development

Required skills and knowledge:

  • A passion for programming, solving hard problems, and digging until you fully understand something.
  • Willingness to write automated tests and generally work hard to create maintainable code.
  • Ability to work independently and set your own priorities, but also to ask for guidance or support as needed.
  • Enough humility to know that you might be wrong, but enough confidence to push for what you think is right.
  • A strong desire to learn and the ability to learn quickly.

Preferred skills and knowledge:

  • Experience working for a software product company.
  • Experience with C#, .NET IL, C++
  • Experience participating in well-run agile teams.
  • Strong written and oral (direct) communication skills.
  • Strong interpersonal skills.