Senior Software Engineer in Chicago, IL at IBM

Date Posted: 10/13/2018

Job Snapshot

Job Description

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.

Role Description

• 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.

Required Skills

• 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 - Expertise in at least one language, familiarity with some of the common languages, and ability to pick up new languages quickly

• 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

• 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


  1. Software Engineer Jobs
  2. Project Engineer Jobs

Not Ready To Apply?

Joining our Talent Network will enhance your job search and application process. Whether you choose to apply or just leave your information, we look forward to staying connected with you.