vacancy #38

Merged
nik.polishuk merged 2 commits from vacancy into main 2024-07-21 16:38:59 +03:00
5 changed files with 283 additions and 214 deletions
Showing only changes of commit dc065f3bdd - Show all commits

View File

@ -1,17 +1,19 @@
import React from "react"; import React from "react";
import { Link } from "react-router-dom"; import { Link } from "react-router-dom";
import titleImg from "assets/images/VacancyItemImg.svg"; import titleImg from "assets/images/VacancyItemImg.svg";
import "./vacancyItem.scss"; import "./vacancyItem.scss";
export const VacancyItem= ({ vacancy: { name, description, level, price, location, count } }) => { export const VacancyItem = ({
vacancy: { name, description, level, price, location, count }
}) => {
return ( return (
<div className="vacancy__item"> <div className="vacancy__item">
<div className="vacancy__item__head"> <div className="vacancy__item__head">
<div className="vacancy__item__title"> <div className="vacancy__item__title">
<span className="vacancy__item__img"> <span className="vacancy__item__img">
<img src={titleImg} alt="img" /> <img src={titleImg} alt="img" />
</span> </span>
<h4>{name}</h4> <h4>{name}</h4>
</div> </div>
@ -27,7 +29,12 @@ export const VacancyItem= ({ vacancy: { name, description, level, price, locatio
<span>Ставка:</span> <span>Ставка:</span>
<p>{price}</p> <p>{price}</p>
</div> </div>
<Link to={"/profile/open-requests/12"} className="vacancy__item__more">Все требования по вакансии</Link> <Link
to={"/profile/open-requests/12"}
className="vacancy__item__more"
>
Все требования по вакансии
</Link>
</div> </div>
<div className="vacancy__item__block--right"> <div className="vacancy__item__block--right">
<div className="vacancy__item__info"> <div className="vacancy__item__info">
@ -43,4 +50,4 @@ export const VacancyItem= ({ vacancy: { name, description, level, price, locatio
<button className="vacancy__item__btn">Откликнуться</button> <button className="vacancy__item__btn">Откликнуться</button>
</div> </div>
); );
}; };

View File

@ -4,9 +4,14 @@ import "./vacancyTab.scss";
export const VacancyTab = ({ title, active, count, setActive }) => { export const VacancyTab = ({ title, active, count, setActive }) => {
return ( return (
<div className={active === title ? "vacancy__tab vacancy__tab--active" : "vacancy__tab"} onClick={setActive}> <div
className={
active === title ? "vacancy__tab vacancy__tab--active" : "vacancy__tab"
}
onClick={setActive}
>
<p className="vacancy__tab__title">{title}</p> <p className="vacancy__tab__title">{title}</p>
<span className="vacancy__tabtab__count">{count}</span> <span className="vacancy__tabtab__count">{count}</span>
</div> </div>
); );
}; };

View File

@ -4,286 +4,316 @@ import { Footer } from "@components/Common/Footer/Footer";
import { Navigation } from "@components/Navigation/Navigation"; import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs"; import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader"; import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { VacancyTab } from "@components/VacancyTab/VacancyTab";
import { VacancyItem } from "@components/VacancyItem/VacancyItem"; import { VacancyItem } from "@components/VacancyItem/VacancyItem";
import { VacancyTab } from "@components/VacancyTab/VacancyTab";
import "./OpenRequest.scss"; import "./OpenRequest.scss";
export const OpenRequest = () => { export const OpenRequest = () => {
const vacancy = [ const vacancy = [
{ {
name: 'Frontend', name: "Frontend",
count: 15, count: 15,
items: [ items: [
{ {
name: 'Laravel Middle+/Senior 1', name: "Laravel Middle+/Senior 1",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 2', name: "Laravel Middle+/Senior 2",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 3', name: "Laravel Middle+/Senior 3",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 4', name: "Laravel Middle+/Senior 4",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 5', name: "Laravel Middle+/Senior 5",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 6', name: "Laravel Middle+/Senior 6",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
} }
] ]
}, },
{ {
name: 'Backend', name: "Backend",
count: 8, count: 8,
items: [ items: [
{ {
name: 'Laravel Middle+/Senior 7', name: "Laravel Middle+/Senior 7",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 8', name: "Laravel Middle+/Senior 8",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
} }
] ]
}, },
{ {
name: 'Дизайн', name: "Дизайн",
count: 0, count: 0,
items: [ items: [
{ {
name: 'Laravel Middle+/Senior 9', name: "Laravel Middle+/Senior 9",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 10', name: "Laravel Middle+/Senior 10",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
} }
] ]
}, },
{ {
name: 'Аналитика', name: "Аналитика",
count: 0, count: 0,
items: [ items: [
{ {
name: 'Laravel Middle+/Senior 11', name: "Laravel Middle+/Senior 11",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 12', name: "Laravel Middle+/Senior 12",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 13', name: "Laravel Middle+/Senior 13",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
} }
] ]
}, },
{ {
name: 'Тестирование', name: "Тестирование",
count: 0, count: 0,
items: [ items: [
{ {
name: 'Laravel Middle+/Senior 14', name: "Laravel Middle+/Senior 14",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 15', name: "Laravel Middle+/Senior 15",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior 16', name: "Laravel Middle+/Senior 16",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
}, },
{ {
name: 'Laravel Middle+/Senior', name: "Laravel Middle+/Senior",
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы', description:
level: 'Middle+/Senior', "Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
location: 'РФ, РБ', level: "Middle+/Senior",
price: '1500 руб. час', location: "РФ, РБ",
count: '1 сотрудник' price: "1500 руб. час",
count: "1 сотрудник"
} }
] ]
} }
] ];
const [activeTab, setActiveTab] = useState('Frontend') const [activeTab, setActiveTab] = useState("Frontend");
return ( return (
<div className="open-request"> <div className="open-request">
<ProfileHeader /> <ProfileHeader />
@ -302,19 +332,25 @@ export const OpenRequest = () => {
<h2 className="summary__title">Работа в IT открытые запросы</h2> <h2 className="summary__title">Работа в IT открытые запросы</h2>
<div className="vacancy__tabs"> <div className="vacancy__tabs">
{vacancy.map((item, index) => { {vacancy.map((item, index) => {
return <VacancyTab title={item.name} count={item.count} active={activeTab} return (
setActive={() => setActiveTab(item.name)} key={index} /> <VacancyTab
}) title={item.name}
} count={item.count}
active={activeTab}
setActive={() => setActiveTab(item.name)}
key={index}
/>
);
})}
</div> </div>
<div className="vacancy__items"> <div className="vacancy__items">
{vacancy.map((item) => { {vacancy.map((item) => {
if (item.name === activeTab) { if (item.name === activeTab) {
return item.items.map((vacancy, index) => { return item.items.map((vacancy, index) => {
return <VacancyItem key={index} vacancy={vacancy}/> return <VacancyItem key={index} vacancy={vacancy} />;
}); });
} }
return null return null;
})} })}
</div> </div>
</div> </div>

View File

@ -1,4 +1,3 @@
import React from "react"; import React from "react";
import { Footer } from "@components/Common/Footer/Footer"; import { Footer } from "@components/Common/Footer/Footer";
@ -11,7 +10,6 @@ import titleImg from "assets/images/VacancyItemImg.svg";
import "./vacancy.scss"; import "./vacancy.scss";
export const Vacancy = () => { export const Vacancy = () => {
return ( return (
<div className="vacancy"> <div className="vacancy">
<ProfileHeader /> <ProfileHeader />
@ -31,23 +29,46 @@ export const Vacancy = () => {
<div className="opening"> <div className="opening">
<div className="opening__head"> <div className="opening__head">
<span className="opening__img"> <span className="opening__img">
<img src={titleImg} alt='img' /> <img src={titleImg} alt="img" />
</span> </span>
<h4 className="opening__name">Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы</h4> <h4 className="opening__name">
Проект представляет из себя монолит с большим техдолгом, нужен
php разработчик с опытом распила монолита на модули/микросервисы
</h4>
</div> </div>
<div className="opening__info"> <div className="opening__info">
<div className="opening__description"> <div className="opening__description">
<span>Требования :</span> <span>Требования :</span>
<ul> <ul>
<li>Опыт разработки на Golang 2+ года и общий опыт разработки 3+ года;</li> <li>
<li>Понимание устройства языка Go (многопоточность, шедулер, кодогенерация);</li> Опыт разработки на Golang 2+ года и общий опыт разработки 3+
<li>Опыт работы с брокерами сообщений (Kafka, RabbitMQ, Nuts и etc);</li> года;
<li>Опыт работы с реляционными БД (PostgreSQL, ClickHouse и etc);</li> </li>
<li>Знание сетевого стека и основных сетевых протоколов на высоком уровне;</li> <li>
<li>Опыт работы с различными средствами автоматизации для процессов разработки (Nexus, Gitlab registry Понимание устройства языка Go (многопоточность, шедулер,
etc) (необходимо для понимания предметной области); кодогенерация);
</li>
<li>
Опыт работы с брокерами сообщений (Kafka, RabbitMQ, Nuts и
etc);
</li>
<li>
Опыт работы с реляционными БД (PostgreSQL, ClickHouse и
etc);
</li>
<li>
Знание сетевого стека и основных сетевых протоколов на
высоком уровне;
</li>
<li>
Опыт работы с различными средствами автоматизации для
процессов разработки (Nexus, Gitlab registry etc)
(необходимо для понимания предметной области);
</li>
<li>
Понимание работы прокси и опыт работы с различными решениями
(Nginx, Haproxy, Squid).
</li> </li>
<li>Понимание работы прокси и опыт работы с различными решениями (Nginx, Haproxy, Squid).</li>
</ul> </ul>
</div> </div>
<div className="opening__blocks"> <div className="opening__blocks">

View File

@ -2,7 +2,6 @@ import React from "react";
import { Route, Routes } from "react-router-dom"; import { Route, Routes } from "react-router-dom";
import { OpenRequest } from "@pages/OpenRequests/OpenRequest"; import { OpenRequest } from "@pages/OpenRequests/OpenRequest";
import { Vacancy } from "@pages/Vacancy/Vacancy"
import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings"; import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties"; import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
import { Payouts } from "@pages/Payouts/Payouts"; import { Payouts } from "@pages/Payouts/Payouts";
@ -14,6 +13,7 @@ import { QuizReportPage } from "@pages/Quiz/QuizReportPage";
import Statistics from "@pages/Statistics/Statistics"; import Statistics from "@pages/Statistics/Statistics";
import { Summary } from "@pages/Summary/Summary"; import { Summary } from "@pages/Summary/Summary";
import { Tracker } from "@pages/Tracker/Tracker"; import { Tracker } from "@pages/Tracker/Tracker";
import { Vacancy } from "@pages/Vacancy/Vacancy";
import { ViewReport } from "@pages/ViewReport/ViewReport"; import { ViewReport } from "@pages/ViewReport/ViewReport";
import TicketFullScreen from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen"; import TicketFullScreen from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";