feat(upgrades): tottaly upgrade everything
remove stochastic way of rendering segments, use normal way (split on segments)master
parent
97919d2baf
commit
02d70d7990
|
|
@ -8,7 +8,7 @@
|
||||||
"gatsby"
|
"gatsby"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"develop": "gatsby develop",
|
"develop": "gatsby develop -p 8888 -H 0.0.0.0",
|
||||||
"start": "gatsby develop",
|
"start": "gatsby develop",
|
||||||
"build": "gatsby build",
|
"build": "gatsby build",
|
||||||
"serve": "gatsby serve",
|
"serve": "gatsby serve",
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,118 @@ import WorkInfinidatLogo from "../images/work_infinidat_logo.png"
|
||||||
import WorkTechemLogo from "../images/work_techem_logo.png"
|
import WorkTechemLogo from "../images/work_techem_logo.png"
|
||||||
|
|
||||||
|
|
||||||
const SegmentWithImage = ({ segment }) => {
|
|
||||||
|
const MiniWorkImage = ({ image }) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
|
||||||
<img
|
<img
|
||||||
src={ MePng }
|
src={ image }
|
||||||
|
style="height: 25px; width: 25px; margin-right: 5px;"
|
||||||
|
/>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const SegmentTitle = ({ segment }) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
className="segment_general"
|
||||||
|
>
|
||||||
|
<div className="segment_title">
|
||||||
|
{ segment.title }
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const SegmentListNormal = ({ segment, tabs }) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: 100 - tabs * 5 + "%",
|
||||||
|
marginLeft: tabs * 5 + "%",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="segment_content">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
{
|
||||||
|
segment.content.length > 0 ?
|
||||||
|
segment.title + ":"
|
||||||
|
:
|
||||||
|
segment.title + ","
|
||||||
|
}
|
||||||
|
</li>
|
||||||
|
<ul>
|
||||||
|
{
|
||||||
|
segment.content.length > 0 ?
|
||||||
|
segment.content.map(
|
||||||
|
(item, index) => {
|
||||||
|
return (
|
||||||
|
<li key={ index }>
|
||||||
|
{ item + "," }
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
:
|
||||||
|
<></>
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
const SegmentListWork = ({ segment, tabs }) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
width: 100 - tabs * 5 + "%",
|
||||||
|
marginLeft: tabs * 5 + "%",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<div className="segment_content">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
{
|
||||||
|
segment.content.length > 0 ?
|
||||||
|
segment.title + ":"
|
||||||
|
:
|
||||||
|
segment.title + ","
|
||||||
|
}
|
||||||
|
</li>
|
||||||
|
<ul>
|
||||||
|
{
|
||||||
|
segment.content.length > 0 ?
|
||||||
|
segment.content.map(
|
||||||
|
(item, index) => {
|
||||||
|
return (
|
||||||
|
<li key={ index }>
|
||||||
|
{ item + "," }
|
||||||
|
</li>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
|
:
|
||||||
|
<></>
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const SegmentGeneral = ({ segment }) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
className="segment_general"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
src={ segment.image }
|
||||||
className="segment_image cover"
|
className="segment_image cover"
|
||||||
/>
|
/>
|
||||||
<div className="segment_title segment_title_image">
|
<div className="segment_title segment_title_image">
|
||||||
|
|
@ -60,134 +167,12 @@ const SegmentWithImage = ({ segment }) => {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const MiniWorkImage = {{ image }} => {
|
|
||||||
return (
|
|
||||||
<img
|
|
||||||
src={ image }
|
|
||||||
style="height: 25px; width: 25px; margin-right: 5px;"
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const SegmentNormal = ({ segment }) => {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<div className="segment_title">
|
|
||||||
{ segment.title }
|
|
||||||
</div>
|
|
||||||
<div className="segment_content">
|
|
||||||
<ul>
|
|
||||||
{
|
|
||||||
typeof segment.content === "object" ?
|
|
||||||
Object.keys(segment.content).map( (key) => {
|
|
||||||
return (
|
|
||||||
<li key={ "item_" + key }>
|
|
||||||
{
|
|
||||||
typeof segment.content[key] === "object" ?
|
|
||||||
segment.content[key].length === 1 ?
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<MiniWorkImage
|
|
||||||
image={ segment.content[key][0]['image'] }
|
|
||||||
/>
|
|
||||||
{ key + "," }
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
:
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<MiniWorkImage
|
|
||||||
image={ segment.content[key][0]['image'] }
|
|
||||||
/>
|
|
||||||
{ key + ": " }
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
:
|
|
||||||
key + ","
|
|
||||||
}
|
|
||||||
<ul>
|
|
||||||
{
|
|
||||||
typeof segment.content[key] === "object" ?
|
|
||||||
segment.content[key].slice(1).map( (value, index) => {
|
|
||||||
return (
|
|
||||||
<li key={ index }>
|
|
||||||
{
|
|
||||||
typeof value === "object" ?
|
|
||||||
Object.keys( value ).map( ( key_two, index_two) => {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<MiniWorkImage
|
|
||||||
image={ value[key_two][0]['image'] }
|
|
||||||
/>
|
|
||||||
{ key_two + ": " }
|
|
||||||
<ul key={ index_two }>
|
|
||||||
{
|
|
||||||
typeof value === "object" ?
|
|
||||||
Object.keys( value[key_two] ).slice(1).map( (key_three, index_three) => {
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
{ key_three + ": " }
|
|
||||||
<ul key={ index_three }>
|
|
||||||
{
|
|
||||||
typeof value[key_two][key_three] === "object" ?
|
|
||||||
value[key_two][key_three].map( (item, index_three) => {
|
|
||||||
return (
|
|
||||||
<li>
|
|
||||||
{ item + "," }
|
|
||||||
</li>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
:
|
|
||||||
""
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
:
|
|
||||||
value[key_two].map( (item, index_three) => {
|
|
||||||
return (
|
|
||||||
<li>
|
|
||||||
{ item + "," }
|
|
||||||
</li>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
:
|
|
||||||
value + ","
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
:
|
|
||||||
value + ","
|
|
||||||
}
|
|
||||||
</li>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
:
|
|
||||||
""
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
:
|
|
||||||
"lol"
|
|
||||||
}
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
const SegmentRODO = ({ segment }) => {
|
const SegmentRODO = ({ segment }) => {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div
|
||||||
|
className="segment_general"
|
||||||
|
>
|
||||||
<div className="segment_content foot_content">
|
<div className="segment_content foot_content">
|
||||||
{ segment.content }
|
{ segment.content }
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -202,24 +187,48 @@ const Segment = ({ index, segment }) => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className="segment_general"
|
|
||||||
id={ segment_index }
|
id={ segment_index }
|
||||||
key={ segment_index }
|
key={ segment_index }
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
"image" in segment ?
|
segment.type === "generalTitleSegment" ?
|
||||||
<SegmentWithImage
|
<>
|
||||||
|
<SegmentGeneral
|
||||||
segment={ segment }
|
segment={ segment }
|
||||||
/>
|
/>
|
||||||
|
</>
|
||||||
:
|
:
|
||||||
segment.title === "" ?
|
segment.type === "titleSegment" ?
|
||||||
|
<>
|
||||||
|
<SegmentTitle
|
||||||
|
segment={ segment }
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
:
|
||||||
|
segment.type === "subSegment" ?
|
||||||
|
<>
|
||||||
|
<SegmentListNormal
|
||||||
|
segment={ segment }
|
||||||
|
tabs={ segment.tabs }
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
:
|
||||||
|
segment.type === "workSubSegment" ?
|
||||||
|
<>
|
||||||
|
<SegmentListWork
|
||||||
|
segment={ segment }
|
||||||
|
tabs={ segment.tabs }
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
:
|
||||||
|
segment.type === "RODOSegment" ?
|
||||||
|
<>
|
||||||
<SegmentRODO
|
<SegmentRODO
|
||||||
segment={ segment }
|
segment={ segment }
|
||||||
/>
|
/>
|
||||||
|
</>
|
||||||
:
|
:
|
||||||
<SegmentNormal
|
<></>
|
||||||
segment={ segment }
|
|
||||||
/>
|
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
@ -230,8 +239,9 @@ const IndexPage = () => {
|
||||||
|
|
||||||
let content_pl = [
|
let content_pl = [
|
||||||
{
|
{
|
||||||
|
type: "generalTitleSegment",
|
||||||
title: "Kamil Żuk",
|
title: "Kamil Żuk",
|
||||||
image: "me.png",
|
image: MePng,
|
||||||
content: {
|
content: {
|
||||||
"E-mail": "zukkamil.44@gmail.com",
|
"E-mail": "zukkamil.44@gmail.com",
|
||||||
"Github": "github.com/tbs093a",
|
"Github": "github.com/tbs093a",
|
||||||
|
|
@ -241,41 +251,75 @@ const IndexPage = () => {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
type: "titleSegment",
|
||||||
title: "Umiejętności",
|
title: "Umiejętności",
|
||||||
content: {
|
},
|
||||||
"Programowanie": [
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Programowanie",
|
||||||
|
content: [
|
||||||
"Python - Django / Django REST Framework / Channels 3.0",
|
"Python - Django / Django REST Framework / Channels 3.0",
|
||||||
"Javascript - ReactJS / Redux Toolkit",
|
"Javascript - ReactJS / Redux Toolkit",
|
||||||
],
|
],
|
||||||
"Konfiguracja Serwerów": [
|
},
|
||||||
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Konfiguracja Serwerów",
|
||||||
|
content: [
|
||||||
"Apache / Nginx (Https-Portal)"
|
"Apache / Nginx (Https-Portal)"
|
||||||
],
|
],
|
||||||
"Obsługa Narzędzi DevOps": [
|
},
|
||||||
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Obsługa Narzędzi DevOps",
|
||||||
|
content: [
|
||||||
"Jenkins / Ansible / Docker / Docker-Compose / Automatyzacja w Bash",
|
"Jenkins / Ansible / Docker / Docker-Compose / Automatyzacja w Bash",
|
||||||
],
|
],
|
||||||
"Konfiguracja & Administracja Baz Danych": [
|
},
|
||||||
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Konfiguracja & Administracja Baz Danych",
|
||||||
|
content: [
|
||||||
"SQL - MariaDB / MySQL / PostgreSQL",
|
"SQL - MariaDB / MySQL / PostgreSQL",
|
||||||
"NoSQL - MongoDb / ElasticSearch / Redis"
|
"NoSQL - MongoDb / ElasticSearch / Redis"
|
||||||
],
|
],
|
||||||
"Język Angielski": [
|
},
|
||||||
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Język Angielski",
|
||||||
|
content: [
|
||||||
"Poziom B2",
|
"Poziom B2",
|
||||||
],
|
],
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
type: "titleSegment",
|
||||||
title: "Doświadczenie",
|
title: "Doświadczenie",
|
||||||
content: {
|
|
||||||
"Zespół Szkół Elektronicznych w Rzeszowie / Technikum nr 6 - Technik Informatyk - od 2013 do 2017": [
|
|
||||||
{
|
|
||||||
"image": WorkZSELogo,
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"Uniwersytet Rzeszowski - Studia Inżynierskie - Informatyka - od 2017 do 2021": [
|
|
||||||
{
|
|
||||||
"image": WorkURLogo,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Praca Inżynierska - Graficzna baza układów dłoni na potrzeby systemu rozpoznawania Polskiego Języka Migowego (PJM)": [
|
type: "workSubSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Zespół Szkół Elektronicznych w Rzeszowie / Technikum nr 6 - Technik Informatyk - od 2013 do 2017",
|
||||||
|
image: WorkZSELogo,
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "workSubSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Uniwersytet Rzeszowski - Studia Inżynierskie - Informatyka - od 2017 do 2021",
|
||||||
|
image: WorkURLogo,
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "workSubSegment",
|
||||||
|
tabs: 1,
|
||||||
|
title: "Praca Inżynierska - Graficzna baza układów dłoni na potrzeby systemu rozpoznawania Polskiego Języka Migowego (PJM)",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"integracja Django / Django REST Framework z oprogramowaniem Blender",
|
"integracja Django / Django REST Framework z oprogramowaniem Blender",
|
||||||
"integracja Djnago / Django REST Framework z bazą danych MongoDb podzielonej na fragmenty (shards)",
|
"integracja Djnago / Django REST Framework z bazą danych MongoDb podzielonej na fragmenty (shards)",
|
||||||
"implementacja protokołu WebSocket (moduł Channles 3.0) do monitorowania procesu renderowania układów dłoni w czasie rzeczywistym",
|
"implementacja protokołu WebSocket (moduł Channles 3.0) do monitorowania procesu renderowania układów dłoni w czasie rzeczywistym",
|
||||||
|
|
@ -285,35 +329,49 @@ const IndexPage = () => {
|
||||||
"wdrożenie aplikacji w formie rozproszonej dzięki narzędziom konteneryzacji i orkiestracji Docker + Docker-Compose",
|
"wdrożenie aplikacji w formie rozproszonej dzięki narzędziom konteneryzacji i orkiestracji Docker + Docker-Compose",
|
||||||
"implementacja skryptów Bash automatyzujących migrację / konfigurację wszystkich środowisk konteneryzacyjnych na podstawie zmeinnych środowiskowych",
|
"implementacja skryptów Bash automatyzujących migrację / konfigurację wszystkich środowisk konteneryzacyjnych na podstawie zmeinnych środowiskowych",
|
||||||
"wykonanie modelu trójwymiarowgo dłoni przeznaczonego do renderowania realistycznych próbek (zdjęć) układów dłoni, jako materiały do nauki systemu rozpoznawania PJM",
|
"wykonanie modelu trójwymiarowgo dłoni przeznaczonego do renderowania realistycznych próbek (zdjęć) układów dłoni, jako materiały do nauki systemu rozpoznawania PJM",
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"Sembot Sp. z o. o. - od 01.11.2020 do 30.10.2022": [
|
|
||||||
{
|
|
||||||
"image": WorkSembotLogo,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DevOps Engineer & Python Developer": [
|
type: "workSubSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Sembot Sp. z o. o. - od 01.11.2020 do 30.10.2022",
|
||||||
|
image: WorkSembotLogo,
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "workSubSegment",
|
||||||
|
tabs: 1,
|
||||||
|
title: "DevOps Engineer & Python Developer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Administracja serwerów (OVH / AWS / Digital Ocean)",
|
"Administracja serwerów (OVH / AWS / Digital Ocean)",
|
||||||
"Konfiguracja serwerów (Nginx (Https-Portal) / Apache / Docker)",
|
"Konfiguracja serwerów (Nginx (Https-Portal) / Apache / Docker)",
|
||||||
"Automatyzacja operacji rutynowych (Ansible / Jenkins pipeline / Bash scripts)",
|
"Automatyzacja operacji rutynowych (Ansible / Jenkins pipeline / Bash scripts)",
|
||||||
"Wdrażanie produkcyjne oprogramowania zorientowanego na kontenerach (Docker / Docker-Compose)",
|
"Wdrażanie produkcyjne oprogramowania zorientowanego na kontenerach (Docker / Docker-Compose)",
|
||||||
"Programowanie narzędzi MerchTech (Python / Django / Django REST Framework)",
|
"Programowanie narzędzi MerchTech (Python / Django / Django REST Framework)",
|
||||||
"Implementacja, konfiguracja oraz administracja baz danych do obsługi narzędzi MerchTech (Big Data) (MongoDb / Elasticsearch / MariaDb / MySQL / Redis / AWS SQS)"
|
"Implementacja, konfiguracja oraz administracja baz danych do obsługi narzędzi MerchTech (Big Data) (MongoDb / Elasticsearch / MariaDb / MySQL / Redis / AWS SQS)"
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"Sii Sp. z o. o. - od 10.11.2022": [
|
|
||||||
{
|
|
||||||
"image": WorkSiiLogo,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Infinidat Inc - od 10.11.2022 do 24.02.2023": [
|
type: "workSubSegment",
|
||||||
{
|
tabs: 0,
|
||||||
"image": WorkInfinidatLogo,
|
title: "Sii Sp. z o. o. - od 10.11.2022",
|
||||||
|
image: WorkSiiLogo,
|
||||||
|
content: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Integration Developer": [
|
type: "workSubSegment",
|
||||||
|
tabs: 1,
|
||||||
|
title: "Infinidat Inc - od 10.11.2022 do 24.02.2023",
|
||||||
|
image: WorkInfinidatLogo,
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "workSubSegment",
|
||||||
|
tabs: 2,
|
||||||
|
title: "Integration Developer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Utrzymywanie infrastruktury serwerów (VMware / Vcenter / Vsphere / ESXi)",
|
"Utrzymywanie infrastruktury serwerów (VMware / Vcenter / Vsphere / ESXi)",
|
||||||
"Wdrażanie hostów / węzłów Jenkinsa (Jenkins nodes - z różnymi wersjami distro Linux'a oraz Windows'a) pod budowę i integrację aplikacji (CI/CD)",
|
"Wdrażanie hostów / węzłów Jenkinsa (Jenkins nodes - z różnymi wersjami distro Linux'a oraz Windows'a) pod budowę i integrację aplikacji (CI/CD)",
|
||||||
"Wdrażanie hostów Vcenter / Vsphere / ESXi",
|
"Wdrażanie hostów Vcenter / Vsphere / ESXi",
|
||||||
|
|
@ -322,27 +380,39 @@ const IndexPage = () => {
|
||||||
"Automatyzacja rutynowych czynności (Bash / Python / Ansible / Jenkins)",
|
"Automatyzacja rutynowych czynności (Bash / Python / Ansible / Jenkins)",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
|
||||||
"Projekty Wewnętrzne - od 25.02.2023 do 27.05.2023": [
|
|
||||||
{
|
{
|
||||||
"image": WorkSiiLogo,
|
type: "workSubSegment",
|
||||||
|
tabs: 1,
|
||||||
|
title: "Projekty Wewnętrzne - od 25.02.2023 do 27.05.2023",
|
||||||
|
image: WorkSiiLogo,
|
||||||
|
content: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DevOps Engineer": [
|
type: "workSubSegment",
|
||||||
|
tabs: 2,
|
||||||
|
title: "DevOps Engineer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Utrzymywanie infrastruktury mikroserwisów (Docker / Kubernetes / Helm)",
|
"Utrzymywanie infrastruktury mikroserwisów (Docker / Kubernetes / Helm)",
|
||||||
"Utrzymywanie infrastruktury serwerów (Linux)",
|
"Utrzymywanie infrastruktury serwerów (Linux)",
|
||||||
"Automatyzacja konfiguracji serwerów (Ansible / Kubespray / Bash)",
|
"Automatyzacja konfiguracji serwerów (Ansible / Kubespray / Bash)",
|
||||||
"Ulepszanie / Utrzymywanie procesów zautomatyzowanych (Gitlab-CI),
|
"Ulepszanie / Utrzymywanie procesów zautomatyzowanych (Gitlab-CI)",
|
||||||
"Automatyzacja raportowania przebiegu wdrożenia CI/CD (Gitlab-CI / SonarQube)",
|
"Automatyzacja raportowania przebiegu wdrożenia CI/CD (Gitlab-CI / SonarQube)",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
|
||||||
"Techem GmbH - od 30.05.2023": [
|
|
||||||
{
|
{
|
||||||
"Image": WorkTechemLogo,
|
type: "workSubSegment",
|
||||||
|
tabs: 1,
|
||||||
|
title: "Techem GmbH - od 30.05.2023",
|
||||||
|
image: WorkTechemLogo,
|
||||||
|
content: [],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"DevOps Engineer": [
|
type: "workSubSegment",
|
||||||
|
tabs: 2,
|
||||||
|
title: "DevOps Engineer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Utrzymywanie Infrastruktury mikroserwisów (Docker / Docker Compose)",
|
"Utrzymywanie Infrastruktury mikroserwisów (Docker / Docker Compose)",
|
||||||
"Utrzymywanie Infrastruktury serwerów (Jenkins Agent - Windows / Jenkins Master - Linux)",
|
"Utrzymywanie Infrastruktury serwerów (Jenkins Agent - Windows / Jenkins Master - Linux)",
|
||||||
"Automatyzacja konfiguracji serwerów (Ansible / Bash / Powershell)",
|
"Automatyzacja konfiguracji serwerów (Ansible / Bash / Powershell)",
|
||||||
|
|
@ -352,21 +422,28 @@ const IndexPage = () => {
|
||||||
"Automatyzacja procesów walidujących kod (Pre-commit / Black Formatter / Flake8 / MyPY / etc.)"
|
"Automatyzacja procesów walidujących kod (Pre-commit / Black Formatter / Flake8 / MyPY / etc.)"
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
{
|
||||||
}
|
type: "titleSegment",
|
||||||
]
|
title: "Zainteresowania",
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Zainteresowania",
|
type: "subSegment",
|
||||||
content: {
|
tabs: 0,
|
||||||
"Web3.0": [
|
title: "Web3.0",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Blockchain / Cryptography / Smart Contracts",
|
"Blockchain / Cryptography / Smart Contracts",
|
||||||
],
|
],
|
||||||
"Grafika 3D & 2D": "",
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
type: "subSegment",
|
||||||
|
tabs: 0,
|
||||||
|
title: "Grafika 3D & 2D",
|
||||||
|
image: "",
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "RODOSegment",
|
||||||
title: "",
|
title: "",
|
||||||
content: "Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji procesu rekrutacji zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO)."
|
content: "Wyrażam zgodę na przetwarzanie moich danych osobowych dla potrzeb niezbędnych do realizacji procesu rekrutacji zgodnie z Rozporządzeniem Parlamentu Europejskiego i Rady (UE) 2016/679 z dnia 27 kwietnia 2016 r. w sprawie ochrony osób fizycznych w związku z przetwarzaniem danych osobowych i w sprawie swobodnego przepływu takich danych oraz uchylenia dyrektywy 95/46/WE (RODO)."
|
||||||
}
|
}
|
||||||
|
|
@ -386,33 +463,57 @@ const IndexPage = () => {
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Tech Skills",
|
title: "Tech Skills",
|
||||||
content: {
|
content: [
|
||||||
"Programming": [
|
{
|
||||||
|
title: "Programming",
|
||||||
|
content: [
|
||||||
"Python - Django / Django REST Framework / Channels 3.0",
|
"Python - Django / Django REST Framework / Channels 3.0",
|
||||||
"Javascript - ReactJS / Redux Toolkit",
|
"Javascript - ReactJS / Redux Toolkit",
|
||||||
],
|
],
|
||||||
"Server Configuration": [
|
},
|
||||||
|
{
|
||||||
|
title: "Server Configuration",
|
||||||
|
content: [
|
||||||
"Apache / Nginx (Https-Portal)"
|
"Apache / Nginx (Https-Portal)"
|
||||||
],
|
],
|
||||||
"DevOps Tools": [
|
},
|
||||||
"Jenkins / Ansible / Docker / Docker-Compose / Bash",
|
{
|
||||||
|
title: "DevOps Tools",
|
||||||
|
content: [
|
||||||
|
"Jenkins / Ansible / Docker / Docker-Compose / Automatyzacja w Bash",
|
||||||
],
|
],
|
||||||
"Configuration & Administration": [
|
},
|
||||||
|
{
|
||||||
|
title: "Configuration & Administration",
|
||||||
|
content: [
|
||||||
"SQL - MariaDB / MySQL / PostgreSQL",
|
"SQL - MariaDB / MySQL / PostgreSQL",
|
||||||
"NoSQL - MongoDb / ElasticSearch / Redis"
|
"NoSQL - MongoDb / ElasticSearch / Redis"
|
||||||
],
|
],
|
||||||
"English": [
|
},
|
||||||
|
{
|
||||||
|
title: "English",
|
||||||
|
content: [
|
||||||
"B2 Level",
|
"B2 Level",
|
||||||
],
|
],
|
||||||
}
|
},
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Experience",
|
title: "Experience",
|
||||||
content: {
|
content: [
|
||||||
"ZSE in Rzeszów / Technical School - IT - from 2013 to 2017": "",
|
|
||||||
"University of Rzeszów - Engineer Studying - IT - from 2017 to 2021": [
|
|
||||||
{
|
{
|
||||||
"Thesis - Graphical database of handshapes for the Polish Sign Language (PSL) gesture recognition system": [
|
title: "ZSE in Rzeszów / Technical School - IT - from 2013 to 2017",
|
||||||
|
image: WorkZSELogo,
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "University of Rzeszów - Engineer Studying - IT - from 2017 to 2021",
|
||||||
|
image: WorkURLogo,
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "Thesis - Graphical database of handshapes for the Polish Sign Language (PSL) gesture recognition system",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Django / Django REST Framework integration with 3D objects editor software - Blender",
|
"Django / Django REST Framework integration with 3D objects editor software - Blender",
|
||||||
"Djnago / Django REST Framework integration with MongoDb sharded database",
|
"Djnago / Django REST Framework integration with MongoDb sharded database",
|
||||||
"WebSocket (Channles 3.0 module) implementation for single proccess of handshape render monitoring",
|
"WebSocket (Channles 3.0 module) implementation for single proccess of handshape render monitoring",
|
||||||
|
|
@ -422,43 +523,106 @@ const IndexPage = () => {
|
||||||
"Application deployment in distributed form as containers with Docker + Docker-Compose tools",
|
"Application deployment in distributed form as containers with Docker + Docker-Compose tools",
|
||||||
"Bash scripts implementation for routain operations automatization like databases migration & all app containers configuration",
|
"Bash scripts implementation for routain operations automatization like databases migration & all app containers configuration",
|
||||||
"Made 3D hand model for realistic materials (handshapes) rendering as images for learning PSL recognition system",
|
"Made 3D hand model for realistic materials (handshapes) rendering as images for learning PSL recognition system",
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"Sembot Sp. z o. o. - DevOps Engineer & Python Developer - from 01.11.2020 to 30.10.2022": [
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Responsibilities": [
|
title: "Sembot Sp. z o. o. - from 01.11.2020 to 30.10.2022",
|
||||||
|
image: WorkSembotLogo,
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "DevOps Engineer & Python Developer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Server Administration (OVH / AWS / Digital Ocean)",
|
"Server Administration (OVH / AWS / Digital Ocean)",
|
||||||
"Server Configuratiion (Nginx (Https-Protal) / Apache / Docker)",
|
"Server Configuratiion (Nginx (Https-Protal) / Apache / Docker)",
|
||||||
"Routain operations automation (Ansible / Jenkins pipeline / Bash scripts)",
|
"Routain operations automation (Ansible / Jenkins pipeline / Bash scripts)",
|
||||||
"Applications deployment oriented on containers (Docker / Docker-Compose)",
|
"Applications deployment oriented on containers (Docker / Docker-Compose)",
|
||||||
"MerchTech tools implementation (Python / Django / Django REST Framework)",
|
"MerchTech tools implementation (Python / Django / Django REST Framework)",
|
||||||
"Production databases implementation & configuration & administration for MerchTech tools (Big Data) (MongoDb / Elasticsearch / MariaDb / MySQL / Redis / AWS SQS)"
|
"Production databases implementation & configuration & administration for MerchTech tools (Big Data) (MongoDb / Elasticsearch / MariaDb / MySQL / Redis / AWS SQS)"
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"Sii Sp. z o. o. - Integration Developer - from 10.11.2022": [
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Responsibilities": [
|
title: "Sii Sp. z o. o. - from 10.11.2022",
|
||||||
|
image: WorkSiiLogo,
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "Infinidat Inc - from 10.11.2022 to 24.02.2023",
|
||||||
|
image: WorkInfinidatLogo,
|
||||||
|
contnet: [
|
||||||
|
{
|
||||||
|
title: "Integration Developer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Infrastructure maintaining (VMware / Vcenter / Vsphere / ESXi)",
|
"Infrastructure maintaining (VMware / Vcenter / Vsphere / ESXi)",
|
||||||
"Jenkins nodes implamentation (with different Linux and Windows distros versions) for applications building and integration (CI/CD process)",
|
"Jenkins nodes implamentation (with different Linux and Windows distros versions) for applications building and integration (CI/CD process)",
|
||||||
"Vcenter / Vsphere / ESXi hosts deployment",
|
"Vcenter / Vsphere / ESXi hosts deployment",
|
||||||
"Problems solving on integration stage (tests / code fixing & repairing)",
|
"Problems solving on integration stage (tests / code fixing & repairing)",
|
||||||
"Integration processes & solution improvements (Jenkins pipeline / Gitlab / Python / Bash)",
|
"Integration processes & solution improvements (Jenkins pipeline / Gitlab / Python / Bash)",
|
||||||
"Routine operations automation (Bash / Python / Ansible / Jenkins)",
|
"Routine operations automation (Bash / Python / Ansible / Jenkins)",
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
]
|
],
|
||||||
}
|
},
|
||||||
|
{
|
||||||
|
title: "Inside Projects - from 25.02.2023 to 27.05.2023",
|
||||||
|
image: WorkSiiLogo,
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "DevOps Engineer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
|
"Microservices infrastructure maintenance (Docker / Kubernetes / Helm)",
|
||||||
|
"Servers infrastructure maintenance (Linux)",
|
||||||
|
"Automatization of servers configuration (Ansible / Kubespray / Bash)",
|
||||||
|
"Upgrading / maintainance of automatic processes (Gitlab-CI)",
|
||||||
|
"Automatization of CI/CD process reporting (Gitlab-CI / SonarQube)",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Techem GmbH - from 30.05.2023",
|
||||||
|
image: WorkTechemLogo,
|
||||||
|
content: [
|
||||||
|
{
|
||||||
|
title: "DevOps Engineer",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
|
"Microservices infrastructure maintenance (Docker / Docker Compose)",
|
||||||
|
"Servers infrastructure maintenance (Jenkins Agent - Windows / Jenkins Master - Linux)",
|
||||||
|
"Automatization of servers configuration (Ansible / Bash / Powershell)",
|
||||||
|
"Automatization of IrDA devices tests invoking on CI/CD environment (Regression, Merge Request, Commit) (Jenkins CI/CD / Bash / Powershell / Python - TOX)",
|
||||||
|
"Automatization of re-used python packages building & collecting process (Jenkins CI/CD / Private PyPI / Python)",
|
||||||
|
"Automatization of tests reporting (Jenkins CI/CD / Test-Result-Analyzer / Jira Xray)",
|
||||||
|
"Automatization of code validation processes (Pre-commit / Black Formatter / Flake8 / MyPY / etc.)"
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Interests",
|
title: "Interests",
|
||||||
content: {
|
content: [
|
||||||
"Web3.0": [
|
{
|
||||||
|
title: "Web3.0",
|
||||||
|
image: "",
|
||||||
|
content: [
|
||||||
"Blockchain / Cryptography / Smart Contracts",
|
"Blockchain / Cryptography / Smart Contracts",
|
||||||
],
|
],
|
||||||
"3D & 2D Graph Design": "",
|
},
|
||||||
}
|
{
|
||||||
|
title: "3D & 2D Graph Design",
|
||||||
|
image: "",
|
||||||
|
content: [],
|
||||||
|
},
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "",
|
title: "",
|
||||||
|
|
@ -638,11 +802,11 @@ const IndexPage = () => {
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
let eng_ = "Wersja po Angielsku 🇬🇧"
|
let eng_ = "🇬🇧"
|
||||||
let pol_ = "Polish Version 🇵🇱"
|
let pol_ = "🇵🇱"
|
||||||
|
|
||||||
const [content_swapper, set_content_swap] = React.useState(pol_);
|
const [content_swapper, set_content_swap] = React.useState(eng_);
|
||||||
const [content, set_content] = React.useState(content_en);
|
const [content, set_content] = React.useState(content_pl);
|
||||||
|
|
||||||
const swap_content = (event) => {
|
const swap_content = (event) => {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
|
||||||
|
|
@ -99,14 +99,6 @@ $foot_font_size: 9.8pt;
|
||||||
object-position: top;
|
object-position: top;
|
||||||
}
|
}
|
||||||
|
|
||||||
.segment_content {
|
|
||||||
float: left;
|
|
||||||
width: 100%;
|
|
||||||
font-family: $regular_font_family;
|
|
||||||
font-size: $regular_font_size;
|
|
||||||
text-align: justify;
|
|
||||||
}
|
|
||||||
|
|
||||||
.foot_content {
|
.foot_content {
|
||||||
font-size: $foot_font_size;
|
font-size: $foot_font_size;
|
||||||
}
|
}
|
||||||
|
|
@ -126,6 +118,7 @@ $foot_font_size: 9.8pt;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.segment_title {
|
.segment_title {
|
||||||
float: left;
|
float: left;
|
||||||
|
|
@ -139,13 +132,26 @@ $foot_font_size: 9.8pt;
|
||||||
background-color: $div_background_color;
|
background-color: $div_background_color;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.segment_content {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
font-family: $regular_font_family;
|
||||||
|
font-size: $regular_font_size;
|
||||||
|
text-align: justify;
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
list-style-type: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.segment_title_image {
|
.segment_title_image {
|
||||||
float: left;
|
float: left;
|
||||||
margin-top: 100px;
|
margin-top: 100px;
|
||||||
margin-left: -40px;
|
margin-left: -40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.subitem {
|
.subitem {
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue