Staff Engineer Linux Platform

Research and Development Bangalore, India


Description

 

Job Description

GET READY FOR THE FUTURE OF ENERGY

Our Vision:

World’s best software-defined home energy solutions company

 

 

  • Milestone years

TimelineDescription automatically generated

Global Footprint

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • Hyperlinks

 

 

 

Role Title

Staff Engineer Linux Platform

Function

CTO India

Reports To

CTO Lead India

Location

Bangalore

 

Mission (Why does this role exist?) and Scope (About the Job)

Enphase Energy is one of the fastest growing and most dynamic Energy Systems Companies in the world. Today, our integrated hardware and software solutions empower people to make, store, use, sell, and share their own energy. We are accelerating the shift away from fossil fuels and toward the clean electrification of our homes, businesses, and communities. Enphase has already installed more than 34 million microinverters, which are helping power approximately 1.5 million households across 130 countries.

We are continuing to grow around the world. Enphase was listed on the S&P 500 for the first time in January 2021, featuring a market capitalization of more than $20 billion.

CTO team at Enphase nurtures forward looking technologies and works closely with business units to consume them for upcoming product development. We are now extending our CTO organization in Bangalore by building ~15-member team. This team will consist of technology leaders with deep hands-on experience and passion for technology. 

 

Enphase is looking for an experienced Embedded Software Engineer that will focus on our embedded Linux platform.  This position is on our CTO team.  In this role you will be researching state of the art options, assessing their merits, assembling proofs of concepts and mentoring other members of the team.  You will help shape the software platform architecture for our embedded platforms, tools, and practices to maximize performance, efficiency and reuse. A great candidate for this position strong technical background with excellent development and communications skills. 

 

Key Responsibilities and Outcomes (What the Person needs to accomplish in the role?)

  • Architect, design and develop embedded Linux platforms including the development tools, build environments, board support packages (BSP) and embedded applications
  • Build and maintain custom Linux-based embedded distributions for ARM based SoCs including custom OS configurations
  • Specify and implement embedded software development best practices, tools, continuous integration/continuous delivery solutions
  • Analyze complex embedded hardware and software architecture and development issues, assess their impact, present alternatives, and recommend preferred solutions
  • Track the evolution of, and maintain distribution environments, as well as integrating build, configuration and deployment automation 

Qualifications: Education, Competencies (Knowledge, Skills & Behaviour) and Experience

 

  • Minimum Qualifications
  • BE Electronics/Communication/Computer Science/Electrical Engineering + 8 years relevant experience or 
  • MS Computer Science/Communication/Electrical/Electronics + 6 years relevant experience 
  • A minimum of 3 years prior experience defining and developing embedded Linux platforms and development environments including substantial experience with Yocto projects and uboot.
  • A minimum of 3 years prior experience developing embedded platforms based on Linux running on ARM (or similar) based SoCs from boot and application development 
  • Strong familiarity with Linux system internals and operating environment including knowledge of OS platform security
  • Experience with Docker container based software/firmware architecture, configuration, optimization, packaging, and development.
  • Experience with embedded software tools including but not limited to: compilers, vendor-specific configuration and development environments, unit testing, code coverage and automation tools, linting tools, static and dynamic code analysis tools, and diagnostic and debug tools
  • Proven experience doing hands-on design, development and debugging embedded C/C++ programming
  • Ability to understand PCB schematics and general hardware knowledge to enable bringing up and debugging new PCBs

 

  •  Preferred Qualifications
  • Knowledge of multi-threaded embedded Linux development and interrupt servicing
  • Knowledge of communications protocols (e.g. USB, I2C, SPI, UART, etc.)
  • Knowledge of networking (e.g. TCP/IP), wireless, and Ethernet protocols
  • Prior experience with other embedded operating systems including Android, RTOS and bare metal platforms
  • Experience in scripting languages like Ruby, Lua, etc