-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
1 lines (1 loc) · 17.7 KB
/
main.js
1
!function(e){function t(t){for(var n,i,c=t[0],s=t[1],o=t[2],u=0,p=[];u<c.length;u++)i=c[u],Object.prototype.hasOwnProperty.call(l,i)&&l[i]&&p.push(l[i][0]),l[i]=0;for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n]);for(m&&m(t);p.length;)p.shift()();return r.push.apply(r,o||[]),a()}function a(){for(var e,t=0;t<r.length;t++){for(var a=r[t],n=!0,c=1;c<a.length;c++){var s=a[c];0!==l[s]&&(n=!1)}n&&(r.splice(t--,1),e=i(i.s=a[0]))}return e}var n={},l={0:0},r=[];function i(t){if(n[t])return n[t].exports;var a=n[t]={i:t,l:!1,exports:{}};return e[t].call(a.exports,a,a.exports,i),a.l=!0,a.exports}i.m=e,i.c=n,i.d=function(e,t,a){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(i.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)i.d(a,n,function(t){return e[t]}.bind(null,n));return a},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="";var c=window.webpackJsonp=window.webpackJsonp||[],s=c.push.bind(c);c.push=t,c=c.slice();for(var o=0;o<c.length;o++)t(c[o]);var m=s;r.push([147,1]),a()}({147:function(e,t,a){a(148),e.exports=a(346)},345:function(e,t,a){},346:function(e,t,a){"use strict";a.r(t);var n=a(0),l=a.n(n),r=a(140),i=a.p+"images/profile.jpg",c=a(34),s=a(54),o={title:"Arapov Frontend CV",name:"Дмитрий Сергеевич Арапов",job:"Frontend разработчик",position:"Middle",experience:{title:"Опыт работы",value:3},place:"Россия, г. Воронеж",work:"Aviasales",status:"Не ищу работу",aboutMe:["Заинтересован в разработке веб-приложений с использованием современного React / Angular","Работал в международных командах","Имел опыт руководства, как Tech Lead и Team Lead"],contacts:{title:"Контакты",info:{vk:"https://vk.com/klonwar",telegram:"https://t.me/klonwar",github:"https://github.com/klonwar",mail:"[email protected]",stackoverflow:"https://ru.stackoverflow.com/users/182390/mr-klonwar",phone:"+79081356016",linkedin:"https://www.linkedin.com/in/klonwar/"}},languages:{title:"Языки",info:[{name:"Английский",level:3,max:6,note:"Intermediate"}]},skills:{title:"Навыки",main:{fe:["React","Angular"],be:["NestJS","NextJS"]},secondary:["JS, TS","Node.JS, Express","HTML, CSS, LESS, SASS","Angular Material, RxJS","Jest, Jasmine, Storybooks","Gatsby, Netlify, Decap CMS","Redux"],other:["Linux","Git","Docker","Docker Compose","Gitlab CI/CD","Github Actions","SQL","Jira","Confluence","PHP","JQuery","AngularJS","Yarn","Yarn Workspaces","Shaka Player","MPEG DASH","Single SPA","Microfrontends","Husky","Commitlint","Stylelint","ESlint","Prettier","Rancher","Home Assistant"]},infoBlocks:[{title:"Опыт",blocks:[{name:"ПСЖР от Авиасейлс",time:"с 2023",month:10,company:"Aviasales",description:"Журнал о путешествиях, переписанный с нуля на новые технологии",skills:["TS","React","NextJS","Strapi","CKEditor","Github Actions","Zustand","SASS","GraphQL","Storybooks","zeus-graphql"],team:"1 FE, 1 BE, 1 PM",tasks:["С нуля разработал фронт на современном NextJS","Реализовал мультиязычность и мультирыночность в приложении"]},{name:"Сайты компании DSR",time:"2023 - 2023",month:8,company:"DSR",description:"15+ сайтов различной сложности с CMS, гибкой конфигурацией, разнообразным функционалом и уникальным дизайном",skills:["TS","React","Gatsby","Netlify (Decap CMS)","Gitlab CI/CD","Github Actions","NestJS","Express","SASS","GraphQL"],team:"3 FE/BE, 2 QA, 1 PM",tasks:["Руководил командой разработчиков, настраивал и улучшал процессы","Добавил в приложения автогенерацию типов по GraphQL схеме","Писал новые сайты с нуля и усовершенствовал существующие","Внедрял CI/CD для автоматического развертывания на тестовом и релизном стендах","Реализовывал конструктор страниц с обширной кастомизацией","Занимался оптимизацией сайтов для поисковых систем (SEO)"]},{name:"NDA",time:"2023 - 2023",month:2,company:"DSR",description:"Социальная сеть с возможностью таргетированного распределения контента. Несколько ролей пользователей, панель администрирования, различные типы постов",skills:["TS","Angular","NestJS","SASS","Stripe API"],team:"1 FE, 1 BE, 2 QA, 1 PM",tasks:["Интегрировал платежную систему Stripe","Работал с динамическими формами"]},{name:"NDA",time:"2021 - 2023",month:15,company:"DSR",description:"Крупное веб-приложение для журналистов, сервис управления новостями с богатым функционалом",skills:["TS","Angular","NestJS","TypeORM","Shaka Player","MPEG DASH","Yarn Workspaces","Single SPA","Microfrontends","SASS","Storybooks","Jasmine","Jest","GraphQL","Git","Webpack"],team:"4 FE, 2 BE, 3 QA, 1 PM",tasks:["Участвовал в разбиении монолитного приложения на микрофронтенды","Поддерживал и усовершенствовал плеер, позволяющий проигрывать в том числе потоковые и растущие медиафайлы при помощи MPEG DASH","Улучшал систему оповещения пользователей","Создал и поддерживал каталог компонентов с использованием Storybooks"]},{name:"Freelance",time:"2020 - 2021",month:12,description:"Телеграм-боты, парсеры сайтов, веб-приложения. Создание приложений по заказу.",skills:["JS","TS","React","Redux","LESS","Express","Node.JS","Jest","nestjs-telegraf","telegraf","node-telegram-bot-api"],tasks:["Работал над всеми задачами в одиночку","Покрывал код серверной части unit-тестами","Создал множество Discord / Telegram ботов, оповещающих о появлении/изменении товаров в онлайн-магазинах","Писал несколько веб-приложений под специфические задачи заказчиков: реализовал онлайн-сервис для отправки конфигурируемых запросов, создал систему учета купленных товаров"]},{name:"Личные проекты",time:"с 2017",description:"Различные инструменты для решения персональных задач и отработки навыков.",skills:["JS","TS","React","Redux","LESS","NestJS","TypeORM","Node.JS","nestjs-telegraf","telegraf","node-telegram-bot-api"],tasks:['Приложение для обмена вещами на React + NestJS. Успешно выступил с ним на конференции от компании "Информсвязь", получив годовую стипендию',"Бот на nestjs-telegraf, с которым выступил на BeerJS Voronezh №8","Несколько ботов для личного использования: генератор TOTP кодов, бот для скачивания презентаций из BigBlueButton"]}]},{title:"Образование",blocks:[{name:"ВГЛТУ",time:"с 2023",subtitle:"Магистратура",description:"ФКНиТ, Информационные Системы и Технологии"},{name:"Воронежский Государственный Университет",time:"2023",subtitle:"Бакалавриат",description:"ФКН, Программная Инженерия"},{name:null},{name:"Мастер-класс по архитектуре и паттернам в Frontend-приложениях",time:"2022",link:{url:"https://learn.javascript.ru/courses/jspatterns",title:"learn.javascript.ru"}},{name:"DataArt JavaScript Academy 2021",time:"2021",subtitle:"Повторение основ JS и углубленное изучение",description:"DataArt"},{name:"JS Bootcamp. Deep dive into React",time:"2020",link:{url:"https://certificates.dsr-corporation.com/courseCertificates/5ed782ba9241f23fc3efbc1e",title:"Сертификат"},subtitle:"Углубленный курс по React/Redux",description:"DSR"}]}]},m=a(24),u=a(141);function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var a=[],n=!0,l=!1,r=void 0;try{for(var i,c=e[Symbol.iterator]();!(n=(i=c.next()).done)&&(a.push(i.value),!t||a.length!==t);n=!0);}catch(e){l=!0,r=e}finally{try{n||null==c.return||c.return()}finally{if(l)throw r}}return a}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return d(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return d(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}function k(e){return["год","года","лет"][e%100>4&&e%100<20?2:[2,0,1,1,1,2][e%10<5?e%10:5]]}var f=function(){return l.a.createElement(l.a.Fragment,null,l.a.createElement(u.a,null,l.a.createElement("title",null,o.title)),l.a.createElement("div",{className:"uk-height-1-1 resume","uk-grid":""},l.a.createElement("div",{className:"uk-width-1-3@s uk-flex uk-flex-column resume-left uk-position-relative"},l.a.createElement("div",{className:"uk-padding-small uk-flex uk-flex-center"},l.a.createElement("div",{className:"uk-width-1-2 resume-photo-container"},l.a.createElement("img",{className:"resume-photo",src:"./".concat(i),alt:"Dmitry Arapov","uk-img":""}))),l.a.createElement("label",{className:"uk-padding-small uk-padding-remove-vertical resume-title uk-text-bold"},o.contacts.title),l.a.createElement("div",{className:"uk-padding-small"},[["linkedin",o.contacts.info.linkedin,"Dmitry Arapov",s.b],["github",o.contacts.info.github,"klonwar",s.a],["telegram",o.contacts.info.telegram,"@klonwar",s.d],["vk",o.contacts.info.vk,"@klonwar",s.e],["stackoverflow",o.contacts.info.stackoverflow,"mr-klonwar",s.c],["mail",o.contacts.info.mail,o.contacts.info.mail,m.b],["phone",o.contacts.info.phone,o.contacts.info.phone,m.d]].map((function(e){return l.a.createElement("a",{key:e[0],className:"uk-link-text uk-flex uk-flex-middle uk-text-truncate",target:"_blank",rel:"noopener noreferrer",href:"mail"===e[0]?"mailto:".concat(e[1]):"phone"===e[0]?"tel:".concat(e[1]):e[1]},l.a.createElement("span",{className:"resume-contacts__icon"},l.a.createElement(c.a,{className:"uk-text-large",icon:e[e.length-1]})),l.a.createElement("span",{className:"uk-margin-small-left uk-text-small"},e[2]))}))),l.a.createElement("label",{className:"uk-padding-small uk-padding-remove-vertical resume-title uk-text-bold"},o.languages.title),l.a.createElement("div",{className:"uk-padding-small"},o.languages.info.map((function(e,t){return l.a.createElement("div",{key:"".concat(e.name,"_").concat(t),"uk-grid":""},l.a.createElement("span",{className:"uk-width-1-2 uk-text-truncate"},e.name),l.a.createElement("div",{className:"uk-width-1-2 uk-flex uk-flex-column"},l.a.createElement("span",null,l.a.createElement("progress",{className:"uk-progress resume-progress uk-margin-small-bottom",value:e.level,max:e.max})),l.a.createElement("span",{className:"uk-text-small uk-text-truncate uk-text-center uk-flex-1"},e.note)))}))),l.a.createElement("label",{className:"uk-padding-small uk-padding-remove-vertical resume-title uk-text-bold"},o.skills.title),l.a.createElement("div",{className:"uk-padding-small uk-text-wrap"},l.a.createElement("div",{className:"uk-padding-remove-horizontal"},l.a.createElement("ul",{className:"uk-margin-remove-horizontal uk-padding-small uk-padding-remove-vertical uk-padding-remove-right"},Object.entries(o.skills.main).map((function(e){var t=p(e,2),a=t[0],n=t[1];return l.a.createElement("li",{className:"uk-text-bold",key:a},n.join(", "))})))),l.a.createElement("ul",{className:"uk-margin-remove uk-padding-small uk-padding-remove-vertical uk-padding-remove-right"},o.skills.secondary.map((function(e,t){return l.a.createElement("li",{key:"".concat(e.name,"_").concat(t)},l.a.createElement("div",{className:"uk-flex uk-flex-column"},l.a.createElement("span",null,e)))}))),l.a.createElement("div",{className:"uk-padding-small uk-padding-remove-horizontal"},l.a.createElement("span",{className:"uk-text-small"},o.skills.other.join(", "))))),l.a.createElement("div",{className:"uk-width-2-3@s resume-right"},l.a.createElement("div",null,l.a.createElement("h1",null,o.name),l.a.createElement("h2",{className:"uk-margin-remove"},o.job,", ",o.position),l.a.createElement("h5",{className:"uk-margin-remove"},o.experience.title,": ",o.experience.value," ",k(o.experience.value)),l.a.createElement("div",{className:"uk-grid-small uk-flex-between uk-margin-top","uk-grid":""},l.a.createElement("div",null,l.a.createElement(c.a,{icon:m.c})," ",o.place),l.a.createElement("div",null,l.a.createElement(c.a,{icon:m.h})," ","UTC+3"),l.a.createElement("div",null,l.a.createElement(c.a,{icon:m.a})," ",o.work),l.a.createElement("div",null,l.a.createElement(c.a,{icon:m.f})," ",o.status))),l.a.createElement("ul",{className:"uk-padding-small uk-padding-remove-vertical uk-padding-remove-right"},o.aboutMe.map((function(e,t){return l.a.createElement("li",{key:"".concat(e.name,"_").concat(t)},l.a.createElement("div",{className:"uk-flex uk-flex-column"},l.a.createElement("span",null,e)))}))),[[o.infoBlocks[0],m.g],[o.infoBlocks[1],m.i]].map((function(e){return l.a.createElement("div",{key:e[0].title},l.a.createElement("div",{className:"uk-flex resume-edge"},l.a.createElement("span",{className:"resume-title uk-text-bold"},e[0].title),l.a.createElement("hr",{className:"uk-width-expand resume-edge__line"}),l.a.createElement("span",{className:"resume-edge__icon"},l.a.createElement(c.a,{icon:e[1]}))),l.a.createElement("div",null,e[0].blocks.map((function(e,t){var a;return l.a.createElement("div",{className:"pagebreak resume-info-block uk-grid-small",key:"".concat(e.name,"-").concat(t),"uk-grid":""},l.a.createElement("div",{className:"uk-width-1-5 time-block"},l.a.createElement("div",{className:"uk-flex uk-flex-column uk-text-right"},e.time&&l.a.createElement("span",{className:"uk-text-small"},e.time),e.month&&l.a.createElement("span",{className:"uk-text-small"},e.month>=12&&"".concat(Math.floor(e.month/12)," г. "),!!(e.month%12)&&"".concat(e.month%12," мес.")),e.company&&l.a.createElement("span",{className:"uk-text-small"},e.company))),l.a.createElement("div",{className:"uk-width-4-5"},l.a.createElement("div",{className:"resume-info-block__title uk-text-bold"},e.name),e.link&&(Array.isArray(e.link)?l.a.createElement("p",null,e.link.map((function(e,t){return l.a.createElement("div",{key:"".concat(e,"_").concat(t)},l.a.createElement("a",{href:e.url},e.title))}))):l.a.createElement("div",null,l.a.createElement("a",{href:e.link.url},e.link.title))),l.a.createElement("span",null,e.subtitle),null===(a=e.description)||void 0===a?void 0:a.split("\n").map((function(e){return l.a.createElement("div",{key:e},e)})),l.a.createElement("div",{className:"icon-blocks"},e.skills&&l.a.createElement(l.a.Fragment,null,l.a.createElement(c.a,{icon:m.e}),l.a.createElement("span",null,e.skills.join(", "))),e.team&&l.a.createElement(l.a.Fragment,null,l.a.createElement(c.a,{icon:m.j}),l.a.createElement("span",null,e.team))),e.tasks&&l.a.createElement("ul",{className:"uk-padding-small uk-padding-remove-vertical uk-padding-remove-right"},e.tasks.map((function(e,t){return l.a.createElement("li",{key:t},e)})))))}))))})))))},v=function(){return l.a.createElement(f,null)},g=a(9),E=function(){var e=Object(g.h)(),t=(e.pathname+e.search+e.hash).substring(1);try{new URL(t)}catch(e){return l.a.createElement("div",{className:"uk-position-center"},"URL is invalid")}return t&&location.assign(t),l.a.createElement("div",{className:"uk-position-center","uk-spinner":"ratio: 5"})},h=function(){var e=Object(g.h)(),t=Object(g.g)();Object(n.useEffect)((function(){if(e.search){var a={};if(e.search.slice(1).split("&").forEach((function(e){var t=e.split("=");a[t[0]]=t.slice(1).join("=").replace(/~and~/g,"&")})),void 0!==a.p){var n=e.pathname.slice(0,-1)+(a.p||"")+(a.q?"?"+a.q:"")+e.hash;t.replace(n)}}}),[])},S=function(){return h(),l.a.createElement(g.d,null,l.a.createElement(g.b,{path:"/:link",component:E}),l.a.createElement(g.b,{exact:!0,path:"/"},l.a.createElement(v,null)),l.a.createElement(g.b,null,l.a.createElement(g.a,{to:"/"})))},b=a(145),y=a.n(b),x=a(146),N=a.n(x),w=a(60);a(345);y.a.use(N.a),r.render(l.a.createElement(w.a,null,l.a.createElement(S,null)),document.querySelector("#root"))}});