PTC is a leading company transforming the physical and digital worlds through innovative software solutions. They are seeking a highly experienced Principal Software Engineer to lead technical development for their real-time Java Virtual Machine and toolchain, driving product development, supporting customers, and influencing future product direction.
Responsibilities:
- Serve as a primary developer for Perc Ultra SMP (32‑bit) and Perc 64 (64‑bit) built on a common C/C++/Java codebase running on Linux for Intel and ARM processors
- Plan and execute development tasks; troubleshoot issues and clear blockers
- Implement bug fixes, feature enhancements, and major new release content
- Develop and maintain regression tests for fixes and new functionality
- Review, test, and approve code changes from team members before commit
- Monitor nightly builds, analyze errors/warnings, and implement corrections
- Build, test, and package releases; contribute to Release Notes and user documentation
- Contribute to long‑term product roadmap planning, including tooling, Java version updates, and feature evolution
- Collaborate with Developer Tools leadership to maintain and update licensing components
- Work directly with customer engineering teams to diagnose issues, resolve technical questions, and advise on best practices for real‑time Java development
- Ensure timely and high-quality case responses to ensure customer satisfaction and ARR retention
- Create and maintain technical content, tutorials, and knowledge base articles
- Support Perc evaluators during trials, coordinating with support teams as needed
- Partner with sales teams on active opportunities by joining customer calls, delivering product demonstrations, and responding to technical RFP/RFI questions
- Represent Perc at key industry events (e.g., Embedded World, MOSA Summit) to support lead generation and gather market feedback
- Assist in the remote management of internal R&D systems hosted in the San Diego Data Center, including: Source code management, Bug/issue tracking systems, Nightly build and automation systems, Backup systems
- Support containerized DevOps infrastructure using custom Docker images
Requirements:
- 10+ years of professional software development experience in embedded systems or tools
- Strong background in end-to-end software development, product quality, and technical problem solving
- Experience with development tools for industrial automation and/or defense applications
- Bachelor's degree in Computer Science, Electrical Engineering, or related field (advanced degree preferred)
- Java (required), C (required), and C++
- Linux application development
- gcc, linker, glibc, libstdc++
- Linux ELF object formats for x86/ARM (32/64‑bit)
- Familiarity with LLVM compiler infrastructure project
- Java language & JVM specification knowledge
- x86 and ARM instruction sets and architectures
- Lock‑free concurrency (e.g., CAS operations)
- Real-time multithreaded programming using Linux real-time scheduling policies
- Bash, Perl, GNU Make, Apache Ant
- Subversion, Docker, Apache Httpd
- Experience authoring documentation in Adobe FrameMaker
- Experience using TPM 2.0 hardware on Linux for secure boot and decryption
- Linux administration on Red Hat/Rocky Linux and Ubuntu