Software Developer - Principal/Optimization
Listed on 2026-05-21
-
Software Development
Software Engineer, Full Stack Developer, Software Architect, Senior Developer
PCI Energy Solutions formally Power Costs Inc.is the premier provider of software, superior customer support, and value-added services for energy companies worldwide. For almost 30-years, PCI has set the standard for developing customer-focused, customer-driven software to meet the constantly evolving needs of ISO/RTO market participants and bilateral traders. More than 50% of all the power generated in North America is optimized using the PCI Platform.
70% of Fortune 500 Utilities in the U.S. utilize PCI software solutions.
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.
- 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.
- Resolve critical issues and contribute to business Unit/Area development.
- Scope development projects for the long‑term benefit of the application.
- Understand the design of other applications.
- Work 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.
- Act as the technical lead/counterpart/partner to product managers, sales/marketing and other stakeholders and clients.
- Operate at the component level (a screen, an EJB a utility class etc.).
- Operate at the module level (workflows), application level and product level.
- Design and architect new models for the application up to 50% of the time.
- Focus 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.
- 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.
- Good…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).