IBM Senior Software Engineer – IBM Cloud Object Storage in Bethesda, Maryland
As an Senior Software Engineer, you will be part of the Cloud Object Storage - Core 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. In particular this role will have an emphasis on driving performance optimization and improvement initiatives in the product. 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.
Your Role and Responsibilities
Location: Chicago, IL Required
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
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.
Required Technical and Professional Expertise
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
Experience designing, implementing, and maintaining highly available and fault tolerant systems
Excellent troubleshooting and problem-solving skills
Strong understanding of software development lifecycle - Must be able to participate in all phases of a software project from beginning to end, including requirements, architecture, design, test, deployment, maintenance, and retirement
Excellent communication, project management and time management skills
Preferred Technical and Professional Expertise
Programming language flexibility - Expertise in at least one language, familiarity with some of the common languages, and ability to pick up new languages quickly
Ability to architect appropriate technical solutions - Ability to define the best integration approach based on solid design principles and maintainability
Debugging and troubleshooting - Ability to solve technical problems in areas both familiar and unfamiliar
Data structures and algorithms - Theoretical knowledge and ability to apply concepts to engineering problems
Distributed systems - Familiarity with distributed systems and networking principles
Experience or familiarity with Kubernetes or OpenShift
Experience or familiarity with container technologies like Docker
About Business Unit
Digitization is accelerating the ongoing evolution of business, and clouds - public, private, and hybrid - enable companies to extend their existing infrastructure and integrate across systems. IBM Cloud provides the security, control, and visibility that our clients have come to expect. We are working to provide the right tools and environment to combine all of our client’s data, no matter where it resides, to respond to changing market dynamics.
Your Life @ IBM
What matters to you when you’re looking for your next career challenge?
Maybe you want to get involved in work that really changes the world? What about somewhere with incredible and diverse career and development opportunities – where you can truly discover your passion? Are you looking for a culture of openness, collaboration and trust – where everyone has a voice? What about all of these? If so, then IBM could be your next career challenge. Join us, not to do something better, but to attempt things you never thought possible.
Impact. Inclusion. Infinite Experiences. Do your best work ever.
IBM’s greatest invention is the IBMer. We believe that progress is made through progressive thinking, progressive leadership, progressive policy and progressive action. IBMers believe that the application of intelligence, reason and science can improve business, society and the human condition. Restlessly reinventing since 1911, we are the largest technology and consulting employer in the world, with more than 380,000 IBMers serving clients in 170 countries.
For additional information about location requirements, please discuss with the recruiter following submission of your application.
Being You @ IBM
IBM is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, gender, gender identity or expression, sexual orientation, national origin, genetics, disability, age, or veteran status. IBM is also committed to compliance with all fair employment practices regarding citizenship and immigration status.