Under general supervision of the Software Engineering Manager, the Supply Chain Software Engineer is a full-stack engineer who performs work assignments in one or more of the following areas: collaborating with team members to modify solutions; participating in project planning and requirements definition; system/application design, system/application development, unit testing, support during QA and User Acceptance Testing, implementation and integration; customer support for and technical expertise in end-user decision support software tools and end-user computing technology; conducting all activities in accordance with standards and procedures.
- Design, develop, test, deploy and support new software solutions and changes to existing software solutions
- Collaborate with team members and provide thoughtful discussion on tactics and strategies as they are selected
- Translate Business Requirements into components of complex, loosely-coupled, distributed systems
- Maintain awareness and familiarity with evolving trends in software development
- Troubleshoot technical issues in a variety of application environments. This includes being able to research issues related to system configuration, software and database systems, and problems related to data integrity or conformity.
- Maintain a focus on uptime and performance for high-volume solutions, hosted solutions
- 4 or more years work related experience and B.S. in computer science or information systems
- 2 or more years of experience in enterprise application development in the .NET environment
- 2 or more years of experience with database development and tuning in the MS SQL Server platform specifically: T-SQL, stored procedures, data warehousing
- Strong understanding of object orientation and familiarity with modern design patterns
- Strong experience with ORMs (Entity Framework, NHibernate)
- Familiar with Service Orientation/RESTful Patterns and Concepts/API Design Fundamentals
- Familiar with Dependency Injection and unit testing (Unity or Ninject)
- Familiar with source control systems and tools, including Git, TFS, Microsoft Visual Studio, Azure DevOps
- Familiar with data persistence solutions other than RDBMS (Key/Value Stores, Document Databases, BLOB/Object Storage)
- Familiar with distributed system design and service bus messaging/queueing systems
- Familiar with caching techniques (eviction, patterns like cache-aside, aspect-injection, tools/vendor selection)
- Familiar with mobile development for Android and iOS
- Familiar with CI/CD build/deploy technology
- Familiar with DevOps practices particularly in Azure services
- Ability to troubleshoot environment/hosting-related issues with cloud-based platform services or on-premise web technology (DNS, LoadBalancing, IIS, Windows Server, SSL, Security Contexts, basic firewall and networking concepts)
- Integrity: Gains the trust of others by taking responsibility for own actions and telling the truth.
- Teamwork: Builds relationships and works cooperatively with others, inside and outside the organization, to accomplish objectives to build and maintain mutually-beneficial partnerships, leverage information and achieve results.
- Adaptable: Responds to change with a willingness to learn new ways to accomplish work objectives with a positive attitude.
- Innovative: Ability to develop, sponsor, or support the introduction of new and improved methods, products, procedures or technologies.
- Curious: A desire to inquire and learn, to seek new knowledge and wisdom, and to listen to the contributions of others with a genuine interest to better self, the team, and the organization.
- Analytical and Critical Thinking: Ability to tackle a problem by using a logical, systematic, sequential approach.
- Problem Solving: Gathers and analyzes information to generate and evaluate potential solutions to problems, issues and challenges while weighing the accuracy and relevance of the facts, data and information.