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 contributions Participating in the design review process, seeking and providing constructive criticism Demonstrating 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 L1 through L3 Working through others, lifting the skills and expertise of those around them Advising manager with insights and recommendations to improve the team Participating 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) [Product Lead] Understanding, vetting, and prioritizing all incoming defects and feature requests having to do with their product area, as well as taking an active role in the future big-picture planning [Product Lead] Participating in the Product Lead Council to collaborate with various stakeholders interested in their product area. Making decisions and acting as a subject matter expert for their respective product area[Product Lead] Authoring requests for comments (RFCs) for significant new product features or changes and working with stakeholders and the software engineering team to issue a final specification document upon ticket completion
Requirements:
8+ years of software engineering or software development experience, preferably in a related field Object-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) Able to work independently on complex and ambiguous problems, from problem clarification through solution delivery Experience building user-facing applications with attention to usability, quality, and overall experience Strong written and verbal communication and interpersonal skills Experience working on a software development team