Skip to content

Commit 44e8660

Browse files
committed
Merge: Resolve conflicts - keep stats section and UI improvements
2 parents 701934e + 3d85661 commit 44e8660

File tree

6 files changed

+217
-33
lines changed

6 files changed

+217
-33
lines changed

_includes/head.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@
1818
<meta name="color-scheme" content="dark">
1919
<meta name="theme-color" content="#121212">
2020

21+
<!-- Accessibility -->
22+
2123
<!-- CSS -->
2224
<link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
25+
<link rel="preconnect" href="https://fonts.googleapis.com">
26+
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
2327
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap">
2428

2529
<!-- Favicon -->

assets/css/sessionize.css

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* Sessionize styling */
2+
.sessionize-events-container {
3+
margin: 2rem 0;
4+
padding: 1rem;
5+
background-color: #f5f5f5;
6+
border-radius: 8px;
7+
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
8+
}
9+
10+
/* These styles will apply once Sessionize loads its content */
11+
.sz-session {
12+
margin-bottom: 1.5rem;
13+
padding-bottom: 1.5rem;
14+
border-bottom: 1px solid #e0e0e0;
15+
}
16+
17+
.sz-session:last-child {
18+
border-bottom: none;
19+
}
20+
21+
.sz-session__title {
22+
font-weight: bold;
23+
color: #333;
24+
}
25+
26+
.sz-session__date {
27+
color: #666;
28+
font-style: italic;
29+
}

assets/css/style.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ body {
146146
position: relative;
147147

148148
svg {
149-
fill: var (--text-primary);
149+
fill: var(--text-primary);
150150
}
151151
}
152152
}
@@ -278,7 +278,7 @@ a {
278278

279279
p {
280280
margin-bottom: 1.5rem;
281-
color: var (--text-secondary);
281+
color: var(--text-secondary);
282282
}
283283

284284
// Hero Section
@@ -915,7 +915,7 @@ p {
915915
background-color: var(--black-tertiary);
916916
padding: 30px;
917917
border-radius: 10px;
918-
box-shadow: 0 5px 15px var (--shadow-color);
918+
box-shadow: 0 5px 15px var(--shadow-color);
919919
text-align: center;
920920
transition: var(--transition);
921921
border: 1px solid var(--border-color);

assets/js/main.js

Lines changed: 58 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,9 @@ document.addEventListener('DOMContentLoaded', function() {
8989
this.appendChild(ripple);
9090

9191
setTimeout(() => {
92-
ripple.remove();
92+
if (ripple.parentNode) {
93+
ripple.remove();
94+
}
9395
}, 600);
9496
});
9597
});
@@ -169,7 +171,9 @@ document.addEventListener('DOMContentLoaded', function() {
169171
document.body.appendChild(trail);
170172

171173
setTimeout(() => {
172-
trail.remove();
174+
if (trail.parentNode) {
175+
trail.remove();
176+
}
173177
}, 800);
174178
}
175179

@@ -197,7 +201,9 @@ document.addEventListener('DOMContentLoaded', function() {
197201
}
198202

199203
setTimeout(() => {
200-
particleContainer.remove();
204+
if (particleContainer.parentNode) {
205+
particleContainer.remove();
206+
}
201207
}, 1500);
202208
}
203209

@@ -237,7 +243,11 @@ document.addEventListener('DOMContentLoaded', function() {
237243
particle.style.animation = 'particleFloat 3s ease-out forwards';
238244
document.body.appendChild(particle);
239245

240-
setTimeout(() => particle.remove(), 3000);
246+
setTimeout(() => {
247+
if (particle.parentNode) {
248+
particle.remove();
249+
}
250+
}, 3000);
241251
}, i * 50);
242252
}
243253

@@ -263,7 +273,7 @@ document.addEventListener('DOMContentLoaded', function() {
263273
`);
264274
});
265275

266-
// CSS for ripple effect
276+
// CSS for ripple effect and animations
267277
const style = document.createElement('style');
268278
style.textContent = `
269279
.btn {
@@ -280,33 +290,54 @@ style.textContent = `
280290
pointer-events: none;
281291
}
282292
283-
// Initialize typing animation for hero subtitle
284-
function initTypewriter() {
285-
const typewriterElement = document.getElementById('typewriter');
286-
if (!typewriterElement) return;
287-
288-
// Get the title from the data attribute or fallback
289-
const text = typewriterElement.getAttribute('data-text') || "Senior Cloud Engineer & Cloud Native Competency Lead";
290-
291-
// Set initial state
292-
typewriterElement.textContent = '';
293-
typewriterElement.style.width = '0';
294-
295-
// Add typing class after a short delay to prevent layout shift
296-
setTimeout(() => {
297-
typewriterElement.textContent = text;
298-
typewriterElement.classList.add('typing');
299-
}, 1000);
300-
}
301-
302-
// Initialize typewriter effect
303-
initTypewriter();
304-
305293
@keyframes ripple-animation {
306294
to {
307295
transform: scale(4);
308296
opacity: 0;
309297
}
310298
}
299+
300+
@keyframes particleFloat {
301+
to {
302+
transform: translateY(-100px);
303+
opacity: 0;
304+
}
305+
}
306+
307+
.cursor-trail {
308+
position: fixed;
309+
width: 6px;
310+
height: 6px;
311+
background: var(--gold-primary);
312+
border-radius: 50%;
313+
pointer-events: none;
314+
z-index: 9999;
315+
animation: trailFade 0.8s ease-out forwards;
316+
}
317+
318+
@keyframes trailFade {
319+
to {
320+
opacity: 0;
321+
transform: scale(0);
322+
}
323+
}
324+
325+
.particle {
326+
position: absolute;
327+
width: 3px;
328+
height: 3px;
329+
background: var(--gold-primary);
330+
border-radius: 50%;
331+
animation: particleFloat 1.5s ease-out forwards;
332+
}
333+
334+
.konami-activated {
335+
animation: rainbow 2s linear infinite;
336+
}
337+
338+
@keyframes rainbow {
339+
0% { filter: hue-rotate(0deg); }
340+
100% { filter: hue-rotate(360deg); }
341+
}
311342
`;
312343
document.head.appendChild(style);

events/speaking.html

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
layout: default
3+
title: Speaking Events
4+
permalink: /speaking/
5+
---
6+
7+
<div class="container speaking-page">
8+
<h1>Speaking Engagements</h1>
9+
10+
<p>I enjoy sharing knowledge about cloud-native technologies, Kubernetes, and DevOps practices. Here's where I've spoken and upcoming events where you can catch my talks!</p>
11+
12+
<div class="speaking-topics">
13+
<h3>Speaking Topics</h3>
14+
<ul>
15+
<li>🚀 Cloud-Native Architecture & Best Practices</li>
16+
<li>☸️ Kubernetes Implementation & Management</li>
17+
<li>🛠️ DevOps Automation & CI/CD Pipelines</li>
18+
<li>☁️ Azure Infrastructure & Cloud Migration</li>
19+
<li>📊 Monitoring & Observability in Cloud Environments</li>
20+
</ul>
21+
</div>
22+
23+
<div class="sessionize-events-container">
24+
<div id="sessionize-events">
25+
<script type="text/javascript" src="https://sessionize.com/api/speaker/sessions/8zkgq232gg/1x0x3fb393x"></script>
26+
</div>
27+
</div>
28+
</div>
29+
30+
<style>
31+
.speaking-page {
32+
padding: 40px 0;
33+
min-height: 60vh;
34+
}
35+
36+
.speaking-topics {
37+
background: var(--black-secondary);
38+
border-radius: 10px;
39+
padding: 30px;
40+
margin: 40px 0;
41+
border: 1px solid var(--border-color);
42+
}
43+
44+
.speaking-topics h3 {
45+
color: var(--gold-primary);
46+
margin: 0 0 20px;
47+
font-size: 1.4rem;
48+
}
49+
50+
.speaking-topics ul {
51+
list-style: none;
52+
padding: 0;
53+
margin: 0;
54+
}
55+
56+
.speaking-topics li {
57+
padding: 10px 0;
58+
border-bottom: 1px solid var(--border-color);
59+
color: var(--text-secondary);
60+
font-size: 1.1rem;
61+
}
62+
63+
.speaking-topics li:last-child {
64+
border-bottom: none;
65+
}
66+
67+
.sessionize-events-container {
68+
margin-top: 40px;
69+
padding: 30px;
70+
background: var(--black-secondary);
71+
border-radius: 10px;
72+
border: 1px solid var(--border-color);
73+
}
74+
</style>

resume.html

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,26 @@ <h2>Professional Experience</h2>
2626
{% for job in site.data.profile.experience %}
2727
<div class="experience-item">
2828
<div class="experience-header">
29-
<h3>{{ job.title }}</h3>
30-
<span class="date">{{ job.startDate }} - {{ job.endDate }}</span>
29+
<h3>{{ job.position }}</h3>
30+
<span class="date">{{ job.period }}</span>
3131
</div>
32-
<p class="company">{{ job.company }}{% if job.location %}, {{ job.location }}{% endif %}</p>
32+
<p class="company">{{ job.company }}</p>
3333
<p class="description">{{ job.description }}</p>
34+
{% if job.achievements %}
35+
<ul class="achievements">
36+
{% for achievement in job.achievements %}
37+
<li>{{ achievement }}</li>
38+
{% endfor %}
39+
</ul>
40+
{% endif %}
41+
{% if job.technologies %}
42+
<div class="technologies">
43+
<strong>Technologies:</strong>
44+
{% for tech in job.technologies %}
45+
<span class="tech-tag">{{ tech }}</span>
46+
{% endfor %}
47+
</div>
48+
{% endif %}
3449
</div>
3550
{% endfor %}
3651
</section>
@@ -219,6 +234,37 @@ <h2>Current Focus</h2>
219234
margin: 10px 0 0;
220235
}
221236

237+
.achievements {
238+
margin: 15px 0;
239+
padding-left: 20px;
240+
}
241+
242+
.achievements li {
243+
color: var(--text-secondary);
244+
margin: 5px 0;
245+
line-height: 1.5;
246+
}
247+
248+
.technologies {
249+
margin: 15px 0 0;
250+
}
251+
252+
.technologies strong {
253+
color: var(--text-primary);
254+
margin-right: 10px;
255+
}
256+
257+
.tech-tag {
258+
background: linear-gradient(135deg, var(--gold-primary), var(--gold-secondary));
259+
color: var(--black-primary);
260+
padding: 4px 8px;
261+
border-radius: 12px;
262+
font-size: 0.8rem;
263+
font-weight: 600;
264+
margin: 0 5px 5px 0;
265+
display: inline-block;
266+
}
267+
222268
.skills-categories {
223269
display: grid;
224270
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));

0 commit comments

Comments
 (0)