{"id":2168,"date":"2025-06-09T18:08:27","date_gmt":"2025-06-09T15:08:27","guid":{"rendered":"https:\/\/shedov.top\/ru\/?page_id=2168"},"modified":"2026-08-20T02:16:41","modified_gmt":"2026-08-19T23:16:41","slug":"primery-koda","status":"publish","type":"page","link":"https:\/\/shedov.top\/ru\/primery-koda\/","title":{"rendered":"\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u0434\u0430 \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0435\u043a\u0430\u0445 \u0438 CMS"},"content":{"rendered":"<div class=\"resume_wrap\">\n        <div class=\"resume\">\n\n                <div class=\"single_contents gD0XQWXJt6\">\n                        <nav>\n                                <h2>Languages<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_1\">Rust<\/a><\/li>\n                                        <li><a href=\"#paragraph_2\">JS<\/a><\/li>\n                                        <li><a href=\"#paragraph_3\">PHP<\/a><\/li>\n                                        <li><a href=\"#paragraph_22\">Python<\/a><\/li>\n                                <\/ul>\n\n                                <h2>Runtime Environment<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_7\">Node.js<\/a><\/li>\n                                <\/ul>\n\n                                <h2>Tech Stack<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_51\">LARS (Leptos, Actix Web, Rust, ScyllaDB)<\/a><\/li>\n                                        <li><a href=\"#paragraph_52\">MERN (MongoDB, Express.js, React, Node.js)<\/a><\/li>\n                                <\/ul>\n\n                                <h2>Frameworks<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_4\">Leptos<\/a><\/li>\n                                        <li><a href=\"#paragraph_5\">React<\/a><\/li>\n                                        <li><a href=\"#paragraph_6\">Express.js<\/a><\/li>\n                                        <li><a href=\"#paragraph_61\">Electron.js<\/a><\/li>\n                                <\/ul>\n\n                                <h2>CMS<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_8\">WordPress<\/a><\/li>\n                                <\/ul>\n\n                                <h2>Databases<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_81\">ScyllaDB<\/a><\/li>\n                                        <li><a href=\"#paragraph_82\">MongoDB<\/a><\/li>\n                                <\/ul>\n\n                                <h2>Layout<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_9\">Pixel Perfect<\/a><\/li>\n\n                                <\/ul>\n\n                                <h2>Animation<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_10\">JS<\/a><\/li>\n                                        <li><a href=\"#paragraph_11\"> React<\/a><\/li>\n                                        <li><a href=\"#paragraph_12\">CSS<\/a><\/li>\n                                        <li><a href=\"#paragraph_13\">SVG<\/a><\/li>\n                                <\/ul>\n\n                                <h2>DevSecOps<\/h2>\n\n                                <ul>\n                                        <li><a href=\"#paragraph_83\">Monitoring VMs in VPC<\/a><\/li>\n                                <\/ul>\n\n                        <\/nav>\n\n                <\/div>\n\n                <p id=\"paragraph_2\" class=\"resume_naming_specializations_1\"><strong>---- JS ----<\/strong><\/p>\n                <p id=\"paragraph_52\" class=\"resume_naming_specializations_2\"\n                        style=\"margin-top: 9px; text-align: center;\">\n                        <strong>---- Stack: MERN (MongoDB, Express.js, React, Node.js) ----<\/strong>\n                <\/p>\n                <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- Frontend ----<\/strong>\n                <\/p>\n\n                <ul>\n                        <li>\n                                <a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/frontend\"\n                                        target=\"_blank\" rel=\"noopener\">\n                                        Frontend part<\/a> <a\n                                        href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v1-0\/#paragraph_8\"\n                                        target=\"_blank\" rel=\"noopener\">CRYSTAL v1.0 (Production)<\/a>\n                        <\/li>\n                        <li>\n                                <a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/frontend\"\n                                        target=\"_blank\" rel=\"noopener\">Frontend part<\/a> <a\n                                        href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v2-0\/\"\n                                        target=\"_blank\" rel=\"noopener\">CRYSTAL v2.0<\/a>\n                        <\/li>\n                <\/ul>\n\n                <p id=\"paragraph_5\" class=\"resume_naming_specializations_3\"><strong>---- React ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Fetch API ----<\/strong>\n                <\/p>\n                <ul>\n                        <li>\n                                <a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/frontend\/src\/shared\/api\/httpClient.js\"\n                                        rel=\"noopener\" target=\"_blank\">httpClient<\/a>\n                        <\/li>\n                <\/ul>\n                <p class=\"resume_naming_specializations_5\"><strong>---- \/Fetch API ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- TanStack Query v5 ----\n                        <\/strong>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L198C10-L198C17\"\n                                target=\"_blank\" rel=\"noopener\">\n                                register<\/a><span> \/ <\/span><a\n                                href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/frontend\/src\/features\/auth\"\n                                target=\"_blank\" rel=\"noopener\">auth<\/a><span> \/ <\/span><a\n                                href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L143\"\n                                target=\"_blank\" rel=\"noopener\">logIn<\/a><span> \/ <\/span><a\n                                href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/widgets\/OptionsMenu\/parts\/OptionsMenuUser\/OptionsMenuUser.jsx#L101\"\n                                target=\"_blank\" rel=\"noopener\">logOut<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\"><strong>---- \/TanStack Query v5 ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Yup ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/c4b337d1bb2240d83162e5f906b948187d8f74ae\/frontend\/src\/features\/accessModal\/AccessModal.jsx#L55\"\n                                target=\"_blank\" rel=\"noopener\">\n                                validation<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\"><strong>---- \/Yup ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- WebSocket ----<\/strong>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/shared\/hooks\/useWebSocket\/useWebSocket.js\"\n                                target=\"_blank\" rel=\"noopener\">\n                                useWebSocket.js<\/a>\n                <\/p>\n                <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/WebSocket\n                                ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- reCAPTCHA v3\n                                ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/frontend\/src\/shared\/hooks\/useRecaptchaV3\/useRecaptchaV3.jsx\"\n                                target=\"_blank\" rel=\"noopener\">useRecaptchaV3.jsx<\/a>\n                <\/p>\n                <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/reCAPTCHA v3\n                                ----<\/strong>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/app\/App.jsx\"\n                                target=\"_blank\" rel=\"noopener\">App.jsx<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/HomePage\/HomePage.jsx\"\n                                target=\"_blank\" rel=\"noopener\">HomePage.jsx<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/widgets\/PostPreview\/PostPreview.jsx\"\n                                target=\"_blank\" rel=\"noopener\">PostPreview.jsx<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/FullPostPage\/FullPostPage.jsx\"\n                                target=\"_blank\" rel=\"noopener\">FullPostPage.jsx<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/pages\/UserEditPage\/UserEditPage.jsx\"\n                                target=\"_blank\" rel=\"noopener\">UserEditPage.jsx<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/frontend\/src\/shared\/hooks\/formatting\/useFormattedPostDate\/useFormattedPostDate.jsx\"\n                                target=\"_blank\" rel=\"noopener\">useFormattedPostDate.jsx<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/React ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- \/Frontend ----<\/strong>\n                <\/p>\n\n                <p id=\"paragraph_82\" class=\"resume_naming_specializations_4\"><strong>---- Backend ----<\/strong><\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\"\n                                target=\"_blank\" rel=\"noopener\">\n                                Backend part<\/a> <a\n                                href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v1-0\/#paragraph_8\"\n                                target=\"_blank\" rel=\"noopener\">CRYSTAL v1.0 (Production)<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\" target=\"_blank\"\n                                rel=\"noopener\">\n                                Backend part<\/a> <a\n                                href=\"https:\/\/shedov.top\/description-and-capabilities-of-crystal-v2-0\/\" target=\"_blank\"\n                                rel=\"noopener\">CRYSTAL v2.0<\/a>\n                <\/p>\n\n\n                <p id=\"paragraph_7\" class=\"resume_naming_specializations_1\"><strong>---- Node.js\n                                ----<\/strong><\/p>\n                <p id=\"paragraph_6\" class=\"resume_naming_specializations_3\"><strong>---- Express.js ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- core ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/main.js\"\n                                target=\"_blank\" rel=\"noopener\">\n                                main.js<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/app.js\"\n                                target=\"_blank\" rel=\"noopener\">\n                                app.js<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/server.js\"\n                                target=\"_blank\" rel=\"noopener\">server.js<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/db\/connectDB.js\"\n                                target=\"_blank\" rel=\"noopener\">connectDB.js (native driver MongoDB)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/src\/core\/engine\/db\/connectDB.js\"\n                                target=\"_blank\" rel=\"noopener\">\n                                connectDB.js (Mongoose)<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/db\/initializeCollections.js\"\n                                target=\"_blank\" rel=\"noopener\">initializeCollections.js (native driver MongoDB)<\/a>\n                <\/p>\n\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/routes\/initRoutes.js\"\n                                target=\"_blank\" rel=\"noopener\">\n                                initRoutes.js<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/core ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- modules (native driver MongoDB)\n                                ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/auth\"\n                                target=\"_blank\" rel=\"noopener\">\n                                auth (controller, middleware, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/user\"\n                                target=\"_blank\" rel=\"noopener\">\n                                user (controller, schema, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/post\"\n                                target=\"_blank\" rel=\"noopener\">\n                                post (controller, schema, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/like\"\n                                target=\"_blank\" rel=\"noopener\">\n                                like (controller, schema, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/tree\/main\/main\/backend\/src\/modules\/hashtag\"\n                                target=\"_blank\" rel=\"noopener\">\n                                hashtag (controller, schema, routes)<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/modules (native driver MongoDB) ----<\/strong>\n                <\/p>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- modules (Mongoose) ----<\/strong>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/auth\"\n                                target=\"_blank\" rel=\"noopener\">\n                                auth (controller, middleware, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/user\"\n                                target=\"_blank\" rel=\"noopener\">\n                                user (controller, model, routes)<\/a>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/tree\/main\/main\/backend\/src\/modules\/post\"\n                                target=\"_blank\" rel=\"noopener\">\n                                post (controller, model, routes)<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/modules (Mongoose) ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- sharp ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/shared\/utils\/sharp\/sharp-upload.js\"\n                                target=\"_blank\" rel=\"noopener\">sharp-upload.js<\/a><\/p>\n                <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/sharp ----<\/strong>\n                <\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- WebSocket ----<\/strong>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v2.0\/blob\/main\/main\/backend\/src\/core\/engine\/web\/websocket.js\"\n                                target=\"_blank\" rel=\"noopener\">websocket.js<\/a>\n                <\/p>\n                <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/WebSocket\n                                ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- reCAPTCHA v3\n                                ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/src\/shared\/utils\/recaptcha-v3\/recaptcha-v3.js\"\n                                target=\"_blank\" rel=\"noopener\">recaptcha-v3.js<\/a>\n                <\/p>\n                <p style=\"margin-bottom: 9px;\" class=\"resume_naming_specializations_5\"><strong>---- \/reCAPTCHA v3\n                                ----<\/strong>\n                <\/p>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/Express.js ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- PM2 ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/CrystalSystems\/crystal-v1.0--production\/blob\/main\/main\/backend\/ecosystem.config.cjs\"\n                                target=\"_blank\" rel=\"noopener\">ecosystem.config.cjs<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\"><strong>---- \/PM2 ----<\/strong><\/p>\n                <p class=\"u39crdDEQL\"><strong>---- \/Node.js\n                                ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_4\" style=\"margin-top: 9px;\"><strong>---- \/Backend ----<\/strong>\n                <\/p>\n                <p class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\"><strong>----\n                                \/Stack:\n                                MERN\n                                (MongoDB, Express.js, React, Node.js) ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- npm ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_2\"><strong>---- Multithreading ----<\/strong><\/p>\n                <a href=\"https:\/\/github.com\/AndrewShedov\/turboMaker\/tree\/main\/src\" target=\"_blank\" rel=\"noopener\">\n                        turboMaker<\/a>\n                <p class=\"resume_naming_specializations_2\"><strong>---- \/Multithreading ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/npm ----<\/strong><\/p>\n\n                <p id=\"paragraph_61\" class=\"resume_naming_specializations_3\"><strong>---- Electron.js ----<\/strong><\/p>\n\n                <a href=\"https:\/\/github.com\/AndrewShedov\/class-generator\" target=\"_blank\" rel=\"noopener\">\n                        Class Generator<\/a>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/Electron.js ----<\/strong><\/p>\n\n                <p class=\"u39crdDEQL\"><strong>---- \/JS\n                                ----<\/strong><\/p>\n\n\n                <p id=\"paragraph_1\" class=\"resume_naming_specializations_1\"><strong>---- Rust ----<\/strong><\/p>\n\n                <p id=\"paragraph_51\" class=\"resume_naming_specializations_2\"\n                        style=\"margin-top: 9px; text-align: center;\">\n                        <strong>---- Stack: LARS (Leptos, Actix Web, Rust, ScyllaDB) ----<\/strong>\n                <\/p>\n\n                <p id=\"paragraph_4\" class=\"resume_naming_specializations_3\"><strong>---- Leptos ----<\/strong><\/p>\n                <p id=\"paragraph_81\" class=\"resume_naming_specializations_2\"><strong>---- SSR ----<\/strong><\/p>\n                <a href=\"https:\/\/github.com\/AndrewShedov\/enter-text--LARS\" target=\"_blank\" rel=\"noopener\"> Enter Text\n                        (LARS)<\/a>\n                <p class=\"resume_naming_specializations_2\"><strong>---- \/SSR ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/Leptos ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_2\" style=\"margin-top: 9px; text-align: center;\"><strong>----\n                                \/Stack:\n                                LARS\n                                (Leptos, Actix Web, Rust, ScyllaDB) ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_3\"><strong>---- crates.io ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_2\"><strong>---- Multithreading ----<\/strong><\/p>\n                <a href=\"https:\/\/github.com\/AndrewShedov\/turbo-maker\/tree\/main\/src\" target=\"_blank\" rel=\"noopener\">\n                        turbo-maker<\/a>\n                <p class=\"resume_naming_specializations_2\"><strong>---- \/Multithreading ----<\/strong><\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/crates.io ----<\/strong><\/p>\n\n                <p class=\"u39crdDEQL\"><strong>---- \/Rust\n                                ----<\/strong><\/p>\n\n                <p id=\"paragraph_22\" class=\"resume_naming_specializations_1\"><strong>---- Python\n                                ----<\/strong><\/p>\n\n                <p id=\"paragraph_83\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>----\n                                Monitoring VMs\n                                in VPC (DevSecOps)\n                                ----<\/strong><\/p>\n\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/vm-inspector\" target=\"_blank\" rel=\"noopener\">VM\n                                Inspector<\/a><\/p>\n\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/Monitoring VMs in VPC\n                                (DevSecOps)\n                                ----<\/strong>\n                <\/p>\n\n                <p class=\"u39crdDEQL\"><strong>---- \/Python\n                                ----<\/strong><\/p>\n\n                <p id=\"paragraph_3\" class=\"resume_naming_specializations_1\"><strong>---- PHP\n                                ----<\/strong><\/p>\n                <p id=\"paragraph_8\" class=\"resume_naming_specializations_3\"><strong>---- WordPress ----<\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/shedov.top--custom-theme--wordpress\" target=\"_blank\"\n                                rel=\"noopener\">\n                                Custom Theme<\/a> for <a href=\"https:\/\/shedov.top\/\" target=\"_blank\"\n                                rel=\"noopener\">shedov.top<\/a> website\n                <\/p>\n                <p class=\"resume_naming_specializations_3\"><strong>---- \/WordPress ----<\/strong><\/p>\n                <p class=\"u39crdDEQL\"><strong>---- \/PHP\n                                ----<\/strong><\/p>\n\n\n                <p class=\"resume_naming_specializations_1\"><strong>---- Layout ----<\/strong><\/p>\n                <p id=\"paragraph_9\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- Pixel\n                                Perfect\n                                ----<\/strong><\/p>\n                <p style=\"margin-top: 9px;\"><strong> Complex, multi-level, adaptive layout with animation (JS, Flexbox,\n                                Grid)\n                        <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/website-home-page--best-tour-plan\" target=\"_blank\"\n                                rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/website-home-page-best-tour-plan.vercel.app\/\" target=\"_blank\"\n                                rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Adaptive layout with animation (JS, Flexbox, Grid) <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/landing-page--photographer-portfolio\" target=\"_blank\"\n                                rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/landing-page-photographer-portfolio.vercel.app\/\" target=\"_blank\"\n                                rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/Pixel Perfect\n                                ----<\/strong>\n                <\/p>\n                <p class=\"u39crdDEQL\"><strong>---- \/Layout\n                                ----<\/strong><\/p>\n\n                <p class=\"resume_naming_specializations_1\"><strong>---- Animation\n                                ----<\/strong><\/p>\n                <p id=\"paragraph_10\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- JS\n                                ----<\/strong>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong>Animated popup return form call <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_pure_js_callback_popup_using_css_property_display\"\n                                target=\"_blank\" rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/andrewshedov.github.io\/animated_pure_js_callback_popup_using_css_property_display\/\"\n                                target=\"_blank\" rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Smoothly appearing up button + adaptive side menu <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/smoothly_appearing_up_button_in_pure_js_%2B_adaptive_side_menu\"\n                                target=\"_blank\" rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/andrewshedov.github.io\/smoothly_appearing_up_button_in_pure_js_+_adaptive_side_menu\/\"\n                                target=\"_blank\" rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Animated and adaptive side menu <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_adaptive_side_menu\"\n                                target=\"_blank\" rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/andrewshedov.github.io\/animated_adaptive_side_menu\/\" target=\"_blank\"\n                                rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/JS ----<\/strong><\/p>\n                <p id=\"paragraph_11\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- React\n                                ----<\/strong><\/p>\n                <p style=\"margin-top: 9px;\"><strong> Animated modal window using \u2013 onAnimationEnd <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/Animated-modal-in-react\" target=\"_blank\" rel=\"noopener\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/animated-modal-in-react.vercel.app\/\" target=\"_blank\" rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Animated dropdown menu using \u2013 onAnimationEnd <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/Animated-dropdown-menu-in-react\" rel=\"noopener\"\n                                target=\"_blank\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/animated-dropdown-menu-in-react.vercel.app\/\" target=\"_blank\"\n                                rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/React ----<\/strong>\n                <\/p>\n                <p id=\"paragraph_12\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- CSS\n                                ----<\/strong>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Animated social media icons that change color and size on hover\n                        <\/strong>\n                <\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/animated_social_icons_color_changing_on_hover_in_pure_css\"\n                                rel=\"noopener\" target=\"_blank\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/andrewshedov.github.io\/animated_social_icons_color_changing_on_hover_in_pure_css\/\"\n                                target=\"_blank\" rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p style=\"margin-top: 9px;\"><strong> Animated Instagram and Facebook icons <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/andrewshedov.github.io\/tree\/master\/instagram_and_facebook_icons\"\n                                rel=\"noopener\" target=\"_blank\">\n                                code<\/a><span> | <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/andrewshedov.github.io\/instagram_and_facebook_icons\/\" target=\"_blank\"\n                                rel=\"noopener\">\n                                live<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/CSS ----<\/strong><\/p>\n\n                <p id=\"paragraph_13\" class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- CSS |\n                                SVG\n                                ----<\/strong><\/p>\n                <p style=\"margin-top: 9px;\"><strong>Animated heart with realistic heartbeat and hover effect, made with\n                                SVG and\n                                pure\n                                CSS <\/strong><\/p>\n                <p><a href=\"https:\/\/github.com\/AndrewShedov\/animated-heart--svg-css\" rel=\"noopener\"\n                                target=\"_blank\">code<\/a><span> |\n                        <\/span><a style=\"color: var(--live_text_color);\"\n                                href=\"https:\/\/animated-heart-svg-css.vercel.app\/\" target=\"_blank\"\n                                rel=\"noopener\">live<\/a>\n                <\/p>\n                <p class=\"resume_naming_specializations_5\" style=\"margin-top: 9px;\"><strong>---- \/CSS | SVG\n                                ----<\/strong><\/p>\n\n                <p class=\"u39crdDEQL\"><strong>---- \/Animation\n                                ----<\/strong><\/p>\n\n        <\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Languages Rust JS PHP Python Runtime Environment Node.js Tech Stack LARS (Leptos, Actix Web, Rust, ScyllaDB) MERN (MongoDB, Express.js, React, Node.js) Frameworks Leptos React Express.js Electron.js CMS WordPress Databases ScyllaDB MongoDB Layout Pixel Perfect Animation JS React CSS SVG DevSecOps Monitoring VMs in VPC ---- JS ---- ---- Stack: MERN (MongoDB, Express.js, React, Node.js) ---- [&hellip;]","protected":false},"author":1,"featured_media":739,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2168","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/comments?post=2168"}],"version-history":[{"count":255,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168\/revisions"}],"predecessor-version":[{"id":6404,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/pages\/2168\/revisions\/6404"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/media\/739"}],"wp:attachment":[{"href":"https:\/\/shedov.top\/ru\/wp-json\/wp\/v2\/media?parent=2168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}