Looking for a Software Engineer to join a fast paced team building an all new highly available and secure solution for industrial automation and manless yard operations. This is an opportunity to get in at the early stages of development in the next generation product, building on the success of the existing solution. The successful candidate has experience developing, securing and deploying software with the highest quality.
Responsibilities
- Design, develop, and maintain complex applications using a range of tools and technologies
- Collaborate with cross-functional teams to identify and solve complex software problems
- Develop and maintain automated testing scripts to ensure high-quality software delivery
- Create and maintain technical documentation related to software design and development
- Participate in code reviews and provide constructive feedback to team members
- Mentor and coach junior developers
Qualifications
- BS, MS in Computer Science, Engineering, or equivalent practical experience
- 5+ years of experience as a software developer with Java.
- Strong knowledge of Data Structures, Algorithms and object-oriented programming.
- Strong understanding of different software architectures, design patterns and principles
- Experience developing applications using Spring Framework (Boot, Security, Data)
- Experience working with computer networking, communications, application level protocols like TCP/UDP, REST, SOAP, gRPC, AMQP, MQTT
- Solid understanding of cybersecurity principles, including encryption, secure communication protocols.
- Experience implementing application authentication and authorization with standard protocols such as OpenID Connect, OAuth 2.0, and SAML.
- Experience with Java build and source control tools such as Gradle and Git.
- Experience with Window and Linux environments and scripting with Powershell, Bash, etc.
- Experience with unit testing frameworks such as JUnit or TestNG and a passion for testing.
- Experience with Docker and application containerization
Bonus Skills/Experience
- Experience with additional programming languages such as Python, C++
- Experience with a variety of database systems such as SQL, NoSQL, Time Series and Graph
- Experience with at least one cloud provider (AWS, Azure, GCP).
- Experience with observability, and running production services from a DevOps or SRE perspective