Mercurial
comparison mrjunejune/test/snapshots/resume_index.html.snapshot @ 112:d6d578b49a19
[PostDog] Got CRUD working.
| author | June Park <parkjune1995@gmail.com> |
|---|---|
| date | Sun, 04 Jan 2026 11:38:44 -0800 |
| parents | 1c446ab6f945 |
| children | e7899c93da77 |
comparison
equal
deleted
inserted
replaced
| 111:48f260576059 | 112:d6d578b49a19 |
|---|---|
| 1 HTTP/1.1 301 Moved Permanently | 1 HTTP/1.1 301 Moved Permanently |
| 2 Content-Type: text/plain | 2 Content-Type: text/plain |
| 3 Content-Length: 0 | 3 Content-Length: 0 |
| 4 Connection: close | 4 Connection: close |
| 5 Body: | 5 Body: |
| 6 Location: /resume | |
| 6 | 7 |
| 7 "font/woff" crossorigin> | |
| 8 <link rel="preload" href="/public/fonts/atkinson-bold.woff" as="font" type="font/woff" crossorigin> | |
| 9 | |
| 10 <link rel="preload" href="/public/fonts/more-sugar.extras.otf" as="font" type="font/otf" crossorigin> | |
| 11 <link rel="preload" href="/public/fonts/more-sugar.regular.otf" as="font" type="font/otf" crossorigin> | |
| 12 <link rel="preload" href="/public/fonts/more-sugar.thin.otf" as="font" type="font/otf" crossorigin> | |
| 13 | |
| 14 <link rel="preload" href="/base.css" as="style" /> | |
| 15 <link rel="stylesheet" href="/base.css" /> | |
| 16 | |
| 17 | |
| 18 <link rel="stylesheet" href="markdown_to_html/index.css" /> | |
| 19 </head> | |
| 20 <body> | |
| 21 <style> | |
| 22 :root { | |
| 23 --header-background: var(--white); | |
| 24 --header-color: rgb(var(--black)); | |
| 25 --link-hover-accent: var(--awesome); | |
| 26 } | |
| 27 | |
| 28 /* Fixed icon in top left corner */ | |
| 29 #themeToggle { | |
| 30 position: fixed; | |
| 31 top: 20px; | |
| 32 left: 20px; | |
| 33 background: var(--header-background); | |
| 34 display: flex; | |
| 35 align-items: center; | |
| 36 border-radius: 50%; | |
| 37 cursor: pointer; | |
| 38 z-index: 1000; | |
| 39 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); | |
| 40 transition: transform 0.2s ease; | |
| 41 } | |
| 42 | |
| 43 #themeToggle:hover { | |
| 44 transform: scale(1.05); | |
| 45 } | |
| 46 | |
| 47 /* Professional header */ | |
| 48 header { | |
| 49 margin: auto; | |
| 50 padding: 1.5em 1em; | |
| 51 font-family: "More", sans-serif; | |
| 52 box-shadow: 0 2px 8px rgba(var(--black), 5%); | |
| 53 width: 720px; | |
| 54 max-width: calc(100% - 2em); | |
| 55 text-align: center; | |
| 56 } | |
| 57 | |
| 58 header h1 { | |
| 59 margin: 0; | |
| 60 font-size: 1.8em; | |
| 61 font-weight: 700; | |
| 62 letter-spacing: -0.5px; | |
| 63 } | |
| 64 | |
| 65 header h1 a { | |
| 66 text-decoration: none; | |
| 67 color: var(--header-color); | |
| 68 } | |
| 69 | |
| 70 header h1 a::before { | |
| 71 display: none; | |
| 72 } | |
| 73 | |
| 74 /* Mobile responsiveness */ | |
| 75 @media (max-width: 720px) { | |
| 76 #themeToggle { | |
| 77 top: 15px; | |
| 78 left: 15px; | |
| 79 } | |
| 80 | |
| 81 header { | |
| 82 padding: 1em; | |
| 83 } | |
| 84 | |
| 85 header h1 { | |
| 86 font-size: 1.5em; | |
| 87 } | |
| 88 } | |
| 89 | |
| 90 @media (max-width: 480px) { | |
| 91 #themeToggle { | |
| 92 top: 10px; | |
| 93 left: 10px; | |
| 94 } | |
| 95 | |
| 96 #themeToggle img { | |
| 97 height: 40px; | |
| 98 width: 40px; | |
| 99 } | |
| 100 | |
| 101 header h1 { | |
| 102 font-size: 1.3em; | |
| 103 } | |
| 104 } | |
| 105 | |
| 106 #logo { | |
| 107 width: 300px; | |
| 108 } | |
| 109 | |
| 110 /* 1. DEFINE THE DEFAULTS (Light Mode) */ | |
| 111 :root { | |
| 112 --logo-invert: invert(0); | |
| 113 --epi-grayscale: grayscale(0) brightness(1); | |
| 114 } | |
| 115 | |
| 116 /* 2. MANUAL DARK OVERRIDE */ | |
| 117 html.dark { | |
| 118 --logo-invert: invert(1); | |
| 119 --epi-grayscale: grayscale(1); | |
| 120 } | |
| 121 | |
| 122 /* 3. MANUAL LIGHT OVERRIDE */ | |
| 123 html.light-mode { | |
| 124 --logo-invert: invert(0); | |
| 125 --epi-grayscale: brightness(2.9) grayscale(1); | |
| 126 } | |
| 127 | |
| 128 /* 4. SYSTEM PREFERENCE */ | |
| 129 @media (prefers-color-scheme: dark) { | |
| 130 :root:not(.light-mode) { | |
| 131 --logo-invert: invert(1); | |
| 132 } | |
| 133 } | |
| 134 | |
| 135 /* 5. APPLY TO ELEMENTS */ | |
| 136 #logo { | |
| 137 -webkit-filter: var(--logo-invert); | |
| 138 filter: var(--logo-invert); | |
| 139 transition: filter 0.3s ease; | |
| 140 } | |
| 141 | |
| 142 .epi-logo { | |
| 143 -webkit-filter: var(--epi-grayscale); | |
| 144 filter: var(--epi-grayscale); | |
| 145 transition: filter 0.3s ease; | |
| 146 } | |
| 147 </style> | |
| 148 | |
| 149 <div id="themeToggle"> | |
| 150 <img id="epiChan" class="epi-logo" aria-label="Toggle dark mode" src="/public/epi_all_colors.svg" height="50" width="50"> | |
| 151 </div> | |
| 152 | |
| 153 <header> | |
| 154 <h1><a href="/">MrJuneJune</a></h1> | |
| 155 </header> | |
| 156 <script src="/index.js"></script> | |
| 157 | |
| 158 | |
| 159 <div class="header"> | |
| 160 <h1>Markdown to HTML Converter</h1> | |
| 161 </div> | |
| 162 | |
| 163 <div class="container"> | |
| 164 <div class="panel"> | |
| 165 <div class="label">Markdown Input</div> | |
| 166 <textarea id="input" placeholder="Type your markdown here..."># Welcome to Markdown Converter | |
| 167 | |
| 168 ## Features | |
| 169 | |
| 170 This converter supports: | |
| 171 | |
| 172 - **Bold text** and *italic text* | |
| 173 - [Links](https://example.com) | |
| 174 - `inline code` | |
| 175 - ~~strikethrough~~ | |
| 176 | |
| 177 ### Lists | |
| 178 | |
| 179 1. Ordered lists | |
| 180 2. Like this one | |
| 181 3. With numbers | |
| 182 | |
| 183 - Unordered lists | |
| 184 - Use dashes | |
| 185 - Or asterisks | |
| 186 | |
| 187 ### Code Blocks | |
| 188 | |
| 189 ``` | |
| 190 function example() { | |
| 191 return "Hello World"; | |
| 192 } | |
| 193 ``` | |
| 194 | |
| 195 ### Blockquotes | |
| 196 | |
| 197 > This is a blockquote | |
| 198 > It can span multiple lines | |
| 199 | |
| 200 --- | |
| 201 | |
| 202 ### Images | |
| 203 | |
| 204  | |
| 205 | |
| 206 **Try editing this text!**</textarea> | |
| 207 </div> | |
| 208 | |
| 209 <div class="panel"> | |
| 210 <div class="title"> | |
| 211 <div class="label">HTML Output</div> | |
| 212 <button id="copy"> Copy </button> | |
| 213 </div> | |
| 214 <div id="output"></div> | |
| 215 </div> | |
| 216 </div> | |
| 217 <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> | |
| 218 <small>© 2026 June Park</small> | |
| 219 </div> | |
| 220 | |
| 221 <script src="/markdown_to_html.js"></script> | |
| 222 <script> | |
| 223 function convert() { | |
| 224 output.innerHTML = ''; | |
| 225 const markdown = input.value; | |
| 226 renderMarkdown(output, markdown); | |
| 227 } | |
| 228 input.addEventListener('input', convert); | |
| 229 | |
| 230 convert(); | |
| 231 | |
| 232 copy.addEventListener('click', () => { | |
| 233 const htmlBlob = new Blob([output.innerHTML], { type: 'text/html'}); | |
| 234 const textBlob = new Blob([output.innerText], { type: 'text/plain'}); | |
| 235 const data = [new ClipboardItem({ | |
| 236 'text/html': htmlBlob, | |
| 237 'text/plain': textBlob | |
| 238 })]; | |
| 239 navigator.clipboard.write(data).then(() => { | |
| 240 copy.textContent = "Copied!"; | |
| 241 setTimeout(() => { | |
| 242 copy.textContent = "Copy"; | |
| 243 copy.classList.remove('success'); | |
| 244 }, 1000); | |
| 245 }).catch(err => { | |
| 246 console.error('Failed to copy: ', err); | |
| 247 }); | |
| 248 }); | |
| 249 </script> | |
| 250 </body> | |
| 251 </htmlLocation: / | |
| 252 | |
| 253 <p> | |
| 254 <span class="entry-title-style">Tools & Platforms:</span> | |
| 255 <span class="skill-type-style">Bazel, PostgresSQL, Mercurial, Git, Pands, Raylib, XCode</span> | |
| 256 </p> | |
| 257 <p> | |
| 258 <span class="entry-title-style"> Web Frameworks: </span> | |
| 259 <span class="skill-type-style"> Django, Rails, React, Flask</span> | |
| 260 </p> | |
| 261 <p> | |
| 262 <span class="entry-title-style"> DevOp:</span> | |
| 263 <span class="skill-type-style"> Plummi, Heroku, DigitalOcean, AWS, Google Cloud </span> | |
| 264 </p> | |
| 265 <p> | |
| 266 <span class="entry-title-style"> Language:</span> | |
| 267 <span class="skill-type-style"> English, Korean, Japanese </span> | |
| 268 </p> | |
| 269 </div> | |
| 270 | |
| 271 <!-- Experiences --> | |
| 272 <div class="sub-header"> | |
| 273 <h2 class="section-style"> Experience </h2> | |
| 274 <div class="line"></div> | |
| 275 </div> | |
| 276 <div class="flex-box"> | |
| 277 <p class="entry-title-style"> | |
| 278 <a href="https://www.meta.com/">Meta</a> | |
| 279 </p> | |
| 280 <p class="entry-location-style">San Francisco, CA, USA</p> | |
| 281 </div> | |
| 282 <div class="flex-box"> | |
| 283 <p class="entry-position-style">SOFTWARE ENGINEER</p> | |
| 284 <p class="entry-date-style">Oct, 2024 - Present</p> | |
| 285 </div> | |
| 286 <ul class="description-style"> | |
| 287 <li> | |
| 288 Took initiative on Channel Value Rule, targeting the 16% of ad traffic with both app and web destinations to improve value attribution and ROI. | |
| 289 </li> | |
| 290 <li> | |
| 291 Built full-stack features using React and Hack/GraphQL, contributing to scalable, production-ready systems. | |
| 292 </li> | |
| 293 <li> | |
| 294 Partnered with data science to design A/B tests and analyze revenue impact of ads destination. | |
| 295 </li> | |
| 296 <li> | |
| 297 Proposed and implemented alpha improvements to internal testing infrastructure, reducing test time by 50% and enhancing developer velocity. | |
| 298 </li> | |
| 299 </ul> | |
| 300 <div class="flex-box"> | |
| 301 <p class="entry-title-style"> | |
| 302 <a href="https://www.wmg.com/">Warner Music Group</a> | |
| 303 </p> | |
| 304 <p class="entry-location-style">Toronto, ON, Canada</p> | |
| 305 </div> | |
| 306 <div class="flex-box"> | |
| 307 <p class="entry-position-style">TECHNICAL LEAD ENGINEER</p> | |
| 308 <p class="entry-date-style">July, 2023 - Sept, 2024</p> | |
| 309 </div> | |
| 310 <ul class="description-style"> | |
| 311 <li> | |
| 312 Implements <a href="https://bazel.build/">bazel </a>structure for the company for TypeScript and JavaScript code base for hermiticity and stablishing standards for JavaScript and | |
| 313 </li> | |
| 314 <li> | |
| 315 TypeScript testing and code structures. | |
| 316 </li> | |
| 317 <li> | |
| 318 Led a team of five engineers in building GraphQL endpoints for client-facing applications using Apollo and AppSync, supporting over 2000 RPS and auto scaling depending on request values. | |
| 319 </li> | |
| 320 <li> | |
| 321 Improved application response times by up to 85% for graphQL response by updating database schema and SQL queries, eliminating N+1 queries and lack of indexes. | |
| 322 </li> | |
| 323 <li> | |
| 324 Developed CI/CD pipelines for backend structures. | |
| 325 </li> | |
| 326 <li> | |
| 327 Designed infrastructure for pub/sub, caching, and media processing logic. | |
| 328 </li> | |
| 329 </ul> | |
| 330 | |
| 331 <div class="flex-box"> | |
| 332 <p class="entry-title-style"> | |
| 333 <a href="https://www.google.com/">Google</a> | |
| 334 </p> | |
| 335 <p class="entry-location-style">Toronto, ON, Canada</p> | |
| 336 </div> | |
| 337 <div class="flex-box"> | |
| 338 <p class="entry-position-style">SOFTWARE ENGINEER</p> | |
| 339 <p class="entry-date-style">Feb, 2022 - July 2023</p> | |
| 340 </div> | |
| 341 <ul class="description-style"> | |
| 342 <li> | |
| 343 Implements and maintained new features relating to App Script across google workspace platform including Gmail, sheets, and Docs.</li> | |
| 344 <li> | |
| 345 Improved a response time and render time of App Script hover card components.</li> | |
| 346 <li> | |
| 347 Collaborated with a team of developers to ensure timely and accurate delivery of features.</li> | |
| 348 <li> | |
| 349 Conducted user testing and gathered feedback to iterate on features for optimal user experience.</li> | |
| 350 </ul> | |
| 351 | |
| 352 <div class="flex-box"> | |
| 353 <p class="entry-title-style"> | |
| 354 <a href="https://www.everlywell.com/">Everlywell</a> | |
| 355 </p> | |
| 356 <p class="entry-location-style">Toronto, ON, Canada</p> | |
| 357 </div> | |
| 358 <div class="flex-box"> | |
| 359 <p class="entry-position-style">SOFTWARE ENGINEER</p> | |
| 360 <p class="entry-date-style">December, 2020 - Jan, 2022</p> | |
| 361 </div> | |
| 362 <ul class="description-style"> | |
| 363 <li> | |
| 364 Maintained Amazon amplify apps to create and deploy React web applications for companies such as <a href="https://brooklynnets.everlywell.com/">NBA</a>, <a href="https://tinder.everlywell.com/">Tinder</a>, and other companies for COVID-19 at-home test kits.</li> | |
| 365 <li> | |
| 366 Implemented a script that helps accurately access and refund unused covid test kits; helping company save up to 200,000 USD.</li> | |
| 367 <li> | |
| 368 Created several Rails controllers for internal purposes; mocking end to end user experience for QA, mass refund features for CX department, and more, ultimately reducing support tickets amount by 50 percent.</li> | |
| 369 <li> | |
| 370 Implemented an audit table to help debug problems and logged which process was responsible for the change of the record using PaperTrail gems</li> | |
| 371 </ul> | |
| 372 | |
| 373 <div class="flex-box"> | |
| 374 <p class="entry-title-style"> | |
| 375 <a href="https://www.spiria.com/">Spiria</a> | |
| 376 </p> | |
| 377 <p class="entry-location-style">Oakville, ON, Canada</p> | |
| 378 </div> | |
| 379 <div class="flex-box"> | |
| 380 <p class="entry-position-style">SOFTWARE ENGINEER</p> | |
| 381 <p class="entry-date-style">October, 2018 - October, 2020</p> | |
| 382 </div> | |
| 383 <ul class="description-style"> | |
| 384 <li> | |
| 385 Constructed RESTful API endpoints in multiple different frameworks such as Django, Ruby on Rails, and Flask and automated API documentation process using swagger. | |
| 386 </li> | |
| 387 <li> | |
| 388 Designed custom rake tasks for importing production data into newly updated data structure to meet client's needs. | |
| 389 </li> | |
| 390 <li> | |
| 391 Maintained or updated staging/productions servers. Debugged problems in production postgres database using ssh and postgres console on Heroku or AWS servers | |
| 392 </li> | |
| 393 <li> | |
| 394 Collaborated in creating automation python scripts for websites and application using selenium covering for QA eliminating 80% of QA's manual work | |
| 395 </li> | |
| 396 </ul> | |
| 397 | |
| 398 <div class="flex-box"> | |
| 399 <p class="entry-title-style"> | |
| 400 <a href="https://www.apexscore.ai/">Apex Score</a> | |
| 401 </p> | |
| 402 <p class="entry-location-style">Oakville, ON, Canada</p> | |
| 403 </div> | |
| 404 <div class="flex-box"> | |
| 405 <p class="entry-position-style">SOFTWARE ENGINEER</p> | |
| 406 <p class="entry-date-style">September, 2019 - October, 2020</p> | |
| 407 </div> | |
| 408 <ul class="description-style"> | |
| 409 <li> | |
| 410 Developed custom Shapley value regression model to calculate importance of independent variables of data sets using sklearn, pandas, and numpy. | |
| 411 </li> | |
| 412 <li> | |
| 413 Created custom image uploader to Amazon s3 bucket using boto3 library. | |
| 414 </li> | |
| 415 <li> | |
| 416 Built RESTful API application using Flask framework and automated extensive API documentation pages using flask-restplus, pytest, and swagger, covering 95% of the code base. | |
| 417 </li> | |
| 418 <li> | |
| 419 Created an interactive graph using D3.js in Vue.js with data from Flask backend API. | |
| 420 </li> | |
| 421 </ul> | |
| 422 | |
| 423 <div class="sub-header"> | |
| 424 <h2 class="section-style"> Education </h2> | |
| 425 <div class="line"></div> | |
| 426 </div> | |
| 427 <div class="flex-box"> | |
| 428 <p class="entry-title-style"> | |
| 429 University of British Columbia | |
| 430 </p> | |
| 431 <p class="entry-location-style">Kelowna, British Columbia</p> | |
| 432 </div> | |
| 433 <div class="flex-box"> | |
| 434 <p class="entry-position-style">BACHELOR OF SCIENCE IN PHYSICS</p> | |
| 435 <p class="entry-date-style">2014 - 2018</p> | |
| 436 </div> | |
| 437 <div id="footer"></div> | |
| 438 </main> | |
| 439 <div style="display: flex; align-items: center; justify-content: center; margin: 30px 0px;"> | |
| 440 <small>© 2026 June Park</small> | |
| 441 </div> | |
| 442 | |
| 443 <script href="index.js"></script> | |
| 444 </body> | |
| 445 </htmlLocation: /resume | |
| 446 |