@turnipxenon/pineapple 2.4.75 → 2.4.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.idea/workspace.xml +37 -34
- package/.svelte-kit/__package__/components/PineappleSlideToggle.svelte +3 -1
- package/.svelte-kit/__package__/components/PineappleSlideToggle.svelte.d.ts +1 -0
- package/.svelte-kit/__package__/template/seaweed/SeaweedTemplate.svelte +6 -1
- package/.svelte-kit/__package__/template/seaweed/SeaweedTemplateData.js +0 -6
- package/.svelte-kit/__package__/template/seaweed/entries/EntryProps.d.ts +0 -1
- package/.svelte-kit/__package__/template/seaweed/entries/WorkExperience.svelte +19 -49
- package/.svelte-kit/generated/server/internal.js +1 -1
- package/dist/components/PineappleSlideToggle.svelte +3 -1
- package/dist/components/PineappleSlideToggle.svelte.d.ts +1 -0
- package/dist/template/seaweed/SeaweedTemplate.svelte +6 -1
- package/dist/template/seaweed/SeaweedTemplateData.js +0 -6
- package/dist/template/seaweed/entries/EntryProps.d.ts +0 -1
- package/dist/template/seaweed/entries/WorkExperience.svelte +19 -49
- package/package.json +1 -1
- package/src/lib/components/PineappleSlideToggle.svelte +3 -1
- package/src/lib/template/seaweed/SeaweedTemplate.svelte +6 -1
- package/src/lib/template/seaweed/SeaweedTemplateData.ts +1 -7
- package/src/lib/template/seaweed/entries/EntryProps.ts +0 -1
- package/src/lib/template/seaweed/entries/WorkExperience.svelte +19 -49
- package/.svelte-kit/__package__/template/seaweed/entries/DecentralizedSocialMedia.svelte +0 -52
- package/.svelte-kit/__package__/template/seaweed/entries/DecentralizedSocialMedia.svelte.d.ts +0 -17
- package/.svelte-kit/__package__/template/seaweed/entries/FullStackC.svelte +0 -33
- package/.svelte-kit/__package__/template/seaweed/entries/FullStackC.svelte.d.ts +0 -17
- package/.svelte-kit/__package__/template/seaweed/entries/ItchPromo.svelte +0 -21
- package/.svelte-kit/__package__/template/seaweed/entries/ItchPromo.svelte.d.ts +0 -17
- package/.svelte-kit/__package__/template/seaweed/entries/MigranteAlberta.svelte +0 -54
- package/.svelte-kit/__package__/template/seaweed/entries/MigranteAlberta.svelte.d.ts +0 -17
- package/.svelte-kit/__package__/template/seaweed/entries/MockUberApp.svelte +0 -35
- package/.svelte-kit/__package__/template/seaweed/entries/MockUberApp.svelte.d.ts +0 -17
- package/dist/template/seaweed/entries/DecentralizedSocialMedia.svelte +0 -52
- package/dist/template/seaweed/entries/DecentralizedSocialMedia.svelte.d.ts +0 -17
- package/dist/template/seaweed/entries/FullStackC.svelte +0 -33
- package/dist/template/seaweed/entries/FullStackC.svelte.d.ts +0 -17
- package/dist/template/seaweed/entries/ItchPromo.svelte +0 -21
- package/dist/template/seaweed/entries/ItchPromo.svelte.d.ts +0 -17
- package/dist/template/seaweed/entries/MigranteAlberta.svelte +0 -54
- package/dist/template/seaweed/entries/MigranteAlberta.svelte.d.ts +0 -17
- package/dist/template/seaweed/entries/MockUberApp.svelte +0 -35
- package/dist/template/seaweed/entries/MockUberApp.svelte.d.ts +0 -17
- package/src/lib/template/seaweed/entries/DecentralizedSocialMedia.svelte +0 -54
- package/src/lib/template/seaweed/entries/FullStackC.svelte +0 -36
- package/src/lib/template/seaweed/entries/ItchPromo.svelte +0 -23
- package/src/lib/template/seaweed/entries/MigranteAlberta.svelte +0 -62
- package/src/lib/template/seaweed/entries/MockUberApp.svelte +0 -38
package/.idea/workspace.xml
CHANGED
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
<option name="autoReloadType" value="SELECTIVE" />
|
|
5
5
|
</component>
|
|
6
6
|
<component name="ChangeListManager">
|
|
7
|
-
<list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="
|
|
8
|
-
<change afterPath="$PROJECT_DIR$/src/lib/
|
|
9
|
-
<change
|
|
10
|
-
<change beforePath="$PROJECT_DIR$/src/lib/
|
|
7
|
+
<list default="true" id="accb6ba2-c343-4f84-ad30-6e2d71eceee5" name="Changes" comment="Fix shouldAddFunNote reactivity">
|
|
8
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/SeaweedTemplateData.ts" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/template/seaweed/SeaweedTemplateData.ts" afterDir="false" />
|
|
9
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/DecentralizedSocialMedia.svelte" beforeDir="false" />
|
|
10
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/FullStackC.svelte" beforeDir="false" />
|
|
11
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/ItchPromo.svelte" beforeDir="false" />
|
|
12
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/MigranteAlberta.svelte" beforeDir="false" />
|
|
13
|
+
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/MockUberApp.svelte" beforeDir="false" />
|
|
11
14
|
<change beforePath="$PROJECT_DIR$/src/lib/template/seaweed/entries/WorkExperience.svelte" beforeDir="false" afterPath="$PROJECT_DIR$/src/lib/template/seaweed/entries/WorkExperience.svelte" afterDir="false" />
|
|
12
15
|
</list>
|
|
13
16
|
<option name="SHOW_DIALOG" value="false" />
|
|
@@ -384,31 +387,7 @@
|
|
|
384
387
|
<workItem from="1713055651151" duration="721000" />
|
|
385
388
|
<workItem from="1713056429943" duration="1789000" />
|
|
386
389
|
<workItem from="1713062148811" duration="58000" />
|
|
387
|
-
<workItem from="1713062548290" duration="
|
|
388
|
-
</task>
|
|
389
|
-
<task id="LOCAL-00148" summary="Extract plan for dynamic portfolio layout">
|
|
390
|
-
<option name="closed" value="true" />
|
|
391
|
-
<created>1712406151888</created>
|
|
392
|
-
<option name="number" value="00148" />
|
|
393
|
-
<option name="presentableId" value="LOCAL-00148" />
|
|
394
|
-
<option name="project" value="LOCAL" />
|
|
395
|
-
<updated>1712406151888</updated>
|
|
396
|
-
</task>
|
|
397
|
-
<task id="LOCAL-00149" summary="Remove floating-ui">
|
|
398
|
-
<option name="closed" value="true" />
|
|
399
|
-
<created>1712409862121</created>
|
|
400
|
-
<option name="number" value="00149" />
|
|
401
|
-
<option name="presentableId" value="LOCAL-00149" />
|
|
402
|
-
<option name="project" value="LOCAL" />
|
|
403
|
-
<updated>1712409862121</updated>
|
|
404
|
-
</task>
|
|
405
|
-
<task id="LOCAL-00150" summary="Move shouldAddFunNote to data">
|
|
406
|
-
<option name="closed" value="true" />
|
|
407
|
-
<created>1712411369641</created>
|
|
408
|
-
<option name="number" value="00150" />
|
|
409
|
-
<option name="presentableId" value="LOCAL-00150" />
|
|
410
|
-
<option name="project" value="LOCAL" />
|
|
411
|
-
<updated>1712411369641</updated>
|
|
390
|
+
<workItem from="1713062548290" duration="3245000" />
|
|
412
391
|
</task>
|
|
413
392
|
<task id="LOCAL-00151" summary="Extract runChaos to its own file">
|
|
414
393
|
<option name="closed" value="true" />
|
|
@@ -778,7 +757,31 @@
|
|
|
778
757
|
<option name="project" value="LOCAL" />
|
|
779
758
|
<updated>1713056547180</updated>
|
|
780
759
|
</task>
|
|
781
|
-
<
|
|
760
|
+
<task id="LOCAL-00197" summary="Fix exports">
|
|
761
|
+
<option name="closed" value="true" />
|
|
762
|
+
<created>1713063622000</created>
|
|
763
|
+
<option name="number" value="00197" />
|
|
764
|
+
<option name="presentableId" value="LOCAL-00197" />
|
|
765
|
+
<option name="project" value="LOCAL" />
|
|
766
|
+
<updated>1713063622000</updated>
|
|
767
|
+
</task>
|
|
768
|
+
<task id="LOCAL-00198" summary="Fix exports">
|
|
769
|
+
<option name="closed" value="true" />
|
|
770
|
+
<created>1713063644881</created>
|
|
771
|
+
<option name="number" value="00198" />
|
|
772
|
+
<option name="presentableId" value="LOCAL-00198" />
|
|
773
|
+
<option name="project" value="LOCAL" />
|
|
774
|
+
<updated>1713063644881</updated>
|
|
775
|
+
</task>
|
|
776
|
+
<task id="LOCAL-00199" summary="Fix shouldAddFunNote reactivity">
|
|
777
|
+
<option name="closed" value="true" />
|
|
778
|
+
<created>1713065626944</created>
|
|
779
|
+
<option name="number" value="00199" />
|
|
780
|
+
<option name="presentableId" value="LOCAL-00199" />
|
|
781
|
+
<option name="project" value="LOCAL" />
|
|
782
|
+
<updated>1713065626944</updated>
|
|
783
|
+
</task>
|
|
784
|
+
<option name="localTasksCounter" value="200" />
|
|
782
785
|
<servers />
|
|
783
786
|
</component>
|
|
784
787
|
<component name="TypeScriptGeneratedFilesManager">
|
|
@@ -836,9 +839,6 @@
|
|
|
836
839
|
</option>
|
|
837
840
|
</component>
|
|
838
841
|
<component name="VcsManagerConfiguration">
|
|
839
|
-
<MESSAGE value="Fix light mode contrast issues" />
|
|
840
|
-
<MESSAGE value="Attempt to fix Chip styling" />
|
|
841
|
-
<MESSAGE value="Export chip" />
|
|
842
842
|
<MESSAGE value="Add border-radius for advanced settings cards" />
|
|
843
843
|
<MESSAGE value="Fix pkg import for Chip" />
|
|
844
844
|
<MESSAGE value="Extract tailwind css utility class to local-chip" />
|
|
@@ -861,6 +861,9 @@
|
|
|
861
861
|
<MESSAGE value="Extract data out of SeaweedTemplate" />
|
|
862
862
|
<MESSAGE value="Extract experience" />
|
|
863
863
|
<MESSAGE value="Export SeaweedTemplateData" />
|
|
864
|
-
<
|
|
864
|
+
<MESSAGE value="Add more exportable types from Seaweed Refactor export index files" />
|
|
865
|
+
<MESSAGE value="Fix exports" />
|
|
866
|
+
<MESSAGE value="Fix shouldAddFunNote reactivity" />
|
|
867
|
+
<option name="LAST_COMMIT_MESSAGE" value="Fix shouldAddFunNote reactivity" />
|
|
865
868
|
</component>
|
|
866
869
|
</project>
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<script>export let checked = false;
|
|
2
2
|
export let name;
|
|
3
|
+
export let onChange = void 0;
|
|
3
4
|
import { SlideToggle } from "@skeletonlabs/skeleton";
|
|
4
5
|
</script>
|
|
5
6
|
|
|
6
7
|
<SlideToggle name={name}
|
|
7
8
|
background="bg-surface-700 dark:bg-surface-700"
|
|
8
|
-
bind:checked={checked}
|
|
9
|
+
bind:checked={checked}
|
|
10
|
+
on:change={onChange}>
|
|
9
11
|
<slot />
|
|
10
12
|
</SlideToggle>
|
|
@@ -25,7 +25,7 @@ export let linkedinSlug = "turnip-xenon";
|
|
|
25
25
|
export let domain = "http://localhost:5173/portfolio/actual/";
|
|
26
26
|
export let serverSideQueryParams = "";
|
|
27
27
|
export let experienceSection;
|
|
28
|
-
|
|
28
|
+
let entryProps = {
|
|
29
29
|
email,
|
|
30
30
|
letChaos,
|
|
31
31
|
linkedinSlug,
|
|
@@ -164,6 +164,11 @@ const updateUrl = (seaweedTemplateData2) => {
|
|
|
164
164
|
};
|
|
165
165
|
$:
|
|
166
166
|
updateUrl(seaweedTemplateData);
|
|
167
|
+
const updateSeaweedWhenFunNoteChanged = (_) => {
|
|
168
|
+
entryProps = entryProps;
|
|
169
|
+
};
|
|
170
|
+
$:
|
|
171
|
+
updateSeaweedWhenFunNoteChanged(seaweedTemplateData.shouldAddFunNote);
|
|
167
172
|
</script>
|
|
168
173
|
|
|
169
174
|
<SeaweedBaseLayout bind:shouldDisplayLeadingIcons={isSocialsGone}>
|
|
@@ -3,14 +3,8 @@ import Pengi from "./entries/Pengi.svelte";
|
|
|
3
3
|
import Hepcat from "./entries/Hepcat.svelte";
|
|
4
4
|
import ChefWings from "./entries/ChefWings.svelte";
|
|
5
5
|
import Soulwork from "./entries/Soulwork.svelte";
|
|
6
|
-
import ItchPromo from "./entries/ItchPromo.svelte";
|
|
7
|
-
import MigranteAlberta from "./entries/MigranteAlberta.svelte";
|
|
8
|
-
import DecentralizedSocialMedia from "./entries/DecentralizedSocialMedia.svelte";
|
|
9
6
|
import CustomizedYarnspinner from "./entries/CustomizedYarnspinner.svelte";
|
|
10
|
-
import FullStackC from "./entries/FullStackC.svelte";
|
|
11
|
-
import Workset from "./entries/Workset.svelte";
|
|
12
7
|
import ThisWebpage from "./entries/ThisWebpage.svelte";
|
|
13
|
-
import MockUberApp from "./entries/MockUberApp.svelte";
|
|
14
8
|
import { removeProxyWrapperOnString } from "./entry_order_config/EntryOrderConfig";
|
|
15
9
|
export var GroupGridClass;
|
|
16
10
|
(function (GroupGridClass) {
|
|
@@ -4,7 +4,7 @@ import { Accordion, AccordionItem } from "@skeletonlabs/skeleton";
|
|
|
4
4
|
import ElementVisibilityDetector from "../../../components/ElementVisbilityDetector.svelte";
|
|
5
5
|
export let entryProps;
|
|
6
6
|
export let isVisible;
|
|
7
|
-
let { email, letChaos, linkedinSlug, name
|
|
7
|
+
let { email, letChaos, linkedinSlug, name } = entryProps;
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
<div class="experience-and-about-div">
|
|
@@ -26,7 +26,7 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
26
26
|
I also graduated with BS Computing Science, Specializing in Software Practice, and a
|
|
27
27
|
certificate in Computer Game Development at University of Alberta.
|
|
28
28
|
</p>
|
|
29
|
-
{#if seaweedTemplateData
|
|
29
|
+
{#if entryProps.seaweedTemplateData.shouldAddFunNote}
|
|
30
30
|
<p>
|
|
31
31
|
I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
|
|
32
32
|
Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
|
|
@@ -53,31 +53,19 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
53
53
|
<h1>Experience</h1>
|
|
54
54
|
|
|
55
55
|
<h2>Highlight</h2>
|
|
56
|
-
<p>
|
|
57
|
-
active users</b> at Twitch (an Amazon Web Services subsidiary)</p>
|
|
56
|
+
<p>I like French Fries</p>
|
|
58
57
|
|
|
59
58
|
<h2>Software Engineer</h2>
|
|
60
59
|
<div class="two-column-separated">
|
|
61
60
|
<div>July 2023 – January 2024</div>
|
|
62
|
-
<div style="text-align: end">
|
|
61
|
+
<div style="text-align: end">Control, Remote</div>
|
|
63
62
|
</div>
|
|
64
63
|
<ul>
|
|
65
64
|
<li>
|
|
66
|
-
|
|
67
|
-
<span class="qt-go">Golang</span>
|
|
68
|
-
microservices and
|
|
69
|
-
<span class="qt-ts">Typescript</span>
|
|
70
|
-
<span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
|
|
71
|
-
<a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
|
|
72
|
-
. Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
|
|
65
|
+
Developed things
|
|
73
66
|
</li>
|
|
74
67
|
<li>
|
|
75
|
-
|
|
76
|
-
<span class="qt-aws qt-observability">Cloudwatch</span>,
|
|
77
|
-
<span class="qt-aws qt-observability">Grafana</span>,
|
|
78
|
-
<span class="qt-aws">Kinesis Data Stream</span>,
|
|
79
|
-
<span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
|
|
80
|
-
<span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
|
|
68
|
+
Woah
|
|
81
69
|
</li>
|
|
82
70
|
</ul>
|
|
83
71
|
<br>
|
|
@@ -85,24 +73,14 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
85
73
|
<h2>Software Engineer Intern</h2>
|
|
86
74
|
<div class="two-column-separated">
|
|
87
75
|
<div>May 2022 – Aug 2022</div>
|
|
88
|
-
<div style="text-align: end">
|
|
76
|
+
<div style="text-align: end">Pou Company</div>
|
|
89
77
|
</div>
|
|
90
78
|
<ul>
|
|
91
79
|
<li>
|
|
92
|
-
|
|
93
|
-
message types at different volumes that can be easily extended to target different chat services
|
|
80
|
+
Stuff
|
|
94
81
|
</li>
|
|
95
82
|
<li>
|
|
96
|
-
|
|
97
|
-
service with business logic written in <span class="qt-go">Go</span> and cloud infrastructure utilizing
|
|
98
|
-
<span
|
|
99
|
-
class="qt-infra qt-aws">ECS on Fargate, Cloudwatch, and DynamoDB</span>
|
|
100
|
-
, defined in <span class="qt-ts">Typescript</span>-flavored CDK
|
|
101
|
-
</li>
|
|
102
|
-
<li>
|
|
103
|
-
Wrote a technical specification document for the service’s MVP and possible future features, and
|
|
104
|
-
additional documentation on how to use the service and how to extend the load testing service to include
|
|
105
|
-
new services to test
|
|
83
|
+
Golang
|
|
106
84
|
</li>
|
|
107
85
|
</ul>
|
|
108
86
|
<br>
|
|
@@ -114,24 +92,16 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
114
92
|
</div>
|
|
115
93
|
<svelte:fragment slot="content">
|
|
116
94
|
<section class="more-section">
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<div
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
<
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<span class="qt-ts">Typescript</span>
|
|
128
|
-
<span class="qt-react">React</span> frontend web app that will help suggest security improvements to
|
|
129
|
-
<b>over 100k+ users daily</b>
|
|
130
|
-
</li>
|
|
131
|
-
</ul>
|
|
132
|
-
{:else}
|
|
133
|
-
niko baikal seal from toba aquarium
|
|
134
|
-
{/if}
|
|
95
|
+
<h2>Software Engineer Intern</h2>
|
|
96
|
+
<div class="two-column-separated">
|
|
97
|
+
<div>May 2021 – Dec 2021</div>
|
|
98
|
+
<div style="text-align: end">Testing</div>
|
|
99
|
+
</div>
|
|
100
|
+
<ul>
|
|
101
|
+
<li>
|
|
102
|
+
Amazing
|
|
103
|
+
</li>
|
|
104
|
+
</ul>
|
|
135
105
|
<br>
|
|
136
106
|
</section>
|
|
137
107
|
</svelte:fragment>
|
|
@@ -21,7 +21,7 @@ export const options = {
|
|
|
21
21
|
app: ({ head, body, assets, nonce, env }) => "<!DOCTYPE html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n\t\t<meta name=\"viewport\" content=\"width=device-width\" />\n\t\t" + head + "\n\t</head>\n\n\t<body data-sveltekit-preload-data=\"hover\" data-theme=\"crimson\">\n\t\t<div style=\"display: contents\" class=\"h-full overflow-hidden\">" + body + "</div>\n\t</body>\n</html>\n",
|
|
22
22
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n\t<head>\n\t\t<meta charset=\"utf-8\" />\n\t\t<title>" + message + "</title>\n\n\t\t<style>\n\t\t\tbody {\n\t\t\t\t--bg: white;\n\t\t\t\t--fg: #222;\n\t\t\t\t--divider: #ccc;\n\t\t\t\tbackground: var(--bg);\n\t\t\t\tcolor: var(--fg);\n\t\t\t\tfont-family:\n\t\t\t\t\tsystem-ui,\n\t\t\t\t\t-apple-system,\n\t\t\t\t\tBlinkMacSystemFont,\n\t\t\t\t\t'Segoe UI',\n\t\t\t\t\tRoboto,\n\t\t\t\t\tOxygen,\n\t\t\t\t\tUbuntu,\n\t\t\t\t\tCantarell,\n\t\t\t\t\t'Open Sans',\n\t\t\t\t\t'Helvetica Neue',\n\t\t\t\t\tsans-serif;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tmax-width: 32rem;\n\t\t\t\tmargin: 0 1rem;\n\t\t\t}\n\n\t\t\t.status {\n\t\t\t\tfont-weight: 200;\n\t\t\t\tfont-size: 3rem;\n\t\t\t\tline-height: 1;\n\t\t\t\tposition: relative;\n\t\t\t\ttop: -0.05rem;\n\t\t\t}\n\n\t\t\t.message {\n\t\t\t\tborder-left: 1px solid var(--divider);\n\t\t\t\tpadding: 0 0 0 1rem;\n\t\t\t\tmargin: 0 0 0 1rem;\n\t\t\t\tmin-height: 2.5rem;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t}\n\n\t\t\t.message h1 {\n\t\t\t\tfont-weight: 400;\n\t\t\t\tfont-size: 1em;\n\t\t\t\tmargin: 0;\n\t\t\t}\n\n\t\t\t@media (prefers-color-scheme: dark) {\n\t\t\t\tbody {\n\t\t\t\t\t--bg: #222;\n\t\t\t\t\t--fg: #ddd;\n\t\t\t\t\t--divider: #666;\n\t\t\t\t}\n\t\t\t}\n\t\t</style>\n\t</head>\n\t<body>\n\t\t<div class=\"error\">\n\t\t\t<span class=\"status\">" + status + "</span>\n\t\t\t<div class=\"message\">\n\t\t\t\t<h1>" + message + "</h1>\n\t\t\t</div>\n\t\t</div>\n\t</body>\n</html>\n"
|
|
23
23
|
},
|
|
24
|
-
version_hash: "
|
|
24
|
+
version_hash: "4pmjjt"
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export async function get_hooks() {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<script>export let checked = false;
|
|
2
2
|
export let name;
|
|
3
|
+
export let onChange = void 0;
|
|
3
4
|
import { SlideToggle } from "@skeletonlabs/skeleton";
|
|
4
5
|
</script>
|
|
5
6
|
|
|
6
7
|
<SlideToggle name={name}
|
|
7
8
|
background="bg-surface-700 dark:bg-surface-700"
|
|
8
|
-
bind:checked={checked}
|
|
9
|
+
bind:checked={checked}
|
|
10
|
+
on:change={onChange}>
|
|
9
11
|
<slot />
|
|
10
12
|
</SlideToggle>
|
|
@@ -25,7 +25,7 @@ export let linkedinSlug = "turnip-xenon";
|
|
|
25
25
|
export let domain = "http://localhost:5173/portfolio/actual/";
|
|
26
26
|
export let serverSideQueryParams = "";
|
|
27
27
|
export let experienceSection;
|
|
28
|
-
|
|
28
|
+
let entryProps = {
|
|
29
29
|
email,
|
|
30
30
|
letChaos,
|
|
31
31
|
linkedinSlug,
|
|
@@ -164,6 +164,11 @@ const updateUrl = (seaweedTemplateData2) => {
|
|
|
164
164
|
};
|
|
165
165
|
$:
|
|
166
166
|
updateUrl(seaweedTemplateData);
|
|
167
|
+
const updateSeaweedWhenFunNoteChanged = (_) => {
|
|
168
|
+
entryProps = entryProps;
|
|
169
|
+
};
|
|
170
|
+
$:
|
|
171
|
+
updateSeaweedWhenFunNoteChanged(seaweedTemplateData.shouldAddFunNote);
|
|
167
172
|
</script>
|
|
168
173
|
|
|
169
174
|
<SeaweedBaseLayout bind:shouldDisplayLeadingIcons={isSocialsGone}>
|
|
@@ -3,14 +3,8 @@ import Pengi from "./entries/Pengi.svelte";
|
|
|
3
3
|
import Hepcat from "./entries/Hepcat.svelte";
|
|
4
4
|
import ChefWings from "./entries/ChefWings.svelte";
|
|
5
5
|
import Soulwork from "./entries/Soulwork.svelte";
|
|
6
|
-
import ItchPromo from "./entries/ItchPromo.svelte";
|
|
7
|
-
import MigranteAlberta from "./entries/MigranteAlberta.svelte";
|
|
8
|
-
import DecentralizedSocialMedia from "./entries/DecentralizedSocialMedia.svelte";
|
|
9
6
|
import CustomizedYarnspinner from "./entries/CustomizedYarnspinner.svelte";
|
|
10
|
-
import FullStackC from "./entries/FullStackC.svelte";
|
|
11
|
-
import Workset from "./entries/Workset.svelte";
|
|
12
7
|
import ThisWebpage from "./entries/ThisWebpage.svelte";
|
|
13
|
-
import MockUberApp from "./entries/MockUberApp.svelte";
|
|
14
8
|
import { removeProxyWrapperOnString } from "./entry_order_config/EntryOrderConfig";
|
|
15
9
|
export var GroupGridClass;
|
|
16
10
|
(function (GroupGridClass) {
|
|
@@ -4,7 +4,7 @@ import { Accordion, AccordionItem } from "@skeletonlabs/skeleton";
|
|
|
4
4
|
import ElementVisibilityDetector from "../../../components/ElementVisbilityDetector.svelte";
|
|
5
5
|
export let entryProps;
|
|
6
6
|
export let isVisible;
|
|
7
|
-
let { email, letChaos, linkedinSlug, name
|
|
7
|
+
let { email, letChaos, linkedinSlug, name } = entryProps;
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
<div class="experience-and-about-div">
|
|
@@ -26,7 +26,7 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
26
26
|
I also graduated with BS Computing Science, Specializing in Software Practice, and a
|
|
27
27
|
certificate in Computer Game Development at University of Alberta.
|
|
28
28
|
</p>
|
|
29
|
-
{#if seaweedTemplateData
|
|
29
|
+
{#if entryProps.seaweedTemplateData.shouldAddFunNote}
|
|
30
30
|
<p>
|
|
31
31
|
I'm inspired by games like Harvest Moon: Friends of Mineral Town, Rune Factory 4, Theatrhythm,
|
|
32
32
|
Bravely Default: Flying Fairy, Boku no Natsuyasumi 2, and A Short Hike.
|
|
@@ -53,31 +53,19 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
53
53
|
<h1>Experience</h1>
|
|
54
54
|
|
|
55
55
|
<h2>Highlight</h2>
|
|
56
|
-
<p>
|
|
57
|
-
active users</b> at Twitch (an Amazon Web Services subsidiary)</p>
|
|
56
|
+
<p>I like French Fries</p>
|
|
58
57
|
|
|
59
58
|
<h2>Software Engineer</h2>
|
|
60
59
|
<div class="two-column-separated">
|
|
61
60
|
<div>July 2023 – January 2024</div>
|
|
62
|
-
<div style="text-align: end">
|
|
61
|
+
<div style="text-align: end">Control, Remote</div>
|
|
63
62
|
</div>
|
|
64
63
|
<ul>
|
|
65
64
|
<li>
|
|
66
|
-
|
|
67
|
-
<span class="qt-go">Golang</span>
|
|
68
|
-
microservices and
|
|
69
|
-
<span class="qt-ts">Typescript</span>
|
|
70
|
-
<span class="qt-react">React</span> codebases, across several teams, to accommodate public-facing user safety features to better comply with EU’s Digital Services Act, which applies to no more than
|
|
71
|
-
<a href="https://safety.twitch.tv/s/article/Digital-Services-Act-Information?language=en_US">30.5 million users</a>
|
|
72
|
-
. Work includes feature flags, alarms, unit tests, end-to-end testing, and documentation.
|
|
65
|
+
Developed things
|
|
73
66
|
</li>
|
|
74
67
|
<li>
|
|
75
|
-
|
|
76
|
-
<span class="qt-aws qt-observability">Cloudwatch</span>,
|
|
77
|
-
<span class="qt-aws qt-observability">Grafana</span>,
|
|
78
|
-
<span class="qt-aws">Kinesis Data Stream</span>,
|
|
79
|
-
<span class="qt-aws qt-infra">AWS CDK (infrastructure as code)</span>, and
|
|
80
|
-
<span class="qt-aws qt-cicd">CodePipeline (CI/CD)</span>
|
|
68
|
+
Woah
|
|
81
69
|
</li>
|
|
82
70
|
</ul>
|
|
83
71
|
<br>
|
|
@@ -85,24 +73,14 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
85
73
|
<h2>Software Engineer Intern</h2>
|
|
86
74
|
<div class="two-column-separated">
|
|
87
75
|
<div>May 2022 – Aug 2022</div>
|
|
88
|
-
<div style="text-align: end">
|
|
76
|
+
<div style="text-align: end">Pou Company</div>
|
|
89
77
|
</div>
|
|
90
78
|
<ul>
|
|
91
79
|
<li>
|
|
92
|
-
|
|
93
|
-
message types at different volumes that can be easily extended to target different chat services
|
|
80
|
+
Stuff
|
|
94
81
|
</li>
|
|
95
82
|
<li>
|
|
96
|
-
|
|
97
|
-
service with business logic written in <span class="qt-go">Go</span> and cloud infrastructure utilizing
|
|
98
|
-
<span
|
|
99
|
-
class="qt-infra qt-aws">ECS on Fargate, Cloudwatch, and DynamoDB</span>
|
|
100
|
-
, defined in <span class="qt-ts">Typescript</span>-flavored CDK
|
|
101
|
-
</li>
|
|
102
|
-
<li>
|
|
103
|
-
Wrote a technical specification document for the service’s MVP and possible future features, and
|
|
104
|
-
additional documentation on how to use the service and how to extend the load testing service to include
|
|
105
|
-
new services to test
|
|
83
|
+
Golang
|
|
106
84
|
</li>
|
|
107
85
|
</ul>
|
|
108
86
|
<br>
|
|
@@ -114,24 +92,16 @@ let { email, letChaos, linkedinSlug, name, seaweedTemplateData } = entryProps;
|
|
|
114
92
|
</div>
|
|
115
93
|
<svelte:fragment slot="content">
|
|
116
94
|
<section class="more-section">
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<div
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
<
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
<span class="qt-ts">Typescript</span>
|
|
128
|
-
<span class="qt-react">React</span> frontend web app that will help suggest security improvements to
|
|
129
|
-
<b>over 100k+ users daily</b>
|
|
130
|
-
</li>
|
|
131
|
-
</ul>
|
|
132
|
-
{:else}
|
|
133
|
-
niko baikal seal from toba aquarium
|
|
134
|
-
{/if}
|
|
95
|
+
<h2>Software Engineer Intern</h2>
|
|
96
|
+
<div class="two-column-separated">
|
|
97
|
+
<div>May 2021 – Dec 2021</div>
|
|
98
|
+
<div style="text-align: end">Testing</div>
|
|
99
|
+
</div>
|
|
100
|
+
<ul>
|
|
101
|
+
<li>
|
|
102
|
+
Amazing
|
|
103
|
+
</li>
|
|
104
|
+
</ul>
|
|
135
105
|
<br>
|
|
136
106
|
</section>
|
|
137
107
|
</svelte:fragment>
|
package/package.json
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
export let checked = false;
|
|
3
3
|
export let name: string;
|
|
4
|
+
export let onChange: undefined | (() => void) = undefined;
|
|
4
5
|
|
|
5
6
|
import { SlideToggle } from "@skeletonlabs/skeleton";
|
|
6
7
|
</script>
|
|
7
8
|
|
|
8
9
|
<SlideToggle name={name}
|
|
9
10
|
background="bg-surface-700 dark:bg-surface-700"
|
|
10
|
-
bind:checked={checked}
|
|
11
|
+
bind:checked={checked}
|
|
12
|
+
on:change={onChange}>
|
|
11
13
|
<slot />
|
|
12
14
|
</SlideToggle>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
export let experienceSection: ComponentType;
|
|
34
34
|
|
|
35
35
|
// region query params
|
|
36
|
-
|
|
36
|
+
let entryProps: EntryProps = {
|
|
37
37
|
email,
|
|
38
38
|
letChaos,
|
|
39
39
|
linkedinSlug,
|
|
@@ -226,6 +226,11 @@
|
|
|
226
226
|
};
|
|
227
227
|
$: updateUrl(seaweedTemplateData);
|
|
228
228
|
|
|
229
|
+
// eslint-disable-next-line
|
|
230
|
+
const updateSeaweedWhenFunNoteChanged = (_: boolean) => {
|
|
231
|
+
entryProps = entryProps;
|
|
232
|
+
};
|
|
233
|
+
$: updateSeaweedWhenFunNoteChanged(seaweedTemplateData.shouldAddFunNote);
|
|
229
234
|
</script>
|
|
230
235
|
|
|
231
236
|
<SeaweedBaseLayout bind:shouldDisplayLeadingIcons={isSocialsGone}>
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import type { ComponentType } from "svelte";
|
|
2
|
-
import { DefaultHeader
|
|
2
|
+
import { DefaultHeader } from "$pkg/template/seaweed/entries/EntryProps";
|
|
3
3
|
import Pengi from "$pkg/template/seaweed/entries/Pengi.svelte";
|
|
4
4
|
import Hepcat from "$pkg/template/seaweed/entries/Hepcat.svelte";
|
|
5
5
|
import ChefWings from "$pkg/template/seaweed/entries/ChefWings.svelte";
|
|
6
6
|
import Soulwork from "$pkg/template/seaweed/entries/Soulwork.svelte";
|
|
7
|
-
import ItchPromo from "$pkg/template/seaweed/entries/ItchPromo.svelte";
|
|
8
|
-
import MigranteAlberta from "$pkg/template/seaweed/entries/MigranteAlberta.svelte";
|
|
9
|
-
import DecentralizedSocialMedia from "$pkg/template/seaweed/entries/DecentralizedSocialMedia.svelte";
|
|
10
7
|
import CustomizedYarnspinner from "$pkg/template/seaweed/entries/CustomizedYarnspinner.svelte";
|
|
11
|
-
import FullStackC from "$pkg/template/seaweed/entries/FullStackC.svelte";
|
|
12
|
-
import Workset from "$pkg/template/seaweed/entries/Workset.svelte";
|
|
13
8
|
import ThisWebpage from "$pkg/template/seaweed/entries/ThisWebpage.svelte";
|
|
14
|
-
import MockUberApp from "$pkg/template/seaweed/entries/MockUberApp.svelte";
|
|
15
9
|
import { removeProxyWrapperOnString } from "$pkg/template/seaweed/entry_order_config/EntryOrderConfig";
|
|
16
10
|
|
|
17
11
|
export enum GroupGridClass {
|