Job Description
The Senior Software Engineer II is responsible for creating and maintaining software that is sold or used by Inductive Automation, LLC. The Senior Software Engineer II participates in all phases of product development, including design, specification, implementation, testing, building, deployment, documentation, support, and maintenance. This role may be required to interact with customers to troubleshoot products or obtain requirements.
Responsibilities
Leading or significantly contributing to medium-to-large feature releases; usually multi-person projects that cross engineering team boundaries Acting as a clear expert in one or more technical areas Contributing high quality, impactful technical contributionsParticipating in the design review process, seeking and providing constructive criticismDemonstrating ability to succeed in a wide range of complex situations across multiple axes: e.g. scale, uncertainty, interconnectedness Monitoring and adjusting team pace to instill urgency for success but protect from burnout Estimating and managing project timelines and risk Crossing team and service boundaries to solve problems Building relationships with stakeholders including customers, product managers, cross-functional partners, and external partners Contributing to defining strategic direction, planning the roadmap, escalating issues, and synthesizing feedback to ensure team success Ensuring that knowledge is shared amongst the team and does not position themselves or others as a single point of failure Mentoring multiple engineers, primarily Level 1 engineers through Level 3 engineersWorking through others, lifting the skills and expertise of those around them Advising manager with insights and recommendations to improve the teamParticipating in the hiring process, as needed (by submitting referrals, meeting candidates, attending recruiting events, or presenting externally) Participating in engineering interviews, as needed Completing thoughtful and constructive code reviews in a timely manner Meeting and maintains 6 month performance milestones provided by their managerResponsible for one or more product areas or other IC leadership role (Product Lead, Scrum Master, etc)
Requirements
8+ years of software engineering or software development experience, preferably in a related fieldMinimum of 3 years of experience in designing, building, and shipping containerized deployments Experience with designing and maintaining container-based scalable distributed architecturesExtensive experience building, optimizing, and maintaining container images Experience with Infrastructure-as-Code (IaC), specifically utilizing Ansible for automated configuration and deployment Proficiency in advanced shell scripting (Bash) for automation, system administration, and container image and Helm Chart support Practical knowledge of Kubernetes clusters and workloadsObject-oriented design experience Modern toolchain and source control familiarity, e.g. Git Familiarity with agile methodologies, e.g. SCRUM A comprehensive understanding of computer science concepts and ability to apply expertise in object-oriented design, multi-threaded architecture, data structures, algorithms, and cybersecurity Hands-on programming experience using relevant languages (Java, Typescript etc.)Experience using relevant tool suites. (IntelliJ or equivalent, Git, Webpack)Creative problem-solving skills Passionate about building applications that delight users Strong written and verbal communication and interpersonal skills Experience working on a software development team
Preferred experience: Experience with security, particularly security infrastructure design Experience playing an active role in developing and shipping SaaS productsExperience with state management and versioning approaches AWS certification (Solutions Architect, DevOps Engineer, or equivalent) or Azure certification