As a Senior Core Software Engineer, you will be part of the Cloud Object Storage development team responsible for ensuring the architectural integrity and successful delivery of a scalable object storage platform. You will be responsible for participating in the development, testing, and delivery of products and features in support of IBM's Cloud Object Storage system. You will join a small, agile engineering team and participate in all aspects of the development process, from requirements gathering through delivery and production support.
This team's focus is on the development of the Java server application powering the API gateway nodes of the distributed Cloud Object Storage system. Successful candidates will have a strong software engineering background in server-side development with an emphasis on performance and quality. The candidate must be able to design and architect software using solid object-oriented methodologies utilizing multi-threaded and asynchronous design paradigms.
Develop Java software for the service responsible for ingesting, processing, and storing the data of a distributed object storage system. This includes:
Asynchronous design patterns and programming techniques
Architecture and design of scalable, fault-tolerant distributed systems
HTTP request handling and REST API development
Performance tuning and optimization
Statistics and analytics frameworks to support system monitoring and troubleshooting
Take a hands-on approach while participating in all phases of the development process (Agile) with a constant focus on improving process and the overall quality.
Use object-oriented analysis techniques to gather and document requirements, code, and test cases.
Develop estimates for your own assigned work and complete assigned software development, testing, and/or maintenance tasks.
Identify potential problems with applications/systems and research/recommend alternative solutions.
Utilize defect tracking system to track defects and change requests.
Assist with resolution of customer issues that arise in the deployed products.
At least 3-5 years of programming experience including object-oriented server-side development using a heavily asynchronous development model, with a strong preference towards Java
Programming language flexibility