macOS Software Engineer
Reports to: VP Product Management and Development
Location: Remote (preference for proximity to Cleveland, Ohio)
Travel: 10-20% (to the office, after COVID)
PreEmptive is the global leader in application protection. We serve 400 of the Fortune 500 companies and hundreds of thousands of users. We create cutting-edge software products that are used by app development teams to protect the value of their innovation through a combination of binary obfuscation and automated detection, defense, and alert controls that are directly injected into their apps. One of our products ships in the box with Microsoft Visual Studio™ and is installed on millions of computers worldwide. We work with a multitude of cutting-edge technologies including pre-release versions of major Microsoft platforms, Java, Android, macOS, and iOS.
We are currently searching for a Software Engineer with macOS / iOS / Xcode expertise to join our development team.
This is not a typical software team – we're small, we're agile, and we're serious about forming and supporting great development teams. We cultivate people and roles that support and enable each other, and goals that are clear and well-understood, to get a sum that is greater than its parts.
This is not a typical programming job - our users are programmers, our products are programmer’s tools, and our management team has deep software product experience. Our work runs the gamut from low-level compiled code modification to network services to advanced build platform integration, and you'll get to work with all of it.
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, focused on macOS/iOS, including C++, Objective-C, and Swift. You will participate in small, collaborative development teams using highly-effective agile processes, 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, excellent health insurance, retirement matching, flexible work schedules, and opportunity for advancement.
- Build and maintain robust, efficient, understandable software that is easy for future developers to maintain.
- Build and maintain extensive automated tests.
- 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 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.
Education: Bachelor’s degree in Computer Science or applicable field.
Experience: 3+ years of professional software development; 2+ years in a native programming language (C++ preferred); 1+ years working with macOS/iOS technologies
Required skills and knowledge:
- Ability to work well on a team, asking for and providing support willingly, and basing decisions on what is best for the team.
- 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.
- Enough humility to ask for help when you need it, 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 one or more of C, C++, Swift, Objective-C, Rust.
- Experience developing plugins for LLVM, GCC, and/or working with a bytecode language.
- Experience participating in effective agile teams.
- Strong written and oral (direct) communication skills.
Send your resume and cover letter to firstname.lastname@example.org.
No phone calls please.
PreEmptive Solutions is an Equal Opportunity Employer.