Principal Configuration Management Engineer
Cadence
Job Summary
Cadence is seeking a Principal Configuration Management Engineer to specify, implement, and support development and operations infrastructure. The role involves performing CM and release engineering tasks, designing and automating productivity tools, and supporting software build and release processes. Candidates should have 7+ years of experience in software development or configuration management, a strong understanding of revision control systems like Perforce and Git, and proficiency in Unix/Linux systems and scripting languages such as Perl, Python, or Tcl. The position requires a proactive approach to problem-solving and a commitment to best practices in software engineering.
Must Have
- Specify, implement and support the development and operations infrastructure.
- Perform CM and release engineering tasks to ensure new product operating parameters are documented, comply with standards and are logistically sustainable.
- Design, develop, automate and maintain productivity tools.
- Work with development and operation teams to define best practices and refactor existing services to minimize inefficiencies.
- Support the software build and release delivery processes, resolving build and test issues as necessary.
- Identify new techniques to drive the CM initiative and stay current with the industry standards.
- Consolidate and standardize operational processes around version control, build management, test management and release management tools.
- Propose and present solutions by translating user requirements into design and functional requirements.
- 7+ years of experience in software development or configuration management.
- Thorough understanding of revision control systems such as Perforce, Clearcase, Subversion, and/or CVS.
- Demonstrated ability to manage multiple code streams and branches, including branch creation, rebasing and merging.
- Experience using and troubleshooting Unix and/or Linux systems, including different operating systems, compilers and automation tools.
- Familiarity with scripting languages to automate development and operations tasks, including Perl, Php, Python or Tcl.
- Solid understanding of software engineering practices, and programming using a variety of languages.
Good to Have
- Knowledge of C/C++ programming languages is desired.
Job Description
Duties and Responsibilities
- Specify, implement and support the development and operations infrastructure
- Perform CM and release engineering tasks to ensure new product operating parameters are documented, comply with standards and are logistically sustainable using specialized domain knowledge and developed business expertise.
- Design, develop, automate and maintain productivity tools
- Work with development and operation teams to define best practices and refactor existing services to minimize inefficiencies
- Support the software build and release delivery processes, resolving build and test issues as necessary
- Identify new techniques to drive the CM initiative and stay current with the industry standards
- Consolidate and standardize operational processes around version control, build management, test management and release management tools
- Propose and present solutions by translating user requirements into design and functional requirements.
- Proactively seeks more information to address issues/problems. Understands how and where to obtain and utilize resources effectively to resolve issues and problems independently.
- Interface with cross-functional team members, customers and the field, as required, to answer questions about specific processes
- Manages multiple conflicting tasks and projects with conflicting priorities on a daily basis and decide how to proceed, Establishes a realistic course of action to complete tasks, identifies the resources required for completion, redirects activities and resources when necessary, and manages multiple priorities effectively.
- Provide technical guidance and advice to lower level or less experienced engineers within the team. Understand/share experience as an engineer with new employees (e.g., "showing new employees the ropes.”)
Core Competencies
- Technical Scope: Understand, apply, and promote good software practices. Ability to design and code proficiently and with high quality using good software practices. Ability to recognize and understand good/bad designs.
- Problem Solving: Understands and clearly articulates problems. Takes ownership to generate solutions to ill-defined problems by analyzing technical issues and actively seeking out technical experts or appropriate parties to bring clarity to issues or provide necessary information. Explains trade-offs and ‘pros versus cons” of recommendations.
- Communication Skills: Clearly and objectively presents ideas both verbally and in writing. Writes clear design and functional specifications. Gives feedback to others on their specifications. Comfortable expressing opinions, defending ideas, and actively engaging in discussions on technical issues.
- Initiative and Action: Sets priorities for own tasks taking into consideration the group’s goals. Takes longer term view of a problem or situation and makes suggestions about technical approach or future functionality. Recognizes when more effort on a project is needed and takes appropriate action. Understands when to accept decisions and move forward with implementation.
- Accountability: Accountable to managers and peers. Plan out tasks and establish realistic timeline for completion. Commits to deadlines and deliver on time.
- Drive for Success: Sets high expectations for self and encourages the same in others. Demonstrates a sense of ownership for the team’s success, not just individual success.
- Mature Confidence: Projects maturity, realistic confidence, and self-assurance; willingly asserts own point of view; stands up against criticism; takes full responsibility for actions; shows self-insight and willingness to continue learning; shows a sense of humor; maintains a positive outlook.
- Building & Sustaining Relationships: Understands the organization’s culture, key constituencies, policies, and practices; knows how to get things done in a complex organizational system. Earns respect of others; promotes ideas persuasively; builds network of colleagues internally. Balances own needs with those of others. Actions demonstrate teamwork. Understands own role in the context of a broader corporate context.
- Ingenuity: Requires some original and independent thinking in originating new or improved methods, procedures, products, or ideas in undefined and undeveloped areas, for recommendation to operating unit or for within own position.
- Leadership (Individual & Team): Personally exemplifies organizational values, leads or serves on task forces, serves as a mentor or role model for others, demonstrates consistency between words and actions, pursues opportunities that could add value to the organization; confronts issues before they escalate.
- Adaptability: Demonstrates flexibility and effectiveness when confronted with changing circumstances. Achieves goals by using a variety of means, works effectively on a variety of tasks, responds with alternative approaches when situations change, consistently meets performance expectations when confronted by rapidly changing priorities or assignments, accepts change by viewing it as an opportunity rather than a problem.
- Personal Integrity: Shows integrity with all constituencies, delivers on commitments, treats others fairly and honestly, acts as a team player, maintains personal ethics and values.
- Continuous Learning: Takes responsibility for self-development efforts. Exhibits active investigation of successes and failures to learn from and improve performance results in the future. Regularly reviews performance to identify areas for learning opportunities and shares reasons for successes and failures to facilitate the success of others.
Minimum Qualifications
- BTech/MTech/MCA in CS/IT/E&C
- 7+ years of experience in software development or configuration management
- Thorough understanding of revision control systems such as Perforce, Clearcase, Subversion, and/or CVS. Demonstrated ability to manage multiple code streams and branches, including branch creation, rebasing and merging.
- Experience using and troubleshooting Unix and/or Linux systems, including different operating systems, compilers and automation tools
- Familiarity with scripting languages to automate development and operations tasks, including Perl, Php, Python or Tcl.
- Solid understanding of software engineering practices, and programming using a variety of languages; knowledge of C/C++ programming languages is desired
15 Skills Required For This Role
Team Management
Cross Functional
Communication
Problem Solving
Team Player
Cpp
Game Texts
Release Management
Linux
Unix
Python
Subversion
Perforce
Perl
Php