Title: | Software Developer - Principal |
---|---|
ID: | 20561 |
Location: | Norman, OK |
A Principal Software Developer is a senior-level professional with a pivotal role in leading the design and implementation of complex software systems. They provide technical leadership, guide architectural design, and ensure adherence to coding standards and best practices. Responsible for project management, they lead cross-functional teams, contribute to strategic planning, and oversee the execution of software development projects. Principals play a key role in code reviews, mentoring junior developers, and evaluating emerging technologies to drive innovation. Their expertise contributes to the overall success of software initiatives, and they foster a culture of continuous learning and excellence within the development team.
Responsibilities:
- Develop intuitive software that meets and exceeds the needs of the company.
- Professionally support and maintain all software and create updates regularly to address customer and company concerns.
- Develop and enhance functionalities and features of PCI software products.
- Deploy PCI software products and integrate them with other systems.
- Resolves critical issues and contributes to business Unit/Area development.
- Scopes development projects for the long-term benefit of the application.
- Understands the design of other applications.
- Works on critical issues and the most complex projects.
- Able to articulate trade-off decisions of time, cost and functionalities.
- Design complex (many components) systems that are easy to maintain to test and observe.
- Technical lead/counterpart/partner to product managers, sales/marketing and other stakeholders and clients.
- Operates at the component level (a screen, an EJB a utility class etc.).
- Operates at the module level (workflows), application level and product level.
- Designs and architects new models for the application up to 50% of the time.
- Focuses on all development activities 50% of the time.
- Actively seek ways to improve business software processes and interactions.
- Aid and support the coaching and training of other team members to ensure all employees are confident in the use of software applications.
- Provide technical leadership and expertise in the design and implementation of complex software systems.
- Act as a subject matter expert, guiding the team in solving challenging technical problems.
- Lead the architectural design of software solutions, ensuring scalability, performance, and adherence to industry best practices.
- Drive the development of innovative and efficient system architectures.
- Establish and enforce coding standards, best practices, and code review processes to maintain a high level of code quality.
- Conduct regular code reviews, providing mentorship and guidance to the development team.
- Lead and oversee software development projects, collaborating with cross-functional teams to define project requirements and deliver solutions on time and within budget.
- Stay abreast of emerging technologies, industry trends, and best practices.
- Evaluate and recommend new tools, frameworks, and technologies to enhance the development process.
- Effectively communicate technical concepts to both technical and non-technical audiences.
- Mentor and coach junior and mid-level developers, fostering their professional growth and development.
- Foster a culture of continuous learning and innovation within the development team.
Skills and Qualifications:
- Bachelor's or Master’s degree in Computer Science, Software Engineering, or a related field.
- Minimum of 8 years of experience in developing and implementing software applications.
- In-depth knowledge of programming languages such as Java and Python.
- Professional program certification in Java is strongly preferred.
- Good knowledge of core JSE Skills (JAVA, SQL, JS, HTML SML, GWT etc.).
- Expert Knowledge of core Technologies plus J2EE Design Patterns and Optimization.
- Experienced in AWS is preferred.
- Experience working on large-scale software projects.
- Proficient on business and user needs for the application.
- Able to provide reliable estimates.
- Understands business and user needs at component and module level.
- Applies business sound principals to business use cases and context
- Proven experience as a Principal Software Developer or in a similar leadership role.
- Expertise in multiple programming languages and frameworks.
- Strong architectural and design skills, with a focus on scalability and performance optimization.
- Excellent leadership and project management skills.
- Exceptional problem-solving and critical-thinking abilities.
- Effective communication skills, both written and verbal.
- Experience with agile development methodologies.