Job Description
As a Software Engineer Principal, you will be responsible for the design of software managing the logic and execution of the warehouse execution systems such as conveyor routing, sortation, order streaming, goods to person, and/or task and labor optimization. The Software Engineer Principal is responsible for joining a product team and contributing to the software design, software development, and overall product lifecycle for a product that our users love. The engineering process is highly collaborative. In addition to pairing, Software Engineer Principals field questions from other product teams and encourage cross-team collaboration. They also play an active role working with 3rd party vendors as well as the open-source community.
Software Engineer Principals create foundational code elements that can be reused as well as architectural diagrams and other product-related documentation. They also define service level objectives for products. In addition, Software Engineer Principals may be involved in product configuration, performance tuning and testing as well as production monitoring.
As a Software Engineer Principal, you will be an extremely knowledgeable Engineer on the product team and are expected to build and grow the skillsets of the more junior engineers. There is also an expectation that the Software Engineer Principal will demonstrate expertise around modern software design and development.
Key Responsibilities:
70% Delivery & Execution
Collaborates and pairs with other product team members (UX, engineering, and product management) to create secure, reliable, scalable software solutions
Documents, reviews and ensures that all quality and change control standards are met
Writes custom code or scripts to automate infrastructure, monitoring services, and test cases
Writes custom code or scripts to do "destructive testing" to ensure adequate resiliency in production
Creates meaningful dashboards, logging, alerting, and responses to ensure that issues are captured and addressed proactively
Contributes to enterprise-wide tools to drive destructive testing, automation, or engineering empowerment
Identifies product enhancements (client-facing or technical) to create a better experience for the end users
Identifies unsecured code areas and implements fixes as they are discovered with or without tooling
Identifies, implements, and shares technical solutions that can be used across the organization
Creates and architects foundational code elements that can be reused many times by a product
Creates meaningful architecture diagrams and other documentation needed for security reviews or other interested parties
Defines Service Level Objectives for product to constantly measure their reliability in production and help prioritize backlog work
20% Support & Enablement:
Fields questions from other product teams or support teams
Monitors tools and participates in conversations to encourage collaboration across product teams
Provides application support for software running in production
Proactively monitors production Service Level Objectives for products
Works with vendors and the open-source community to help identify and implement feature enhancements in software products
Works with other product teams to create API specifications and contracts for shared data
Proactively reviews the performance and capacity of all aspects of production: code, infrastructure, data, and message processing
Triages high priority issues and outages as they arise
10% Learning:
Participates in and leads learning activities around modern software design and development core practices (communities of practice)
Learns, through reading, tutorials, and videos, new technologies and best practices being used within other technology organizations
Attends conferences and learns how to apply new technologies where appropriate
Pay Rate will be within the range of 65-75/hr. determined by the hiring manager during the interview process.
This is a 100% remote position working EST hours.
We are a company committed to creating diverse and inclusive environments where people can bring their full, authentic selves to work every day. We are an equal opportunity/affirmative action employer that believes everyone matters. Qualified candidates will receive consideration for employment regardless of their race, color, ethnicity, religion, sex (including pregnancy), sexual orientation, gender identity and expression, marital status, national origin, ancestry, genetic factors, age, disability, protected veteran status, military or uniformed service member status, or any other status or characteristic protected by applicable laws, regulations, and ordinances. If you need assistance and/or a reasonable accommodation due to a disability during the application or recruiting process, please send a request to HR@insightglobal.com.To learn more about how we collect, keep, and process your private information, please review Insight Global's Workforce Privacy Policy: https://insightglobal.com/workforce-privacy-policy/.
Skills and Requirements
6-8+ years of software architecture experience within the supply chain space working with WCS and Warehouse Execution Systems WES.
Has a deep understanding of warehousing and logistics, and understands how their software impacts the performance and processes of the operations team
Experience working with and communicating with PLCs
Experience designing conveyor control systems, routing systems, sortation systems, merge systems, goods to person systems, order streaming/work release systems, and warehouse execution systems
Experience working with conveyor components such as motors, photo eyes, scanners and scan tunnels, inline tapers, inline print and apply systems, inline scales, goods to person systems, palletizers and depalletizers, robotic arms, etc.
Mastery of a modern programming language (preferably Java)
Mastery of a modern web application framework such as React.js, Spring MVC, and Node.js
Mastery of writing SQL queries against relational & NoSQL databases
Mastery of a version control systems (preferably Git)
Proficient in the successful application of design patterns
Proficient in cloud computing platforms and the associated automation patterns they provide as well as edge computing and knowing when to use one versus the other
Proficient in production systems design including High Availability, Disaster Recovery, Performance, Efficiency, and Security
Proficient in defensive coding practices and patterns for high-availability
Proficient in modern microservice-based architectures and methodologies
Proficient in a CI/CD toolchain
Proficient in test-driven development and effective unit test creation.