Introduction
At IBM, work is more than a job - it's a calling: To build. To design. To code. To consult. To think along with clients and sell. To make markets. To invent. To collaborate. Not just to do something better, but to attempt things you've never thought possible. Are you ready to lead in this new era of technology and solve some of the world's most challenging problems? If so, lets talk.
Your Role and Responsibilities
You would be required to
- Contribute to all stages of software development lifecycle
- Design, implement and maintain Java-based applications that can be high-volume and low-latency
- Analyse user requirements to define business objectives
- Ensure application designs conform with business goals
- Develop and test software
- Write well designed, testable code
- Identify and resolve any technical issues that arise
- Create detailed design documentation
- Prepare and produce releases of software components
- Propose changes to current Java infrastructure
- Develop technical designs for application development
- Write well designed, testable code
- Conducting software analysis, programming, testing, and debugging
- Envisioning system features and functionality
- Define application objectives and functionality
Required Technical and Professional Expertise
- Proficiency in Java, with a good understanding of its ecosystems
- Sound knowledge of Object-Oriented Programming (OOP) Patterns and Concepts
- Skill for writing reusable Java libraries
- Knowhow of Java concurrency patterns
- Basic Understanding of the concepts of MVC (Model-View-Controller) Pattern, JDBC (Java Database Connectivity), and RESTful web services
- Knowledge/Experience in developing applications using Spring framework & Spring boot.
- Ability to write clean, readable Java code
- Understanding basic design principles behind a scalable application
- Basic knowledge of JVM (Java Virtual Machine), its drawbacks, weaknesses, and workarounds
- Good understanding of databases and Java Persistence API (JPA)
- Implementing automated testing platforms and unit tests
- In-depth knowledge of code versioning tools, for instance, Git
- Understanding of building tools like Ant, Maven, Gradle, etc
- Expertise in continuous integration
- Experience with test-driven development
- Excellent debugging skills, Strong problem-solving skills
- Excellent written and verbal communication skills
Preferred Technical and Professional Expertise
- Profound insight of core Java and JEE internals (Classloading, Memory Management, Transaction management, etc.)
- Knowledge of UI development platforms - ReactJS / AngularJS