Software Developer Intern
IBM
Bengaluru, Karnataka, India
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 Hands on coding to develop the next generation data processing platform. Actively support the co-creators and contributors using the platform. Self-learn any new technology required in platform development. Strong understanding of object-oriented design principles Familiarity will multiple programming languages (at least one statically typed and one dynamically typed) such as Java and Python Knowledge of data structure algorithms and complexity analysis Ability to perform code reviews on peer development to ensure they follow best practices and proper style Required education Bachelor's Degree Required technical and professional expertise Hands-on Core Java, OOAD, Design Patterns, Data Structures and Algorithms. Develop both end-user applications, APIs services and libraries. Hands on experience in Product Development projects. Experience in Microservices (gRPC/REST), Docker, Kubernetes, IDL (Protobuf, Thrift etc.), NoSQL databases, Big Data is a plus. Familiarity with Git and Linux. Take ownership in solving problems and delivering results Experience writing user stories and breaking stories down into tasks and sub-tasks Consistently willing to learn and improve Preferred technical and professional experience Experience in all areas of application development – Design, Coding, CI/CD pipelines, Unit Test. Experience in xUnit testing. Comfort working with mocks, stubs, fakes, etc. and the experience to know when to use each. Experience following rigid style guidelines including appropriately documenting code Experience working with concurrent programming (multi-thread, -process, or -worker architectures)