Java Software Engineer (Mid, Senior)
POLAND IT development
Job description
Introduction
Software Developers at IBM are the backbone of our strategic initiatives to design, code, test, and provide industry-leading solutions that make the world run today - planes and trains take off on time, bank transactions complete in the blink of an eye and the world remains safe because of the work our software developers do. Whether you are working on projects internally or for a client, software development is critical to the success of IBM and our clients worldwide. At IBM, you will use the latest software development tools, techniques and approaches and work with leading minds in the industry to build solutions you can be proud of.
Your Role and Responsibilities
Data and AI Development team is looking for enthusiastic and talented Java Software Engineer to join us. Our services belong to IBM Knowledge Catalog product area, part of IBM WatsonX and IBM Cloud Pak for Data where customers can access a suite of leading data and AI capabilities in a unified experience. You are a Java developer, who will design, develop and/or re-engineer complex product components, and integrate software packages, programs and reusable objects residing on multiple platforms. You are curious to learn as demonstrated by your up-to-date technical knowledge. You are a good team player and you are familiar with Agile methodologies and principles and/or have experience working in an Agile team. We seek an applicant who will thrive in an open, dynamic, flexible, fun, spirited, collaborative environment; an individual who desires creative freedom and the opportunity to work in a high performing team.
Job Responsibilities:
As a Backend developer you will be responsible for development/ maintenance/ Support of the Watson Knowledge Catalog applications through the full systems development lifecycle.
You will participate in the design and implementation of sophisticated software systems.
You will work with the Product Architects, Product Managers to understand various priorities and work towards the execution. You will work in an agile, collaborative environment across software architecture, understanding both front-end and back-end concerns, while specializing in the back-end.
You will participate in software design and code reviews. Reviews include other Software Engineers and are held to ensure a high level of software quality and to share knowledge with team members. You will participate in, and adhere to, professional software engineering practices using such tools and methodologies as Agile Software Development, Test Driven Development, Continuous Integration, Source Code Management (git), and GitHub.
You will participate in the planning, creation and execution of automated test cases and load/performance testing. Create/maintain technical documentation. Hands on experience in handling and debugging customer issues will come handy.
You will be expected to maintain a high level of proficiency with Computer Science/Software Engineering knowledge and contribute to the technical skills growth of other team members. You will be providing vigilance and compliance to various software engineering, support and release processes e.g security, stack upgrades that are free of vulnerabilities etc."
Required Technical and Professional Expertise
· Professional experience in software development using Java: 2-3+ years for Mid level, 5+ for Senior
· Understanding and practical knowledge of microservices architecture
· Experience in Building Restful API, SDK APIs using different frameworks.
· Knowledge of Machine Learning and Large Language Models
· Expertise of database technologies such as SQL, NoSQL and Vector Databases
· Experience writing / executing Unit Tests and REST API automation
· Strong sense of ownership of deliverables
Preferred Technical and Professional Expertise
· Experience in using messaging brokers like RabbitMQ, Kafka etc.
· Good understanding of Docker, Kubernetes, OpenShift Container Platform, Ansible , Jenkins , Tekton, Linux Operating Systems (such as Red Hat, Ubuntu, etc.).
· Knowledge of network protocols such as TCP/IP, HTTP etc.
· Experience and working knowledge of version Control systems like Github and build tools like Maven/Gradle.
· Ability to learn and apply new technologies quickly.