Senior Software Engineer
Apply NowJob details
Viridi Parente is a disruptive energy company. We deliver solutions to tomorrow’s problems, today. We develop and manufacture battery pack technology for mobile and energy storage applications. We deliver customer-focused solutions, blending environmentally conscious products with a bottom-line mentality. We are looking for a Senior Software Engineer for our Richmond, CA site to join our growing Engineering team and build out the next generation of our platform. The ideal candidate is a hands-on platform builder with significant experience in managing teams developing scalable data platforms. Responsibilities include gathering user requirements, defining system functionality and writing embedded Linux code in various languages, like C, C++, Python, Java, and Java Script programming languages, also PLC coding languages in structured text, ladder logic, Function Block Diagram, and Continuous Flow Chart as well as Matlab Simulink. Our ideal candidates are familiar with the software development life cycle (SDLC) from preliminary system analysis to tests and deployment. They also have experience managing development teams and projects. The Senior Software Engineer will work closely with the end customers to help architect the company’s next generation products and to lead a team of engineers that executes the development of these products, including building high-quality, innovative and fully performing software that complies with coding standards and technical design. Responsibilities Responsible for leading new product development of embedded Linux applications focusing on the areas of network communications, security, and management, as well as IoT, Edge Computing and Cloud Computing applications. Managing software engineering teams and execute full software development life cycle (SDLC) Develop flowcharts, layouts and documentation to identify requirements and solutions Develop system simulations in Matlab Simulink Analyze, design and develop tests and test-automation suites. Write high caliber, testable code and review code developed by the team Produce specifications and determine operational feasibility Integrate software components into a fully functional software system Develop software verification plans and quality assurance procedures Document and maintain software functionality Troubleshoot, debug and upgrade existing systems Deploy programs and evaluate user feedback working with end customers Comply with project plans and industry standards Ensure software is updated with latest features Test software development methodology in an agile environment. Provide ongoing maintenance, support and enhancements in existing systems and platforms. Provide recommendations for continuous improvement. Lead a team of engineers to elevate technology and consistently apply best practices. Requirements and skills 3-7 years experience as a Software Engineer or Software Developer Experience leading software development teams Experience designing interactive applications Ability to develop embedded Linux software applications as well as software for PLC’s, HMI’s, Robotics and other devices in various programming languages Excellent knowledge of industrial communications and machine communications Ability to develop software in C, C++, Java, Java Script and other programming languages Knowledge of networking and network protocols Knowledge of relational databases, SQL and ORM technologies (JPA2, Hibernate) Experience with test-driven development Proficiency in software engineering tools and development methodology Ability to document requirements and specifications Degree in Computer Science, Engineering or relevant field Experience using software engineering tools such as Azure Dev Ops, Git, Atlassian, etc. Salary: $100 - 165K, depending on skills and experience
Apply Now