-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
341 lines (314 loc) · 12.9 KB
/
Copy pathindex.html
File metadata and controls
341 lines (314 loc) · 12.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Casper Weiss Bang - Software Engineer - CV</title>
<meta name="description"
content="Leveraging DDD, CI, and TDD to improve the maintainability of software. Based in Aalborg, Denmark.">
<meta name="theme-color" content="#b8651e">
<link rel="stylesheet" href="style.css">
<link rel="canonical" href="https://cwb.dk/">
</head>
<body>
<div class="page">
<nav class="topbar">
<header class="hero">
<h1>Casper Weiss Bang</h1>
<p class="tagline">
Software Engineer with emphasis on writing maintainable software for humans, based in Aalborg, Denmark.
Tinkering on open-source by night and tending to a garden shared with insects and bunnies.
</p>
<div class="meta-row">
<a href="mailto:c@cwb.dk">c@cwb.dk</a>
<a href="tel:+4525214668">+45 25 21 46 68</a>
<a href="https://cwb.dk">cwb.dk</a>
<a href="https://www.linkedin.com/in/cwbdk/">LinkedIn</a>
<a href="https://github.com/C0DK">GitHub</a>
</div>
</header>
<button class="theme-toggle" id="themeToggle" aria-label="Toggle dark mode">🌙 Dark</button>
</nav>
<div class="columns">
<aside class="sidebar">
<section>
<h2>About</h2>
<div class="card about-card">
<p>
I aim to optimise maintainability of software while modelling the underlying domain of a business.
Understanding the context is crucial to solving real problems for real humans. I lean on
philosophies like Domain-Driven Design, DevOps, Continuous Deployment, and Extreme Programming.
</p>
<p>
Lately I'm digging into HTMX, event sourcing, and reading the PostgreSQL manual. I've used Linux
for 10 years and currently run NixOS on my personal machine.
</p>
</div>
</section>
<section>
<h2>Toolbox</h2>
<div class="card toolbox">
<p><strong>Languages</strong>C#, Python, Go, F#</p>
<p><strong>Platform</strong>Kubernetes, Docker, Terraform, Pulumi, GCP</p>
<p><strong>Data</strong>PostgreSQL, Event-Eourcing, PubSub, Spark</p>
<p><strong>Web</strong>HTMX, .NET, Tailwind, React, TypeScript</p>
<p><strong>Practices</strong>Domain-Driven Design, Continuous Deployment, Extreme Programming</p>
<p><strong>Personal</strong>NixOS, Linux (10+ years)</p>
</div>
</section>
<section>
<h2>Education</h2>
<article class="card">
<div class="role-head">
<div>
<h3>M.Sc. Computer Science</h3>
<div class="role-company">IT University of Copenhagen</div>
</div>
<div class="role-meta">2019 – 2021</div>
</div>
<div class="role-body">
<p class="role-detail">Software Engineering</p>
</div>
</article>
<article class="card">
<div class="role-head">
<div>
<h3>B.Sc. Software Engineering</h3>
<div class="role-company">Aalborg University</div>
</div>
<div class="role-meta">2016 – 2019</div>
</div>
</article>
</section>
</aside>
<main class="main">
<section>
<h2>Experience</h2>
<article class="card">
<div class="role-head">
<div>
<h3>Senior Software Engineer</h3>
<div class="role-company">Quantum Gas Trading · Aalborg, Denmark</div>
</div>
<div class="role-meta">2024 – Present</div>
</div>
<div class="role-body">
<ul>
<li>
Build microservices and micro-apps in C# on Kubernetes (GCP, Terraform) supporting gas traders
across
market analysis, trade capture and order placement.
</li>
<li>
Strong emphasis on continuous deployment, automated testing and observability so bugs are caught
early and shipping is trivial.
</li>
</ul>
<div class="tags">
<span class="tag">Gas Trading</span>
<span class="tag">C#</span>
<span class="tag">Go</span>
<span class="tag">Kubernetes</span>
<span class="tag">GCP</span>
<span class="tag">Terraform</span>
<span class="tag">PubSub</span>
<span class="tag">PostgreSQL</span>
</div>
</div>
</article>
<article class="card">
<div class="role-head">
<div>
<h3>Data Engineer → Data Engineer III</h3>
<div class="role-company">Neurospace · Århus, Denmark (Remote)</div>
</div>
<div class="role-meta">2022 – 2024</div>
</div>
<div class="role-body">
<ul>
<li>Built and operated data pipelines and platform tooling in Python.</li>
<li>Primary worked with district heating companies.</li>
<li>Grew from Data Engineer to Data Engineer III, taking on more platform and architecture
responsibility
over time.</li>
<li>Did various internal tooling and hosted study groups</li>
</ul>
<div class="tags">
<span class="tag">Python</span>
<span class="tag">Data Engineering</span>
<span class="tag">Cloud</span>
<span class="tag">District Heating</span>
<span class="tag">Machine Learning</span>
</div>
</div>
</article>
<article class="card">
<div class="role-head">
<div>
<h3>Software Engineer</h3>
<div class="role-company">Centrica Energy · Aalborg, Denmark</div>
</div>
<div class="role-meta">2021 – 2022</div>
</div>
<div class="role-body">
<ul>
<li>Developed .NET applications inside a large corporate energy-trading environment.</li>
<li>Took part in shaping a green field project in PPA market</li>
<li>Worked on and maintained asset management systems</li>
<li>Worked across on-prem infrastructure and trading-domain software.</li>
</ul>
<div class="tags">
<span class="tag">Energy Trading</span>
<span class="tag">PPAs</span>
<span class="tag">.NET</span>
<span class="tag">C#</span>
</div>
</div>
</article>
<article class="card skip-print">
<div class="role-head">
<div>
<h3>Internship</h3>
<div class="role-company">IBM</div>
</div>
<div class="role-meta">2020</div>
</div>
<div class="role-body">
<ul>
<li>Gained a wide variety of experiences in both enterprise development and Agile development</li>
<li>Part of an elective, I worked as a SCRUM master in collaboration with a development team of bachelor
students.</li>
</ul>
<div class="tags">
<span class="tag">SCRUM</span>
<span class="tag">Agile</span>
</div>
</div>
</article>
<article class="card">
<div class="role-head">
<div>
<h3>Software Developer → Lead Software Engineer</h3>
<div class="role-company">Alternative Investment Fund · Freelance · Remote </div>
</div>
<div class="role-meta">2016 – 2021</div>
</div>
<div class="role-body">
<ul>
<li>Led software development in a small startup, primarily in Python with Django.</li>
<li>Built customer facing platform to show performance in real time</li>
<li>Integrated with all major crypto exchanges</li>
</ul>
<div class="tags">
<span class="tag">Django</span>
<span class="tag">Python</span>
<span class="tag">React</span>
<span class="tag">React Native (IOS)</span>
<span class="tag">Typescript</span>
</div>
</div>
</article>
<article class="card skip-print">
<div class="role-head">
<div>
<h3>Software Developer</h3>
<div class="role-company">Aalborg University · Freelance</div>
</div>
<div class="role-meta">2019</div>
</div>
<div class="role-body">
<p>My bachelor project contributed to aSTEP, AAU's Spatio-TEmporal data analytics Platform — a multi-year,
~30-student effort. The Semester Coordinator then brought me on to close out open tasks and prepare the
system for future
semesters and conferences.</p>
<div class="tags">
<span class="tag">Machine Learning</span>
<span class="tag">Kotlin</span>
<span class="tag">Kubernetes</span>
<span class="tag">platform engineering</span>
</div>
</div>
</article>
<article class="card skip-print">
<div class="role-head">
<div>
<h3>Backend Developer</h3>
<div class="role-company">Progras · Freelance</div>
</div>
<div class="role-meta">2017 – 2018</div>
</div>
<div class="role-body">
<ul>
<li>Helped triage and bugfix various things in a big ticket system</li>
<li>Developed various new features and helped migrate a major part of their service</li>
</ul>
<div class="tags">
<span class="tag">Ruby On Rails</span>
<span class="tag">Scrum</span>
<span class="tag">Ticket Systems</span>
</div>
</div>
</article>
</section>
<section>
<h2>Side Project</h2>
<article class="card">
<div class="role-head">
<div>
<h3>chor.bar</h3>
<div class="role-company">Open-source household chore tracker</div>
</div>
<div class="role-meta">2026 – Present</div>
</div>
<div class="role-body">
<p>
A small web-app built from the needs of my own household, match expectations on chores,
track when they were last done, and get reminders. Slowly adding features as we use it.
</p>
<p class="role-detail">
<a href="https://chor.bar">chor.bar</a> · <a href="https://github.com/C0DK/chorbar">source</a>
</p>
<div class="tags">
<span class="tag">C#</span>
<span class="tag">HTMX</span>
<span class="tag">Event Sourcing</span>
<span class="tag">PostgreSQL</span>
<span class="tag">NixOS</span>
</div>
</div>
</article>
</section>
</main>
</div>
<footer>
© Casper Weiss Bang ·
<a href="mailto:c@cwb.dk">c@cwb.dk</a> ·
<a href="https://cwb.dk">cwb.dk</a>
</footer>
</div>
<script>
// Theme toggle — respects system preference until user clicks
(function () {
var root = document.documentElement;
var btn = document.getElementById('themeToggle');
var stored = localStorage.getItem('theme');
if (stored) root.setAttribute('data-theme', stored);
function currentEffective() {
var explicit = root.getAttribute('data-theme');
if (explicit) return explicit;
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
function render() {
btn.textContent = currentEffective() === 'dark' ? '☀️ Light' : '🌙 Dark';
}
render();
btn.addEventListener('click', function () {
var next = currentEffective() === 'dark' ? 'light' : 'dark';
root.setAttribute('data-theme', next);
localStorage.setItem('theme', next);
render();
});
})();
</script>
</body>
</html>