Position Summary :
Perforce is searching for a Senior Software Engineer to join their team. The Senior Software Engineer will be responsible for developing and implementing software solutions on our C++ Visualization software which is used within critical customers systems worldwide. You will work as part of a passionate development team while collaborating with cross-functional teams to drive innovation and ensure the delivery of high-quality :
- Collaborate with cross-functional teams to design, develop, and maintain software applications
- Design and develop distributed systems, ensuring fault tolerance, scalability, and performance
- Conduct thorough code reviews and provide constructive feedback to ensure code quality and adherence to best practices
- Identify and troubleshoot software defects and performance bottlenecks. Stay up to date with emerging technologies and industry trends and apply them to improve software development processes and outcomes
- Contribute to the continuous improvement of development methodologies and practices within the team
- May be required to support additional products / brands as :
- Bachelor's degree in computer science (or equivalent)
- 5+ years industry level experience and a proven track record of successful development
- 3+ years C++ experience including development experience using STL and C++ templates
- Demonstrated test driven development; and the ability to work and plan independently but also willing to share knowledge with others
- Agile / scrum development experience
- Experience with test automation and CI / CD to ensure product quality
- Strong proficiency in configuration management practices and tools
- Solid understanding of modern cloud applications and concepts, such as fault tolerance, scalability, and consistency
- Experience in developing and maintaining software applications in a collaborative team environment
- 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
- High proficiency in C++, especially modern C++ such as C++11 and above
- Understands CMake based build systems
- Knowledge of system APIs for Linux and Windows (GDI, GDI+, Direct2D, X11, Wayland)
- Ability to work with Linux shell use and basic scripting
- Experience with Jenkins
- Knowledge of common C++ design patterns and the ability to use them when necessary
- Clear understanding of the principles of object-oriented design
- Experience developing user interfaces for desktop based applications; dealing with large amounts of data and designing efficient concise ways to display it; and having a good sense of UX along with strong UI development skills are a plus
- Experience developing multi-threaded programs; developing in different UNIX / Linux and Windows environments; TCP / IP network to have :
- Knowledge of Java or C#
- Experience with make
- Python development experience
(ref : hirist.tech)