Description
Enphase Energy is a global energy technology company and a leading provider of solar, battery, and electric vehicle charging products. Founded in 2006, our innovative microinverter technology revolutionized solar power, making it a safer, more reliable, and scalable energy source. Today, the Enphase Energy System enables users to make, use, save, and sell their own power. Enphase is also one of the most successful and innovative clean energy companies in the world, with more than 80 million products shipped across 160 countries.
Join our dynamic teams designing and developing next-gen energy technologies and help drive a sustainable future!
About the role
As Principal Software Engineer in Cloud Services (IoT), you will lead the team to deliver low latency, high throughput, scalable distributed services handling millions of users. The role is techno managerial; you should be providing technical leadership / mentoring to a team of talented developers in agile environment. Your ability to lead the architecture, design, and implementation of maintainable, high-quality, and high-performing web (microservices, React UI, AWS) and mobile applications is essential for success in this role. Provide hands-on technical expertise to design, engineer, deploy, and deliver highly scalable cloud applications. Drive improvements in technical architecture, standards, and processes. Drive engineering excellence while managing/mentoring talented team of developers in agile environment. Work closely with product management and other stakeholders for system design and delivery.
What you will be doing
- Design and implement scalable, reliable, performant and secure applications services in the realm of micro-services, web-services, batch Jobs, web Applications, data processing, device integration (IoT)
- Ability to develop software programs with best of design patterns, data structures & algorithms
- Follow and implement best of the software engineering processes that include clean code, test automations (TDD), monitoring, performance bench marking etc
- Responsible for delivering feature changes and functional additions that handle millions of requests per day while adhering to quality and schedule targets
- Shaping architecture for robust, reliable, scalable and high-performance applications, considering functional and technical requirements. Drive the architecture, high level design and low-level design for cloud, web & mobile software.
- Review definition and development of user experience of the product. Develop high-level product specifications with attention to system integration and feasibility
- Work in challenging and high-performance environment to clearly understand and provide state of the art solutions (via design and code)
- Strong experience with Agile project management aspects. Good Exposure to TDD and BDD based development methodologies with strong focus on CI/CD
- Work with different stakeholders in defining a holistic strategy for developer experience inclusive of API protocols, definition, documentation, management, deployment, discovery and canonical models
- Create a common understanding of solution concepts and architecture documentation and align delivery teams to be consistent with the target architecture
- Rapidly prototype technologies, tools and components for evaluation. Building IPs and Proof of Concepts for products and projects in current or future development
- Set roadmap for Cloud Software Engineering based on architecture and process improvements
- Define all aspects of development from appropriate technology and workflow to coding standards
- Provide technical guidance and coaching to developers and engineers
- Strong programming knowledge in a combination of Java, Ruby on Rails, JavaScript, AWS technologies, web frameworks/ technologies and mobile frameworks/technologies. Familiarity with HTML/CSS, JavaScript and UI/UX design
- Knowledge of data analytics and machine learning and GenAI is a plus
- Strong documentation, presentation and communication skills
Who you are and what you bring
- B.E/B.Tech/M.Tech in Computer Science or Electrical Engineering from top tier college and >70% marks
- 18+ years of proven software development experience in developing cloud-based applications
- Excellent Java programming skills with effective use of design patterns, data structure and algorithms
- Solid experience in micro-services and API development using (Java, Spring Framework, SpringBoot, Spring Cloud Netflix Libraries, Spring Data, JPA / Hibernate) or (Python FastAPI or Python Django), REST principles, design patterns
- Solid experience of developing applications on top of Relational and NoSql databases such as MySQL, MongoDb, AWS DynamoDb
- Excellent understanding protocols & concepts such HTTP, MQTT, SSL, Public Key infrastructure PKI, oAuth , SAML
- Proficient in working in the environment with tools such as GIT, Jenkins, SonarQube, automated tests (jUnit), Maven, Gradle
- Solid understanding of cloud technologies, such as Docker, Kubernetes, EKS, Kafka, AWS Kinesis etc.
- Solid knowledge and experience of having worked in AWS Cloud Platform (or Azure / GCP).
- Solid understanding and experience on PaaS services like File & object Storage, Message Queues/Bus, SQL/NoSQL, Identity and Access management, Load balancers etc
- Good knowledge and experience with Agile, Clean Code, TDD methodologies
- Exposure or knowledge in Renewable Tech companies
- Familiarity with Web Front End (Java Script/React)
- Familiarity with working in Internet of Things / Hardware integration