The WebSphere eXtreme Scale team has an exciting opportunity for a Java Software Development Engineer in our fast-paced, agile development environment. As a member of an agile development team doing continuous functional delivery, this position will provide exposure to a variety of roles across the software development life cycle, including: design, code development, automated test development, customer experience, and debugging/resolution of issues identified by verification teams and customers.
As a Software Engineer in the Websphere eXtreme Scale team you will explore the internals of Java, Garbage collector concepts, Java interpreter concepts & knowledge of bytecodes, sufficient understanding of platforms; Linux, AIX, zOS, Windows,Node.js & latest cloud technologies, and optimize language runtimes such as java (JVM) for On-Prem & cloud environments.
- Core Java Development:
- Write and maintain high-quality Java code for backend services and applications.
- Focus on core Java concepts like collections, multithreading, exception handling, concurrency, and Java memory management to ensure the application is efficient and robust.
- Performance Optimization & Troubleshooting:
- Work on optimizing the performance of Java applications by integrating them effectively with WXS for data caching.
- Debug issues in Java applications and the WebSphere eXtreme Scale environment.
- Monitor the performance of WXS solutions and address bottlenecks or inefficiencies.
- Testing & Quality Assurance:
- Develop and execute unit tests to ensure the correctness of Java code and integration with WXS.
- Collaborate with QA teams to ensure all components of the application are thoroughly tested and meet performance and reliability standards.
- Documentation & Knowledge Sharing:
- Write clear documentation for developed features, code changes, and troubleshooting steps.
- Maintain up-to-date technical documentation related to Java code and the integration with WebSphere eXtreme Scale.
* 2+ years of experience.
* Proven Java Programming knowledge (Java 8 or higher).
* Strong problem-solving skills and a desire to learn new technologies.
* Familiarity with object-oriented programming principles and basic software development concepts.
* Understanding of Operating System principles such as process management, memory management.
* Exposure to native programming in C/C++ or interest in learning for system-level programming or performance-critical applications.
* Familiarity with version control systems like Git for managing source code.
* Good communication skills and a willingness to work in a team environment.
* Experience working in Agile/Scrum environments is a plus.
* Comfort working in a Linux environment for testing purposes.
* Strong analytical and troubleshooting skills, with the ability to debug both code and infrastructure issues.
* Distributed Systems Knowledge:
* Exposure to concepts like distributed caching, data grids, and scalability principles is a plus.
* Good presentation skills
* Knowledge of DevOps processes for agile development
* Ability to clearly communicate with customers and ability to listen/learn from them