Разработчик backend (Java/Scala, Blockchain, Москва)

Bell Integrator

Bell Integrator - Backend developer, Middle level. Format: office work; city ​​- Moscow. The salary is not specified in the vacancy - it will be discussed during the interview. Bell Integrator is one of the country's leading systems integrators. We are an accredited IT company and are part of the large Softline Group family. Bell Integrator is actively implementing projects throughout Russia; our customers include the country's largest backbone financial, telecom and retail companies. About the project: A large bank is developing a digital financial assets (DFA) platform with its own Amity Chain blockchain. The DFA market in Russia is growing at an explosive pace - the volume of issues has reached 1.35 trillion rubles. We are looking for a strong backend developer for the platform web portal - integration with the bank’s remote banking channels and API for client operations with digital banking services. Tech stack Language Java 17+ Frameworks Spring Boot, Spring Data, Spring Security Blockchain Amity Chain (proprietary, based on Hyperledger Fabric) Integrations Banking RBS channels, internal bank systems About the product: Web portal of the DFA platform - own portal + integration with general banking RBS channels Blockchain Amity Chain - the bank’s own blockchain (originally based on Hyperledger Fabric, rewritten from scratch) Audience Individuals and legal entities. Now ~10K active clients, plan 2026: 50-100K We expect: - GitHub/GitLab with sample code - or links to the project in another format - Experience with Java 8+ at least 2 years - Experience with Spring Framework, Spring Boot, Spring Data - Experience with message brokers - Apache Kafka, etc. - Ability to write unit and integration tests - Understanding of principles of writing maintainable and extensible code - SOLID, DRY, KISS, YAGNI - RESTful API design experience - Knowledge of microservice architecture patterns It will be a plus: Experience or desire to work with Scala Experience or understanding of blockchain technologies Experience in fintech or banking What to do: We are not looking for a task executor from Jira. We are looking for a person who will take ownership of his area and move it forward. - Development of new end-to-end features - from elaboration of requirements with an analyst to deployment in production. You own the entire feature, rather than just writing code according to the specification - Architecture design and development - participation in architectural decisions, selection of approaches, proactive improvement of existing systems - Integrations with banking systems - remote banking channels, internal bank systems, Amity Chain blockchain. Complex integrations require autonomy in decision making - Code review and mentoring - maintaining a high level of code quality in the team, helping colleagues grow - Support and development of existing code - not just fixing bugs, but improving the system, eliminating technical debt, increasing reliability - Working in conditions of uncertainty - the digital digital media market is young, requirements are changing, the ability to quickly adapt and offer solutions is needed Conditions: - Opportunities for professional and career growth within the company, the chance to participate in various projects; - Experience working in a distributed team of professionals; - The salary level is discussed individually; - Corporate discounts for learning a foreign language, gym membership, educational courses; - Work format - Hybrid format in Moscow Source: Habr Career, published 2026-08-06. The response is on the original page.

Бэкенд разработчик · Middle · Java · Apache Kafka · Blockchain · Москва

Apply

More roles at Bell Integrator

Workix

{{ siteBrand.name }}
{{ prevSlogan }} {{ currentSlogan }}
{{ t('loading') }}

{{ t('onboarding_title') }}

{{ t('onboarding_sub') }}

{{ t('agent_connect_title') }}

{{ t('agent_connect_hint') }}

{{ agentPrompt }}

{{ t('partners_title') }}

{{ t('partners_sub') }}

{{ t('partners_embed_title') }}

{{ t('partners_embed_body') }}

{{ t('cases_title') }}

{{ t('cases_sub') }}

{{ c.title }}

{{ c.summary }}

{{ t('cases_outcome') }}: {{ c.outcome }}

{{ tag }}
{{ t('loading') }}
{{ t('loading') }}
← {{ t('back') }}
{{ t('empty_orders') }}
{{ t('order_title') }} · {{ kindLabel(currentOrder.kind || currentOrder.type) }}

{{ currentOrder.title }}

{{ statusLabel(currentOrder.status) }} {{ appliedLabel(currentOrder.applied.count) }} · {{ t('applied_by_you') }} {{ currentOrder.project }}
{{ tag.name || tag }}

{{ t('applied_title') }}

{{ t('applied_hint') }}

{{ t('applied_login') }}

{{ t('nav_auth') }}
{{ t('applied_at') }}: {{ fromNow(myApplication.appliedAt) }} · {{ myApplication.via }}

{{ t('proposals_title') }}

{{ t('proposal_place') }}
{{ fromNow(p.date) }}
{{ t('contact') }} {{ t('proposal_score') }}: {{ p.score }}

{{ t('proposal_yours') }}

{{ t('proposal_login') }}

{{ t('nav_auth') }}
{{ t('proposal_score') }}: {{ formProposal.score }}
← {{ t('back') }}
{{ t('performer_title') }}

{{ currentPerformer.name }}

{{ currentPerformer.headline }}

{{ availabilityLabel(currentPerformer.availability) }} {{ currentPerformer.location }} {{ (currentPerformer.openTo||[]).join(', ') }}
{{ t('performer_rate') }}: {{ formatMoney(budgetView(currentPerformer).amount) }}
{{ tag.name || tag }}
GitHub {{ contactLabel(c.kind) }} {{ t('no_contact') }}

{{ t('performer_projects') }}

{{ t('performer_orders') }}

{{ r.title }}

{{ r.description }}

{{ kindLabel(r.kind || r.type) }}
{{ (r.title || '?').slice(0,1) }}

{{ r.title }}

{{ r.description }}

{{ r.startupName || r.startupSlug }}
← {{ t('back') }}
{{ statusLabel(routeError.code === 'pending_moderation' ? 'pending' : 'rejected') }}

{{ routeError.code === 'pending_moderation' ? t('project_pending') : t('project_rejected') }}

← {{ t('back') }}

{{ currentStartup.name }}

{{ currentStartup.url }} {{ currentStartup.github }}
{{ t('posted') }} {{ fromNow(currentStartup.createdAt) }}
{{ t('updated') }} {{ fromNow(currentStartup.updatedAt) }}
{{ statusLabel(currentStartup.status) }} {{ stageLabel(projectKind(currentStartup)) }}
{{ t('project_publisher') }}
{{ currentStartup.publisher.name }}

{{ currentStartup.publisher.headline }}

{{ t('performer_title') }}

{{ t('roles') }}

{{ t('no_roles') }}

{{ r.title }}

{{ tag }}
{{ t('highlight_badge') }}

{{ t('carousel_title') }}

← {{ t('back') }}

{{ t('apply_title') }}

{{ t('apply_target_hint') }}

{{ (currentStartup && currentStartup.name) || currentRole.startupSlug }}
{{ currentRole.title }}

{{ currentRole.description }}

{{ kindLabel(currentRole.kind) }} {{ currentRole.payment.budget }} {{ currentRole.payment.cur || 'USDT' }} {{ tag }}

{{ t('proposal_login') }}

{{ t('nav_auth') }}
{{ t('proposal_score') }}: {{ formApply.score }}
{{ t('apply_external') }}

{{ t('auth_title') }}

{{ t('nav_auth') }}

{{ t('mine_empty') }}

{{ t('create_order') }}

{{ route.slug ? t('edit_startup') : t('create_startup') }}

{{ t('agent_form_title') }}

{{ t('agent_form_hint') }}

{{ agentPrompt }}

{{ formRole._id ? t('edit_role') : t('create_order') }}

{{ t('agent_form_title') }}

{{ t('agent_form_hint') }}

{{ agentPrompt }}

{{ formRole.startupId ? t('task_attach_project_hint') : t('task_attach_standalone_hint') }}

{{ t('profile_title') }}

{{ t('agent_form_title') }}

{{ t('agent_form_hint') }}

{{ agentPrompt }}
{{ t('profile_agent_key_title') }}

{{ t('profile_agent_key_hint') }}

{{ t('auth_registered') }}
{{ displayedAgentKey }}

{{ t('profile_agent_key_hidden') }}

{{ t('profile_agent_key_none') }}



{{ t('prefs_title') }}

{{ t('support_title') }}

{{ t('support_sub') }}

{{ t('support_limit_hint') }}

{{ t('auth_title') }}

{{ t('auth_mvse_hint') }}

{{ t('auth_signed_in') }} {{ me.name || me.id }}
{{ t('auth_section_browser') }}

{{ t('auth_mvse_hint') }}

{{ t('auth_section_key') }}

{{ t('auth_key_hint') }}

{{ t('auth_registered') }}
{{ onceKey }}
{{ toast }}