Description
Today, almost all processes at Sber use artificial intelligence models, which help make business decisions and provide clients with unique services.
To share and reuse these models, the Knowledge Sharing System platform was created. The system allows any Sber employee to find a suitable model in 2 clicks, deploy it in a development environment, refine it if necessary, and integrate it into their business process without extra "bureaucratic hurdles." The ability to access the platform via API and automatically launch all relevant pipelines on the user's dataset is also available.
The goals we set for ourselves are increasing the degree of reuse of ready-made solutions, reducing the Time-to-Market (T2M) for models, and improving model quality through the use of the best solutions within the Bank. As a long-term plan, we aim to create a platform for internal and external competitions (like "Kaggle") based on the "Knowledge sharing system."
Responsibilities
- participation in developing the system architecture together with the solution architect
- detailed task decomposition and estimation together with the team and lead
- thorough code review - we need truly high-quality, readable, and maintainable code
- developing new functionality, writing new microservices
- refactoring existing Java code by extracting it into new microservices
- writing Unit and integration (auto) tests
- defining and supporting Java development technology standards
- fixing bugs, diagnosing production issues
- participation in all team events (daily, grooming, planning, retrospective).
Requirements
- high level of Java and core framework knowledge (3+ years of development experience in the language): experience with Spring (Core, MVC, Boot, JDBC, ...), Java - core language constructs, understanding of asynchronous code models
- good level of SQL knowledge
- design patterns
- understanding of basic GoF concepts (Singleton, Factory, ...)
- ability to work with Git (knowledge of rebase, merge, squash, ...)
- ability to work with Linux (basic commands like tail, less, vi, cd, ...)
- knowledge of Docker and Kubernetes at the level of understanding operators and how it all works
- experience in microservices development.
Nice to have
- advanced SQL - (for example, knowing what window functions are)
- experience using OpenShift
- experience using Kafka
- understanding and experience in development based on a reactive approach (Spring WebFlux)
- ability to write deployment automation scripts
- knowledge of the git-flow model
- experience with WebSocket.
Conditions
- opportunity to influence the application interface / architecture and technologies used
- opportunity to see the results of your work immediately - we release every 2 weeks and gather user feedback
- regular meetups on code, architecture, and technology
- extensive external learning opportunities: Sberbank Corporate University, "Virtual School" platform, additional training of your choice, conference participation
- absence of toxicity within the team
- opportunity for salary increase based on performance (up to 30% per year)
- hybrid work mode: we meet in the office once a week, on Tuesdays, the rest of the time remotely (if desired, 100% in the office is also possible).