new website

This commit is contained in:
bronkuu 2026-06-14 23:16:01 +02:00
parent 98ecf63687
commit 4fe44f4a9e
4 changed files with 629 additions and 207 deletions

View file

@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<rect width="100" height="100" rx="20" fill="#000080"/>
<path d="M30 30 L70 50 L30 70" stroke="white" stroke-width="12" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
<rect width="100" height="100" rx="22" fill="#1a6b3c"/>
<text x="50" y="66" font-family="-apple-system,BlinkMacSystemFont,sans-serif" font-size="44" font-weight="700" fill="white" text-anchor="middle">JB</text>
</svg>

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 285 B

Before After
Before After

View file

@ -1,174 +1,308 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="./style.css" rel="stylesheet" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<title>Jakub Bronk | Portfolio</title>
</head>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link href="./style.css" rel="stylesheet" />
<link rel="icon" type="image/svg+xml" href="favicon.svg" />
<title>Jakub Bronk | Portfolio</title>
</head>
<body>
<header>
<h1>Jakub Bronk</h1>
<div>
<a href="mailto:bronk.jakub@proton.me">Email</a>
<a href="https://github.com/Bronku">GitHub</a>
<span> Somonino, Poland </span>
</div>
</header>
<body>
<header>
<div>
<h1>Jakub Bronk</h1>
<p>
Computer Science student @ Gdańsk University of Technology
</p>
</div>
<nav>
<a href="#experience">Experience</a>
<a href="#projects">Projects</a>
<a href="#availability">Availability</a>
</nav>
</header>
<section>
<p>
Computer Science student at Gdańsk University of Technology with strong
foundations in algorithms, systems programming, and Linux environments.
Experienced in Go, C/C++, and C# as well as familiar with Java, Python,
Ruby, Rust, and TypeScript, through academic and personal projects,
including self-hosted infrastructure and low-level development.
</p>
<section id="about">
<p>
Computer Science student at Gdańsk University of Technology with
strong foundations in algorithms, systems programming, and Linux
environments. Experienced in Go, C/C++, and Python, as well as
familiar with Java, Ruby, Rust, and TypeScript - through
academic, personal, and professional projects including
full-stack web development, compiler design, and self-hosted
infrastructure.
</p>
<div class="contact-bar">
<a href="mailto:bronk.jakub@proton.me">bronk.jakub@proton.me</a>
<a href="https://git.bronku.xyz">git.bronku.xyz</a>
<span>Somonino, Poland</span>
</div>
</section>
<h2>AVAILABILITY & COMMITMENT</h2>
<p>
I am looking for a long-term professional relationship rather than a
short-term placement. My intended availability is as follows:
</p>
<ul>
<li>
<b>Current Semester:</b> Part-time internship (approx. 20h/week).
</li>
<li><b>Summer 2026:</b> Transition to full-time engineering.</li>
<li>
<b>Academic Year 2026/27:</b> Return to part-time until graduation.
</li>
<li><b>Post-Graduation:</b> Transition to permanent full-time role.</li>
</ul>
</section>
<section id="experience">
<h2>Experience</h2>
<div class="entry">
<div class="entry-head">
<h3>Software Engineering Intern</h3>
<span class="entry-meta"
>Vention Teams · February 2026 April 2026</span
>
</div>
<p>
Contributed to a full-stack web application. Worked with
Ruby on Rails, React, TypeScript, and RTK Query in a team -
delivering features, reviewing code, and participating in
the full development lifecycle.
</p>
<div class="tags">
<span>Ruby on Rails</span>
<span>React</span>
<span>TypeScript</span>
<span>RTK Query</span>
<span>PostgreSQL</span>
</div>
</div>
</section>
<section>
<h2>SELECTED PROJECTS</h2>
<section>
<h3>B+ Tree Implementation <span>Rust</span></h3>
<p>
A disk-friendly B+ tree implementation focusing on memory-efficient
data structures and safety.
</p>
</section>
<section id="projects">
<h2>Selected Projects</h2>
<div class="project-grid">
<article class="card">
<a
href="https://new.piekarnikgosi.pl"
class="card-img"
target="_blank"
>
<img
src="screenshots/piekarnikgosi-hero.avif"
alt="piekarnikgosi.pl screenshot"
loading="lazy"
/>
</a>
<div class="card-body">
<h3>piekarnikgosi.pl</h3>
<p>
A multi-page business website for a local cake shop
and café, built for a real client. Features include
a categorized product catalog, photo gallery with
lightbox, café landing page, and contact information
- all server-rendered with HTMX-powered navigation
for instant page transitions.
</p>
<div class="tags">
<span>HTML/CSS</span>
<span>HTMX</span>
<span>Go</span>
<span>JavaScript</span>
</div>
<div class="card-links">
<a href="https://new.piekarnikgosi.pl"
>&#8594; Live site</a
>
<a
href="https://git.bronku.xyz/bronku/piekarnikgosipl"
>&#8594; Source</a
>
</div>
</div>
</article>
<section>
<h3>
Python-to-Ruby Transpiler
<span>Flex / Bison / C++ / Make</span>
</h3>
<p>
A compiler-front-end project focused on lexer/parser design. This
project allowed me to familiarize myself with lexer and parser design,
engineer a lexing solution for significant indentation in Python,
while effectively modeling real-world objects through class design.
Solved complex build challenges involving circular dependencies.
</p>
</section>
<article class="card">
<div class="card-body">
<h3>Cake Order Tracker</h3>
<p>
Production-ready order management system for the
same cake shop. Single-binary Go application with
SQLite persistence, and a dynamic HTMX frontend.
Features real-time order filtering, transactional
integrity, and zero-dependency deployment.
</p>
<div class="tags">
<span>Go</span>
<span>SQLite</span>
<span>HTMX</span>
<span>SQL</span>
</div>
<div class="card-links">
<a
href="https://git.bronku.xyz/bronku/cake-order-tracker"
>&#8594; Source</a
>
</div>
</div>
</article>
<section>
<h3>External Sorting Implementation <span>C++</span></h3>
<p>
High-performance implementation for sorting datasets exceeding RAM
capacity. Utilized min-heaps and optimized disk I/O buffers to manage
large-scale data processing efficiently.
</p>
</section>
<article class="card">
<div class="card-body">
<h3>Python-to-Ruby Transpiler</h3>
<p>
A compiler front-end built with Flex, Bison, and
C++. Handles Python's significant indentation
through custom lexer logic, produces Ruby AST
output, and solves complex build challenges
including circular dependency resolution in
generated code.
</p>
<div class="code-compare">
<span class="code-label">Input (Python)</span>
<pre>
class Counter:
def increment(self):
self.count = self.count + 1</pre
>
</div>
<div class="arrow-mid">&#8595;</div>
<div class="code-compare">
<span class="code-label">Output (Ruby)</span>
<pre>
class Counter
def increment
@count = @count + 1
end
end</pre
>
</div>
<div class="tags">
<span>Flex</span>
<span>Bison</span>
<span>C++</span>
<span>Make</span>
</div>
<div class="card-links">
<a href="https://git.bronku.xyz/bronku/python2ruby"
>&#8594; Source</a
>
</div>
</div>
</article>
<section>
<h3>Order Tracker for Cake Shop <span>Go / SQLite / HTMX</span></h3>
<p>
A production-ready logistics system for a local business. Features
transactional integrity, secure session-based auth, and a dynamic UI
using HTMX. The entire stack is compiled into a single binary using
Go's embed system for zero-dependency deployment.
</p>
</section>
<article class="card">
<div class="card-body">
<h3>Minesweeper</h3>
<p>
A fully-playable Minesweeper clone built with C and
SDL3. Demonstrates comfort with low-level graphics
programming and C memory management.
</p>
<div class="tags">
<span>C</span>
<span>SDL3</span>
<span>CMake</span>
</div>
<div class="card-links">
<a href="https://git.bronku.xyz/bronku/minesweeper"
>&#8594; Source</a
>
</div>
</div>
</article>
<section>
<h3>
Self-Hosted Infrastructure
<span>Debian / Docker / NixOS</span>
</h3>
<p>
Management of a production environment for media, backups, and small
business order-tracking. Running in Docker, secured behind an overlay
VPN, and exposed via Cloudflare tunnels when required.
</p>
</section>
</section>
<article class="card">
<div class="card-body">
<h3>Disk-Friendly B+ Tree</h3>
<p>
A B+ tree implementation focused on memory-efficient
data structures and disk-aware storage.
</p>
<div class="tags">
<span>Rust</span>
<span>Data Structures</span>
</div>
<div class="card-links">
<a href="https://git.bronku.xyz/bronku/B-tree"
>&#8594; Source</a
>
</div>
</div>
</article>
<section>
<h2>DEVELOPMENT PHILOSOPHY</h2>
<p>
I believe in <b>Deep Ownership</b>. Beyond writing code, I strive to
understand the entire delivery chain—from database commit logs and
memory management to final binary deployment. I am guided by:
</p>
<ul>
<li>
<b>Intentional Tooling:</b> I choose stacks based on problem-solving
efficiency rather than industry trends. This pragmatic approach
ensures the right tool is used for the specific performance
requirements of the task.
</li>
<li>
<b>Minimalism:</b> I prioritize low dependency counts to reduce attack
surfaces, minimize maintenance debt, and ensure lightning-fast
execution—whether in a systems binary or a browser-based UI.
</li>
<li>
<b>Transparency:</b> I value understanding the abstractions I use. My
experience with systems-level languages (C, Go, Rust) provides me with
a unique perspective on optimizing high-level applications and
debugging complex performance bottlenecks.
</li>
</ul>
</section>
<article class="card">
<div class="card-body">
<h3>Self-Hosted Infrastructure</h3>
<p>
Production server running Debian with Docker
containers and systemd-managed services. Hosts
media, backups, and the cake shop's order-tracking
system. Secured behind an overlay VPN, exposed
through Cloudflare tunnels where needed, with
automated backups and monitoring.
</p>
<div class="tags">
<span>Docker</span>
<span>Debian</span>
<span>systemd</span>
<span>Cloudflare</span>
<span>VPN</span>
</div>
</div>
</article>
<section>
<h2>OTHER INTERESTS</h2>
<section>
<h3>Literary</h3>
<p>
I primarily read Science Fiction but also enjoy classic murder
mysteries. Some of my favorite books include:
</p>
<ul>
<li><i>Foundation</i> (Isaac Asimov)</li>
<li><i>God Emperor of Dune</i> (Frank Herbert)</li>
<li><i>The Three-Body Problem</i> (Cixin Liu)</li>
<li><i>The Murder of Roger Ackroyd</i> (Agatha Christie)</li>
</ul>
<article class="card">
<div class="card-body">
<h3>External Sorting</h3>
<p>
High-performance external sort for datasets
exceeding RAM capacity. Uses min-heaps and optimized
disk I/O buffers.
</p>
<div class="tags">
<span>C++</span>
<span>Algorithms</span>
</div>
<div class="card-links">
<a href="https://git.bronku.xyz/bronku/file_sorting"
>&#8594; Source</a
>
</div>
</div>
</article>
</div>
</section>
<h3>Gaming</h3>
<p>I mostly play automation games but also enjoy other indie titles:</p>
<ul>
<li>Factorio</li>
<li>Satisfactory</li>
<li>Celeste</li>
<li>Outer Wilds</li>
</ul>
<section id="availability">
<h2>Availability &amp; Commitment</h2>
<p>
I am looking for a paid internship or junior developer position
- full-time for summer 2026, then part-time during the academic
year.
</p>
<ul>
<li>
<b>Summer 2026 (JulSep):</b> Full-time internship / junior
role.
</li>
<li>
<b>Academic Year 2026/27:</b> Part-time (approx. 20h/week).
</li>
<li><b>Post-Graduation (2027+):</b> Full-time, permanent.</li>
</ul>
</section>
<h3>Other</h3>
<ul>
<li>Bouldering</li>
<li>Motorcycling</li>
<li>Cubing (Rubik's Cube)</li>
<li>
Tinkering with hardware and building custom, hand-wired keyboards
</li>
</ul>
</section>
</section>
<footer>
<p>
Built with plain HTML/CSS. Hosted on github due to home bandwidth
limitations. Text on this site has been proofread with AI assistance.
</p>
</footer>
</body>
<section id="philosophy">
<h2>Development Philosophy</h2>
<p>
I believe in <b>Deep Ownership</b> — understanding the full
delivery chain from memory management to deployment. I am guided
by:
</p>
<ul>
<li>
<b>Intentional Tooling:</b> Choosing stacks for
problem-solving efficiency over trends. The right tool for
the constraints at hand.
</li>
<li>
<b>Minimalism:</b> Low dependency counts reduce attack
surfaces, maintenance debt, and keep execution fast —
whether in a systems binary or a browser UI.
</li>
<li>
<b>Transparency:</b> Understanding the abstractions I use.
Systems-level experience (C, Go, Rust) informs better
decisions in high-level code and debugging.
</li>
</ul>
</section>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

378
style.css
View file

@ -1,65 +1,353 @@
:root {
--bg: #ffffff;
--text: #1a1a1a;
--accent: #000080;
--dim: #666;
--code-bg: #f4f4f4;
--bg: #fafafa;
--bg-card: #ffffff;
--text: #1a1a1a;
--text-dim: #666666;
--accent: #1a6b3c;
--accent-dim: #2d8a4e;
--border: #e0e0e0;
--tag-bg: #f0f0f4;
--tag-text: #333;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
--radius: 8px;
}
@media (prefers-color-scheme: dark) {
:root {
--bg: #111113;
--bg-card: #1a1a1e;
--text: #e4e4e7;
--text-dim: #a1a1aa;
--accent: #4ade80;
--accent-dim: #22c55e;
--border: #27272a;
--tag-bg: #27272a;
--tag-text: #d4d4d8;
--shadow: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
}
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: "Liberation Sans", sans-serif;
line-height: 1.6;
color: var(--text);
max-width: 800px;
margin: 0 auto;
padding: 2rem 1.5rem;
font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
sans-serif;
line-height: 1.65;
color: var(--text);
background: var(--bg);
max-width: 900px;
margin: 0 auto;
padding: 2.5rem 1.5rem;
transition:
color 0.2s,
background 0.2s;
}
header {
border-bottom: 2px solid var(--text);
padding-bottom: 1rem;
margin-bottom: 2rem;
section {
margin-top: 3rem;
}
a {
color: var(--accent);
text-decoration: none;
font-weight: bold;
margin-right: 15px;
}
a:hover {
text-decoration: underline;
h1 {
font-size: 1.75rem;
font-weight: 700;
letter-spacing: -0.02em;
}
h2 {
font-size: 1.1rem;
text-transform: uppercase;
letter-spacing: 2px;
border-bottom: 1px solid #ddd;
padding-bottom: 0.3rem;
margin-top: 2.5rem;
font-size: 1rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.08em;
color: var(--accent);
margin-bottom: 1.25rem;
}
h3 {
margin-bottom: 0.5rem;
font-size: 1.1rem;
font-size: 1.1rem;
font-weight: 600;
margin-bottom: 0.4rem;
}
h3 span {
font-family: monospace;
font-size: 0.85rem;
background: var(--code-bg);
padding: 2px 6px;
border-radius: 4px;
font-weight: normal;
margin-left: 10px;
color: var(--text);
p {
margin-bottom: 0.75rem;
}
a {
color: var(--accent);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
header {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 1rem;
padding-bottom: 1.5rem;
border-bottom: 1px solid var(--border);
margin-bottom: 0;
}
header p {
color: var(--text-dim);
font-size: 0.95rem;
margin-top: 0.2rem;
margin-bottom: 0;
}
header nav {
display: flex;
align-items: center;
gap: 0.75rem;
flex-shrink: 0;
}
header nav a {
font-size: 0.875rem;
font-weight: 500;
color: var(--text-dim);
}
header nav a:hover {
color: var(--accent);
text-decoration: none;
}
.contact-bar {
display: flex;
gap: 1.5rem;
flex-wrap: wrap;
font-size: 0.9rem;
color: var(--text-dim);
margin-top: 0.5rem;
}
.contact-bar a {
font-weight: 500;
}
.entry {
padding: 1.25rem;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
}
.entry-head {
margin-bottom: 0.75rem;
}
.entry-head h3 {
font-size: 1rem;
margin-bottom: 0.15rem;
}
.entry-meta {
font-size: 0.85rem;
color: var(--text-dim);
}
.tags {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
margin-top: 0.75rem;
}
.tags span {
font-size: 0.75rem;
font-family: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;
background: var(--tag-bg);
color: var(--tag-text);
padding: 0.2rem 0.5rem;
border-radius: 4px;
}
.tag-desc {
font-size: 0.85rem;
font-weight: 400;
color: var(--text-dim);
margin-left: 0.3rem;
}
.project-grid {
display: grid;
grid-template-columns: 1fr;
gap: 1rem;
}
@media (min-width: 640px) {
.project-grid {
grid-template-columns: 1fr 1fr;
}
}
.card {
display: flex;
flex-direction: column;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius);
box-shadow: var(--shadow);
overflow: hidden;
transition:
border-color 0.2s,
box-shadow 0.2s;
}
.card:hover {
border-color: var(--accent);
box-shadow:
0 2px 8px rgba(0, 0, 0, 0.08),
0 1px 3px rgba(0, 0, 0, 0.04);
}
.card-img {
display: block;
line-height: 0;
overflow: hidden;
}
.card-img:hover {
text-decoration: none;
}
.card-img img {
width: 100%;
height: 180px;
object-fit: cover;
transition: transform 0.3s ease;
}
.card-img img[src$=".svg"] {
height: auto;
max-height: 200px;
object-fit: contain;
background: var(--bg);
padding: 0.5rem 0;
}
.card-img:hover img {
transform: scale(1.03);
}
.card-body {
padding: 1.25rem;
flex: 1;
display: flex;
flex-direction: column;
}
.card-body h3 {
font-size: 1rem;
margin-bottom: 0.4rem;
}
.card-body p {
font-size: 0.9rem;
color: var(--text-dim);
line-height: 1.55;
flex: 1;
}
.code-compare {
margin: 0.75rem 0 0;
font-size: 0.8rem;
border-radius: 6px;
overflow: hidden;
border: 1px solid var(--border);
}
.code-compare .code-label {
display: block;
font-size: 0.65rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
padding: 0.3rem 0.6rem;
background: var(--tag-bg);
color: var(--text-dim);
border-bottom: 1px solid var(--border);
}
.code-compare pre {
margin: 0;
padding: 0.6rem;
overflow-x: auto;
font-family: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;
font-size: 0.75rem;
line-height: 1.45;
color: var(--text);
background: var(--bg);
}
.code-compare + .code-compare {
border-top: 0;
border-radius: 0 0 6px 6px;
}
.arrow-mid {
text-align: center;
font-size: 0.8rem;
color: var(--text-dim);
padding: 0.25rem 0;
line-height: 1;
}
.card-links {
margin-top: 0.75rem;
font-size: 0.875rem;
display: flex;
gap: 1.25rem;
}
.card-links a {
font-weight: 500;
}
#availability ul {
list-style: none;
padding: 0;
}
#availability li {
padding: 0.5rem 0;
border-bottom: 1px solid var(--border);
font-size: 0.95rem;
}
#availability li:last-child {
border-bottom: none;
}
#philosophy ul {
padding-left: 1.2rem;
}
#philosophy li {
margin-bottom: 0.6rem;
font-size: 0.95rem;
line-height: 1.55;
}
footer {
margin-top: 4rem;
border-top: 1px solid #eee;
font-size: 0.85rem;
color: var(--dim);
margin-top: 4rem;
padding-top: 1.5rem;
border-top: 1px solid var(--border);
font-size: 0.85rem;
color: var(--text-dim);
text-align: center;
}
footer p {
margin-bottom: 0;
}