Job Description
The Senior Software Engineer I is responsible for creating and maintaining software that is sold or utilized internally by Inductive Automation, LLC. They participate 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. This is a full-time position with remote, hybrid and on-site opportunities available.
Responsibilities
Independently responsible for the entire lifecycle of projects or features including engineering design, development, and deploymentJava software development on Inductive Automation’s software product(s)Improving code structure and architecture in service of testability and maintainabilityWriting, co-writing, and reviewing design documentationMaintaining high proficiency in one or more technical areasPrioritizing and valuing unowned or undesirable work that enables the team to move faster Ensuring work meets quality standardWorking with their team and adjacent teams to solve problemsEscalating problems that have wider scopeAssisting and teaching other engineers on an individual basisCompleting thoughtful and constructive code reviews in a timely mannerMeeting and maintaining 6 month performance milestones provided by their managerResponsible for one or more product areas or other IC leadership role (Product Lead, Scrum Master)
Requirements
3-5 years of software engineering or software development experience2-4+ years experience utilizing high level programming languages such as Java, Kotlin, C++, C# etc.Solid understanding of concurrent programming (Java is a plus)A comprehensive understanding of computer science concepts and ability to apply expertise in object-oriented design, multi-threaded architecture, data structures, algorithmsExperience using relevant tool suites. (IntelliJ or equivalent, Git, Webpack)Creative problem-solving skillsPassionate about building applications that delight usersStrong written and verbal communication and interpersonal skillsExperience working on a team using agile methodologiesProven ability to be proactive and take initiativeExperience with architecting time-series or column-store databasesPreferred experience with the following tools/libraries:Strong experience with Java JDK 17+Experience with architecting large, complex featuresSolid understanding of SQL, time series databases, columnar databases, and distributed storage, as well as experience storing data at scaleExperience with message queue architectures such as Kafka Nice to have:Experience with TDDExperience working as a Team Lead or other Leadership experienceAbility to apply expertise in cybersecurityExperience working in the Industrial Automation industry or experience with SCADA