Essential Functions (Job Duties and Responsibilities):
Solid understanding of duties performed within entire software development life cycle, tools, and language(s) to include:
- Collaborate with Product Owners/BA’s in refinement and defining user/technical stories for controls based software utilized in automated systems for material movement
- Ensures teams are following best practices for test-driven/behavior driven development of microservice modules that support both on premise and cloud based platforms distributed utilizing automated CI/CD pipelines
- Provides leadership, technology guidance, and mentors others throughout the SDLC process within both product and project development activities. Leverage your domain expertise to coach and further the knowledge and improve productivity of your colleagues.
- Design, develop, and maintain complex microservice components that meet requirements, provide high quality in a high performance environment
- Contributes and develops complex application architectures and technical alternatives to meet functional requirements working with System, Software, and Solution architects
- Leads technical documentation development for application designs and ensures that all key technical areas are fully documented and understood.
- Works closely with other architects and software engineers to align the organization around standard IDE’s (i.e. IntelliJ, Eclipse, etc.) and open source/commercial tools and libraries that meet the business needs for software development
- Strong ability to quickly analyze functional issues, performance issues, production components and configurations, Triaging/troubleshooting of issues across dev, QA, and production environments
- Supports customer deployment of software applications into production environments as needed to ensure proper functionality and customer acceptance
- Works as a multi-skilled professional practicing SAFe Agile in both a SCRUM/Kanban methodology
Required Education and Experience:
- Bachelor or Master degree in Computer Science or Information Technology or equivalent
- A Minimum of 8 years working experience developing in JAVA
- Expert in Core JAVA / Spring Boot, Framework, Security, Cloud / Hibernate / Web Services and knowledge of complex event based platforms like Flink, siddhi, or other event based streaming frameworks
- Expert in building microservice based architectures utilizing Domain Driven Designs with both Restful API’s and message driven event based platforms within data streaming environments
- Experience in secure coding practices and coaching/reviewing within development teams
- Experience in working with both Maven and Gradle build tools along with working knowledge of other build applications and their integrated use within CI/CD pipelines
- Experience in building complex applications for low latency environments utilizing “In-Memory Databases”, distributed cache, “in-Memory” computing platforms systems like Hazelcast, Kafka, and Ignite
- Experience in working with GIT (Bitbucket), SVN or other distributed source control systems
- Experience with one or more of the following tools Apache Camel, JMS, JNDI, JUnit, and Cucumber
- Advanced knowledge developing REST APIs and micro-services with Docker deployments along with memory and performance management, instrumentation, and construction of fault tolerance features for application resiliency
- Experience with relational, NoSQL, and event streaming database implementations (Oracle, MySQL, PostgreSQL, MongoDB, Cassandra, Kafka)
- Advanced use of ELK Stack (Elastic Search, Kibana, Beats, Logstash) and consumption of XML, JSON, XSLT document types
- Working knowledge of developing/deployment of applications within cloud systems (Azure, AWS, etc.)
Any of the following additional experience is a plus:
- Controls software development within various industrial environments like baggage handling, Warehouse Control/Execution software or equivalent
- Experienced in working with Atlassian tools (JIRA, Confluence, etc.) or other applications supporting Agile environment
- Knowledge and experience assisting with construction of CI/CD pipelines in collaboration with DevOps including integration of test automation systems utilizing Docker and Kubernetes
- Working knowledge of Apache Camel, JMS, JNDI, JUnit, and Cucumber
- Working knowledge of multiple Java IDE’s like IntelliJ, Eclipse, and/or NetBeans
Strong communication skills (written and verbal).
Good interpersonal skills (work well within a team).
Ability to lead one or more development teams and organize technical activities within Agile process.
Be able to contribute to the onboarding process of additional team members.
Ability to work in a fast-paced operational environment with competing priorities and multiple stakeholders.
Strong analytical abilities, and able to put forward recommendations and solutions.