Software Engineer - Advanced - Licensing & Security
Business Unit: Product Lifecycle Management-PLM
Requisition Number: 233448
Primary Location: United States-New York-Melville
Other Locations: United States-New Hampshire-Lebanon, United States-Texas-Houston, United States-Texas-Austin
Assignment Category: Full-time regular
Experience Level: Mid level
Education Required Level: Bachelor's Degree
Travel Required: 5%
We are seeking a Software Engineer – Advanced to join the team. The Software Engineer - Advanced will handle the following:
• Create and maintain licensing-related software for Simcenter STAR-CCM+,a scientific-computing, client-server application.
• Design and create code and refactor existing code in order to support additional business models, improve security, improve performance, and reduce our maintenance burden.
• Maintain quality and backward compatibility while making large-scale changes to existing software.
• The primary obligations of the role include designing, creating, and documenting high-quality, extensible software in a timely manner.
This position reports to the Manager of the Software Framework division of the Platform department working on the product: SimCenter STAR-CCM+.
• Enhance and maintain code that manages licensing and other functionality in object-oriented, modern C++ and other languages
• Introduce new license features
• Secure and harden the licensing code when exploits are discovered.
• Write unit tests and functional tests
• Collaborate as part of a large, distributed group of developers
• Collaborate with developers of related products on integrated licensing
• Cooperate with our license-server vendor, Flexera, on improvements and bugs in the license server
• Travel when necessary (fewer than 10 days per year, mostly domestic) to collaborate with other teams
• Participate in design reviews and code reviews
• Communicate project status during regular meetings
• Write and maintain technical design documents and new-feature documents
Required Knowledge/Skills, Education, and Experience
• This position requires, at minimum, either a Master’s degree in Computer Science, Engineering, Mathematics, or Information Science (or foreign equivalent) and 2 years progressive, post-academic experience in software design and development or a Bachelor’s degree in Computer Science, Engineering, Mathematics, or Information Science (or foreign equivalent) and 5 years progressive post baccalaureate experience in Software design and development.
Required technical experience
• True expertise in modern, object-oriented design in C++
• True expertise with process management and scripting in both Windows and Linux
• Expertise with FlexNet Publisher or a similar licensing system
• Excellent communication skills to work successfully on large, distributed teams and navigating a massive code base
• Embracing best practices regarding software development
• Issue management using Jira or a comparable system
• Experience with navigating and editing software using Eclipse and/or Visual Studio
• Experience with Implementing object-oriented C++ design patterns
• Experience Working on legacy code bases
• Comfort in a dynamic, fast-paced environment.
• Ability to handle multiple tasks with minimal oversight.
Preferred knowledge, skills, or expertise
• Flexera licensing tools
• Continuous integration
• Git or similar distributed version control systems
• Successful experience working on large, commercial software products
• Parallel computing architectures, MPI
• Test-driven / test-first development
• Experience with distributed systems authentication and/or token-based authentication