Hammerspace, a leader in data management solutions, is seeking a seasoned Senior Staff Software Engineer with experience in Java, C and Python languages, and technologies such as Spring, Hibernate, Kafka and Protobuf to join our team in delivering back end and user-facing components to our customers.
- Design, implement, and support functionality in components ranging from data and policy analysis, ReSTful web services, distributed and failsafe job executors, and telemetry gathering. These components involve languages/technologies such as java, C, Spring, JPA/Hibernate, Jersey, Python, and SaltStack.
- Work with Software Architects and Product Management to design, deliver and enhance product features.
- Optimize existing code to improve performance, stability, supportability and usability.
- Develop software confidence and reliability by using best practices and current software patterns, creating unit tests and mock tooling, writing clear and understandable code which lends itself to maintainability.
- Estimate and report development efforts.
- Participate in all aspects of peer code reviews.
- Test software solutions appropriately before delivery to the testing team.
- Work with the test team to provide TOIs and review test plans and test automation.
- Work with Customer Support and customers, if needed to resolve issues in the field.
- Work remotely with a global team, communicating effectively via Slack, Zoom, Email, Confluence, Jira and Bitbucket.
- Excellent C, Java 8, Spring, Python skills.
- Working knowledge of Tomcat, Jersey, Jackson, ReST API design, Spring, Hibernate, JPA, Postgresql or similar, Kafka, SaltStack.
- Experience designing and working with enterprise applications.
- Ability to design features that require concurrency (utilizing threads, mutexes, semaphores).
- Experience debugging complex issues in a distributed environment.
- Understanding of the software development process, including OOAD, unit testing, test-driven design, and good understanding of design patterns.
- Working knowledge of source control management systems such as Git.
- Experience delivering and supporting features across multiple releases.
- An aptitude for using Linux.
- 8+ years of related experience with a BS in Computer Science or equivalent degree; or 6+ years and a Master’s degree; or 3+ years with a PhD.
Additional Desired Skills
- Experience with Bash, Grizzly, InfluxDB, Thrift, ONC RPC, JClouds, Protobuf, Swagger, Mockito and/or JMock.
- Storage system domain knowledge.
- Experience integrating with cloud storage providers and APIs.
- Experience working with CMake and Maven.