mirror of
https://github.com/Dvorinka/Portfolio.git
synced 2026-06-03 19:32:56 +00:00
update
This commit is contained in:
+251
-400
@@ -46,14 +46,13 @@
|
|||||||
<img src="logo.png" width="240" height="240" alt="Tomáš Dvořák" class="img-cover">
|
<img src="logo.png" width="240" height="240" alt="Tomáš Dvořák" class="img-cover">
|
||||||
</figure>
|
</figure>
|
||||||
<div class="hero-content">
|
<div class="hero-content">
|
||||||
<span class="label-large section-subtitle"><i>CTO, Full-Stack Developer, WhiteHat</i></span>
|
<span class="label-large section-subtitle"><i>AI-Driven Product & Systems Specialist · CTO</i></span>
|
||||||
<h1 class="display-small"><strong>Tomáš Dvořák</strong></h1>
|
<h1 class="display-small"><strong>Tomáš Dvořák</strong></h1>
|
||||||
<p class="body-large section-text">
|
<p class="body-large section-text">
|
||||||
|
<strong>AI-Powered Product Builder & Systems Architect</strong><br>
|
||||||
Co-Founder & CTO at <strong>SportCreative</strong>. <br>
|
Co-Founder & CTO at <strong>SportCreative</strong>. <br>
|
||||||
Full-Stack Developer at <strong>Poppe + Potthoff</strong>. <br>
|
I design and deliver AI-powered web systems from architecture to deployment.
|
||||||
Focused on <strong>Golang, web technologies & IT security</strong>.
|
|
||||||
</p>
|
</p>
|
||||||
<p class="body-large section-text"><i>Spojuji vývoj, design a infrastrukturu v jeden funkční celek, který přináší reálné výsledky.</i></p>
|
|
||||||
<div class="btn-wrapper">
|
<div class="btn-wrapper">
|
||||||
<a href="mailto:info@tdvorak.dev" class="chip">
|
<a href="mailto:info@tdvorak.dev" class="chip">
|
||||||
<span class="material-symbols-outlined" aria-hidden="true"> mail </span>
|
<span class="material-symbols-outlined" aria-hidden="true"> mail </span>
|
||||||
@@ -68,19 +67,19 @@
|
|||||||
<div class="about-card">
|
<div class="about-card">
|
||||||
<h2 class="card-title title-medium">About</h2>
|
<h2 class="card-title title-medium">About</h2>
|
||||||
<p class="body-medium card-text">
|
<p class="body-medium card-text">
|
||||||
I am a <strong>Full-Stack Web Developer</strong> specializing in
|
I work at the intersection of <strong>AI, web systems, and digital infrastructure</strong>, specializing in <strong>AI-assisted development</strong> from idea to deployment.<br><br>
|
||||||
<strong>Golang</strong> and modern <strong>frontend development</strong>.
|
|
||||||
My toolkit includes <strong>Docker</strong>, <strong>Proxmox</strong>,
|
|
||||||
<strong>Linux/Ubuntu</strong>, <strong>Git</strong>, and <strong>GitHub</strong> for efficient development and deployment workflows.<br><br>
|
|
||||||
|
|
||||||
I also work in <strong>2D graphic design</strong> with
|
I understand modern web systems <strong>end-to-end</strong> and guide AI tools to produce reliable, maintainable solutions, turning complex ideas into working products quickly.<br><br>
|
||||||
<a href="https://www.adobe.com/products/photoshop.html" target="_blank" alt="photoshop"><strong>Photoshop</strong></a> and
|
|
||||||
<a href="https://www.adobe.com/products/photoshop-lightroom/mobile.html" target="_blank" alt="lightroom"><strong>Lightroom</strong></a>,
|
<strong>Core areas:</strong><br>
|
||||||
focus on <strong>IT security & penetration testing</strong> with
|
• AI-assisted full-stack web systems (HTML, CSS, JS, Golang & Python)<br>
|
||||||
<a href="https://www.kali.org/" target="_blank" alt="kali linux"><strong>Kali Linux</strong></a>,
|
• System architecture & product thinking<br>
|
||||||
and create through <strong>video editing</strong> in
|
• Databases, APIs, authentication flows<br>
|
||||||
<a href="https://www.blackmagicdesign.com/products/davinciresolve" target="_blank" alt="davinci resolve"><strong>DaVinci Resolve</strong></a> and
|
• Docker, Proxmox, Linux/Ubuntu, deployment & infrastructure<br>
|
||||||
<a href="https://photo.tdvorak.dev" target="_blank"><strong>photography & cinematography</strong></a>.
|
• IT security awareness & penetration testing (Kali Linux)<br>
|
||||||
|
• Digital products, internal tools, MVPs<br><br>
|
||||||
|
|
||||||
|
I also work with <strong>visual and creative tools</strong> — Photoshop, Lightroom, DaVinci Resolve — and I'm active in <strong>photography, cinematography, and content creation</strong>, bridging technical and creative worlds.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -96,7 +95,7 @@
|
|||||||
</li>
|
</li>
|
||||||
<li class="list-item">
|
<li class="list-item">
|
||||||
<span class="material-symbols-outlined" aria-hidden="true"> work </span>
|
<span class="material-symbols-outlined" aria-hidden="true"> work </span>
|
||||||
<a href="https://sgasos.cz" target="_blank" class="label-medium">Student</a>
|
<a href="https://sportcreative.eu" target="_blank" class="label-medium">Co-Founder & CTO at SportCreative</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-item">
|
<li class="list-item">
|
||||||
<span class="label-medium">TOR Website ⮧</span>
|
<span class="label-medium">TOR Website ⮧</span>
|
||||||
@@ -242,41 +241,6 @@
|
|||||||
<a href="https://1337x.tdvorak.dev/" target="_blank" class="state-layer" title="1337x scraper, torrents"></a>
|
<a href="https://1337x.tdvorak.dev/" target="_blank" class="state-layer" title="1337x scraper, torrents"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Filecloud -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/filecloud.png" alt="Filecloud" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Filecloud</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://cloud.tdvorak.dev/" target="_blank" class="state-layer" title="Filecloud"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Coolify -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/coolify.png" alt="Coolify" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Coolify</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://coolify.tdvorak.dev/" target="_blank" class="state-layer" title="Coolify"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Glance Dashboard -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/dash.png" alt="Glance dashboard" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Glance Dashboard</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://dash.tdvorak.dev/" target="_blank" class="state-layer" title="Glance dashboard"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- FAČR scraper -->
|
<!-- FAČR scraper -->
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -302,65 +266,6 @@
|
|||||||
<a href="https://goapi.tdvorak.dev/" target="_blank" class="state-layer" title="SparkScreen API, movies, stats"></a>
|
<a href="https://goapi.tdvorak.dev/" target="_blank" class="state-layer" title="SparkScreen API, movies, stats"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Personal photo portfolio -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/immich.png" alt="Personal photo portfolio" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Photo Portfolio</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://image.tdvorak.dev/" target="_blank" class="state-layer" title="Personal photo portfolio"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Memos (notepad) -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/memos.png" alt="Memos notepad" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Memos</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://memos.tdvorak.dev/" target="_blank" class="state-layer" title="Notepad"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- n8n -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/project11.webp" alt="n8n automations" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">n8n</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://n8n.tdvorak.dev/" target="_blank" class="state-layer" title="n8n automations"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Plex -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/plex.png" alt="Plex/Plexamp" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Plex</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://plex.tdvorak.dev/" target="_blank" class="state-layer" title="Plex, Plexamp"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Proxmox -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/proxmox.png" alt="Proxmox" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Proxmox</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://proxmox.tdvorak.dev/" target="_blank" class="state-layer" title="Proxmox"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Sendmail API -->
|
<!-- Sendmail API -->
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -374,29 +279,6 @@
|
|||||||
<a href="https://sendmail.tdvorak.dev/" target="_blank" class="state-layer" title="Email sending API"></a>
|
<a href="https://sendmail.tdvorak.dev/" target="_blank" class="state-layer" title="Email sending API"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Status (Uptime Kuma) -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/kuma.png" alt="Status page (Kuma)" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">Status</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://status.tdvorak.dev/" target="_blank" class="state-layer" title="Status page (Kuma)"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- UPS (NUT GUI) -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/nut.png" alt="NUT web GUI" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted</span>
|
|
||||||
<h3 class="title-large card-title">UPS (NUT)</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://ups.tdvorak.dev/" target="_blank" class="state-layer" title="Dockerized web GUI for NUT"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- YouTube channel data scraper API -->
|
<!-- YouTube channel data scraper API -->
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -422,29 +304,6 @@
|
|||||||
<a href="https://ytbproxy.tdvorak.dev/" target="_blank" class="state-layer" title="YouTube search scraper API"></a>
|
<a href="https://ytbproxy.tdvorak.dev/" target="_blank" class="state-layer" title="YouTube search scraper API"></a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Personal Music Page -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/music.png" alt="Personal music page" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted • Selfdeveloped</span>
|
|
||||||
<h3 class="title-large card-title">Music</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://music.tdvorak.dev/" target="_blank" class="state-layer" title="Personal music page"></a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Personal Blog -->
|
|
||||||
<div class="card">
|
|
||||||
<figure class="card-banner img-holder" style="--width: 334; --height: 180;">
|
|
||||||
<img src="images/projects/blog.png" alt="Personal blog" width="334" height="180" class="img-cover">
|
|
||||||
</figure>
|
|
||||||
<div class="card-content">
|
|
||||||
<span class="label-large card-subtitle">Selfhosted • Selfdeveloped</span>
|
|
||||||
<h3 class="title-large card-title">Blog</h3>
|
|
||||||
</div>
|
|
||||||
<a href="https://blog.tdvorak.dev/" target="_blank" class="state-layer" title="Personal blog"></a>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -452,272 +311,152 @@
|
|||||||
<section class="section tab-content resume-tab" data-tab-content="resume">
|
<section class="section tab-content resume-tab" data-tab-content="resume">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="resume-header">
|
<div class="resume-header">
|
||||||
<a class="resume-linkedin-btn" href="https://www.linkedin.com/in/tdvorak-dev" target="_blank" rel="noopener">Zobrazit kompletní profil na LinkedIn</a>
|
<a class="resume-linkedin-btn" href="https://www.linkedin.com/in/tdvorak-dev" target="_blank" rel="noopener">View complete profile on LinkedIn</a>
|
||||||
</div>
|
</div>
|
||||||
<h2 class="section-title title-small">Work Experience:</h2>
|
|
||||||
<ul class="list timeline">
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-06" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Full Stack Developer — <strong>Poppe + Potthoff s.r.o.</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na smlouvu · červen 2025 – současnost · <span class="duration" data-start="2025-06" data-end="present"></span> · Kunovice, Zlínský, Česko</span>
|
|
||||||
<span class="body-medium card-text">Vývoj interních aplikací v Go + Tailwind, správa sítí a podpora IT, virtualizace v Proxmoxu.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Tech support · IT infrastruktura · Go · Git · HTML5 · Tailwind CSS</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-05" data-end="2025-06">
|
<!-- Skills Sections -->
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Asistent IT — <strong>Poppe + Potthoff s.r.o.</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Stáž · květen 2025 – červen 2025 · <span class="duration" data-start="2025-05" data-end="2025-06"></span> · Kunovice, Zlínský, Česko</span>
|
|
||||||
<span class="body-medium card-text">Webportal (Go, Tailwind, HTML5), virtualizace Proxmox, Git a zabezpečení přes Cloudflare.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Go · HTML5 · Tailwind CSS · Proxmox · Cloudflare · Git</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-06" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Zakladatel — <strong>Vibly</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Živnostník · červen 2025 – současnost · <span class="duration" data-start="2025-06" data-end="present"></span> · Uherské Hradiště · Hybridní</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Fotografie · Digitální marketing · HTML5 · Go</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-06" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Spoluzakladatel & CTO — <strong>ReKlik</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Živnostník · červen 2025 – současnost · <span class="duration" data-start="2025-06" data-end="present"></span> · Uherské Hradiště · On‑site</span>
|
|
||||||
<span class="body-medium card-text">Technologický rozvoj a vizuální kvalita. Focení nemovitostí, workflow od focení po dodání.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Fotografie · Marketing · Nemovitosti · Komerční fotografie · Úprava fotografií</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-04" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Spoluzakladatel & CTO — <strong>SportCreative</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Živnostník · duben 2025 – současnost · <span class="duration" data-start="2025-04" data-end="present"></span> · Uherské Hradiště · Hybridní</span>
|
|
||||||
<span class="body-medium card-text">Vedení technické a kreativní strategie. Sociální sítě, weby, obsah a partnerství pro sportovní kluby.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Grafický design · Fotografie · Photoshop · Digitální marketing · Full‑stack vývoj</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-05" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Vývojář webových stránek, Marketing — <strong>WHS sport s.r.o.</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · květen 2025 – současnost · <span class="duration" data-start="2025-05" data-end="present"></span> · Brno · Remote</span>
|
|
||||||
<span class="body-medium card-text">Podpora expanze značky ZEUS v ČR. Vývoj/správa webů, e‑commerce koordinace a vizuální identita.</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2024-09" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Manažer marketingu — <strong>Winnersport a.s.</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · září 2024 – současnost · <span class="duration" data-start="2024-09" data-end="present"></span> · Česko · Remote</span>
|
|
||||||
<span class="body-medium card-text">Správa sítí a obsahu, vylepšení e‑shopu, kreativní projekty a grafická podpora značky.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Propagace produktů · Photoshop · Marketing na sociálních sítích · Webové služby</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2024-10" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Vývojář webových stránek — <strong>FC Bizoni Uherské Hradiště, z.s.</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · říjen 2024 – současnost · <span class="duration" data-start="2024-10" data-end="present"></span> · Uherské Hradiště · Remote</span>
|
|
||||||
<span class="body-medium card-text">Tvorba a správa klubového webu, UX, správa YouTube/TikTok, krátká videa a klubová fotografie.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: CSS · Fotografie · Photoshop · HTML5 · JavaScript · Tvorba webových stránek</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2025-05" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Vývojář webových stránek, Vedoucí marketingu — <strong>Zeus Sport</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · květen 2025 – současnost · <span class="duration" data-start="2025-05" data-end="present"></span> · Brno · Remote</span>
|
|
||||||
<span class="body-medium card-text">Vývoj webů a e‑shopu (HTML5, Tailwind, JS), správa, marketingová strategie a obsah pro značku ZEUS.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Tailwind CSS · HTML5 · Digitální marketing · Photoshop · Marketing na sociálních sítích</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2024-09" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Manažer produktového marketingu — <strong>Masita</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · září 2024 – současnost · <span class="duration" data-start="2024-09" data-end="present"></span> · Česko · Remote</span>
|
|
||||||
<span class="body-medium card-text">Správa sítí a obsahu, web, grafická podpora a spolupráce se sportovními týmy a školami.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Propagace produktů · Propagace značky</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2024-11" data-end="present">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Manažer marketingu — <strong>RévviSport</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na volné noze · listopad 2024 – současnost · <span class="duration" data-start="2024-11" data-end="present"></span> · Remote</span>
|
|
||||||
<span class="body-medium card-text">Vývoj webu, správa sítí, grafika a online kampaně. Vizuální identita a růst značky.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Grafický design · Propagace produktů · Vývoj webových stránek · Photoshop · Inzerce</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item timeline-item" data-start="2024-07" data-end="2025-04">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">Provoz oddělení služeb zákazníkům — <strong>McDonald's Czech Republic</strong></p>
|
|
||||||
<span class="label-medium card-subtitle">Na smlouvu · červenec 2024 – duben 2025 · <span class="duration" data-start="2024-07" data-end="2025-04"></span> · Česko · On‑site</span>
|
|
||||||
<span class="body-medium card-text">Provoz a zákaznický servis, týmová spolupráce a řešení operativních úkolů.</span>
|
|
||||||
<span class="label-medium card-subtitle">Dovednosti: Příprava jídla · Týmová práce · Angličtina · Provozní podpora · Řešení problémů</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 class="section-title title-small">Education</h2>
|
|
||||||
<ul class="list">
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
Certification in Responsive Web Design<br>
|
|
||||||
<b><a href="#">(freeCodeCamp Certification)</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2019-2023</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
JavaScript Algorithms and Data Structures<br>
|
|
||||||
<b><a href="#">(freeCodeCamp Certification)</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2023</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
ZeroToMastery BootCamps<br>
|
|
||||||
<b><a href="#">(ZTM/Udemy Certification)</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2023</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
Nathan House: Cyber Security Courses 1-4<br>
|
|
||||||
<b><a href="#">(Udemy Certification)</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2023</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
VS Code Magic Tricks Course<br>
|
|
||||||
<b><a href="https://fireship.io/courses/vscode-tricks/" target="_blank">(Jeff Delaney course)</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2023</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
OAUH - Economics<br>
|
|
||||||
<b><a href="https://oauh.cz" target="_blank">High School</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2023-2024</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li class="resume-item">
|
|
||||||
<div class="resume-card">
|
|
||||||
<p class="body-large">
|
|
||||||
SGaSOŠ - IT<br>
|
|
||||||
<b><a href="https://stredni.cz" target="_blank">High School</b></a>
|
|
||||||
</p>
|
|
||||||
<span class="label-medium card-subtitle">2024-2027</span>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<h2 class="section-title title-small">Programming Languages:</h2>
|
<h2 class="section-title title-small">Programming Languages:</h2>
|
||||||
<ul class="resume-bottom-list">
|
<ul class="resume-bottom-list">
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/html5.webp" width="28" height="28" loading="lazy" alt="HTML5" class="HTML5">
|
<img src="images/html5.webp" width="28" height="28" loading="lazy" alt="HTML5" class="HTML5">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">HTML5</a></span>
|
<span class="label-medium">HTML5</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/css3.svg" width="28" height="28" loading="lazy" alt="CSS3" class="CSS3">
|
<img src="images/css3.svg" width="28" height="28" loading="lazy" alt="CSS3" class="CSS3">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">CSS3</a></span>
|
<span class="label-medium">CSS3</span>
|
||||||
</li>
|
|
||||||
<li class="resume-bottom-item">
|
|
||||||
<img src="images/C.webp" width="28" height="28" loading="lazy" alt="C" class="C">
|
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">C</a></span>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/js.webp" width="28" height="28" loading="lazy" alt="JavaScript"
|
<img src="images/js.webp" width="28" height="28" loading="lazy" alt="JavaScript"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">JavaScript</a></span>
|
<span class="label-medium">JavaScript</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/go.webp" width="28" height="28" loading="lazy" alt="Go"
|
<img src="images/go.webp" width="28" height="28" loading="lazy" alt="Go"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">GO</a></span>
|
<span class="label-medium">GO</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/typescript.webp" width="28" height="38" loading="lazy" alt="Typescript"
|
<img src="images/typescript.webp" width="28" height="38" loading="lazy" alt="Typescript"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Typescript</a></span>
|
<span class="label-medium">Typescript</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/react.js.svg" width="28" height="28" loading="lazy" alt="React.js"
|
<img src="images/react.js.svg" width="28" height="28" loading="lazy" alt="React.js"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">React.js</a></span>
|
<span class="label-medium">React.js</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://bun.sh/logo.svg" width="28" height="28" loading="lazy" alt="Bun"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Bun</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://upload.wikimedia.org/wikipedia/commons/2/29/Postgresql_elephant.svg" width="28" height="28" loading="lazy" alt="PostgreSQL"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">PostgreSQL</span>
|
||||||
</li>
|
</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
<h2 class="section-title title-small">Softwares:</h2>
|
<h2 class="section-title title-small">Softwares:</h2>
|
||||||
<ul class="resume-bottom-list">
|
<ul class="resume-bottom-list">
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/VS_code.svg" width="28" height="28" loading="lazy" alt="VS Code"
|
<img src="https://exafunction.github.io/public/brand/windsurf-white-symbol.svg" width="28" height="28" loading="lazy" alt="Windsurf"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">VS Code</a></span>
|
<span class="label-medium">Windsurf</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/github.webp" width="28" height="28" loading="lazy" alt="Github"
|
<img src="images/github.webp" width="28" height="28" loading="lazy" alt="Github"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Github</a></span>
|
<span class="label-medium">Github</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/git.webp" width="28" height="28" loading="lazy" alt="Git"
|
<img src="https://upload.wikimedia.org/wikipedia/commons/b/bb/Gitea_Logo.svg" width="28" height="28" loading="lazy" alt="Gitea"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Git</a></span>
|
<span class="label-medium">Gitea</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<svg width="28" height="28" viewBox="0 0 256 263" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
|
||||||
|
<title>supabase</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient x1="20.8617445%" y1="20.6868812%" x2="63.4256086%" y2="44.0710077%" id="supabase-linearGradient-1">
|
||||||
|
<stop stop-color="#249361" offset="0%"/>
|
||||||
|
<stop stop-color="#3ECF8E" offset="100%"/>
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient x1="1.99116498%" y1="-13.1584008%" x2="21.4025077%" y2="34.708062%" id="supabase-linearGradient-2">
|
||||||
|
<stop stop-color="#000000" offset="0%"/>
|
||||||
|
<stop stop-color="#000000" stop-opacity="0" offset="100%"/>
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g>
|
||||||
|
<path d="M149.601512,258.578826 C142.884085,267.038157 129.263882,262.403261 129.102024,251.601817 L126.735244,93.6176533 L232.963622,93.6176533 C252.204429,93.6176533 262.935398,115.840956 250.971119,130.909887 L149.601512,258.578826 Z" fill="url(#supabase-linearGradient-1)"/>
|
||||||
|
<path d="M149.601512,258.578826 C142.884085,267.038157 129.263882,262.403261 129.102024,251.601817 L126.735244,93.6176533 L232.963622,93.6176533 C252.204429,93.6176533 262.935398,115.840956 250.971119,130.909887 L149.601512,258.578826 Z" fill-opacity="0.2" fill="url(#supabase-linearGradient-2)"/>
|
||||||
|
<path d="M106.399023,4.36908575 C113.11645,-4.09118439 126.736889,0.544432392 126.898746,11.3460249 L127.935901,169.329953 L23.0369844,169.329953 C3.79559007,169.329953 -6.93568494,147.106651 5.02918175,132.037719 L106.399023,4.36908575 Z" fill="#3ECF8E"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
<span class="label-medium">Supabase</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://appwrite.io/assets/logomark/logo.svg" width="28" height="28" loading="lazy" alt="Appwrite"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Appwrite</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1556 704" width="28" height="28">
|
||||||
|
<title>Cloudflare-logo-vector-svg</title>
|
||||||
|
<style>
|
||||||
|
.s0 { fill: #ffffff }
|
||||||
|
.s1 { fill: #f48120 }
|
||||||
|
.s2 { fill: #faad3f }
|
||||||
|
</style>
|
||||||
|
<path id="Layer" class="s1" d="m1062.4 694.1c0 6.4-6.4 9.6-12.9 9.6h-1035.5q-1.9-0.1-3.7-0.8q-1.7-0.8-3-2.2q-1.4-1.3-2.1-3q-0.8-1.8-0.9-3.6q-1-4.4-1.7-8.8q-0.7-4.4-1.1-8.9q-0.4-4.4-0.5-8.9q-0.1-4.5 0.1-9c-0.1-30.4 5.8-60.5 17.3-88.7c11.4-28.1 28.2-53.8 49.3-75.6c21.2-21.8 46.4-39.3 74.3-51.5c27.8-12.3 57.7-19 88.1-19.8q-1.6-7.1-2.6-14.4q-1-7.2-1.4-14.5q-0.4-7.3-0.2-14.6q0.2-7.3 1-14.6c2.1-18.8 7.3-37.2 15.5-54.3c8.2-17 19.3-32.6 32.7-46c13.3-13.4 28.9-24.4 46-32.6c17-8.2 35.4-13.5 54.2-15.6c10.2-0.8 20.5-0.7 30.7 0.3c10.2 1 20.3 2.8 30.2 5.6c9.9 2.7 19.5 6.3 28.8 10.8c9.2 4.4 18.1 9.6 26.4 15.6c26-75.8 76-141.1 142.4-185.8c66.4-44.8 145.6-66.6 225.5-62.2c79.9 4.3 156.3 34.7 217.4 86.5c61.1 51.7 103.7 122 121.2 200.2c3.2 3.2 0 6.5 0 9.7l-32.3 83.9c-7 16.6-16.1 32.1-27.2 46.2c-11.1 14.2-24 26.8-38.4 37.5c-14.4 10.7-30.1 19.5-46.8 26.1c-16.7 6.6-34.2 10.9-52.1 12.9l-564.5 6.5c-6.5 0-9.7 3.2-12.9 9.6c-0.8 0.6-1.4 1.3-1.8 2.2c-0.4 0.8-0.7 1.7-0.7 2.7c0 0.9 0.3 1.8 0.7 2.7c0.4 0.8 1 1.6 1.8 2.1c3.2 0 6.4 3.2 9.6 3.2l561.4 6.5c6.5 0.6 12.9 1.8 19.2 3.7c6.3 1.8 12.4 4.3 18.2 7.3c5.8 3.1 11.3 6.7 16.4 10.8c5 4.1 9.7 8.7 13.9 13.7c4.1 6.1 7.4 12.6 10 19.5c2.5 6.9 4.2 14 5 21.3c0.9 7.3 0.8 14.6-0.1 21.9c-0.9 7.3-2.6 14.4-5.2 21.2z"/>
|
||||||
|
<path id="Layer" class="s2" d="m1366.5 320.9c37.1 15.5 70.8 38.1 99.2 66.5c28.4 28.4 51 62.1 66.4 99.2c15.5 37.1 23.6 76.9 23.9 117.1q-0.3 10.6-1.3 21.2q-1 10.6-2.6 21.1q-1.6 10.5-3.9 21q-2.2 10.4-5.1 20.6c0.2 1.3 0.1 2.7-0.4 3.9c-0.4 1.3-1.1 2.4-2 3.4c-1 0.9-2.1 1.6-3.4 2c-1.2 0.5-2.6 0.6-3.9 0.4h-425.8c-6.5 0-9.7-6.5-6.5-9.7l6.5-29.1c7-16.5 16.1-32 27.2-46.2c11.1-14.1 24-26.7 38.4-37.4c14.4-10.8 30.2-19.5 46.9-26.1c16.7-6.6 34.2-10.9 52-12.9l122.6-6.5c6.4 0 9.7-3.2 12.9-9.7c0.7-0.5 1.4-1.3 1.8-2.1c0.4-0.8 0.6-1.8 0.6-2.7c0-0.9-0.2-1.9-0.6-2.7c-0.4-0.9-1.1-1.6-1.8-2.1c-3.2 0-6.5-3.3-9.7-3.3l-119.3-6.4c-6.6-0.6-13-1.8-19.3-3.7c-6.3-1.8-12.4-4.3-18.1-7.3c-5.8-3.1-11.3-6.7-16.4-10.8c-5.1-4.1-9.8-8.7-14-13.7c-4.1-6.1-7.4-12.7-9.9-19.5c-2.6-6.9-4.3-14.1-5.1-21.3c-0.8-7.3-0.8-14.7 0.1-21.9c0.9-7.3 2.6-14.4 5.2-21.3l22.6-77.5c3.2-3.2 6.5-6.4 9.7-6.4h16.1c40.2 0.2 79.9 8.4 117 23.9z"/>
|
||||||
|
</svg>
|
||||||
|
<span class="label-medium">Cloudflare</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" fill="#FFB441" viewBox="0 0 24 24" width="28" height="28">
|
||||||
|
<path d="M4.01 0A4 4 0 0 0 .014 4v16c0 2.209 1.79 4 3.996 4h15.98a4 4 0 0 0 3.996-4V4c0-2.209-1.79-4-3.996-4zm-.672 2.834h17.326a.568.568 0 1 1 0 1.137h-8.129a.6.6 0 0 1 .033.19v1.804A6.06 6.06 0 0 1 18.057 12c0 3.157-2.41 5.75-5.489 6.037v2.56a.568.568 0 1 1-1.136 0v-2.56A6.06 6.06 0 0 1 5.943 12a6.06 6.06 0 0 1 5.489-6.035V4.16q0-.1.033-.19H3.338a.568.568 0 1 1 0-1.136m8.094 4.307A4.89 4.89 0 0 0 7.113 12a4.89 4.89 0 0 0 4.319 4.86zm1.136 0v9.718A4.89 4.89 0 0 0 16.888 12a4.89 4.89 0 0 0-4.32-4.86z"/>
|
||||||
|
</svg>
|
||||||
|
<span class="label-medium">ZeroTier</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/proxmox.svg" width="28" height="28" loading="lazy" alt="Proxmox"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Proxmox</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/tor.webp" width="30" height="38" loading="lazy" alt="TOR"
|
<img src="images/tor.webp" width="30" height="38" loading="lazy" alt="TOR"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#ethical">TOR</a></span>
|
<span class="label-medium">TOR</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/metasploit.svg" width="28" height="28" loading="lazy" alt="Metasploit"
|
<img src="images/metasploit.svg" width="28" height="28" loading="lazy" alt="Metasploit"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#ethical">Metasploit</a></span>
|
<span class="label-medium">Metasploit</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/nmap.svg" width="28" height="28" loading="lazy" alt="Nmap"
|
<img src="images/nmap.svg" width="28" height="28" loading="lazy" alt="Nmap"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#ethical">Nmap</a></span>
|
<span class="label-medium">Nmap</span>
|
||||||
</li>
|
|
||||||
<li class="resume-bottom-item">
|
|
||||||
<img src="images/unreal.webp" width="28" height="26" loading="lazy" alt="Unreal"
|
|
||||||
class="icon">
|
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Unreal Engine 5</a></span>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/davinci.webp" width="28" height="30" loading="lazy" alt="Davinci Resolve"
|
<img src="images/davinci.webp" width="28" height="30" loading="lazy" alt="Davinci Resolve"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Davinci Resolve</a></span>
|
<span class="label-medium">Davinci Resolve</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/photoshop.webp" width="28" height="28" loading="lazy" alt="Photoshop"
|
<img src="images/photoshop.webp" width="28" height="28" loading="lazy" alt="Photoshop"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Photoshop</a></span>
|
<span class="label-medium">Photoshop</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/lightroom.webp" width="28" height="34" loading="lazy" alt="Lightroom"
|
<img src="images/lightroom.webp" width="28" height="34" loading="lazy" alt="Lightroom"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Lightroom</a></span>
|
<span class="label-medium">Lightroom</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://upload.wikimedia.org/wikipedia/commons/f/fb/Adobe_Illustrator_CC_icon.svg" width="28" height="28" loading="lazy" alt="Adobe Illustrator"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Adobe Illustrator</span>
|
||||||
</li>
|
</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
<h2 class="section-title title-small">Operating Systems:</h2>
|
<h2 class="section-title title-small">Operating Systems:</h2>
|
||||||
@@ -725,60 +464,169 @@
|
|||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/windows10.webp" width="28" height="58" loading="lazy" alt="Windows 10"
|
<img src="images/windows10.webp" width="28" height="58" loading="lazy" alt="Windows 10"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Windows 10</a></span>
|
<span class="label-medium">Windows 10</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/windows11.webp" width="28" height="58" loading="lazy" alt="Windows 11"
|
<img src="images/windows11.webp" width="28" height="58" loading="lazy" alt="Windows 11"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Windows 11</a></span>
|
<span class="label-medium">Windows 11</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/android.webp" width="28" height="58" loading="lazy" alt="Android"
|
<img src="images/android.webp" width="28" height="58" loading="lazy" alt="Android"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#video">Android</a></span>
|
<span class="label-medium">Android</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/linux.svg" width="28" height="38" loading="lazy" alt="Linux"
|
<img src="images/linux.svg" width="28" height="38" loading="lazy" alt="Linux"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Linux</a></span>
|
<span class="label-medium">Linux</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/kali.webp" width="28" height="58" loading="lazy" alt="Kali Linux"
|
<img src="images/kali.webp" width="28" height="58" loading="lazy" alt="Kali Linux"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#ethical">Kali Linux</a></span>
|
<span class="label-medium">Kali Linux</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/raspbian.webp" width="28" height="58" loading="lazy" alt="Raspbian/Debian Linux"
|
<img src="https://www.debian.org/logos/openlogo-nd.svg" width="28" height="38" loading="lazy" alt="Debian Linux"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Raspbian / Debian Linux</a></span>
|
<span class="label-medium">Debian Linux</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/ubuntu.webp" width="28" height="58" loading="lazy" alt="Ubuntu Linux"
|
<img src="https://www.logo.wine/a/logo/Raspberry_Pi/Raspberry_Pi-Logo.wine.svg" width="28" height="28" loading="lazy" alt="Raspberry Pi OS"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">Ubuntu Linux</a></span>
|
<span class="label-medium">Raspberry Pi OS</span>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 48 48">
|
||||||
|
<circle cx="24" cy="24" r="20" fill="#4dd0e1"></circle>
|
||||||
|
<polygon fill="#212121" points="30.252,38.194 21.909,23.131 25.497,18.651 38.914,13.097 25.497,13.394 34.229,8.8 17.634,11.406 16.263,18.171 9.566,18.606 8.4,24.343 11.76,21.6 22.206,32.069 30.434,41.28 27.692,35.52"></polygon>
|
||||||
|
</svg>
|
||||||
|
<span class="label-medium">Parrot OS</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="images/ubuntu.webp" width="28" height="58" loading="lazy" alt="Ubuntu Linux"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Ubuntu Linux</span>
|
||||||
|
</li>
|
||||||
|
<li class="resume-bottom-item">
|
||||||
|
<img src="https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/proxmox.svg" width="28" height="28" loading="lazy" alt="Proxmox"
|
||||||
|
class="icon">
|
||||||
|
<span class="label-medium">Proxmox</span>
|
||||||
|
</li>
|
||||||
</ul><br>
|
</ul><br>
|
||||||
<h2 class="section-title title-small">In Progress:</h2>
|
<h2 class="section-title title-small">In Progress:</h2>
|
||||||
<ul class="resume-bottom-list">
|
<ul class="resume-bottom-list">
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/C++.webp" width="28" height="28" loading="lazy" alt="C++" class="C++">
|
<img src="https://storage.googleapis.com/cms-storage-bucket/icon_flutter.4fd5520fe28ebf839174.svg" width="28" height="28" loading="lazy" alt="Flutter" class="Flutter">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">C++</a></span>
|
<span class="label-medium">Flutter</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/PHP.webp" width="28" height="28" loading="lazy" alt="PHP" class="PHP">
|
<img src="https://cdn.brandfetch.io/id4cpJPx5b/theme/dark/logo.svg?c=1dxbfHSJFAPEGdCLU4o5B" width="28" height="28" loading="lazy" alt="Dart"
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">PHP</a></span>
|
class="icon">
|
||||||
</li>
|
<span class="label-medium">Dart</span>
|
||||||
<li class="resume-bottom-item">
|
|
||||||
<img src="images/java.webp" width="28" height="28" loading="lazy" alt="JAVA" class="JAVA">
|
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#web">JAVA</a></span>
|
|
||||||
</li>
|
</li>
|
||||||
<li class="resume-bottom-item">
|
<li class="resume-bottom-item">
|
||||||
<img src="images/python.svg" width="28" height="28" loading="lazy" alt="Python"
|
<img src="images/python.svg" width="28" height="28" loading="lazy" alt="Python"
|
||||||
class="icon">
|
class="icon">
|
||||||
<span class="label-medium"><a href="https://tdvorak.dev/Timeline.html#ethical">Python</a></span>
|
<span class="label-medium">Python</span>
|
||||||
</li>
|
</li>
|
||||||
</div>
|
</ul>
|
||||||
</section>
|
<div style="padding-bottom: 40px;"></div>
|
||||||
|
<h2 class="section-title title-small">Work Experience:</h2>
|
||||||
|
<ul class="list">
|
||||||
|
<li class="resume-item" data-start="2025-06" data-end="present">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">IT / Web Development Intern → Full-Stack Developer / AI-Assisted Systems Specialist — <strong>Poppe + Potthoff s.r.o.</strong></p>
|
||||||
|
<span class="label-medium card-subtitle">Internship → Contract · May 2025 – Present · <span class="duration" data-start="2025-05" data-end="present"></span> · Czech Republic</span>
|
||||||
|
<span class="body-medium card-text">Started as intern building internal web portal (Go + Tailwind)<br>Assisted with virtualization and infrastructure setup (Proxmox)<br>Progressed to full-stack development role<br>AI-assisted backend and system logic implementation<br>Infrastructure and virtualization using Proxmox<br>Linux-based systems administration and IT support<br>Git-based workflows and deployment coordination<br>Participation in IT security and internal system hardening</span>
|
||||||
|
<span class="label-medium card-subtitle">Tech: Go, HTML, Tailwind CSS, Git, Linux, Proxmox, Cloudflare</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="resume-item" data-start="2025-04" data-end="present">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">Co-Founder & CTO — <strong>SportCreative</strong></p>
|
||||||
|
<span class="label-medium card-subtitle">Hybrid · Apr 2025 – Present · <span class="duration" data-start="2025-04" data-end="present"></span></span>
|
||||||
|
<span class="body-medium card-text">Leading technical and digital strategy for sports-focused marketing agency<br>Designing and delivering AI-assisted web systems, websites, and internal tools<br>Overseeing automation, infrastructure, and system architecture<br>Connecting development, content, design, and analytics into unified solutions<br>Supporting sports clubs with scalable digital platforms and content workflows</span>
|
||||||
|
<span class="label-medium card-subtitle">Tech: Full-stack Development, AI Systems, Digital Strategy, Infrastructure</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<!-- Vibly role commented out for now -->
|
||||||
|
<!-- <li class="resume-item" data-start="2025-06" data-end="present">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">Founder / Digital Systems & AI Product Builder — <strong>Vibly</strong></p>
|
||||||
|
<span class="label-medium card-subtitle">Hybrid · Jun 2025 – Present · <span class="duration" data-start="2025-06" data-end="present"></span></span>
|
||||||
|
<span class="body-medium card-text">Providing AI-assisted full-stack web solutions and digital systems<br>Designing product logic, system architecture, and automation workflows<br>Frontend development (HTML/CSS/JS) with AI-generated backend logic<br>Delivering MVPs, internal tools, and marketing-oriented web platforms</span>
|
||||||
|
<span class="label-medium card-subtitle">Tech: AI Development, Full-stack Web, Product Architecture, Automation</span>
|
||||||
|
</div>
|
||||||
|
</li> -->
|
||||||
|
|
||||||
|
<li class="resume-item" data-start="2025-06" data-end="present">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">Co-Founder & CTO — <strong>ReKlik</strong></p>
|
||||||
|
<span class="label-medium card-subtitle">On-site · Jun 2025 – Present · <span class="duration" data-start="2025-06" data-end="present"></span></span>
|
||||||
|
<span class="body-medium card-text">Responsible for technical development and digital workflows<br>Designing end-to-end production pipelines (from capture to delivery)<br>Ensuring visual quality, system efficiency, and automation<br>Supporting real-estate and commercial photography operations with tech solutions</span>
|
||||||
|
<span class="label-medium card-subtitle">Tech: Photography Systems, Workflow Automation, Digital Asset Management</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="resume-item" data-start="2024-09" data-end="present">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">Web Developer & Digital Marketing Lead (Freelance) — <strong>Sports & E-commerce Brands</strong></p>
|
||||||
|
<span class="label-medium card-subtitle">Remote / Hybrid · Sep 2024 – Present · <span class="duration" data-start="2024-09" data-end="present"></span></span>
|
||||||
|
<span class="body-medium card-text">Web development and maintenance (HTML, CSS, Tailwind, JS)<br>AI-assisted content systems and automation<br>Digital marketing strategy, brand growth, and campaign support<br>UX improvements, e-commerce coordination, and visual identity<br>Social media systems, short-form video, and content pipelines<br><em>(Multiple long-term freelance collaborations merged into one role for clarity and seniority.)</em></span>
|
||||||
|
<span class="label-medium card-subtitle">Brands: ZEUS, Masita, Winnersport, RévviSport, FC Bizoni</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
<h2 class="section-title title-small">Education & Continuous Learning</h2>
|
||||||
|
<ul class="list">
|
||||||
|
<li class="resume-item">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">
|
||||||
|
<strong>Information Technology – Secondary Technical School</strong><br>
|
||||||
|
<b>SGaSOŠ (Private Grammar & Secondary Vocational School)</b>
|
||||||
|
</p>
|
||||||
|
<span class="label-medium card-subtitle">2024 – 2027 · Czech Republic</span>
|
||||||
|
<span class="body-medium card-text">Focus on information technology, programming fundamentals, and digital systems<br>Practical exposure to web technologies, databases, and IT infrastructure<br>Strong emphasis on self-directed learning and real-world projects</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="resume-item">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">
|
||||||
|
<strong>Self-Taught AI, Programming & Systems Development</strong><br>
|
||||||
|
<b>Ongoing</b>
|
||||||
|
</p>
|
||||||
|
<span class="label-medium card-subtitle">Continuous Learning</span>
|
||||||
|
<span class="body-medium card-text">I am primarily self-taught, learning through real projects, experimentation, and continuous practice, supported by high-quality online education and industry creators.</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="resume-item">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">
|
||||||
|
<strong>Zero To Mastery (ZTM) Bootcamps</strong>
|
||||||
|
</p>
|
||||||
|
<span class="label-medium card-subtitle">Key Learning Source</span>
|
||||||
|
<span class="body-medium card-text">Programming fundamentals (JavaScript, Python, Go concepts)<br>Databases & backend logic<br>Full-stack development principles<br>Practical, project-based learning approach</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="resume-item">
|
||||||
|
<div class="resume-card">
|
||||||
|
<p class="body-large">
|
||||||
|
<strong>NetworkChuck (YouTube & Courses)</strong>
|
||||||
|
</p>
|
||||||
|
<span class="label-medium card-subtitle">Major Influence</span>
|
||||||
|
<span class="body-medium card-text">Networking fundamentals<br>Linux systems and servers<br>Cybersecurity concepts<br>Infrastructure, cloud, and real-world IT workflows<br><br>NetworkChuck has been a major influence in shaping my understanding of modern IT, infrastructure, and security.</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
<section class="section tab-content contact-tab" data-tab-content="contact">
|
<section class="section tab-content contact-tab" data-tab-content="contact">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="contact-info">
|
<div class="contact-info">
|
||||||
@@ -789,7 +637,7 @@
|
|||||||
<span class="material-symbols-outlined" aria-hidden="true"> mail </span>
|
<span class="material-symbols-outlined" aria-hidden="true"> mail </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-content">
|
<div class="info-content">
|
||||||
<p class="label-small info-title">Mail Me</p>
|
<p class="label-small info-title">Email Me</p>
|
||||||
<a href="mailto:info@tdvorak.dev" class="label-small info-text">info@tdvorak.dev</a>
|
<a href="mailto:info@tdvorak.dev" class="label-small info-text">info@tdvorak.dev</a>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -798,7 +646,7 @@
|
|||||||
<span class="material-symbols-outlined" aria-hidden="true"> business </span>
|
<span class="material-symbols-outlined" aria-hidden="true"> business </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-content">
|
<div class="info-content">
|
||||||
<p class="label-small info-title">IČO</p>
|
<p class="label-small info-title">Tax ID</p>
|
||||||
<span class="label-small info-text">24330621</span>
|
<span class="label-small info-text">24330621</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -807,7 +655,7 @@
|
|||||||
<span class="material-symbols-outlined" aria-hidden="true"> inbox </span>
|
<span class="material-symbols-outlined" aria-hidden="true"> inbox </span>
|
||||||
</div>
|
</div>
|
||||||
<div class="info-content">
|
<div class="info-content">
|
||||||
<p class="label-small info-title">Datová schránka</p>
|
<p class="label-small info-title">Data Box</p>
|
||||||
<span class="label-small info-text">zhecn8k</span>
|
<span class="label-small info-text">zhecn8k</span>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@@ -901,27 +749,27 @@
|
|||||||
<input type="hidden" name="domain" value="tdvorak.dev" />
|
<input type="hidden" name="domain" value="tdvorak.dev" />
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="name" class="label-medium" style="margin-bottom:6px;">Jméno a příjmení *</label>
|
<label for="name" class="label-medium" style="margin-bottom:6px;">Full Name *</label>
|
||||||
<input type="text" id="name" name="name" required class="input-field" placeholder="Vaše celé jméno">
|
<input type="text" id="name" name="name" required class="input-field" placeholder="Your full name">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="email" class="label-medium" style="margin-bottom:6px;">E‑mail *</label>
|
<label for="email" class="label-medium" style="margin-bottom:6px;">Email *</label>
|
||||||
<input type="email" id="email" name="email" required class="input-field" placeholder="vas@email.cz">
|
<input type="email" id="email" name="email" required class="input-field" placeholder="your@email.com">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="subject" class="label-medium" style="margin-bottom:6px;">Předmět *</label>
|
<label for="subject" class="label-medium" style="margin-bottom:6px;">Subject *</label>
|
||||||
<input type="text" id="subject" name="subject" required class="input-field" placeholder="O co se zajímáte?">
|
<input type="text" id="subject" name="subject" required class="input-field" placeholder="What are you interested in?">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<label for="message" class="label-medium" style="margin-bottom:6px;">Zpráva *</label>
|
<label for="message" class="label-medium" style="margin-bottom:6px;">Message *</label>
|
||||||
<textarea id="message" name="message" rows="5" required class="textarea" placeholder="Jak vám můžeme pomoci?"></textarea>
|
<textarea id="message" name="message" rows="5" required class="textarea" placeholder="How can we help you?"></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<button type="submit" class="btn send-btn">Odeslat zprávu</button>
|
<button type="submit" class="btn send-btn">Send Message</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@@ -931,10 +779,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
|
<div style="padding-bottom: 60px;"></div>
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<p class="body-medium">Copyright 2025. All right reserved by <b><a href="https://tdvorak.dev">TDvorak.</a></b></p>
|
<p class="body-medium">Copyright 2025. All rights reserved by <b><a href="https://tdvorak.dev">TDvorak.</a></b></p>
|
||||||
<p class="body-medium">IČO: 24330621 | Datová schránka: zhecn8k</p>
|
<p class="body-medium">Tax ID: 24330621 | Data Box: zhecn8k</p>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="script.js"></script>
|
<script src="script.js"></script>
|
||||||
|
|||||||
@@ -1,67 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>TD - Privacy Policy</title>
|
|
||||||
<link rel="stylesheet" href="style.css">
|
|
||||||
<style>
|
|
||||||
main{
|
|
||||||
width: 600px;
|
|
||||||
margin: 80px auto 80px auto;
|
|
||||||
}
|
|
||||||
h1{
|
|
||||||
margin: 20px 0px 20px 0px;
|
|
||||||
}
|
|
||||||
p{
|
|
||||||
margin: 20px 0px 20px 0px;
|
|
||||||
}
|
|
||||||
@media (max-width: 700px) {
|
|
||||||
main{
|
|
||||||
width: 400px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@media (max-width: 500px) {
|
|
||||||
main{
|
|
||||||
width: 300px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<header class="topbar">
|
|
||||||
<a href="https://tdvorak.site/" class="logo">
|
|
||||||
<img src="images/Logo_dark.png" alt="Tomáš Dvořák" width="145" height="32" class="dark">
|
|
||||||
</a>
|
|
||||||
</header>
|
|
||||||
<main>
|
|
||||||
<h1>Welcome to Our Privacy Policy Website</h1>
|
|
||||||
<p>We are committed to protecting your personal information and your right to privacy. This Privacy Policy explains what information we collect, how we use it, and what rights you have in relation to it.</p>
|
|
||||||
<h1>Data Collection</h1>
|
|
||||||
<p>We collect information that you provide to us directly, such as when you create an account, fill out a form, or communicate with us. This may include your name, email address, phone number, and other contact information.
|
|
||||||
We also collect information automatically when you use our services, including your IP address, browser type, operating system, and browsing behavior.</p>
|
|
||||||
<h1>Use of Data</h1>
|
|
||||||
<p>We use the information we collect for various purposes, including to:</p>
|
|
||||||
|
|
||||||
<p>Provide, operate, and maintain our services<br>
|
|
||||||
Improve, personalize, and expand our services<br>
|
|
||||||
Understand and analyze how you use our services<br>
|
|
||||||
Develop new products, services, features, and functionality<br>
|
|
||||||
Communicate with you, either directly or through one of our partners, including for customer service, to provide you with updates and other information relating to the service, and for marketing and promotional purposes<br>
|
|
||||||
Process your transactions and manage your orders<br>
|
|
||||||
Find and prevent fraud<br>
|
|
||||||
Data Sharing and Disclosure</p>
|
|
||||||
<p>We use cookies and similar tracking technologies to track the activity on our service and hold certain information. You can instruct your browser to refuse all cookies or to indicate when a cookie is being sent. However, if you do not accept cookies, you may not be able to use some portions of our service.</p>
|
|
||||||
</main>
|
|
||||||
<script>
|
|
||||||
window.dataLayer = window.dataLayer || [];
|
|
||||||
function gtag(){dataLayer.push(arguments);}
|
|
||||||
gtag('js', new Date());
|
|
||||||
|
|
||||||
gtag('config', 'G-43XMKG7BNS');
|
|
||||||
</script>
|
|
||||||
<script src="script.js"></script>
|
|
||||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4385475802391766"
|
|
||||||
crossorigin="anonymous"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -25,16 +25,16 @@ function toYearMonth(date) {
|
|||||||
return { year: date.getFullYear(), month: date.getMonth() + 1 };
|
return { year: date.getFullYear(), month: date.getMonth() + 1 };
|
||||||
}
|
}
|
||||||
|
|
||||||
function humanizeMonthsCZ(totalMonths) {
|
function humanizeMonthsEN(totalMonths) {
|
||||||
if (totalMonths < 0) return '';
|
if (totalMonths < 0) return '';
|
||||||
const years = Math.floor(totalMonths / 12);
|
const years = Math.floor(totalMonths / 12);
|
||||||
const months = totalMonths % 12;
|
const months = totalMonths % 12;
|
||||||
|
|
||||||
const yearStr = years === 0 ? '' : years === 1 ? '1 rok' : (years >= 2 && years <= 4) ? `${years} roky` : `${years} let`;
|
const yearStr = years === 0 ? '' : years === 1 ? '1 year' : `${years} years`;
|
||||||
const monthStr = months === 0 ? '' : months === 1 ? '1 měsíc' : `${months} měsíců`;
|
const monthStr = months === 0 ? '' : months === 1 ? '1 month' : `${months} months`;
|
||||||
|
|
||||||
if (yearStr && monthStr) return `${yearStr} ${monthStr}`;
|
if (yearStr && monthStr) return `${yearStr} ${monthStr}`;
|
||||||
return yearStr || monthStr || '0 měsíců';
|
return yearStr || monthStr || '0 months';
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateDurations() {
|
function updateDurations() {
|
||||||
@@ -46,12 +46,22 @@ function updateDurations() {
|
|||||||
const endYM = endAttr === 'present' ? nowYM : parseYearMonth(endAttr);
|
const endYM = endAttr === 'present' ? nowYM : parseYearMonth(endAttr);
|
||||||
if (!startYM || !endYM) return;
|
if (!startYM || !endYM) return;
|
||||||
const diff = monthDiff(startYM, endYM);
|
const diff = monthDiff(startYM, endYM);
|
||||||
el.textContent = humanizeMonthsCZ(diff);
|
el.textContent = humanizeMonthsEN(diff);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update footer copyright with current year
|
||||||
|
function updateFooterCopyright() {
|
||||||
|
const currentYear = new Date().getFullYear();
|
||||||
|
const footerText = document.querySelector('.footer p.body-medium');
|
||||||
|
if (footerText) {
|
||||||
|
footerText.innerHTML = `Copyright ${currentYear}. All rights reserved by <b><a href="https://tdvorak.dev">TDvorak.</a></b>`;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
updateDurations();
|
updateDurations();
|
||||||
|
updateFooterCopyright();
|
||||||
// refresh once a day to keep counters accurate as months roll
|
// refresh once a day to keep counters accurate as months roll
|
||||||
setInterval(updateDurations, 24 * 60 * 60 * 1000);
|
setInterval(updateDurations, 24 * 60 * 60 * 1000);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -850,3 +850,312 @@ a:hover {
|
|||||||
width: 50%;
|
width: 50%;
|
||||||
padding: 10px 0px 40px;
|
padding: 10px 0px 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enhanced Modern Resume Styling */
|
||||||
|
.resume-tab .section-title {
|
||||||
|
font-weight: 600;
|
||||||
|
letter-spacing: -0.02em;
|
||||||
|
margin-bottom: 32px;
|
||||||
|
position: relative;
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .section-title::after {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 60px;
|
||||||
|
height: 3px;
|
||||||
|
background: linear-gradient(135deg, var(--primary), var(--primary-dark));
|
||||||
|
border-radius: 2px;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline {
|
||||||
|
position: relative;
|
||||||
|
max-width: 900px;
|
||||||
|
width: 100%;
|
||||||
|
margin-inline: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
width: 2px;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(180deg, var(--primary) 0%, transparent 100%);
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item {
|
||||||
|
position: relative;
|
||||||
|
margin: 0 0 32px 0;
|
||||||
|
padding-right: 44px;
|
||||||
|
transition: transform 0.2s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item:hover {
|
||||||
|
transform: translateX(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
right: -6px;
|
||||||
|
top: 8px;
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
background: var(--surface-container);
|
||||||
|
border: 3px solid var(--primary);
|
||||||
|
border-radius: 50%;
|
||||||
|
z-index: 2;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item:hover::before {
|
||||||
|
transform: scale(1.2);
|
||||||
|
box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card {
|
||||||
|
background: var(--surface-container-low);
|
||||||
|
border: 1px solid var(--outline-variant);
|
||||||
|
border-radius: var(--radius-medium);
|
||||||
|
padding: 24px;
|
||||||
|
margin: 0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 4px;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(180deg, var(--primary), transparent);
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card:hover::before {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card:hover {
|
||||||
|
background: var(--surface-container);
|
||||||
|
border-color: var(--primary);
|
||||||
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .body-large {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--on-surface);
|
||||||
|
margin-bottom: 8px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-subtitle {
|
||||||
|
color: var(--primary);
|
||||||
|
opacity: 0.9;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-text {
|
||||||
|
color: var(--on-surface-variant);
|
||||||
|
line-height: 1.6;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-text br {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Education Section Enhancements - Different from Work Experience */
|
||||||
|
.resume-tab .list:not(.timeline) {
|
||||||
|
display: grid;
|
||||||
|
gap: 16px;
|
||||||
|
max-width: 900px;
|
||||||
|
margin: 0 auto 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-item {
|
||||||
|
background-color: var(--surface-container);
|
||||||
|
border: none;
|
||||||
|
border-radius: var(--radius-small);
|
||||||
|
padding: 20px;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-item:hover {
|
||||||
|
background-color: var(--surface-container-low);
|
||||||
|
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
|
||||||
|
transform: translateY(-1px) scale(1.01);
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-card {
|
||||||
|
background: transparent;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 0;
|
||||||
|
margin: 0;
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-card .body-large {
|
||||||
|
font-weight: 700;
|
||||||
|
color: var(--on-surface);
|
||||||
|
margin-bottom: 6px;
|
||||||
|
line-height: 1.2;
|
||||||
|
font-size: 1.7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-card .card-subtitle {
|
||||||
|
color: var(--primary);
|
||||||
|
opacity: 1;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-card .card-text {
|
||||||
|
color: var(--on-surface-variant);
|
||||||
|
line-height: 1.5;
|
||||||
|
font-size: 1.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-card .card-text br {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive improvements */
|
||||||
|
.timeline .resume-card {
|
||||||
|
background: var(--surface-container-low);
|
||||||
|
border: 1px solid var(--outline-variant);
|
||||||
|
border-radius: var(--radius-medium);
|
||||||
|
padding: 24px;
|
||||||
|
margin: 0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 4px;
|
||||||
|
height: 100%;
|
||||||
|
background: linear-gradient(180deg, var(--primary), transparent);
|
||||||
|
opacity: 0;
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card:hover::before {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card:hover {
|
||||||
|
background: var(--surface-container);
|
||||||
|
border-color: var(--primary);
|
||||||
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
|
||||||
|
transform: translateY(-2px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .body-large {
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--on-surface);
|
||||||
|
margin-bottom: 8px;
|
||||||
|
line-height: 1.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-subtitle {
|
||||||
|
color: var(--primary);
|
||||||
|
opacity: 0.9;
|
||||||
|
font-weight: 500;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-text {
|
||||||
|
color: var(--on-surface-variant);
|
||||||
|
line-height: 1.6;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card .card-text br {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive improvements */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.timeline {
|
||||||
|
max-width: 100%;
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item {
|
||||||
|
padding-right: 32px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) {
|
||||||
|
padding: 0 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-item {
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 480px) {
|
||||||
|
.timeline-item {
|
||||||
|
padding-right: 28px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline-item::before {
|
||||||
|
right: -5px;
|
||||||
|
top: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.timeline .resume-card {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .list:not(.timeline) .resume-item {
|
||||||
|
padding: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.resume-tab .section-title {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user