diff --git a/dist/404.html b/dist/404.html index 15b8948..d313939 100644 --- a/dist/404.html +++ b/dist/404.html @@ -33,11 +33,11 @@ Дмитрий Плешевский - - + +

404

Мы потеряли страницу...
Вернуться на главную
- + diff --git a/dist/assets/404.html-C-XD0uTd.js b/dist/assets/404.html-hyU35sNZ.js similarity index 93% rename from dist/assets/404.html-C-XD0uTd.js rename to dist/assets/404.html-hyU35sNZ.js index 72f331a..49065ae 100644 --- a/dist/assets/404.html-C-XD0uTd.js +++ b/dist/assets/404.html-hyU35sNZ.js @@ -1 +1 @@ -import{_ as t,c as e,o,a as n}from"./app-Dw1tezwH.js";const r={},a=n("p",null,"404 Not Found",-1),c=[a];function s(p,l){return o(),e("div",null,c)}const d=t(r,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"ru-RU","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://pleshevski.ru/404.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"autoDesc":true,"filePathRelative":null}');export{d as comp,m as data}; +import{_ as t,c as e,o,a as n}from"./app-CYZ52EDj.js";const r={},a=n("p",null,"404 Not Found",-1),c=[a];function s(p,l){return o(),e("div",null,c)}const d=t(r,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"ru-RU","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://pleshevski.ru/404.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"autoDesc":true,"filePathRelative":null}');export{d as comp,m as data}; diff --git a/dist/assets/app-Dw1tezwH.js b/dist/assets/app-CYZ52EDj.js similarity index 99% rename from dist/assets/app-Dw1tezwH.js rename to dist/assets/app-CYZ52EDj.js index 2e18ee7..fd9f1d4 100644 --- a/dist/assets/app-Dw1tezwH.js +++ b/dist/assets/app-CYZ52EDj.js @@ -14,7 +14,7 @@ * @vue/runtime-dom v3.4.33 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const Iu="http://www.w3.org/2000/svg",Mu="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,Us=bt&&bt.createElement("template"),Du={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?bt.createElementNS(Iu,e):t==="mathml"?bt.createElementNS(Mu,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Us.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Us.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},At="transition",kn="animation",Kn=Symbol("_vtc"),sr=(e,{slots:t})=>Le(Cc,Hu(e),t);sr.displayName="Transition";const Nl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};sr.props=He({},ul,Nl);const Kt=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ks=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const y in e)y in Nl||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:c=i,appearToClass:f=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,_=Nu(o),C=_&&_[0],k=_&&_[1],{onBeforeEnter:I,onEnter:w,onEnterCancelled:g,onLeave:S,onLeaveCancelled:$,onBeforeAppear:H=I,onAppear:M=w,onAppearCancelled:b=g}=t,U=(y,D,te)=>{qt(y,D?f:l),qt(y,D?c:i),te&&te()},L=(y,D)=>{y._isLeaving=!1,qt(y,u),qt(y,m),qt(y,p),D&&D()},F=y=>(D,te)=>{const re=y?M:w,R=()=>U(D,y,te);Kt(re,[D,R]),qs(()=>{qt(D,y?a:s),Tt(D,y?f:l),Ks(re)||Gs(D,r,C,R)})};return He(t,{onBeforeEnter(y){Kt(I,[y]),Tt(y,s),Tt(y,i)},onBeforeAppear(y){Kt(H,[y]),Tt(y,a),Tt(y,c)},onEnter:F(!1),onAppear:F(!0),onLeave(y,D){y._isLeaving=!0;const te=()=>L(y,D);Tt(y,u),Tt(y,p),Vu(),qs(()=>{y._isLeaving&&(qt(y,u),Tt(y,m),Ks(S)||Gs(y,r,k,te))}),Kt(S,[y,te])},onEnterCancelled(y){U(y,!1),Kt(g,[y])},onAppearCancelled(y){U(y,!0),Kt(b,[y])},onLeaveCancelled(y){L(y),Kt($,[y])}})}function Nu(e){if(e==null)return null;if(we(e))return[ao(e.enter),ao(e.leave)];{const t=ao(e);return[t,t]}}function ao(e){return Ta(e)}function Tt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kn]||(e[Kn]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Kn];n&&(n.delete(t),n.size||(e[Kn]=void 0))}function qs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Gs(e,t,n,r){const o=e._endId=++$u,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=ju(e,t);if(!i)return r();const c=i+"end";let f=0;const u=()=>{e.removeEventListener(c,p),s()},p=m=>{m.target===e&&++f>=a&&u()};setTimeout(()=>{f(n[_]||"").split(", "),o=r(`${At}Delay`),s=r(`${At}Duration`),i=Js(o,s),l=r(`${kn}Delay`),a=r(`${kn}Duration`),c=Js(l,a);let f=null,u=0,p=0;t===At?i>0&&(f=At,u=i,p=s.length):t===kn?c>0&&(f=kn,u=c,p=a.length):(u=Math.max(i,c),f=u>0?i>c?At:kn:null,p=f?f===At?s.length:a.length:0);const m=f===At&&/\b(transform|all)(,|$)/.test(r(`${At}Property`).toString());return{type:f,timeout:u,propCount:p,hasTransform:m}}function Js(e,t){for(;e.lengthYs(n)+Ys(e[r])))}function Ys(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Vu(){return document.body.offsetHeight}function Fu(e,t,n){const r=e[Kn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),$l=Symbol("_vsh"),Hr={beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):An(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),An(e,!0),r.enter(e)):r.leave(e,()=>{An(e,!1)}):An(e,t))},beforeUnmount(e,{value:t}){An(e,t)}};function An(e,t){e.style.display=t?e[Dr]:"none",e[$l]=!t}const Bu=Symbol(""),zu=/(^|;)\s*display\s*:/;function Wu(e,t,n){const r=e.style,o=Ae(n);let s=!1;if(n&&!o){if(t)if(Ae(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Er(r,l,"")}else for(const i in t)n[i]==null&&Er(r,i,"");for(const i in n)i==="display"&&(s=!0),Er(r,i,n[i])}else if(o){if(t!==n){const i=r[Bu];i&&(n+=";"+i),r.cssText=n,s=zu.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=s?r.display:"",e[$l]&&(r.display="none"))}const Qs=/\s*!important$/;function Er(e,t,n){if(ne(n))n.forEach(r=>Er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uu(e,t);Qs.test(n)?e.setProperty(Bt(r),n.replace(Qs,""),"important"):e[r]=n}}const Xs=["Webkit","Moz","ms"],co={};function Uu(e,t){const n=co[t];if(n)return n;let r=et(t);if(r!=="filter"&&r in e)return co[t]=r;r=Xn(r);for(let o=0;ouo||(Qu.then(()=>uo=0),uo=Date.now());function Zu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;st(ef(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function ef(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ri=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,tf=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Fu(e,r,i):t==="style"?Wu(e,n,r):Qn(t)?Ho(t)||Ju(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nf(e,t,r,i))?(Ku(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ei(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ei(e,t,r,i))};function nf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ri(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ri(t)&&Ae(n)?!1:t in e}const rf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},of=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=Bt(o.key);if(t.some(i=>i===s||rf[i]===s))return e(o)})},sf=He({patchProp:tf},Du);let fo,oi=!1;function lf(){return fo=oi?fo:ou(sf),oi=!0,fo}const af=(...e)=>{const t=lf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=uf(r);if(o)return n(o,!0,cf(o))},t};function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function uf(e){return Ae(e)?document.querySelector(e):e}var ir=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),ff=/.md((\?|#).*)?$/,df=(e,t="/")=>ir(e)||e.startsWith("/")&&!e.startsWith(t)&&!ff.test(e),Gr=e=>/^(https?:)?\/\//.test(e),si=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},hf="http://.",pf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return si(new URL(`${n}/${e}`,hf).pathname)}return si(e)},mf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},gf=/(#|\?)/,jl=e=>{const[t,...n]=e.split(gf);return{pathname:t,hashAndQueries:n.join("")}},vf=["link","meta","script","style","noscript","template"],_f=["title","base"],bf=([e,t,n])=>_f.includes(e)?e:vf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,yf=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=bf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},wf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Vl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Fl=e=>e[0]==="/"?e.slice(1):e,es=e=>Object.prototype.toString.call(e)==="[object Object]",lt=e=>typeof e=="string";const Sf="modulepreload",Ef=function(e){return"/"+e},ii={},Tn=function(t,n,r){let o=Promise.resolve();return n&&n.length>0&&(document.getElementsByTagName("link"),o=Promise.all(n.map(s=>{if(s=Ef(s),s in ii)return;ii[s]=!0;const i=s.endsWith(".css"),l=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${l}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":Sf,i||(a.as="script",a.crossOrigin=""),a.href=s,document.head.appendChild(a),i)return new Promise((c,f)=>{a.addEventListener("load",c),a.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})}))),o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Cf=JSON.parse("{}"),Lf=Object.fromEntries([["/",{loader:()=>Tn(()=>import("./index.html-Bgp5oohT.js"),__vite__mapDeps([])),meta:{title:"Резюме"}}],["/works.html",{loader:()=>Tn(()=>import("./works.html-sG2zmfnZ.js"),__vite__mapDeps([])),meta:{title:"Работы"}}],["/eng/",{loader:()=>Tn(()=>import("./index.html-Bmcvetlf.js"),__vite__mapDeps([])),meta:{title:"Resume"}}],["/eng/works.html",{loader:()=>Tn(()=>import("./works.html-DIDCwbnz.js"),__vite__mapDeps([])),meta:{title:"Works"}}],["/404.html",{loader:()=>Tn(()=>import("./404.html-C-XD0uTd.js"),__vite__mapDeps([])),meta:{title:""}}]]);/*! +**/const Iu="http://www.w3.org/2000/svg",Mu="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,Us=bt&&bt.createElement("template"),Du={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const o=t==="svg"?bt.createElementNS(Iu,e):t==="mathml"?bt.createElementNS(Mu,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&o.setAttribute("multiple",r.multiple),o},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,o,s){const i=n?n.previousSibling:t.lastChild;if(o&&(o===s||o.nextSibling))for(;t.insertBefore(o.cloneNode(!0),n),!(o===s||!(o=o.nextSibling)););else{Us.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const l=Us.content;if(r==="svg"||r==="mathml"){const a=l.firstChild;for(;a.firstChild;)l.appendChild(a.firstChild);l.removeChild(a)}t.insertBefore(l,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},At="transition",kn="animation",Kn=Symbol("_vtc"),sr=(e,{slots:t})=>Le(Cc,Hu(e),t);sr.displayName="Transition";const Nl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String};sr.props=He({},ul,Nl);const Kt=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},Ks=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function Hu(e){const t={};for(const y in e)y in Nl||(t[y]=e[y]);if(e.css===!1)return t;const{name:n="v",type:r,duration:o,enterFromClass:s=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:l=`${n}-enter-to`,appearFromClass:a=s,appearActiveClass:c=i,appearToClass:f=l,leaveFromClass:u=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,_=Nu(o),C=_&&_[0],k=_&&_[1],{onBeforeEnter:I,onEnter:w,onEnterCancelled:g,onLeave:S,onLeaveCancelled:$,onBeforeAppear:H=I,onAppear:M=w,onAppearCancelled:b=g}=t,U=(y,D,te)=>{qt(y,D?f:l),qt(y,D?c:i),te&&te()},L=(y,D)=>{y._isLeaving=!1,qt(y,u),qt(y,m),qt(y,p),D&&D()},F=y=>(D,te)=>{const re=y?M:w,R=()=>U(D,y,te);Kt(re,[D,R]),qs(()=>{qt(D,y?a:s),Tt(D,y?f:l),Ks(re)||Gs(D,r,C,R)})};return He(t,{onBeforeEnter(y){Kt(I,[y]),Tt(y,s),Tt(y,i)},onBeforeAppear(y){Kt(H,[y]),Tt(y,a),Tt(y,c)},onEnter:F(!1),onAppear:F(!0),onLeave(y,D){y._isLeaving=!0;const te=()=>L(y,D);Tt(y,u),Tt(y,p),Vu(),qs(()=>{y._isLeaving&&(qt(y,u),Tt(y,m),Ks(S)||Gs(y,r,k,te))}),Kt(S,[y,te])},onEnterCancelled(y){U(y,!1),Kt(g,[y])},onAppearCancelled(y){U(y,!0),Kt(b,[y])},onLeaveCancelled(y){L(y),Kt($,[y])}})}function Nu(e){if(e==null)return null;if(we(e))return[ao(e.enter),ao(e.leave)];{const t=ao(e);return[t,t]}}function ao(e){return Ta(e)}function Tt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Kn]||(e[Kn]=new Set)).add(t)}function qt(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[Kn];n&&(n.delete(t),n.size||(e[Kn]=void 0))}function qs(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let $u=0;function Gs(e,t,n,r){const o=e._endId=++$u,s=()=>{o===e._endId&&r()};if(n)return setTimeout(s,n);const{type:i,timeout:l,propCount:a}=ju(e,t);if(!i)return r();const c=i+"end";let f=0;const u=()=>{e.removeEventListener(c,p),s()},p=m=>{m.target===e&&++f>=a&&u()};setTimeout(()=>{f(n[_]||"").split(", "),o=r(`${At}Delay`),s=r(`${At}Duration`),i=Js(o,s),l=r(`${kn}Delay`),a=r(`${kn}Duration`),c=Js(l,a);let f=null,u=0,p=0;t===At?i>0&&(f=At,u=i,p=s.length):t===kn?c>0&&(f=kn,u=c,p=a.length):(u=Math.max(i,c),f=u>0?i>c?At:kn:null,p=f?f===At?s.length:a.length:0);const m=f===At&&/\b(transform|all)(,|$)/.test(r(`${At}Property`).toString());return{type:f,timeout:u,propCount:p,hasTransform:m}}function Js(e,t){for(;e.lengthYs(n)+Ys(e[r])))}function Ys(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Vu(){return document.body.offsetHeight}function Fu(e,t,n){const r=e[Kn];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),$l=Symbol("_vsh"),Hr={beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):An(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),An(e,!0),r.enter(e)):r.leave(e,()=>{An(e,!1)}):An(e,t))},beforeUnmount(e,{value:t}){An(e,t)}};function An(e,t){e.style.display=t?e[Dr]:"none",e[$l]=!t}const Bu=Symbol(""),zu=/(^|;)\s*display\s*:/;function Wu(e,t,n){const r=e.style,o=Ae(n);let s=!1;if(n&&!o){if(t)if(Ae(t))for(const i of t.split(";")){const l=i.slice(0,i.indexOf(":")).trim();n[l]==null&&Er(r,l,"")}else for(const i in t)n[i]==null&&Er(r,i,"");for(const i in n)i==="display"&&(s=!0),Er(r,i,n[i])}else if(o){if(t!==n){const i=r[Bu];i&&(n+=";"+i),r.cssText=n,s=zu.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=s?r.display:"",e[$l]&&(r.display="none"))}const Qs=/\s*!important$/;function Er(e,t,n){if(ne(n))n.forEach(r=>Er(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Uu(e,t);Qs.test(n)?e.setProperty(Bt(r),n.replace(Qs,""),"important"):e[r]=n}}const Xs=["Webkit","Moz","ms"],co={};function Uu(e,t){const n=co[t];if(n)return n;let r=et(t);if(r!=="filter"&&r in e)return co[t]=r;r=Xn(r);for(let o=0;ouo||(Qu.then(()=>uo=0),uo=Date.now());function Zu(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;st(ef(r,n.value),t,5,[r])};return n.value=e,n.attached=Xu(),n}function ef(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>o=>!o._stopped&&r&&r(o))}else return t}const ri=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,tf=(e,t,n,r,o,s)=>{const i=o==="svg";t==="class"?Fu(e,r,i):t==="style"?Wu(e,n,r):Qn(t)?Ho(t)||Ju(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):nf(e,t,r,i))?(Ku(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&ei(e,t,r,i,s,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),ei(e,t,r,i))};function nf(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ri(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="SOURCE")return!1}return ri(t)&&Ae(n)?!1:t in e}const rf={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},of=(e,t)=>{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=o=>{if(!("key"in o))return;const s=Bt(o.key);if(t.some(i=>i===s||rf[i]===s))return e(o)})},sf=He({patchProp:tf},Du);let fo,oi=!1;function lf(){return fo=oi?fo:ou(sf),oi=!0,fo}const af=(...e)=>{const t=lf().createApp(...e),{mount:n}=t;return t.mount=r=>{const o=uf(r);if(o)return n(o,!0,cf(o))},t};function cf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function uf(e){return Ae(e)?document.querySelector(e):e}var ir=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),ff=/.md((\?|#).*)?$/,df=(e,t="/")=>ir(e)||e.startsWith("/")&&!e.startsWith(t)&&!ff.test(e),Gr=e=>/^(https?:)?\/\//.test(e),si=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},hf="http://.",pf=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return si(new URL(`${n}/${e}`,hf).pathname)}return si(e)},mf=(e,t)=>{const n=Object.keys(e).sort((r,o)=>{const s=o.split("/").length-r.split("/").length;return s!==0?s:o.length-r.length});for(const r of n)if(t.startsWith(r))return r;return"/"},gf=/(#|\?)/,jl=e=>{const[t,...n]=e.split(gf);return{pathname:t,hashAndQueries:n.join("")}},vf=["link","meta","script","style","noscript","template"],_f=["title","base"],bf=([e,t,n])=>_f.includes(e)?e:vf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([r,o])=>typeof o=="boolean"?o?[r,""]:null:[r,o]).filter(r=>r!=null).sort(([r],[o])=>r.localeCompare(o)),n]):null,yf=e=>{const t=new Set,n=[];return e.forEach(r=>{const o=bf(r);o&&!t.has(o)&&(t.add(o),n.push(r))}),n},wf=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,Vl=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Fl=e=>e[0]==="/"?e.slice(1):e,es=e=>Object.prototype.toString.call(e)==="[object Object]",lt=e=>typeof e=="string";const Sf="modulepreload",Ef=function(e){return"/"+e},ii={},Tn=function(t,n,r){let o=Promise.resolve();return n&&n.length>0&&(document.getElementsByTagName("link"),o=Promise.all(n.map(s=>{if(s=Ef(s),s in ii)return;ii[s]=!0;const i=s.endsWith(".css"),l=i?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${s}"]${l}`))return;const a=document.createElement("link");if(a.rel=i?"stylesheet":Sf,i||(a.as="script",a.crossOrigin=""),a.href=s,document.head.appendChild(a),i)return new Promise((c,f)=>{a.addEventListener("load",c),a.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${s}`)))})}))),o.then(()=>t()).catch(s=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s})},Cf=JSON.parse("{}"),Lf=Object.fromEntries([["/",{loader:()=>Tn(()=>import("./index.html-DXVRt_Wz.js"),__vite__mapDeps([])),meta:{title:"Резюме"}}],["/works.html",{loader:()=>Tn(()=>import("./works.html-Dh8HOvXG.js"),__vite__mapDeps([])),meta:{title:"Работы"}}],["/eng/",{loader:()=>Tn(()=>import("./index.html-Bbif8C5G.js"),__vite__mapDeps([])),meta:{title:"Resume"}}],["/eng/works.html",{loader:()=>Tn(()=>import("./works.html-B352zyqn.js"),__vite__mapDeps([])),meta:{title:"Works"}}],["/404.html",{loader:()=>Tn(()=>import("./404.html-hyU35sNZ.js"),__vite__mapDeps([])),meta:{title:""}}]]);/*! * vue-router v4.4.0 * (c) 2024 Eduardo San Martin Morote * @license MIT diff --git a/dist/assets/index.html-Bbif8C5G.js b/dist/assets/index.html-Bbif8C5G.js new file mode 100644 index 0000000..49f8fb4 --- /dev/null +++ b/dist/assets/index.html-Bbif8C5G.js @@ -0,0 +1 @@ +import{_ as i,c as l,a as t,b as e,d as s,w as r,e as n,r as o,o as p}from"./app-CYZ52EDj.js";const d={},c=n('

Overview

My name is Dmitriy Pleshevskiy.

I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor.

Skills

Programming Languages:

  • TypeScript (prefer, solid 9-year exp)
  • SQL (prefer, solid 8-year exp)
  • Rust (prefer, solid 5-year exp)
  • Python (solid 9-year exp)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Databases:

  • PostgreSQL (prefer, solid 7-year exp)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

I also have extensive experience in creating the following applications:

  • Traditional (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Dynamic (SPA)
  • Hybrid (SSR + SPA)
  • Console
  • Crossplatform

Stack

Backend (Rust)

  • axum (prefer, solid 2-year exp)
  • async-graphql (prefer, solid 2-year exp)
  • shaku (prefer, solid 2-year exp)
  • bb8 + postgres-types (prefer, solid 5-year exp)
  • diesel (2-year exp)

Backend (Node.JS)

  • Apollo (solid 5-year exp)
  • Express (solid 9-year exp)
  • Nest.JS
  • Knex.js / Objection.js (solid 5-year exp)
  • Sequelize

Frontend

  • React (solid 8-year exp)
  • VueJS (prefer, solid 3-year exp)
  • Cypress (prefer, solid 3-year exp)
  • JQuery
  • Antd / Antdv
  • PostCSS (prefer, solid 5-year exp)
  • Sass (prefer, solid 8-year exp)
  • Less (weak 4-year exp)

DevOps

  • NixOS / NixOps / Nix dev shell (prefer, solid 2-year exp)
  • Docker Swarm (prefer, solid 5-year exp)
  • Kubernetes (weak 4-year exp)
  • Woodpecker CI (prefer, solid 3-year exp)
  • Drone CI (solid 3-year exp)
  • Gitlab CI (solid 7-year exp)
  • GitHub Actions (3-year exp)

Interests

Open-source projects are my passion! I develop, maintain and improve projects in my spare time.

Besides programming, I love to cook and spend time with my beloved family!

Contacts

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

Gitea

Github (Suspended due to sanctions)

',29);function h(m,u){const a=o("RouteLink");return p(),l("div",null,[t("p",null,[e("Always up-to-date link to "),s(a,{to:"/eng/"},{default:r(()=>[e("resume")]),_:1}),e(".")]),c])}const k=i(d,[["render",h],["__file","index.html.vue"]]),g=JSON.parse(`{"path":"/eng/","title":"Resume","lang":"en-US","frontmatter":{"home":true,"title":"Resume","heroText":null,"description":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Resume"}],["meta",{"property":"og:description","content":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T23:27:03.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T23:27:03.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Resume\\",\\"description\\":\\"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...\\"}"]]},"headers":[{"level":2,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":2,"title":"Skills","slug":"skills","link":"#skills","children":[{"level":3,"title":"Programming Languages:","slug":"programming-languages","link":"#programming-languages","children":[]},{"level":3,"title":"Databases:","slug":"databases","link":"#databases","children":[]}]},{"level":2,"title":"Stack","slug":"stack","link":"#stack","children":[{"level":3,"title":"Backend (Rust)","slug":"backend-rust","link":"#backend-rust","children":[]},{"level":3,"title":"Backend (Node.JS)","slug":"backend-node-js","link":"#backend-node-js","children":[]},{"level":3,"title":"Frontend","slug":"frontend","link":"#frontend","children":[]},{"level":3,"title":"DevOps","slug":"devops","link":"#devops","children":[]}]},{"level":2,"title":"Interests","slug":"interests","link":"#interests","children":[]},{"level":2,"title":"Contacts","slug":"contacts","link":"#contacts","children":[]},{"level":2,"title":"Links","slug":"links","link":"#links","children":[]}],"git":{"updatedTime":1721863623000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":2}]},"autoDesc":true,"filePathRelative":"eng/index.md"}`);export{k as comp,g as data}; diff --git a/dist/assets/index.html-Bgp5oohT.js b/dist/assets/index.html-Bgp5oohT.js deleted file mode 100644 index eb0087c..0000000 --- a/dist/assets/index.html-Bgp5oohT.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as i,c as t,a,b as e,d as r,w as s,e as n,r as p,o}from"./app-Dw1tezwH.js";const c={},h=n('

Общие сведения

Меня зовут Дмитрий Плешевский.

Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обеспечения, архитектор, руководитель команды, а так же ментор.

Умения

Языки программирования:

  • TypeScript (предпочитаю, твёрдый 9-летний опыт)
  • SQL (предпочитаю, твёрдый 8-летний опыт)
  • Rust (предпочитаю, 5-летний опыт)
  • Python (твёрдый 9-летний опыт)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Базы данных:

  • PostgreSQL (предпочитаю, твёрдый 7-летний опыт)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

Я так же имею большой опыт в создании следующих типов приложений:

  • Традиционные (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Динамическое (SPA)
  • Гибридное (SSR + SPA)
  • Консольные
  • Кроссплатформенные

Stack

Backend (Rust)

  • axum (предпочитаю, твёрдый 2-летний опыт)
  • async-graphql (предпочитаю, твёрдый 2-летний опыт)
  • shaku (предпочитаю, твёрдый 2-летний опыт)
  • bb8 + postgres-types (предпочитаю, твёрдый 5-летний опыт)
  • diesel (2-летний опыт)

Backend (Node.JS)

  • Apollo (твёрдый 5-летний опыт)
  • Express (твёрдый 9-летний опыт)
  • Nest.JS
  • Knex.js / Objection.js (твёрдый 5-летний опыт)
  • Sequelize

Frontend

  • React (твёрдый 8-летний опыт)
  • VueJS (предпочитаю, твёрдый 4-летний опыт)
  • Cypress (предпочитаю, твёрдый 3-летний опыт)
  • JQuery
  • Antd / Antdv
  • PostCSS (предпочитаю, твёрдый 5-летний опыт)
  • Sass (предпочитаю, твёрдый 8-летний опыт)
  • Less (слабый 4-летний опыт)

DevOps

  • NixOS / NixOps / Nix dev shell (предпочитаю, твёрдый 2-летний опыт)
  • Docker Swarm (предпочитаю, твёрдый 5-летний опыт)
  • Kubernetes (слабый 4-летний опыт)
  • Woodpecker CI (предпочитаю, твёрдый 3-летний опыт)
  • Drone CI (твёрдый 3-летний опыт)
  • Gitlab CI (твёрдый 7-летний опыт)
  • GitHub Actions (3-летний опыт)

Интересы

Open-source проекты - моя страсть! Разрабатываю, поддерживаю и улучшаю проекты в своё свободное время.

Помимо программирования я люблю готовить и проводить время со своей любимой семьей!

Контакты

SimpleX: Dmitriy Pleshevskiy

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

Ссылки

My Git Repo

My Github (Приостановлен из-за санкций)

',30);function d(u,m){const l=p("RouteLink");return o(),t("div",null,[a("p",null,[e("Всегда актуальная ссылка на "),r(l,{to:"/"},{default:s(()=>[e("резюме")]),_:1}),e(".")]),h])}const y=i(c,[["render",d],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/","title":"Резюме","lang":"ru-RU","frontmatter":{"home":true,"title":"Резюме","heroText":null,"description":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Резюме"}],["meta",{"property":"og:description","content":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Резюме\\",\\"description\\":\\"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...\\"}"]]},"headers":[{"level":3,"title":"Общие сведения","slug":"общие-сведения","link":"#общие-сведения","children":[]},{"level":3,"title":"Умения","slug":"умения","link":"#умения","children":[]},{"level":3,"title":"Stack","slug":"stack","link":"#stack","children":[]},{"level":3,"title":"Интересы","slug":"интересы","link":"#интересы","children":[]},{"level":3,"title":"Контакты","slug":"контакты","link":"#контакты","children":[]},{"level":3,"title":"Ссылки","slug":"ссылки","link":"#ссылки","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"index.md"}');export{y as comp,g as data}; diff --git a/dist/assets/index.html-Bmcvetlf.js b/dist/assets/index.html-Bmcvetlf.js deleted file mode 100644 index eb8b608..0000000 --- a/dist/assets/index.html-Bmcvetlf.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as l,c as t,a as r,b as e,d as a,w as s,e as o,r as n,o as p}from"./app-Dw1tezwH.js";const d={},c=o('

Overview

My name is Dmitriy Pleshevskiy.

I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor.

Skills

Programming Languages:

  • TypeScript (prefer, solid 9-year exp)
  • SQL (prefer, solid 8-year exp)
  • Rust (prefer, solid 5-year exp)
  • Python (solid 9-year exp)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Databases:

  • PostgreSQL (prefer, solid 7-year exp)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

I also have extensive experience in creating the following applications:

  • Traditional (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Dynamic (SPA)
  • Hybrid (SSR + SPA)
  • Console
  • Crossplatform

Stack

Backend (Rust)

  • axum (prefer, solid 2-year exp)
  • async-graphql (prefer, solid 2-year exp)
  • shaku (prefer, solid 2-year exp)
  • bb8 + postgres-types (prefer, solid 5-year exp)
  • diesel (2-year exp)

Backend (Node.JS)

  • Apollo (solid 5-year exp)
  • Express (solid 9-year exp)
  • Nest.JS
  • Knex.js / Objection.js (solid 5-year exp)
  • Sequelize

Frontend

  • React (solid 8-year exp)
  • VueJS (prefer, solid 3-year exp)
  • Cypress (prefer, solid 3-year exp)
  • JQuery
  • Antd / Antdv
  • PostCSS (prefer, solid 5-year exp)
  • Sass (prefer, solid 8-year exp)
  • Less (weak 4-year exp)

DevOps

  • NixOS / NixOps / Nix dev shell (prefer, solid 2-year exp)
  • Docker Swarm (prefer, solid 5-year exp)
  • Kubernetes (weak 4-year exp)
  • Woodpecker CI (prefer, solid 3-year exp)
  • Drone CI (solid 3-year exp)
  • Gitlab CI (solid 7-year exp)
  • GitHub Actions (3-year exp)

Interests

Open-source projects are my passion! I develop, maintain and improve projects in my spare time.

Besides programming, I love to cook and spend time with my beloved family!

Contacts

SimpleX: Dmitriy Pleshevskiy

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

My Git Repo

My Github (Suspended due to sanctions)

',30);function h(m,y){const i=n("RouteLink");return p(),t("div",null,[r("p",null,[e("Always up-to-date link to "),a(i,{to:"/eng/"},{default:s(()=>[e("resume")]),_:1}),e(".")]),c])}const k=l(d,[["render",h],["__file","index.html.vue"]]),v=JSON.parse(`{"path":"/eng/","title":"Resume","lang":"en-US","frontmatter":{"home":true,"title":"Resume","heroText":null,"description":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Resume"}],["meta",{"property":"og:description","content":"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Resume\\",\\"description\\":\\"Always up-to-date link to . Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. S...\\"}"]]},"headers":[{"level":3,"title":"Overview","slug":"overview","link":"#overview","children":[]},{"level":3,"title":"Skills","slug":"skills","link":"#skills","children":[]},{"level":3,"title":"Stack","slug":"stack","link":"#stack","children":[]},{"level":3,"title":"Interests","slug":"interests","link":"#interests","children":[]},{"level":3,"title":"Contacts","slug":"contacts","link":"#contacts","children":[]},{"level":3,"title":"Links","slug":"links","link":"#links","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"eng/index.md"}`);export{k as comp,v as data}; diff --git a/dist/assets/index.html-DXVRt_Wz.js b/dist/assets/index.html-DXVRt_Wz.js new file mode 100644 index 0000000..3e130b2 --- /dev/null +++ b/dist/assets/index.html-DXVRt_Wz.js @@ -0,0 +1 @@ +import{_ as i,c as t,a,b as e,d as n,w as r,e as s,r as o,o as p}from"./app-CYZ52EDj.js";const d={},h=s('

Общие сведения

Меня зовут Дмитрий Плешевский.

Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обеспечения, архитектор, руководитель команды, а так же ментор.

Умения

Языки программирования:

  • TypeScript (предпочитаю, твёрдый 9-летний опыт)
  • SQL (предпочитаю, твёрдый 8-летний опыт)
  • Rust (предпочитаю, 5-летний опыт)
  • Python (твёрдый 9-летний опыт)
  • Haskell
  • Bash
  • Java
  • C#
  • C++

Базы данных:

  • PostgreSQL (предпочитаю, твёрдый 7-летний опыт)
  • MySQL
  • Sqlite
  • MsSQL
  • MongoDB
  • Reddis

Я так же имею большой опыт в создании следующих типов приложений:

  • Традиционные (SSR + Forms)
  • API (REST/GraphQL/WebSocket/EventSource)
  • Динамическое (SPA)
  • Гибридное (SSR + SPA)
  • Консольные
  • Кроссплатформенные

Stack

Backend (Rust)

  • axum (предпочитаю, твёрдый 2-летний опыт)
  • async-graphql (предпочитаю, твёрдый 2-летний опыт)
  • shaku (предпочитаю, твёрдый 2-летний опыт)
  • bb8 + postgres-types (предпочитаю, твёрдый 5-летний опыт)
  • diesel (2-летний опыт)

Backend (Node.JS)

  • Apollo (твёрдый 5-летний опыт)
  • Express (твёрдый 9-летний опыт)
  • Nest.JS
  • Knex.js / Objection.js (твёрдый 5-летний опыт)
  • Sequelize

Frontend

  • React (твёрдый 8-летний опыт)
  • VueJS (предпочитаю, твёрдый 4-летний опыт)
  • Cypress (предпочитаю, твёрдый 3-летний опыт)
  • JQuery
  • Antd / Antdv
  • PostCSS (предпочитаю, твёрдый 5-летний опыт)
  • Sass (предпочитаю, твёрдый 8-летний опыт)
  • Less (слабый 4-летний опыт)

DevOps

  • NixOS / NixOps / Nix dev shell (предпочитаю, твёрдый 2-летний опыт)
  • Docker Swarm (предпочитаю, твёрдый 5-летний опыт)
  • Kubernetes (слабый 4-летний опыт)
  • Woodpecker CI (предпочитаю, твёрдый 3-летний опыт)
  • Drone CI (твёрдый 3-летний опыт)
  • Gitlab CI (твёрдый 7-летний опыт)
  • GitHub Actions (3-летний опыт)

Интересы

Open-source проекты - моя страсть! Разрабатываю, поддерживаю и улучшаю проекты в своё свободное время.

Помимо программирования я люблю готовить и проводить время со своей любимой семьей!

Контакты

Telegram: Dmitriy Pleshevskiy

Matrix: @pleshevskiy:matrix.org

Email: dmitriy[at]pleshevski[dot]ru

Ссылки

Gitea

Github (Приостановлен из-за санкций)

',29);function c(u,k){const l=o("RouteLink");return p(),t("div",null,[a("p",null,[e("Всегда актуальная ссылка на "),n(l,{to:"/"},{default:r(()=>[e("резюме")]),_:1}),e(".")]),h])}const g=i(d,[["render",c],["__file","index.html.vue"]]),b=JSON.parse('{"path":"/","title":"Резюме","lang":"ru-RU","frontmatter":{"home":true,"title":"Резюме","heroText":null,"description":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Резюме"}],["meta",{"property":"og:description","content":"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп..."}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T23:27:03.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T23:27:03.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Резюме\\",\\"description\\":\\"Всегда актуальная ссылка на . Общие сведения Меня зовут Дмитрий Плешевский. Я энтузиаст программного обеспечения с открытым исходным кодом, ведущий разработчик програмного обесп...\\"}"]]},"headers":[{"level":2,"title":"Общие сведения","slug":"общие-сведения","link":"#общие-сведения","children":[]},{"level":2,"title":"Умения","slug":"умения","link":"#умения","children":[{"level":3,"title":"Языки программирования:","slug":"языки-программирования","link":"#языки-программирования","children":[]},{"level":3,"title":"Базы данных:","slug":"базы-данных","link":"#базы-данных","children":[]}]},{"level":2,"title":"Stack","slug":"stack","link":"#stack","children":[{"level":3,"title":"Backend (Rust)","slug":"backend-rust","link":"#backend-rust","children":[]},{"level":3,"title":"Backend (Node.JS)","slug":"backend-node-js","link":"#backend-node-js","children":[]},{"level":3,"title":"Frontend","slug":"frontend","link":"#frontend","children":[]},{"level":3,"title":"DevOps","slug":"devops","link":"#devops","children":[]}]},{"level":2,"title":"Интересы","slug":"интересы","link":"#интересы","children":[]},{"level":2,"title":"Контакты","slug":"контакты","link":"#контакты","children":[]},{"level":2,"title":"Ссылки","slug":"ссылки","link":"#ссылки","children":[]}],"git":{"updatedTime":1721863623000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":2}]},"autoDesc":true,"filePathRelative":"index.md"}');export{g as comp,b as data}; diff --git a/dist/assets/works.html-DIDCwbnz.js b/dist/assets/works.html-B352zyqn.js similarity index 98% rename from dist/assets/works.html-DIDCwbnz.js rename to dist/assets/works.html-B352zyqn.js index 4ec7b02..74e9b4b 100644 --- a/dist/assets/works.html-DIDCwbnz.js +++ b/dist/assets/works.html-B352zyqn.js @@ -1 +1 @@ -import{_ as e,c as t,o as r,e as a}from"./app-Dw1tezwH.js";const o={},i=a('

Highlighted working experience

Binary Management

  • Dates: August 2018 – currently
  • Roles: Lead Fullstack Developer, Team Lead, Architect

Development of a project management tool for interior designers

  • Development of the GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Moved database triggers to business logic. Wrote integration tests on 70% api.
  • Development of the frontend (React, Antd). Formed uikit, shared components, redesigned the page generation gathering. Completely changed work with API on the frontend. Introduced the practice of writing integration tests using cypress
  • Completely ported the project to TypeScript. I have formed isolated modules of the system.
  • As a team leader, I brought the critical chain method, the buffer method, and the planning method to the project from the end. Helped the team get into a rhythm to make releases each week in small batches. A couple of times I also prepared an individual development plan for team members.

Master Progress

  • Dates: May 2018 - currently (Passively maintained)
  • Role: Tech Lead

Development web infrastructure of the educational center Master Progress

Core Spirit

  • Dates: August 2018 - May 2020
  • Role: Lead Fullstack Developer

Development of Social platform focusing on human and planetary enhancement.

  • REST API (Node.JS, Express, PostgreSQL) for main site and backoffice.
  • Auto poster to various social networks and messengers (Facebook, LinkedIn, Twitter, Telegram).
  • Neural network for automatic categorization of articles.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

In this company there were 6 considerable projects I have successfully completed:

  • optimize the creation of promotional pages (PHP, JavaScript)
  • support main traditional site https://citilink.ru (PHP, JavaScript)
  • development of parsing to monitor products for changes in price, quantity/availability in stock, rating and other fields based on data from 55 websites (Node.JS, Express)
  • work with neural networks for matching of goods
  • development face recognition apps for Android (Java)
',17),n=[i];function l(s,p){return r(),t("div",null,n)}const h=e(o,[["render",l],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/eng/works.html","title":"Works","lang":"en-US","frontmatter":{"title":"Works","layout":"WorksPage","sidebar":false,"description":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Works"}],["meta",{"property":"og:description","content":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Works\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Highlighted working experience","slug":"highlighted-working-experience","link":"#highlighted-working-experience","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"eng/works.md"}');export{h as comp,d as data}; +import{_ as e,c as t,o as r,e as a}from"./app-CYZ52EDj.js";const o={},i=a('

Highlighted working experience

Binary Management

  • Dates: August 2018 – currently
  • Roles: Lead Fullstack Developer, Team Lead, Architect

Development of a project management tool for interior designers

  • Development of the GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Moved database triggers to business logic. Wrote integration tests on 70% api.
  • Development of the frontend (React, Antd). Formed uikit, shared components, redesigned the page generation gathering. Completely changed work with API on the frontend. Introduced the practice of writing integration tests using cypress
  • Completely ported the project to TypeScript. I have formed isolated modules of the system.
  • As a team leader, I brought the critical chain method, the buffer method, and the planning method to the project from the end. Helped the team get into a rhythm to make releases each week in small batches. A couple of times I also prepared an individual development plan for team members.

Master Progress

  • Dates: May 2018 - currently (Passively maintained)
  • Role: Tech Lead

Development web infrastructure of the educational center Master Progress

Core Spirit

  • Dates: August 2018 - May 2020
  • Role: Lead Fullstack Developer

Development of Social platform focusing on human and planetary enhancement.

  • REST API (Node.JS, Express, PostgreSQL) for main site and backoffice.
  • Auto poster to various social networks and messengers (Facebook, LinkedIn, Twitter, Telegram).
  • Neural network for automatic categorization of articles.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

In this company there were 6 considerable projects I have successfully completed:

  • optimize the creation of promotional pages (PHP, JavaScript)
  • support main traditional site https://citilink.ru (PHP, JavaScript)
  • development of parsing to monitor products for changes in price, quantity/availability in stock, rating and other fields based on data from 55 websites (Node.JS, Express)
  • work with neural networks for matching of goods
  • development face recognition apps for Android (Java)
',17),n=[i];function l(s,p){return r(),t("div",null,n)}const h=e(o,[["render",l],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/eng/works.html","title":"Works","lang":"en-US","frontmatter":{"title":"Works","layout":"WorksPage","sidebar":false,"description":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo...","head":[["link",{"rel":"alternate","hreflang":"ru-ru","href":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:site_name","content":"Dmitriy Pleshevskiy"}],["meta",{"property":"og:title","content":"Works"}],["meta",{"property":"og:description","content":"Highlighted working experience Binary Management Dates: August 2018 – currently Roles: Lead Fullstack Developer, Team Lead, Architect Development of a project management tool fo..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"en-US"}],["meta",{"property":"og:locale:alternate","content":"ru-RU"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Works\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":3,"title":"Highlighted working experience","slug":"highlighted-working-experience","link":"#highlighted-working-experience","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"eng/works.md"}');export{h as comp,d as data}; diff --git a/dist/assets/works.html-sG2zmfnZ.js b/dist/assets/works.html-Dh8HOvXG.js similarity index 99% rename from dist/assets/works.html-sG2zmfnZ.js rename to dist/assets/works.html-Dh8HOvXG.js index 7bb7cf3..298e9fc 100644 --- a/dist/assets/works.html-sG2zmfnZ.js +++ b/dist/assets/works.html-Dh8HOvXG.js @@ -1 +1 @@ -import{_ as e,c as r,o as t,e as a}from"./app-Dw1tezwH.js";const l={},i=a('

Выделенный опыт работы

Binary Management

  • Даты: Август 2018 – по настоящее время
  • Роли: Lead Fullstack Developer, Team Lead, Architect

Разработка инструмента управления проектами для дизайнеров интерьера

  • Разработка GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Перенес триггеры базы данных в бизнес-логику. Написал интеграционные тесты на 70% api.
  • Разработка фронтенда (React, Antd). Сформировал uikit и общие компоненты, оптимизировал сложные и нагруженные компоненты. Полностью изменил работу с API на фронтенде. Внедрил практику написания интеграционных тестов с помощью cypress.
  • Полностью перенес проект на TypeScript. Сформировал изолированные модули системы.
  • Как руководитель команды, я привнес в проект метод критической цепи, метод буфера и метод планирования с конца. Помог команде войти в ритм, чтобы выпускать релизы каждую неделю небольшими партиями. Я также несколько раз составлял индивидуальный план развития для членов команды.

Master Progress

  • Даты: Май 2018 - по настоящее время (Пассивная поддержка)
  • Роль: Tech Lead

Разработка веб-инфраструктуры образовательного центра Мастер Прогресс

Core Spirit

  • Даты: Август 2018 - May 2020
  • Роль: Lead Fullstack Developer

Разработка социальной платформы, сфокусированной на улучшении человека и планеты.

  • REST API (Node.JS, Express, PostgreSQL) для основного сайта и бэк-офиса.
  • Автопостер в различные социальные сети и мессенджеры (Facebook, LinkedIn, Twitter, Telegram).
  • Создал нейронную сеть для автоматической категоризации статей.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

В этой компании было 6 значительных проектов, которые я успешно завершил:

  • Оптимизация создания рекламных страниц (PHP, JavaScript)
  • Поддержка основного традиционного сайта https://citilink.ru (PHP, JavaScript)
  • Разработка парсинга для мониторинга товаров на предмет изменения цены, количества/наличия на складе, рейтинга и других полей на основе данных с 55+ сайтов (Node.js, Express)
  • Работа с нейронными сетями для подбора товаров
  • Разработка приложений для распознавания лиц для Android (Java)

Хронология

В списке перечислены только публичные проекты.

',19),n=[i];function s(o,p){return t(),r("div",null,n)}const h=e(l,[["render",s],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/works.html","title":"Работы","lang":"ru-RU","frontmatter":{"title":"Работы","layout":"WorksPage","sidebar":false,"description":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Работы"}],["meta",{"property":"og:description","content":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Работы\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Выделенный опыт работы","slug":"выделенныи-опыт-работы","link":"#выделенныи-опыт-работы","children":[{"level":3,"title":"Binary Management","slug":"binary-management","link":"#binary-management","children":[]},{"level":3,"title":"Master Progress","slug":"master-progress","link":"#master-progress","children":[]},{"level":3,"title":"Core Spirit","slug":"core-spirit","link":"#core-spirit","children":[]},{"level":3,"title":"MERLION","slug":"merlion","link":"#merlion","children":[]}]},{"level":2,"title":"Хронология","slug":"хронология","link":"#хронология","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"works.md"}');export{h as comp,d as data}; +import{_ as e,c as r,o as t,e as a}from"./app-CYZ52EDj.js";const l={},i=a('

Выделенный опыт работы

Binary Management

  • Даты: Август 2018 – по настоящее время
  • Роли: Lead Fullstack Developer, Team Lead, Architect

Разработка инструмента управления проектами для дизайнеров интерьера

  • Разработка GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Перенес триггеры базы данных в бизнес-логику. Написал интеграционные тесты на 70% api.
  • Разработка фронтенда (React, Antd). Сформировал uikit и общие компоненты, оптимизировал сложные и нагруженные компоненты. Полностью изменил работу с API на фронтенде. Внедрил практику написания интеграционных тестов с помощью cypress.
  • Полностью перенес проект на TypeScript. Сформировал изолированные модули системы.
  • Как руководитель команды, я привнес в проект метод критической цепи, метод буфера и метод планирования с конца. Помог команде войти в ритм, чтобы выпускать релизы каждую неделю небольшими партиями. Я также несколько раз составлял индивидуальный план развития для членов команды.

Master Progress

  • Даты: Май 2018 - по настоящее время (Пассивная поддержка)
  • Роль: Tech Lead

Разработка веб-инфраструктуры образовательного центра Мастер Прогресс

Core Spirit

  • Даты: Август 2018 - May 2020
  • Роль: Lead Fullstack Developer

Разработка социальной платформы, сфокусированной на улучшении человека и планеты.

  • REST API (Node.JS, Express, PostgreSQL) для основного сайта и бэк-офиса.
  • Автопостер в различные социальные сети и мессенджеры (Facebook, LinkedIn, Twitter, Telegram).
  • Создал нейронную сеть для автоматической категоризации статей.

MERLION

  • Dates: March 2016 – May 2018
  • Role: Senior Fullstack developer

В этой компании было 6 значительных проектов, которые я успешно завершил:

  • Оптимизация создания рекламных страниц (PHP, JavaScript)
  • Поддержка основного традиционного сайта https://citilink.ru (PHP, JavaScript)
  • Разработка парсинга для мониторинга товаров на предмет изменения цены, количества/наличия на складе, рейтинга и других полей на основе данных с 55+ сайтов (Node.js, Express)
  • Работа с нейронными сетями для подбора товаров
  • Разработка приложений для распознавания лиц для Android (Java)

Хронология

В списке перечислены только публичные проекты.

',19),n=[i];function s(o,p){return t(),r("div",null,n)}const h=e(l,[["render",s],["__file","works.html.vue"]]),d=JSON.parse('{"path":"/works.html","title":"Работы","lang":"ru-RU","frontmatter":{"title":"Работы","layout":"WorksPage","sidebar":false,"description":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://pleshevski.ru/eng/works.html"}],["meta",{"property":"og:url","content":"https://pleshevski.ru/works.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["meta",{"property":"og:title","content":"Работы"}],["meta",{"property":"og:description","content":"Выделенный опыт работы Binary Management Даты: Август 2018 – по настоящее время Роли: Lead Fullstack Developer, Team Lead, Architect Разработка инструмента управления проектами ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"ru-RU"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-07-24T14:15:05.000Z"}],["meta",{"property":"article:modified_time","content":"2024-07-24T14:15:05.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Работы\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-24T14:15:05.000Z\\",\\"author\\":[]}"]]},"headers":[{"level":2,"title":"Выделенный опыт работы","slug":"выделенныи-опыт-работы","link":"#выделенныи-опыт-работы","children":[{"level":3,"title":"Binary Management","slug":"binary-management","link":"#binary-management","children":[]},{"level":3,"title":"Master Progress","slug":"master-progress","link":"#master-progress","children":[]},{"level":3,"title":"Core Spirit","slug":"core-spirit","link":"#core-spirit","children":[]},{"level":3,"title":"MERLION","slug":"merlion","link":"#merlion","children":[]}]},{"level":2,"title":"Хронология","slug":"хронология","link":"#хронология","children":[]}],"git":{"updatedTime":1721830505000,"contributors":[{"name":"Dmitriy Pleshevskiy","email":"dmitriy@pleshevski.ru","commits":1}]},"autoDesc":true,"filePathRelative":"works.md"}');export{h as comp,d as data}; diff --git a/dist/eng/index.html b/dist/eng/index.html index 83eff38..480593c 100644 --- a/dist/eng/index.html +++ b/dist/eng/index.html @@ -31,13 +31,13 @@ document.documentElement.dataset.theme = 'dark' } - Resume | Dmitriy Pleshevskiy + Resume | Dmitriy Pleshevskiy - - + + -
- +
+ diff --git a/dist/eng/works.html b/dist/eng/works.html index 9ebe03d..f17c862 100644 --- a/dist/eng/works.html +++ b/dist/eng/works.html @@ -33,11 +33,11 @@ Works | Dmitriy Pleshevskiy - - + +
- + diff --git a/dist/index.html b/dist/index.html index 03de735..4dbc7e6 100644 --- a/dist/index.html +++ b/dist/index.html @@ -31,13 +31,13 @@ document.documentElement.dataset.theme = 'dark' } - Резюме | Дмитрий Плешевский + Резюме | Дмитрий Плешевский - - + + -
- +
+ diff --git a/dist/sitemap.xml b/dist/sitemap.xml index 85b4311..193a00a 100644 --- a/dist/sitemap.xml +++ b/dist/sitemap.xml @@ -1,3 +1,3 @@ -https://pleshevski.ru/2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/works.html2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/eng/2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/eng/works.html2024-07-24T14:15:05.000Zdaily \ No newline at end of file +https://pleshevski.ru/2024-07-24T23:27:03.000Zdailyhttps://pleshevski.ru/works.html2024-07-24T14:15:05.000Zdailyhttps://pleshevski.ru/eng/2024-07-24T23:27:03.000Zdailyhttps://pleshevski.ru/eng/works.html2024-07-24T14:15:05.000Zdaily \ No newline at end of file diff --git a/dist/works.html b/dist/works.html index e7c124c..0287b53 100644 --- a/dist/works.html +++ b/dist/works.html @@ -33,11 +33,11 @@ Работы | Дмитрий Плешевский - - + +
- + diff --git a/docs/eng/index.md b/docs/eng/index.md index 58c1b71..98f5250 100644 --- a/docs/eng/index.md +++ b/docs/eng/index.md @@ -6,16 +6,16 @@ heroText: null Always up-to-date link to [resume](/eng/). -### Overview +## Overview My name is Dmitriy Pleshevskiy. I'm an open source software enthusiast, a lead software developer, architect, team leader and also mentor. -### Skills +## Skills -Programming Languages: +### Programming Languages: - TypeScript (prefer, solid 9-year exp) - SQL (prefer, solid 8-year exp) @@ -27,7 +27,7 @@ Programming Languages: - C# - C++ -Databases: +### Databases: - PostgreSQL (prefer, solid 7-year exp) - MySQL @@ -45,9 +45,9 @@ I also have extensive experience in creating the following applications: - Console - Crossplatform -### Stack +## Stack -Backend (Rust) +### Backend (Rust) - axum (prefer, solid 2-year exp) - async-graphql (prefer, solid 2-year exp) @@ -55,7 +55,7 @@ Backend (Rust) - bb8 + postgres-types (prefer, solid 5-year exp) - diesel (2-year exp) -Backend (Node.JS) +### Backend (Node.JS) - Apollo (solid 5-year exp) - Express (solid 9-year exp) @@ -63,7 +63,7 @@ Backend (Node.JS) - Knex.js / Objection.js (solid 5-year exp) - Sequelize -Frontend +### Frontend - React (solid 8-year exp) - VueJS (prefer, solid 3-year exp) @@ -74,7 +74,7 @@ Frontend - Sass (prefer, solid 8-year exp) - Less (weak 4-year exp) -DevOps +### DevOps - NixOS / NixOps / Nix dev shell (prefer, solid 2-year exp) - Docker Swarm (prefer, solid 5-year exp) @@ -84,17 +84,14 @@ DevOps - Gitlab CI (solid 7-year exp) - GitHub Actions (3-year exp) -### Interests +## Interests Open-source projects are my passion! I develop, maintain and improve projects in my spare time. Besides programming, I love to cook and spend time with my beloved family! -### Contacts - -SimpleX: -[Dmitriy Pleshevskiy](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2FSkIkI6EPd2D63F4xFKfHk7I1UGZVNn6k1QWZ5rcyr6w%3D%40smp9.simplex.im%2FLfKyG0YgW5eRO-z8vrEyvnNfV2EKDfBv%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAMRpR3YB10GVzc-asfqY2oIFkipx5RQm4DZRabzjfPHo%253D%26srv%3Djssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion) +## Contacts Telegram: [Dmitriy Pleshevskiy](https://telegram.me/da_pranaya) @@ -102,8 +99,8 @@ Matrix: @pleshevskiy:matrix.org Email: dmitriy[at]pleshevski[dot]ru -### Links +## Links -[My Git Repo](https://git.pleshevski.ru/) +[Gitea](https://git.pleshevski.ru/) -[My Github (Suspended due to sanctions)](https://github.com/pleshevskiy) +[Github (Suspended due to sanctions)](https://github.com/pleshevskiy) diff --git a/docs/index.md b/docs/index.md index 8885ec7..e23841f 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ heroText: null Всегда актуальная ссылка на [резюме](/). -### Общие сведения +## Общие сведения Меня зовут Дмитрий Плешевский. @@ -14,9 +14,9 @@ heroText: null разработчик програмного обеспечения, архитектор, руководитель команды, а так же ментор. -### Умения +## Умения -Языки программирования: +### Языки программирования: - TypeScript (предпочитаю, твёрдый 9-летний опыт) - SQL (предпочитаю, твёрдый 8-летний опыт) @@ -28,7 +28,7 @@ heroText: null - C# - C++ -Базы данных: +### Базы данных: - PostgreSQL (предпочитаю, твёрдый 7-летний опыт) - MySQL @@ -46,9 +46,9 @@ heroText: null - Консольные - Кроссплатформенные -### Stack +## Stack -Backend (Rust) +### Backend (Rust) - axum (предпочитаю, твёрдый 2-летний опыт) - async-graphql (предпочитаю, твёрдый 2-летний опыт) @@ -56,7 +56,7 @@ Backend (Rust) - bb8 + postgres-types (предпочитаю, твёрдый 5-летний опыт) - diesel (2-летний опыт) -Backend (Node.JS) +### Backend (Node.JS) - Apollo (твёрдый 5-летний опыт) - Express (твёрдый 9-летний опыт) @@ -64,7 +64,7 @@ Backend (Node.JS) - Knex.js / Objection.js (твёрдый 5-летний опыт) - Sequelize -Frontend +### Frontend - React (твёрдый 8-летний опыт) - VueJS (предпочитаю, твёрдый 4-летний опыт) @@ -75,7 +75,7 @@ Frontend - Sass (предпочитаю, твёрдый 8-летний опыт) - Less (слабый 4-летний опыт) -DevOps +### DevOps - NixOS / NixOps / Nix dev shell (предпочитаю, твёрдый 2-летний опыт) - Docker Swarm (предпочитаю, твёрдый 5-летний опыт) @@ -85,7 +85,7 @@ DevOps - Gitlab CI (твёрдый 7-летний опыт) - GitHub Actions (3-летний опыт) -### Интересы +## Интересы Open-source проекты - моя страсть! Разрабатываю, поддерживаю и улучшаю проекты в своё свободное время. @@ -93,10 +93,7 @@ Open-source проекты - моя страсть! Разрабатываю, п Помимо программирования я люблю готовить и проводить время со своей любимой семьей! -### Контакты - -SimpleX: -[Dmitriy Pleshevskiy](https://simplex.chat/contact#/?v=1-2&smp=smp%3A%2F%2FSkIkI6EPd2D63F4xFKfHk7I1UGZVNn6k1QWZ5rcyr6w%3D%40smp9.simplex.im%2FLfKyG0YgW5eRO-z8vrEyvnNfV2EKDfBv%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAMRpR3YB10GVzc-asfqY2oIFkipx5RQm4DZRabzjfPHo%253D%26srv%3Djssqzccmrcws6bhmn77vgmhfjmhwlyr3u7puw4erkyoosywgl67slqqd.onion) +## Контакты Telegram: [Dmitriy Pleshevskiy](https://telegram.me/da_pranaya) @@ -104,8 +101,8 @@ Matrix: @pleshevskiy:matrix.org Email: dmitriy[at]pleshevski[dot]ru -### Ссылки +## Ссылки -[My Git Repo](https://git.pleshevski.ru/) +[Gitea](https://git.pleshevski.ru/) -[My Github (Приостановлен из-за санкций)](https://github.com/pleshevskiy) +[Github (Приостановлен из-за санкций)](https://github.com/pleshevskiy)