-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
322 lines (311 loc) · 23.6 KB
/
Copy pathindex.html
File metadata and controls
322 lines (311 loc) · 23.6 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
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Pulkit Chawla</title>
<meta name="description" content="Pulkit Chawla, AI and platform engineer in Eindhoven, Netherlands. Six years on cloud data platforms at Oracle and Qubole, MSc Data Science and AI at TU Eindhoven, four agent systems he built and runs himself.">
<meta name="author" content="Pulkit Chawla">
<meta name="theme-color" content="#0f1210">
<link rel="canonical" href="https://pulkitchawla.me/">
<meta property="og:type" content="website">
<meta property="og:title" content="Pulkit Chawla">
<meta property="og:description" content="AI and platform engineer in Eindhoven. I build the load-bearing parts of AI systems: the platform, the pipeline, the gate that decides what ships.">
<meta property="og:url" content="https://pulkitchawla.me/">
<meta property="og:site_name" content="Pulkit Chawla">
<meta property="og:image" content="https://pulkitchawla.me/assets/og.jpg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image:alt" content="Pulkit Chawla, AI and platform engineer, Eindhoven">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Pulkit Chawla">
<meta name="twitter:description" content="AI and platform engineer in Eindhoven. I build the load-bearing parts of AI systems: the platform, the pipeline, the gate that decides what ships.">
<meta name="twitter:image" content="https://pulkitchawla.me/assets/og.jpg">
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
<script>try{var t=localStorage.getItem("theme");if(t==="light"){document.documentElement.setAttribute("data-theme","light")}}catch(e){}document.documentElement.className="js"</script>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Inter:wght@400;500;600&display=swap">
<link rel="stylesheet" href="/assets/style.css">
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Person","name":"Pulkit Chawla","jobTitle":"AI and platform engineer","url":"https://pulkitchawla.me/","email":"mailto:pulkitchawl@gmail.com","sameAs":["https://github.com/thispc","https://linkedin.com/in/pulkitchawla11"],"address":{"@type":"PostalAddress","addressLocality":"Eindhoven","addressCountry":"NL"},"alumniOf":[{"@type":"CollegeOrUniversity","name":"Eindhoven University of Technology"},{"@type":"CollegeOrUniversity","name":"Birla Institute of Technology, Mesra"}]}</script>
</head>
<body>
<svg hidden aria-hidden="true" focusable="false" style="display:none">
<symbol id="i-gh" viewBox="0 0 24 24">
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422
18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835
2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405
1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91
1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286
0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/>
</symbol>
<symbol id="i-in" viewBox="0 0 24 24">
<path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267
5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925
2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771
24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/>
</symbol>
</svg>
<a class="skip" href="#main">Skip to content</a>
<header class="top">
<div class="wrap">
<a class="brand" href="#top" aria-label="Pulkit Chawla, home">
<svg class="mark" viewBox="0 0 32 32" aria-hidden="true" focusable="false">
<rect x="0.5" y="0.5" width="31" height="31" rx="7"/>
<path class="brk" d="M10.5 8.5H7.5v15h3M21.5 8.5h3v15h-3" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path class="chk" d="M11.5 16.5l3.5 3.5 6-8" fill="none" stroke-width="2.8" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Pulkit Chawla</span>
</a>
<nav class="nav" aria-label="Sections">
<a href="#now">Now</a>
<a href="#work">Work</a>
<a href="#projects">Projects</a>
<a href="#skills">Skills</a>
<a href="#education">Education</a>
<a href="#contact">Contact</a>
</nav>
<button class="theme" id="theme" type="button" aria-label="Switch to light theme">
<svg class="sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.9 4.9l1.4 1.4M17.7 17.7l1.4 1.4M2 12h2M20 12h2M4.9 19.1l1.4-1.4M17.7 6.3l1.4-1.4"/></svg>
<svg class="moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z"/></svg>
</button>
</div>
</header>
<main id="main">
<section class="hero" id="top">
<div class="wrap">
<div>
<p class="eyebrow"><span class="dot" aria-hidden="true"></span>AI and platform engineer, Eindhoven, Netherlands</p>
<h1>Pulkit Chawla</h1>
<p class="lede">I build the load-bearing parts of AI systems: the platform, the pipeline, <em>the gate that decides what ships.</em></p>
<p class="sub">Six years on cloud data platforms at Oracle and Qubole, owning services outright. Then an MSc in Data Science and AI at TU Eindhoven. In 2026, four agent systems I built and run myself.</p>
<div class="actions">
<a class="btn primary" href="https://github.com/thispc/thispc/raw/main/cv/Pulkit_Chawla_Resume.pdf">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 3v12M6 11l6 6 6-6M4 21h16"/></svg>
Download CV
</a>
<a class="btn" href="https://github.com/thispc">
<svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg>
GitHub
</a>
<a class="quiet" href="mailto:pulkitchawl@gmail.com">pulkitchawl@gmail.com</a>
</div>
</div>
<div class="panel" aria-label="A devteam build, one of my projects, verifying agent-written code">
<div class="panel-head">
<span class="title">devteam verify</span>
<span class="path">modules/run-tests</span>
<span class="state" id="log-state">verifying</span>
<button class="replay" id="log-replay" type="button" aria-label="Replay the log">replay</button>
</div>
<pre class="log" id="log" aria-live="off"></pre>
</div>
</div>
</section>
<section class="section" id="now">
<div class="wrap reveal">
<div class="section-head"><span class="num">01</span><h2>Now</h2></div>
<p class="intro">I'm in Eindhoven, working freelance on agent systems, and looking for a full-time engineering role in the Netherlands.</p>
<dl class="facts">
<div><dt>Availability</dt><dd class="ok">Immediate, no notice period</dd></div>
<div><dt>Based in</dt><dd>Eindhoven, Netherlands</dd></div>
<div><dt>Work authorisation</dt><dd>Full access to the Dutch labour market, no work permit needed</dd></div>
<div><dt>Relocation</dt><dd>Open to anywhere in the Netherlands, hybrid preferred</dd></div>
<div><dt>Looking for</dt><dd>AI engineer, ML platform or backend roles where I own the service end to end</dd></div>
<div><dt>Languages</dt><dd>English (fluent), Hindi (native), Dutch (learning)</dd></div>
</dl>
</div>
</section>
<section class="section" id="work">
<div class="wrap reveal">
<div class="section-head"><span class="num">02</span><h2>Work</h2></div>
<ol class="timeline">
<li class="tl-item now">
<div class="tl-when"><b>2026</b> to now</div>
<div class="tl-body">
<h3>Independent AI and software engineer</h3>
<p class="tl-org">Freelance and personal projects, Eindhoven</p>
<ul>
<li>Designed and shipped four agent systems. All four are in Projects below, with source.</li>
<li>Built a WhatsApp AI assistant for an Eindhoven student food-catering business (Twilio, Gemini and Gemma, FastAPI on DigitalOcean). It handles orders, meal selection, leave days and billing questions.</li>
<li>Built an Instagram reel fact-checker: a FastAPI and RAG backend on a Meta business account. A user forwards a reel and checks its claims in the same thread.</li>
</ul>
</div>
</li>
<li class="tl-item">
<div class="tl-when"><b>2025</b> Jan to Nov</div>
<div class="tl-body">
<h3>Graduate AI Researcher (MSc thesis), MLOps and Computer Vision</h3>
<p class="tl-org">Eindhoven University of Technology, IMAGEN Programme</p>
<ul>
<li>Built the MLOps platform behind IMAGEN, a Dutch government-funded animal-welfare research programme run by TU/e, Wageningen University and Hendrix Genetics.</li>
<li>Combined ClearML experiment tracking, SLURM scheduling and PiCaS task distribution into one workflow, with reproducible runs in Singularity containers.</li>
<li>Wrote a FAIR data pipeline that converts heterogeneous farm video into HDF5 with embedded metadata, raising data-loading throughput and cutting GPU idle time during training.</li>
<li>Exposed the pipeline through a web UI and REST API so researchers could fine-tune detection models without logging into the HPC cluster. Per-animal bounding boxes fed behavioural analysis such as feeding-order dominance.</li>
</ul>
</div>
</li>
<li class="tl-item">
<div class="tl-when"><b>2023 to 2024</b> Dec to Dec</div>
<div class="tl-body">
<h3>Software Developer (part-time), Digital Twin Team</h3>
<p class="tl-org">Eindhoven AI Systems Institute (EAISI), TU/e</p>
<ul>
<li>Built the FastAPI backend and Nuxt.js frontend of a digital twin of the TU/e campus, streaming live sensor data (temperature, humidity, occupancy) into a Unity 3D replica.</li>
<li>Modelled the campus as a graph database (building, room, sensor, readings) for room-level analytics and scenarios such as virtual fire-evacuation drills.</li>
</ul>
</div>
</li>
<li class="tl-item">
<div class="tl-when"><b>2021 to 2023</b> Jan to Aug</div>
<div class="tl-body">
<h3>Member of Technical Staff, Big Data Service</h3>
<p class="tl-org">Oracle Cloud Infrastructure, Bangalore</p>
<ul>
<li>Sole owner of the customer-facing console of OCI Big Data Service in a team of about 30 engineers. Built, tested, released and operated the Node.js UI used to manage Hadoop clusters, and trained other engineers to take it over before leaving.</li>
<li>Owned the Hive and HBase distributions: forked upstream, set up TeamCity pipelines that built and deployed every PR to staging, and back-ported upstream CVE fixes. Enterprise customers leaving Cloudera required patched builds.</li>
<li>Built control-plane features in Java Spring that exposed a per-cluster Ambari UI to customers over secure networking, replacing Cloudera Manager for migrating customers.</li>
<li>Served in the production on-call rotation, resolving P0 and P1 incidents with the US-based support and architecture teams.</li>
</ul>
</div>
</li>
<li class="tl-item">
<div class="tl-when"><b>2018 to 2020</b> Jan to Dec</div>
<div class="tl-body">
<h3>Software Engineer, then Software Engineer II, Cluster Orchestration</h3>
<p class="tl-org">Qubole (acquired by Idera), Bangalore</p>
<ul>
<li>One of three engineers owning the cluster-orchestration backend of Qubole's big-data platform: Hadoop, Spark, Presto and Hive clusters inside customer accounts on AWS, Azure and OCI.</li>
<li>Built secure tunnels between Qubole's control plane and clusters in customers' own cloud accounts, so customers could operate their clusters directly from the UI.</li>
<li>Added Datadog monitoring for cluster metrics and Jenkins QA pipelines that gated every release on client-specific integration tests across staging and production.</li>
<li>After the Idera acquisition, built StarPortal single-handedly (Moleculer.js, TypeScript, Node.js): an internal support portal with Splunk log ingestion and time-scoped Elasticsearch links. Support and sales could diagnose customer issues without waiting for a backend engineer.</li>
</ul>
</div>
</li>
</ol>
</div>
</section>
<section class="section" id="projects">
<div class="wrap reveal">
<div class="section-head"><span class="num">03</span><h2>Projects</h2></div>
<p class="intro">Four agent systems built in 2026. Each one has a security boundary that is enforced in code rather than in a prompt.</p>
<ul class="projects">
<li class="card">
<div class="card-head">
<div>
<h3><a href="https://github.com/thispc/devteam">devteam</a></h3>
<p class="kicker">A harness of microbots with contracts</p>
</div>
<a class="repo" href="https://github.com/thispc/devteam" aria-label="devteam on GitHub"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg><span class="repo-name">thispc/devteam</span></a>
</div>
<p>My first version rotted. The agents kept editing their own code until every test passed, and afterwards nobody could extend it. You cannot ask code to grade its own homework, so I moved the judging out of reach. The contract is hashed into the module's identity, the code runs in a container with no network, twice, and it faces tests it never saw.</p>
<p class="hard"><b>What is hard:</b> once an agent has read the tests it is judged by, those tests stop telling you anything. The held-out ones caught real bugs the visible suite had passed. I had also built an excellent courtroom that never held a trial. So I ran one: an AI manager hired its own team and shipped through the gate with no help from me.</p>
<p class="stat">356 commits in an end-to-end trial with zero human interventions. Cache hit 45 ms, rebuild 6.3 s.</p>
<ul class="tags"><li>Node.js</li><li>TypeScript</li><li>Docker</li><li>Claude Agent SDK</li></ul>
</li>
<li class="card">
<div class="card-head">
<div>
<h3><a href="https://github.com/thispc/humanhands">HumanHands</a></h3>
<p class="kicker">An AI that operates a Mac the way a person does</p>
</div>
<a class="repo" href="https://github.com/thispc/humanhands" aria-label="HumanHands on GitHub"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg><span class="repo-name">thispc/humanhands</span></a>
</div>
<p>It reads the screen through the macOS accessibility tree rather than screenshots, so nothing leaves the machine and the coordinates are exact. Then it moves the real cursor along a human path instead of teleporting it, and types at human speed.</p>
<p class="hard"><b>What is hard:</b> keeping passwords away from the model without making it useless. They stay in the Keychain and reach it only as placeholders, swapped in at the last instant. It refuses to type one until it has checked the site is the real one.</p>
<p class="stat">Fully native Swift across 10 SwiftPM targets. 135 tests run off-device.</p>
<ul class="tags"><li>Swift</li><li>SwiftUI</li><li>Accessibility API</li><li>CoreGraphics</li><li>Keychain</li><li>Claude</li></ul>
</li>
<li class="card">
<div class="card-head">
<div>
<h3><a href="https://github.com/thispc/nanoclaw">Personal email agent</a></h3>
<p class="kicker">A fork of the open-source NanoClaw runtime</p>
</div>
<a class="repo" href="https://github.com/thispc/nanoclaw" aria-label="nanoclaw fork on GitHub"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg><span class="repo-name">thispc/nanoclaw</span></a>
</div>
<p>I wanted something that reads my email and acts for me from my phone. The popular option had critical remote-execution bugs and a skill marketplace where about one package in eight was malicious, so I built a small one I could actually audit.</p>
<p class="hard"><b>What is hard:</b> anyone who emails me can try to talk the agent into something. So the part that reads mail has no tools at all, and the part with tools never sees raw mail. Anything going out stops at a one-tap approval that sends exactly the draft I saw.</p>
<p class="stat">Added an iMessage channel and a plain-file knowledge base (16k lines). Three daemons, 24/7 on my own hardware.</p>
<ul class="tags"><li>TypeScript</li><li>Node.js</li><li>Claude Agent SDK</li><li>Docker</li><li>SQLite</li></ul>
</li>
<li class="card">
<div class="card-head">
<div>
<h3><a href="https://github.com/thispc/trader-automata">trader-automata</a></h3>
<p class="kicker">One order, many brokerage accounts</p>
</div>
<a class="repo" href="https://github.com/thispc/trader-automata" aria-label="trader-automata on GitHub"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg><span class="repo-name">thispc/trader-automata</span></a>
</div>
<p>One trade decision mirrored across many brokerage accounts at once, which is what the copy-trading desks in India run. It turned out to be a distributed-systems and compliance problem rather than a trading one. The moat is reliability and traceability, not clever algorithms.</p>
<p class="hard"><b>What is hard:</b> partial failure is normal. One account's rejection must never undo another's fill, so every child order carries an idempotency key and every step is appended to a ledger rather than overwritten. India also requires every API order to come from one static IP registered per client.</p>
<p class="stat">Paper, connect and live stages. Deployed behind HTTPS on a static IP with a live Angel One account. 33 tests.</p>
<ul class="tags"><li>Python</li><li>FastAPI</li><li>SQLAlchemy</li><li>Next.js</li><li>TypeScript</li><li>Docker</li></ul>
</li>
</ul>
</div>
</section>
<section class="section" id="skills">
<div class="wrap reveal">
<div class="section-head"><span class="num">04</span><h2>Skills</h2></div>
<div class="skills">
<div class="skill">
<h3>Languages</h3>
<ul class="tags"><li>Python</li><li>TypeScript / JavaScript</li><li>Java</li><li>Swift</li><li>SQL</li><li>Bash</li></ul>
</div>
<div class="skill">
<h3>AI and ML</h3>
<ul class="tags"><li>LLM agents (Claude Agent SDK)</li><li>RAG and vector search (FAISS)</li><li>LangChain</li><li>PyTorch</li><li>Computer vision (detection, tracking)</li><li>Fine-tuning</li><li>Model serving and inference services</li><li>ClearML</li><li>Prompt-injection defences</li></ul>
</div>
<div class="skill">
<h3>Big data and cloud</h3>
<ul class="tags"><li>Hadoop</li><li>Spark</li><li>Presto</li><li>Hive</li><li>HBase</li><li>AWS</li><li>Azure</li><li>OCI</li><li>Docker</li><li>Kubernetes</li></ul>
</div>
<div class="skill">
<h3>Backend and tooling</h3>
<ul class="tags"><li>FastAPI</li><li>Spring</li><li>Node.js</li><li>Next.js / Nuxt.js</li><li>REST APIs</li><li>SQLAlchemy</li><li>Jenkins</li><li>TeamCity</li><li>GitHub Actions</li><li>CI/CD</li><li>SLURM</li><li>Singularity</li><li>Datadog</li><li>Splunk</li><li>Elasticsearch</li><li>Playwright</li></ul>
</div>
</div>
</div>
</section>
<section class="section" id="education">
<div class="wrap reveal">
<div class="section-head"><span class="num">05</span><h2>Education</h2></div>
<ul class="edu">
<li>
<h3>MSc Data Science and Artificial Intelligence</h3>
<p class="school">Eindhoven University of Technology, 2023 to 2025</p>
<p>Thesis: an MLOps and computer-vision pipeline for precision livestock farming in the IMAGEN programme.</p>
<p>Summer research 2024: retrieval-augmented question answering over academic documents with LangChain, the OpenAI API and FAISS, benchmarked against BM25 and TF-IDF baselines.</p>
</li>
<li>
<h3>BE Information Technology</h3>
<p class="school">Birla Institute of Technology, Mesra, 2014 to 2018</p>
<p class="grade">CGPA 8.37, First Class with Distinction</p>
<p>Summer 2017: real-time pedestrian detection at Illinois Institute of Technology, Chicago. Fine-tuned a Single Shot MultiBox Detector (VGG-16 backbone) on the Caltech Pedestrian dataset.</p>
</li>
</ul>
</div>
</section>
<section class="section contact" id="contact">
<div class="wrap reveal">
<div class="section-head"><span class="num">06</span><h2>Contact</h2></div>
<p class="big">Email is the fastest way to reach me: <a href="mailto:pulkitchawl@gmail.com">pulkitchawl@gmail.com</a></p>
<ul class="links">
<li><a href="https://linkedin.com/in/pulkitchawla11"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-in"/></svg>linkedin.com/in/pulkitchawla11</a></li>
<li><a href="https://github.com/thispc"><svg fill="currentColor" aria-hidden="true" focusable="false"><use href="#i-gh"/></svg>github.com/thispc</a></li>
<li><a href="https://github.com/thispc/thispc/raw/main/cv/Pulkit_Chawla_Resume.pdf"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M12 3v12M6 11l6 6 6-6M4 21h16"/></svg>CV (PDF)</a></li>
<li><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" style="width:16px;height:16px;vertical-align:-3px;margin-right:7px"><path d="M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z"/><circle cx="12" cy="10" r="2.5"/></svg>Eindhoven, Netherlands</li>
</ul>
</div>
</section>
</main>
<footer>
<div class="wrap">
<span>Pulkit Chawla, Eindhoven</span>
<span>Hand-written HTML and CSS. No build step, no tracking, no cookies. <a href="https://github.com/thispc/thispc.github.io">Source</a></span>
</div>
</footer>
<script src="/assets/main.js" defer></script>
</body>
</html>