update works

This commit is contained in:
Dmitriy Pleshevskiy 2024-08-07 11:48:54 +03:00
parent 98c6e787d1
commit 2b9101cf1a
Signed by: pleshevskiy
GPG key ID: 17041163DA10A9A2
17 changed files with 171 additions and 78 deletions

8
dist/404.html vendored
View file

@ -33,11 +33,11 @@
</script> </script>
<meta property="og:url" content="https://pleshevski.ru/404.html"><meta property="og:site_name" content="Дмитрий Плешевский"><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":""}</script><title>Дмитрий Плешевский</title><meta name="description" content=" "> <meta property="og:url" content="https://pleshevski.ru/404.html"><meta property="og:site_name" content="Дмитрий Плешевский"><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":""}</script><title>Дмитрий Плешевский</title><meta name="description" content=" ">
<link rel="preload" href="/assets/style-BACGJ9Qw.css" as="style"><link rel="stylesheet" href="/assets/style-BACGJ9Qw.css"> <link rel="preload" href="/assets/style-BACGJ9Qw.css" as="style"><link rel="stylesheet" href="/assets/style-BACGJ9Qw.css">
<link rel="modulepreload" href="/assets/app-OMtl6IVo.js"><link rel="modulepreload" href="/assets/404.html-DhSV0iSI.js"> <link rel="modulepreload" href="/assets/app-CICBSUru.js"><link rel="modulepreload" href="/assets/404.html-Dwh2w4FP.js">
<link rel="prefetch" href="/assets/index.html-DdOSz3i9.js" as="script"><link rel="prefetch" href="/assets/works.html-B-M3ZurS.js" as="script"><link rel="prefetch" href="/assets/index.html-DhiGfEXH.js" as="script"><link rel="prefetch" href="/assets/works.html-B4GC5YDW.js" as="script"> <link rel="prefetch" href="/assets/index.html-CRXC2eW2.js" as="script"><link rel="prefetch" href="/assets/works.html-dR21TKIc.js" as="script"><link rel="prefetch" href="/assets/index.html-D2WI0AD-.js" as="script"><link rel="prefetch" href="/assets/works.html-ClPWTWbv.js" as="script">
</head> </head>
<body> <body>
<div id="app"><!--[--><div class="vp-theme-container" data-v-056523ff><main class="page" data-v-056523ff><div class="theme-default-content" data-v-056523ff><h1 data-v-056523ff>404</h1><blockquote data-v-056523ff>Мы потеряли страницу...</blockquote><a class="route-link" href="/" data-v-056523ff>Вернуться на главную</a></div></main></div><!--[--><!----><!--]--><!--]--></div> <div id="app"><!--[--><div class="vp-theme-container" data-v-056523ff><main class="page" data-v-056523ff><div class="theme-default-content" data-v-056523ff><h1 data-v-056523ff>404</h1><blockquote data-v-056523ff>Верните страницу!</blockquote><a class="route-link" href="/" data-v-056523ff>Вернуться на главную</a></div></main></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-OMtl6IVo.js" defer></script> <script type="module" src="/assets/app-CICBSUru.js" defer></script>
</body> </body>
</html> </html>

View file

@ -1 +1 @@
import{_ as t,c as e,o,a}from"./app-OMtl6IVo.js";const n={},r=a("p",null,"404 Not Found",-1),c=[r];function s(l,p){return o(),e("div",null,c)}const i=t(n,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"ru-RU","frontmatter":{"layout":"NotFound","head":[["meta",{"property":"og:url","content":"https://pleshevski.ru/404.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["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\\":\\"\\"}"]]},"headers":[],"git":{},"filePathRelative":null}');export{i as comp,m as data}; import{_ as t,c as e,o,a}from"./app-CICBSUru.js";const n={},r=a("p",null,"404 Not Found",-1),c=[r];function s(l,p){return o(),e("div",null,c)}const i=t(n,[["render",s],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"ru-RU","frontmatter":{"layout":"NotFound","head":[["meta",{"property":"og:url","content":"https://pleshevski.ru/404.html"}],["meta",{"property":"og:site_name","content":"Дмитрий Плешевский"}],["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\\":\\"\\"}"]]},"headers":[],"git":{},"filePathRelative":null}');export{i as comp,m as data};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/assets/works.html-ClPWTWbv.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/works.html-dR21TKIc.js vendored Normal file

File diff suppressed because one or more lines are too long

10
dist/eng/index.html vendored

File diff suppressed because one or more lines are too long

10
dist/eng/works.html vendored

File diff suppressed because one or more lines are too long

10
dist/index.html vendored

File diff suppressed because one or more lines are too long

2
dist/sitemap.xml vendored
View file

@ -1,3 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/sitemap.xsl"?> <?xml-stylesheet type="text/xsl" href="/sitemap.xsl"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://pleshevski.ru/</loc><lastmod>2024-07-25T12:12:09.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/"/></url><url><loc>https://pleshevski.ru/works.html</loc><lastmod>2024-07-25T13:59:34.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/works.html"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/works.html"/></url><url><loc>https://pleshevski.ru/eng/</loc><lastmod>2024-07-25T12:12:09.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/"/></url><url><loc>https://pleshevski.ru/eng/works.html</loc><lastmod>2024-07-25T12:12:09.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/works.html"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/works.html"/></url></urlset> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://pleshevski.ru/</loc><lastmod>2024-08-07T07:36:38.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/"/></url><url><loc>https://pleshevski.ru/works.html</loc><lastmod>2024-08-07T08:48:54.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/works.html"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/works.html"/></url><url><loc>https://pleshevski.ru/eng/</loc><lastmod>2024-08-07T07:36:38.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/"/></url><url><loc>https://pleshevski.ru/eng/works.html</loc><lastmod>2024-08-07T08:48:54.000Z</lastmod><changefreq>monthly</changefreq><xhtml:link rel="alternate" hreflang="ru-RU" href="https://pleshevski.ru/works.html"/><xhtml:link rel="alternate" hreflang="en-US" href="https://pleshevski.ru/eng/works.html"/></url></urlset>

10
dist/works.html vendored

File diff suppressed because one or more lines are too long

View file

@ -6,53 +6,98 @@ sidebar: false
## Highlighted working experience ## Highlighted working experience
#### Binary Management ### Binary Management
- Dates: August 2018 currently - Dates: August 2018 currently
- Roles: Lead Fullstack Developer, Team Lead, Architect - Roles: Lead Fullstack Developer, Team Lead, Architect
Development of a project management tool for interior designers Development of a Project Management Tool for Interior Designers
- Development of the GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). ##### Backend GraphQL API
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 Stack: `Node.JS`, `Apollo`, `PostgreSQL`, `Redis`, `BullMQ`
- Migrated database triggers into business logic. Code became easier to read and
maintain, and the system became more reliable.
- Introduced unit testing and integration testing practices. I wrote over 70% of
all tests myself.
- Added GraphQL subscriptions for dynamic updates.
##### Frontend
Stack: `React`, `Apollo`, `Antd`
- Formed a UIKit and general components, optimized complex and loaded
components.
- Changed API work on the frontend.
- Introduced integration testing practice using Cypress.
- Migrated the entire project to TypeScript. Created isolated system modules.
##### Leadership of the Team
- Introduced TDD (Test-Driven Development) practices.
- Brought the "Critical Chain Method", the "Buffer Method", and the "Backward
Planning" method into the project. Helped the team get in sync,
releasing small batches every week.
- Created individual development plans for team members.
##### Architecture
- Broke down the entire codebase into modules by feature.
- Optimized `PostgreSQL` database, splitting company data into separate schemas
and applying partitioning tables.
- Added query caching with Redis.
- Reduced infrastructure costs by 5 times, migrating the project from Kubernetes
to NixOS.
---
### Core Spirit (Back Office)
- Даты: Август 2024 - currently
- Роль: Lead Fullstack Developer
Development of the Back Office for Core Spirit social platform.
- Integrated `Dependabot`, which helped update all outdated
dependencies. Replaced webpack with `vite`.
---
### Master Progress
- Dates: May 2018 - currently (Passively maintained) - Dates: May 2018 - currently (Passively maintained)
- Role: Tech Lead - Role: Tech Lead
Development web infrastructure of the educational center Master Progress Development web infrastructure of the educational center Master Progress
- [The main site](https://masterprogress.ru) (Python, Flask). - [The main site](https://masterprogress.ru) (`Python`, `Flask`).
- [Student's cabinet](https://cabinet.masterprogress.ru) (Python, - [Student's cabinet](https://cabinet.masterprogress.ru) (`Python`,
Flask, TypeScript, React). `Flask`, `TypeScript`, `React`, `PostgreSQL`).
- [A tool for rosmintrud](https://rosmintrud.masterprogress.ru) - [A tool for rosmintrud](https://rosmintrud.masterprogress.ru)
(Deno, Vue, Typescript) (`Deno`, `Vue`, `Typescript`)
- Created a complete infrastructure on Woodpecker CI and Docker swarm. - A complete infrastructure was created on `NixOS`. Before that, I had created
an infrastructure using `Drone CI` / `Woodpecker CI` and `Docker
swarm`, which has been running for over 5 years.
#### Core Spirit ---
### Core Spirit
- Dates: August 2018 - May 2020, August 2024 - currently - Dates: August 2018 - May 2020, August 2024 - currently
- Role: Lead Fullstack Developer - Role: Lead Fullstack Developer
Development of Social platform focusing on human and planetary enhancement. Development of Social platform focusing on human and planetary enhancement.
- REST API (Node.JS, Express, PostgreSQL) for main site and - A REST API (using `Node.JS`, `Express`, and `PostgreSQL`) for the main website
backoffice. and back office. I also got to work with a new version of the REST
API using `Go` and `PostgreSQL`.
- Auto poster to various social networks and messengers - Auto poster to various social networks and messengers
(Facebook, LinkedIn, Twitter, Telegram). (Facebook, LinkedIn, Twitter, Telegram).
- Neural network for automatic categorization of articles. - Neural network for automatic categorization of articles.
---
#### MERLION #### MERLION
- Dates: March 2016 May 2018 - Dates: March 2016 May 2018
@ -69,6 +114,7 @@ websites (Node.JS, Express)
- work with neural networks for matching of goods - work with neural networks for matching of goods
- development face recognition apps for Android (Java) - development face recognition apps for Android (Java)
---
## Chronology ## Chronology

View file

@ -6,41 +6,84 @@ sidebar: false
## Выделенный опыт работы ## Выделенный опыт работы
#### Binary Management ### Binary Management
- Даты: Август 2018 по настоящее время - Даты: Август 2018 по настоящее время
- Роли: Lead Fullstack Developer, Team Lead, Architect - Роли: Lead Fullstack Developer, Team Lead, Architect
Разработка инструмента управления проектами для дизайнеров интерьера Разработка инструмента управления проектами для дизайнеров интерьера.
- Разработка GraphQL API (Node.JS, Apollo, PostgreSQL, Redis, BullMQ). Перенес ##### Backend GraphQL API
триггеры базы данных в бизнес-логику. Написал интеграционные тесты на 70% api.
- Разработка фронтенда (React, Antd). Сформировал uikit и общие компоненты, Стек: `Node.JS`, `Apollo`, `PostgreSQL`, `Redis`, `BullMQ`
оптимизировал сложные и нагруженные компоненты. Полностью изменил работу с API
на фронтенде. Внедрил практику написания интеграционных тестов с помощью - Перенес триггеры базы данных в бизнес-логику. Проще стало читать код, вносить
cypress. изменение и система стала надежнее.
- Ввёл практику написания unit тестов и интеграционных тестов. Самолично написал
более 70% тестов всех тестов.
- Добавил GraphQL подписки для динамичного обновления.
##### Frontend
Стек: `React`, `Apollo`, `Antd`
- Сформировал UIKit и общие компоненты, оптимизировал сложные и нагруженные
компоненты.
- Изменил работу с API на фронтенде.
- Внедрил практику написания интеграционных тестов с помощью cypress.
- Полностью перенес проект на TypeScript. Сформировал изолированные модули - Полностью перенес проект на TypeScript. Сформировал изолированные модули
системы. системы.
- Как руководитель команды, я привнес в проект метод критической цепи, метод
буфера и метод планирования с конца. Помог команде войти в ритм, чтобы
выпускать релизы каждую неделю небольшими партиями. Я также несколько раз
составлял индивидуальный план развития для членов команды.
#### Master Progress ##### Руководство командой
- Ввёл практику TDD (Test-Driven Development).
- Я привнес в проект "метод критической цепи", "метод буфера" и "метод
планирования с конца". Помог команде войти в ритм, чтобы выпускать релизы каждую
неделю небольшими партиями.
- Составлял индивидуальный план развития для членов команды.
##### Архитектура
- Разбил всю кодовую базу на модули по фичам.
- Ускорил базу данных `PostgreSQL`, разбив данные компаний по отдельным схемам и
применив партиципирование таблиц.
- Добавил кеширование запросов с `Redis`.
- Уменьшил затраты на инфраструткуру в 5 раз, перенес весь проект с kubernetes
на `NixOS`.
---
### Core Spirit (Back Office)
- Даты: Август 2024 - по настоящее время
- Роль: Lead Fullstack Developer
Разработка бэк-офиса для социальной платформы Core Spirit.
- Интегрировал Dependabot, который помог обновить все устаревшие
зависимости. Заменил webpack на vite.
---
### Master Progress
- Даты: Май 2018 - по настоящее время (Пассивная поддержка) - Даты: Май 2018 - по настоящее время (Пассивная поддержка)
- Роль: Tech Lead - Роль: Tech Lead
Разработка веб-инфраструктуры образовательного центра Мастер Прогресс Разработка веб-инфраструктуры образовательного центра Мастер Прогресс.
- [Главного сайта](https://masterprogress.ru) (Python, Flask). - [Главного сайта](https://masterprogress.ru) (`Python`, `Flask`).
- [Кабинета студента](https://cabinet.masterprogress.ru) (Python, Flask, - [Кабинета студента](https://cabinet.masterprogress.ru) (`Python`, `Flask`,
TypeScript, React). `TypeScript`, `React`, `PostgreSQL`).
- [Инструмента для работы с rosmintrud](https://rosmintrud.masterprogress.ru) - [Инструмента для работы с rosmintrud](https://rosmintrud.masterprogress.ru)
(Deno, Vue, Typescript) (`Deno`, `Vue`, `Typescript`)
- Создана полная инфраструктура на Woodpecker CI и Docker swarm. - Создана полная инфраструктура на `NixOS`. До этого создал инфраструктуру
используя `Drone CI` / `Woodpecker CI` и `Docker swarm`, которая проработала
более 5 лет.
#### Core Spirit ---
### Core Spirit
- Даты: Август 2018 - May 2020, Август 2024 - по настоящее время - Даты: Август 2018 - May 2020, Август 2024 - по настоящее время
- Роль: Lead Fullstack Developer - Роль: Lead Fullstack Developer
@ -48,13 +91,15 @@ TypeScript, React).
Разработка социальной платформы, сфокусированной на улучшении человека и Разработка социальной платформы, сфокусированной на улучшении человека и
планеты. планеты.
- REST API (Node.JS, Express, PostgreSQL) для основного сайта и - REST API (`Node.JS`, `Express`, `PostgreSQL`) для основного сайта и
бэк-офиса. бэк-офиса. Успел поработать с новой версией REST API на `Go`, `PostgreSQL`
- Автопостер в различные социальные сети и мессенджеры (Facebook, - Автопостер в различные социальные сети и мессенджеры (Facebook,
LinkedIn, Twitter, Telegram). LinkedIn, Twitter, Telegram).
- Создал нейронную сеть для автоматической категоризации статей. - Создал нейронную сеть для автоматической категоризации статей.
#### MERLION ---
### MERLION
- Dates: March 2016 May 2018 - Dates: March 2016 May 2018
- Role: Senior Fullstack developer - Role: Senior Fullstack developer
@ -70,6 +115,8 @@ JavaScript)
- Работа с нейронными сетями для подбора товаров - Работа с нейронными сетями для подбора товаров
- Разработка приложений для распознавания лиц для Android (Java) - Разработка приложений для распознавания лиц для Android (Java)
---
## Хронология ## Хронология
В списке перечислены только публичные проекты. В списке перечислены только публичные проекты.

View file

@ -5,7 +5,7 @@
set -xe set -xe
if [ ! -z $(git diff --cached --name-only | grep "^docs/") ] if [ ! -z "$(git diff --cached --name-only | grep "^docs/")" ]
then then
make build make build
git add dist git add dist