• Staff Software Development Engineer-Fleet Applications

    Generac Power SystemsWaukesha, WI 53189

    Job #2654924872

  • Staff Software Development Engineer-Fleet Applications

    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.

    As a Staff Software Engineer - Applications, you will be a critical member of our team leading the development of IoT solutions that include cloud, web and mobile applications. This is not an average position where you might be restricted to one small piece of a system, but the opportunity to envision, design, influence and create high performing software as part of a commercial product. You will work closely with Product Managers, Business Analysts, UX/UI Designers, and Testers within a team, across teams, and across departments/business units to deliver engaging IoT-based solutions for Generac customers.

    You will be involved in exciting technical challenges by analyzing, designing, building, troubleshooting, and deploying vital applications and APIs while always thinking about usability, reliability, scalability, resilience, security, and performance.

    Reporting to Software Development Manager, you will be part of the team responsible for helping to deliver mission critical customer facing cloud web and mobile applications. You will help to create more consistent user interfaces and reusable components across applications, build high performing APIs, proactively test and tune all aspects of the application infrastructure, monitor and respond to system notifications and alerts and continually work to optimize and improve the performance, security, and reliability of our applications.

    Essential Duties & Responsibilities:

    • 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.

    Minimal Qualifications:

    • 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.

    Preferred Qualifications:

    • 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.

    Knowledge, Skills, & Abilities:

    • 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.

    "We are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status, or any other characteristic protected by law."