Perforce Software

Principal Software Engineer I

Perforce Software

full-time

Posted on:

Origin:  • 🇺🇸 United States • Massachusetts

Visit company website
AI Apply
Manual Apply

Salary

💰 $146,200 - $175,000 per year

Job Level

Lead

Tech Stack

JenkinsLinuxPythonQtUnix

About the role

  • Perforce: global provider of DevOps and developer tools used by leading brands.
  • Position Summary: Principal Software Engineer for TotalView high-performance parallel debugger; design, modify, and develop software focused on compiler and debugger-related development and UI contributions as needed.
  • Responsibilities: Design and develop new and advanced features in C++ across Linux/UNIX/Mac OS X.
  • Responsibilities: Work on compiler and debugger-related tasks, including designing efficient workflows and algorithms for massively parallel environments.
  • Responsibilities: Contribute to UI development using Qt and C++ to create efficient and user-friendly interfaces as needed.
  • Responsibilities: Aid in efficient debugging, dynamic analysis, data collection, data reduction, and scalability for advanced parallel applications.
  • Responsibilities: Design and develop efficient workflows and algorithms to work in massively parallel environments to aid in efficient debugging and scalability.

Requirements

  • Familiarity with software debuggers and how they work.
  • Ideally, will have been part of a team building the latest HPC debugging and performance tools for demanding massively parallel environments.
  • Design and develop new and advanced features in C++ on a variety of cross-platform Linux/UNIX/Mac OS X platforms.
  • 10+ years of industry-level experience with a proven track record of successful development.
  • 7+ years of C++ experience, including development using STL and C++ templates.
  • Experience in parallel/multi-process computing environments, especially HPC environments.
  • Knowledge of MPI and OpenMP parallel programming models, as well as compiler design and implementation.
  • Familiarity with ELF/DWARF object file formats and symbol tables.
  • Experience developing multi-threaded programs and working in different UNIX/Linux environments.
  • Familiarity with client/server architecture, including request/response protocols, session management, and data serialization techniques.
  • Experience developing user interfaces for desktop-based applications using Qt.
  • Demonstrated test-driven development and the ability to work and plan independently while sharing knowledge with others.
  • Strong problem-solving and analytical skills, with the ability to quickly understand and address complex technical challenges.
  • Excellent communication and collaboration skills, with the ability to effectively work within a cross-functional team.
  • Knowledge of common C++ design patterns and the ability to use them when necessary.
  • Agile/scrum development experience.
  • Experience with Jenkins or other CI systems.