Each day we dedicate ourselves to treating each other, our customers and our community with care and respect.
Senior Software Engineer
Overview
Our software engineering teams own our software solutions from building relationships with stake holders, to understanding problems, designing solutions, building, and deploying software and supporting the software in production. Senior Software Engineer works independently on complex problems with guidance from the systems engineer to design, modify, develop, test, write and implement software programs, applications and services. This position will work on systems that log sensors and signals and requires knowledge about signal processing applications in Python and C++/C#.
Key Responsibilities
Primary duties may include, but are not limited to:
Design and development of our product/services and features, unit testing, code reviews, resolving defects encountered during the AQ cycle, supporting the production environment and assisting other developers in a team environment utilizing agile development processes and continuous improvement methodologies.Collaborate heavily with designers and our engineering team to create and maintain complex software solutions, specifically with regards to sensor logs and signal processing for in-line inspection and pipeline integrity products and solutions.Research technologies and engineer complete solutions to problems.Propose and implement performance optimizations and scaling strategies. Contribute to the ongoing improvement of our systems and processes.Work closely with engineering and software teams to test processes.Experience
Bachelor's degree in computer science or related field and or equivalent industry experience. 5+ years of experience in software development. Experience with in-line inspection and pipeline integrity a plus.Experience working directly with mechanical, electrical and firmware development engineers.Experience working directly with end users of software to assess and improve useability.Experience translating/transferring existing software between different languages and advancing existing codebases.Knowledge, Skills, and Abilities
Solid understanding of relational databases, e.g. SQL server. Working knowledge of document data storage (No-SQL).Proficient in C++ (or similar) and Python.Experience with the scientific Python stack a plus: Numpy, Scipy, Pandas, Matplotlib.Experience with signal processing techniques a plus.Experience with Agile development methodologies and Jenkins or similar automated build systemsExcellent communication skills, both verbal and writtenGood customer service skillsFlexible and adaptable (willing to work on other technical problems as needed)