Java developer
ЮMoneyСанкт-Петербург, р-н КалининскийHH.ru
Описание вакансии
В бэкенде мы ведем работу над отказоустойчивостью и масштабируемостью сервиса, обеспечивая бесперебойную работу 24/7 в течение всего года.
Cтек наших технологий:
- Java 25;
- Spring Core, Spring JDBC, Spring MVC, Spring Boot;
- REST, JSON, OpenAPI, Swagger;
- PostgreSQL (Jooq, Flyway), ElasticSearch, Kafka, Redis;
- TestNG, Gradle, Jenkins, SonarQube, Jacocо;
- BitBucket (Git), Jira, Confluence;
- Ansible, Zabbix, Grafana, Kibana, Zipkin.
Если вы работаете с какими-то из этих технологий или хотите им научиться, у нас всегда есть увлекательные задачи. Главное — мы ищем ответственного разработчика, который готов работать в команде профессионалов для миллионов пользователей.
Мы ожидаем:
- опыт коммерческой разработки от 2-х лет;
- уверенные знания Java;
- знание базовых алгоритмов и структур данных;
- навыки работы с базами данных;
- умение проектировать API и структуру БД;
- умение тестировать свой код;
- понимание принципов работы многопоточных программ;
- знание сетевых протоколов (HTTP, TCP, UDP);
- знание Spring framework;
- знание принципов CI/CD.
Будет плюсом:
- умение проводить code review;
- опыт проектирования архитектуры приложений;
- опыт оптимизации приложений и БД
# юмани # java # spring # PostgreSQL # BitBucket # git
Наши условия:
-
Оформление по трудовому кодексу. Полностью белая
зарплата. Плюс — каждый месяц отдельная сумма на питание
-
Отдыхаем вместе: у нас регулярные тимбилдинги,
спортивные забеги, корпоративные праздники
-
ДМС включает стоматологию и полис путешественника
-
Можно учиться за счёт компании: тренинги, конференции,
митапы, курсы английского
-
Выдаём ноутбук и всё, что нужно для работы. Можно
приходить в красивый и удобный офис: всегда под рукой кофе, сладости и фрукты
-
Есть бесплатные онлайн-консультации: психологов, юристов,
специалистов по финансам и ЗОЖ, ветеринаров
Офис в Нижнем
Новгороде
Офис в Москве
Офис в Петербурге
Нижний Новгород
Москва
Петербург
ООО НЕБАНКОВСКАЯ КРЕДИТНАЯ ОРГАНИЗАЦИЯ "ЮМАНИ".
window.jqueryMigrateLTROnLoad = function() {try {
jQuery.UNSAFE_restoreLegacyHtmlPrefilter();
;
//
// swiper
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Swiper=t()}(this,function(){"use strict";var f="undefined"==typeof document?{body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},location:{hash:""}}:document,J="undefined"==typeof window?{document:f,navigator:{userAgent:""},location:{},history:{},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){}}:window,l=function(e){for(var t=0;t")){var o="div";for(0===n.indexOf("- :~]/)?(t||f).querySelectorAll(e.trim()):[f.getElementById(e.trim().split("#")[1])],s=0;s=a[u]&&s=a[u]&&s=a[u]&&(p=u);n.normalizeSlideIndex&&(p=r.length&&(t=r.length-1),p!==o){var c=parseInt(i.slides.eq(p).attr("data-swiper-slide-index")||p,10);ee.extend(i,{snapIndex:t,realIndex:c,previousIndex:o,activeIndex:p}),i.emit("activeIndexChange"),i.emit("snapIndexChange"),l!==c&&i.emit("realIndexChange"),(i.initialized||i.runCallbacksOnInit)&&i.emit("slideChange")}else t!==d&&(i.snapIndex=t,i.emit("snapIndexChange"))},updateClickedSlide:function(e){var t=this,i=t.params,s=E(e.target).closest("."+i.slideClass)[0],a=!1;if(s)for(var r=0;r=o.length&&(c=o.length-1),(p||n.initialSlide||0)===(d||0)&&i&&a.emit("beforeSlideChangeStart");var h,v=-o[c];if(a.updateProgress(v),n.normalizeSlideIndex)for(var f=0;f=Math.floor(100*l[f])&&(r=f);if(a.initialized&&r!==p){if(!a.allowSlideNext&&va.translate&&v>a.maxTranslate()&&(p||0)!==r)return!1}return h=pt.slides.length-a?(t.loopFix(),r=s.children("."+i.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+i.slideDuplicateClass+")").eq(0).index(),ee.nextTick(function(){t.slideTo(r)})):t.slideTo(r)}else t.slideTo(r)}};var v={loopCreate:function(){var s=this,e=s.params,t=s.$wrapperEl;t.children("."+e.slideClass+"."+e.slideDuplicateClass).remove();var a=t.children("."+e.slideClass);if(e.loopFillGroupWithBlank){var i=e.slidesPerGroup-a.length%e.slidesPerGroup;if(i!==e.slidesPerGroup){for(var r=0;ra.length&&(s.loopedSlides=a.length);var o=[],l=[];a.each(function(e,t){var i=E(t);e=a.length-s.loopedSlides&&o.push(t),i.attr("data-swiper-slide-index",e)});for(var d=0;d=a.length-r){e=-a.length+s+r,e+=r,t.slideTo(e,0,!1,!0)&&0!=p&&t.setTranslate((d?-t.translate:t.translate)-p)}t.allowSlidePrev=n,t.allowSlideNext=o},loopDestroy:function(){var e=this.$wrapperEl,t=this.params,i=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass+",."+t.slideClass+"."+t.slideBlankClass).remove(),i.removeAttr("data-swiper-slide-index")}};var m={appendSlide:function(e){var t=this,i=t.$wrapperEl,s=t.params;if(s.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(var a=0;a=J.screen.width-d)){if(ee.extend(i,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),a.startX=n,a.startY=o,i.touchStartTime=ee.now(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,0a.startY&&t.translate>=t.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(oa.startX&&t.translate>=t.minTranslate())return;if(i.isTouchEvent&&f.activeElement&&n.target===f.activeElement&&E(n.target).is(i.formElements))return i.isMoved=!0,void(t.allowClick=!1);if(i.allowTouchCallbacks&&t.emit("touchMove",n),!(n.targetTouches&&1s.touchAngle:90-u>s.touchAngle);if(i.isScrolling&&t.emit("touchMoveOpposite",n),void 0===i.startMoving&&(a.currentX===a.startX&&a.currentY===a.startY||(i.startMoving=!0)),i.isScrolling)i.isTouched=!1;else if(i.startMoving){t.allowClick=!1,n.preventDefault(),s.touchMoveStopPropagation&&!s.nested&&n.stopPropagation(),i.isMoved||(s.loop&&t.loopFix(),i.startTranslate=t.getTranslate(),t.setTransition(0),t.animating&&t.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!s.grabCursor||!0!==t.allowSlideNext&&!0!==t.allowSlidePrev||t.setGrabCursor(!0),t.emit("sliderFirstMove",n)),t.emit("sliderMove",n),i.isMoved=!0;var c=t.isHorizontal()?d:p;a.diff=c,c*=s.touchRatio,r&&(c=-c),t.swipeDirection=0t.minTranslate()?(h=!1,s.resistance&&(i.currentTranslate=t.minTranslate()-1+Math.pow(-t.minTranslate()+i.startTranslate+c,v))):ci.startTranslate&&(i.currentTranslate=i.startTranslate),0s.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,a.startX=a.currentX,a.startY=a.currentY,i.currentTranslate=i.startTranslate,void(a.diff=t.isHorizontal()?a.currentX-a.startX:a.currentY-a.startY)}s.followFinger&&((s.freeMode||s.watchSlidesProgress||s.watchSlidesVisibility)&&(t.updateActiveIndex(),t.updateSlidesClasses()),s.freeMode&&(0===i.velocities.length&&i.velocities.push({position:a[t.isHorizontal()?"startX":"startY"],time:i.touchStartTime}),i.velocities.push({position:a[t.isHorizontal()?"currentX":"currentY"],time:ee.now()})),t.updateProgress(i.currentTranslate),t.setTranslate(i.currentTranslate))}}}}}else i.startMoving&&i.isScrolling&&t.emit("touchMoveOpposite",n)}.bind(e),e.onTouchEnd=function(e){var t=this,i=t.touchEventsData,s=t.params,a=t.touches,r=t.rtlTranslate,n=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,d=e;if(d.originalEvent&&(d=d.originalEvent),i.allowTouchCallbacks&&t.emit("touchEnd",d),i.allowTouchCallbacks=!1,!i.isTouched)return i.isMoved&&s.grabCursor&&t.setGrabCursor(!1),i.isMoved=!1,void(i.startMoving=!1);s.grabCursor&&i.isMoved&&i.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var p,u=ee.now(),c=u-i.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(d),t.emit("tap",d),c-t.maxTranslate())return void(t.slides.lengtht.minTranslate())s.freeModeMomentumBounce?(w-t.minTranslate()>y&&(w=t.minTranslate()+y),T=t.minTranslate(),C=!0,i.allowMomentumBounce=!0):w=t.minTranslate(),s.loop&&s.centeredSlides&&(x=!0);else if(s.freeModeSticky){for(var S,E=0;E-w){S=E;break}w=-(w=Math.abs(l[S]-w)=s.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,P=t.slidesSizesGrid[0],k=0;k=o[k]&&p=o[k]&&(M=k,P=o[o.length-1]-o[o.length-2]);var L=(p-o[M])/P;if(c>s.longSwipesMs){if(!s.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(L>=s.longSwipesRatio?t.slideTo(M+s.slidesPerGroup):t.slideTo(M)),"prev"===t.swipeDirection&&(L>1-s.longSwipesRatio?t.slideTo(M+s.slidesPerGroup):t.slideTo(M))}else{if(!s.shortSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&t.slideTo(M+s.slidesPerGroup),"prev"===t.swipeDirection&&t.slideTo(M)}}}.bind(e),e.onClick=function(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}.bind(e);var r="container"===t.touchEventsTarget?s:a,n=!!t.nested;if(te.touch||!te.pointerEvents&&!te.prefixedPointerEvents){if(te.touch){var o=!("touchstart"!==i.start||!te.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.addEventListener(i.start,e.onTouchStart,o),r.addEventListener(i.move,e.onTouchMove,te.passiveListener?{passive:!1,capture:n}:n),r.addEventListener(i.end,e.onTouchEnd,o)}(t.simulateTouch&&!g.ios&&!g.android||t.simulateTouch&&!te.touch&&g.ios)&&(r.addEventListener("mousedown",e.onTouchStart,!1),f.addEventListener("mousemove",e.onTouchMove,n),f.addEventListener("mouseup",e.onTouchEnd,!1))}else r.addEventListener(i.start,e.onTouchStart,!1),f.addEventListener(i.move,e.onTouchMove,n),f.addEventListener(i.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.addEventListener("click",e.onClick,!0),e.on(g.ios||g.android?"resize orientationchange observerUpdate":"resize observerUpdate",b,!0)},detachEvents:function(){var e=this,t=e.params,i=e.touchEvents,s=e.el,a=e.wrapperEl,r="container"===t.touchEventsTarget?s:a,n=!!t.nested;if(te.touch||!te.pointerEvents&&!te.prefixedPointerEvents){if(te.touch){var o=!("onTouchStart"!==i.start||!te.passiveListener||!t.passiveListeners)&&{passive:!0,capture:!1};r.removeEventListener(i.start,e.onTouchStart,o),r.removeEventListener(i.move,e.onTouchMove,n),r.removeEventListener(i.end,e.onTouchEnd,o)}(t.simulateTouch&&!g.ios&&!g.android||t.simulateTouch&&!te.touch&&g.ios)&&(r.removeEventListener("mousedown",e.onTouchStart,!1),f.removeEventListener("mousemove",e.onTouchMove,n),f.removeEventListener("mouseup",e.onTouchEnd,!1))}else r.removeEventListener(i.start,e.onTouchStart,!1),f.removeEventListener(i.move,e.onTouchMove,n),f.removeEventListener(i.end,e.onTouchEnd,!1);(t.preventClicks||t.preventClicksPropagation)&&r.removeEventListener("click",e.onClick,!0),e.off(g.ios||g.android?"resize orientationchange observerUpdate":"resize observerUpdate",b)}},breakpoints:{setBreakpoint:function(){var e=this,t=e.activeIndex,i=e.initialized,s=e.loopedSlides;void 0===s&&(s=0);var a=e.params,r=a.breakpoints;if(r&&(!r||0!==Object.keys(r).length)){var n=e.getBreakpoint(r);if(n&&e.currentBreakpoint!==n){var o=n in r?r[n]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup"].forEach(function(e){var t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")});var l=o||e.originalParams,d=l.direction&&l.direction!==a.direction,p=a.loop&&(l.slidesPerView!==a.slidesPerView||d);d&&i&&e.changeDirection(),ee.extend(e.params,l),ee.extend(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),e.currentBreakpoint=n,p&&i&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-s+e.loopedSlides,0,!1)),e.emit("breakpoint",l)}}},getBreakpoint:function(e){if(e){var t=!1,i=[];Object.keys(e).forEach(function(e){i.push(e)}),i.sort(function(e,t){return parseInt(e,10)-parseInt(t,10)});for(var s=0;s=J.innerWidth&&!t&&(t=a)}return t||"max"}}},checkOverflow:{checkOverflow:function(){var e=this,t=e.isLocked;e.isLocked=1===e.snapGrid.length,e.allowSlideNext=!e.isLocked,e.allowSlidePrev=!e.isLocked,t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock"),t&&t!==e.isLocked&&(e.isEnd=!1,e.navigation.update())}},classes:{addClasses:function(){var t=this.classNames,i=this.params,e=this.rtl,s=this.$el,a=[];a.push("initialized"),a.push(i.direction),i.freeMode&&a.push("free-mode"),te.flexbox||a.push("no-flexbox"),i.autoHeight&&a.push("autoheight"),e&&a.push("rtl"),1Math.abs(n.pixelY)))return!0;a=n.pixelX*r}else{if(!(Math.abs(n.pixelY)>Math.abs(n.pixelX)))return!0;a=n.pixelY}else a=Math.abs(n.pixelX)>Math.abs(n.pixelY)?-n.pixelX*r:-n.pixelY;if(0===a)return!0;if(s.invert&&(a=-a),i.params.freeMode){i.params.loop&&i.loopFix();var o=i.getTranslate()+a*s.sensitivity,l=i.isBeginning,d=i.isEnd;if(o>=i.minTranslate()&&(o=i.minTranslate()),oi-1-2*e.loopedSlides&&(r-=i-2*e.loopedSlides),n-1a.dynamicMainBullets-1?e.pagination.dynamicBulletIndex=a.dynamicMainBullets-1:e.pagination.dynamicBulletIndex";s.html(a),e.pagination.bullets=s.find("."+t.bulletClass)}"fraction"===t.type&&(a=t.renderFraction?t.renderFraction.call(e,t.currentClass,t.totalClass):' / ',s.html(a)),"progressbar"===t.type&&(a=t.renderProgressbar?t.renderProgressbar.call(e,t.progressbarFillClass):'',s.html(a)),"custom"!==t.type&&e.emit("paginationRender",e.pagination.$el[0])}},init:function(){var i=this,e=i.params.pagination;if(e.el){var t=E(e.el);0!==t.length&&(i.params.uniqueNavElements&&"string"==typeof e.el&&1'),a.append(r)),ee.extend(t,{$el:a,el:a[0],$dragEl:r,dragEl:r[0]}),s.draggable&&t.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},A={run:function(){var e=this,t=e.slides.eq(e.activeIndex),i=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(i=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(e.autoplay.timeout),e.autoplay.timeout=ee.nextTick(function(){e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay"))},i)},start:function(){var e=this;return void 0===e.autoplay.timeout&&(!e.autoplay.running&&(e.autoplay.running=!0,e.emit("autoplayStart"),e.autoplay.run(),!0))},stop:function(){var e=this;return!!e.autoplay.running&&(void 0!==e.autoplay.timeout&&(e.autoplay.timeout&&(clearTimeout(e.autoplay.timeout),e.autoplay.timeout=void 0),e.autoplay.running=!1,e.emit("autoplayStop"),!0))},pause:function(e){var t=this;t.autoplay.running&&(t.autoplay.paused||(t.autoplay.timeout&&clearTimeout(t.autoplay.timeout),t.autoplay.paused=!0,0!==e&&t.params.autoplay.waitForTransition?(t.$wrapperEl[0].addEventListener("transitionend",t.autoplay.onTransitionEnd),t.$wrapperEl[0].addEventListener("webkitTransitionEnd",t.autoplay.onTransitionEnd)):(t.autoplay.paused=!1,t.autoplay.run())))}},$={setTranslate:function(){for(var e=this,t=e.slides,i=0;i'),v.append(y)),0===S.length&&(S=E(''),v.append(S)),y.length&&(y[0].style.opacity=0
Ключевые навыки
- Java
- Spring Framework
- REST
- JSON API
- Git
- Английский — A1 — Начальный