Company Generac Power Systems
Name Staff Software Development Engineer-Fleet Applications
Req # 64050
Employment Type Full Time
Shift 1st
At Generac, our people help make the world safer, brighter, and more productive. We are united by our efforts to inspire change for a better world; impact our people and community; influence and achieve positive results; and innovate the industry. Our shared goals allow people with diverse backgrounds and points of view to work together, bringing our global customers peace of mind through reliable products and exceptional support.
- Help build a software engineering culture across the department by sharing your best practices, approaches, documentation, and code with other engineering teams.
- Design solutions for complex or critical problems in the IoT and Connectivity areas by collaborating directly with stakeholders, product managers, UX/UI, and other technical leads.
- Lead team(s) to deliver solutions that meet or exceed business needs by having a deep understanding of the business need and/or user problem.
- Mentor engineering staff on emerging industry trends, technical standards, and design/coding best practices.
- Apply pair or mob programming techniques to improve work quality, knowledge distribution, and team cohesiveness.
- Able to troubleshoot complicated issues in a cloud-based SaaS environment and manage live production incidents, debug/troubleshoot device, application, and infrastructure issues, follow and implement best practices.
- Document your system knowledge as you acquire it over time and ensure critical system information is readily available to those who need it.
- Monitor application performance, take steps to improve overall performance and stability, and follow through with implementation.
- Design, write, ship, and motivate the creation of software and systems to increase reuse, observability, product reliability, and organizational efficiency.
- Prioritize design and architecture at all scales that promote the ease and efficiency of ongoing change and maintenance over the software's lifetime.
- Work closely with software engineers and testers to ensure the system is responding properly to non-functional requirements such as performance, security, and availability.
- Keep up to date with security and proactively identify, diagnose, and solve complex security issues.
- Bachelor's Degree in Engineering, Computer Science, or equivalent technical degree.
- 7 years of experience in commercial software development in a software engineering role.
- 3 years of experience leading agile teams and mentoring junior team members.
- Demonstratable experience in web UI frameworks such as VueJS, ReactJS, and/or AngularJS.
- Experience applying pair or mob programming techniques.
- Experience building and changing resilient distributed systems software.
- Experience with CI/CD principles and automated pipelines.
- Experience using C#, Java, JavaScript, and/or other commercial software languages.
- Experience working with IoT based solutions and devices.
- Experience with code repositories such as Git, Subversion, etc.
- Experience implementing performant APIs for internal and external consumption.
- Experience designing, implementing, and operating cloud-based systems in Azure, AWS, or Google Cloud.
- Experience designing data models and leveraging different data storage technologies such as SQL, NoSQL, big data stores, etc.
- Experience with secure coding and best practices.
- Experience with authentication standards such as Oauth2 and/or OpenID Connect.
- Ability to perform detail-orientated work with a high degree of accuracy.
- Exceptional understanding of development activities and tasks.
- Excellent verbal, written, and interpersonal skills.
- Excellent attention to detail, critical thinking, and problem-solving skills.
- Excellent time management skills, able to meet deadlines, and manage time effectively.