|
@@ -0,0 +1,290 @@
|
|
|
|
|
+---
|
|
|
|
|
+import Win98Window from "./win98window.astro";
|
|
|
|
|
+
|
|
|
|
|
+type PastWorkEvent = {
|
|
|
|
|
+ from: string;
|
|
|
|
|
+ to?: string;
|
|
|
|
|
+ title: string;
|
|
|
|
|
+ org?: string;
|
|
|
|
|
+ details: string[];
|
|
|
|
|
+ leadership?: boolean;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const events: PastWorkEvent[] = [
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "2025",
|
|
|
|
|
+ to: "Current",
|
|
|
|
|
+ title: "BA, Computer Science",
|
|
|
|
|
+ org: "Widener University (Chester, PA)",
|
|
|
|
|
+ details: ["Currently studying Computer Science"],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "2025",
|
|
|
|
|
+ to: "2026",
|
|
|
|
|
+ title: "Computer Science Tutor",
|
|
|
|
|
+ org: "Widener University (Chester, PA)",
|
|
|
|
|
+ leadership: true,
|
|
|
|
|
+ details: [
|
|
|
|
|
+ "Tutored computer science coursework across the 2025–2026 school year",
|
|
|
|
|
+ "Helped students debug, understand core concepts, and build confidence",
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "Spring 2026",
|
|
|
|
|
+ title: "Representative",
|
|
|
|
|
+ org: "Computer Science Club / Student Government Association",
|
|
|
|
|
+ leadership: true,
|
|
|
|
|
+ details: [
|
|
|
|
|
+ "Served as CS Club representative within student government",
|
|
|
|
|
+ "Advocated for CS students and coordinated between orgs",
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "Jun 2024",
|
|
|
|
|
+ to: "Jul 2024",
|
|
|
|
|
+ title: "Sales Associate",
|
|
|
|
|
+ org: "Cramers Uniforms (Philadelphia, PA)",
|
|
|
|
|
+ details: [
|
|
|
|
|
+ "Delivered exceptional customer service in a fast-paced retail environment",
|
|
|
|
|
+ "Oversaw inventory management: accurate stock levels and timely restocking",
|
|
|
|
|
+ "Operated and maintained POS systems; resolved payment issues promptly",
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "Jan 2022",
|
|
|
|
|
+ to: "Jun 2022",
|
|
|
|
|
+ title: "IT Help Desk Intern",
|
|
|
|
|
+ org: "String Theory Schools (Philadelphia, PA)",
|
|
|
|
|
+ details: [
|
|
|
|
|
+ "Engineered internal tools (custom Chrome extensions) to automate routine staff workflows",
|
|
|
|
|
+ "Provided hands-on support for student-issued iPads; diagnosed and resolved software issues",
|
|
|
|
|
+ "Used internal systems to remotely manage, reset, and troubleshoot student devices",
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "Jan 2021",
|
|
|
|
|
+ to: "Dec 2021",
|
|
|
|
|
+ title: "Software Engineer / Lead Developer",
|
|
|
|
|
+ org: "Freelance (Philadelphia, PA)",
|
|
|
|
|
+ leadership: true,
|
|
|
|
|
+ details: [
|
|
|
|
|
+ "Collaborated with a client to architect and develop scripts for managing cryptocurrency assets",
|
|
|
|
|
+ "Quickly adapted to new languages/frameworks to deliver scalable, maintainable code",
|
|
|
|
|
+ ],
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ from: "2021",
|
|
|
|
|
+ to: "2025",
|
|
|
|
|
+ title: "High School",
|
|
|
|
|
+ org: "String Theory Schools (Philadelphia, PA)",
|
|
|
|
|
+ details: ["Completed high school"],
|
|
|
|
|
+ },
|
|
|
|
|
+];
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+<Win98Window
|
|
|
|
|
+ title="Past Work"
|
|
|
|
|
+ layout={{
|
|
|
|
|
+ mobile: { left: "5%", top: "14%", width: "90%", height: "70vh" },
|
|
|
|
|
+ desktop: { left: "18%", top: "16%", width: "44%", height: "62vh" },
|
|
|
|
|
+ }}
|
|
|
|
|
+>
|
|
|
|
|
+ <div class="pw">
|
|
|
|
|
+ <div class="pw-header" aria-hidden="true">
|
|
|
|
|
+ <span class="pw-path">C:\Users\simon\Career\PASTWORK.TXT</span>
|
|
|
|
|
+ <span class="pw-stamp">Last saved: just now</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="pw-body">
|
|
|
|
|
+ <ol class="pw-timeline" aria-label="Past work timeline">
|
|
|
|
|
+ {events.map((e) => (
|
|
|
|
|
+ <li class="pw-item">
|
|
|
|
|
+ <div class="pw-rail" aria-hidden="true">
|
|
|
|
|
+ <div class="pw-dot"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pw-card">
|
|
|
|
|
+ <div class="pw-top">
|
|
|
|
|
+ <div class="pw-when">
|
|
|
|
|
+ <span class="pw-from">{e.from}</span>
|
|
|
|
|
+ {e.to ? <span class="pw-to">→ {e.to}</span> : null}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ {e.leadership ? <span class="pw-badge">Leadership</span> : null}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="pw-title">{e.title}</div>
|
|
|
|
|
+ {e.org ? <div class="pw-org">{e.org}</div> : null}
|
|
|
|
|
+ <ul class="pw-details">
|
|
|
|
|
+ {e.details.map((d) => (
|
|
|
|
|
+ <li>{d}</li>
|
|
|
|
|
+ ))}
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </li>
|
|
|
|
|
+ ))}
|
|
|
|
|
+ </ol>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</Win98Window>
|
|
|
|
|
+
|
|
|
|
|
+<style>
|
|
|
|
|
+ .pw {
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ box-shadow: inset -1px -1px #fff, inset 1px 1px grey, inset -2px -2px #dfdfdf,
|
|
|
|
|
+ inset 2px 2px #0a0a0a;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ gap: 8px;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ padding: 8px 10px;
|
|
|
|
|
+ background: #d4d0c8;
|
|
|
|
|
+ border-bottom: 1px solid #808080;
|
|
|
|
|
+ box-shadow: inset 0 1px #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-path {
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ min-height: 26px;
|
|
|
|
|
+ padding: 6px 10px;
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ box-shadow: inset -1px -1px #fff, inset 1px 1px grey, inset -2px -2px #dfdfdf,
|
|
|
|
|
+ inset 2px 2px #0a0a0a;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-stamp {
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ color: #222;
|
|
|
|
|
+ padding: 4px 6px;
|
|
|
|
|
+ border: 1px solid #808080;
|
|
|
|
|
+ background: #efefef;
|
|
|
|
|
+ box-shadow: inset 0 1px #fff;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-body {
|
|
|
|
|
+ height: calc(100% - 44px);
|
|
|
|
|
+ overflow: auto;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-note {
|
|
|
|
|
+ border: 1px solid #000;
|
|
|
|
|
+ background: #ffffe1;
|
|
|
|
|
+ box-shadow: 2px 2px 0 #000;
|
|
|
|
|
+ padding: 8px 10px;
|
|
|
|
|
+ margin-bottom: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-note-title {
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ margin-bottom: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-note-text {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-timeline {
|
|
|
|
|
+ list-style: none;
|
|
|
|
|
+ padding: 0;
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-item {
|
|
|
|
|
+ display: grid;
|
|
|
|
|
+ grid-template-columns: 18px 1fr;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ align-items: stretch;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-rail {
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-rail::before {
|
|
|
|
|
+ content: "";
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ left: 8px;
|
|
|
|
|
+ top: 0;
|
|
|
|
|
+ bottom: 0;
|
|
|
|
|
+ border-left: 2px dotted #000;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-dot {
|
|
|
|
|
+ position: sticky;
|
|
|
|
|
+ top: 8px;
|
|
|
|
|
+ width: 12px;
|
|
|
|
|
+ height: 12px;
|
|
|
|
|
+ margin-left: 2px;
|
|
|
|
|
+ background: #c0c0c0;
|
|
|
|
|
+ border: 1px solid #000;
|
|
|
|
|
+ box-shadow: inset 1px 1px #fff, inset -1px -1px #808080;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-card {
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ border: 1px solid #000;
|
|
|
|
|
+ box-shadow: 2px 2px 0 #000;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-top {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ margin-bottom: 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-when {
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-to {
|
|
|
|
|
+ margin-left: 6px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-badge {
|
|
|
|
|
+ font-size: 11px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ padding: 2px 6px;
|
|
|
|
|
+ background: #000080;
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ border: 1px solid #000;
|
|
|
|
|
+ box-shadow: inset 1px 1px #1084d0;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-title {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 700;
|
|
|
|
|
+ margin-bottom: 2px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-org {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ color: #222;
|
|
|
|
|
+ margin-bottom: 8px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .pw-details {
|
|
|
|
|
+ margin: 0;
|
|
|
|
|
+ padding-left: 18px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .pw-details li {
|
|
|
|
|
+ margin: 4px 0;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @media (max-width: 510px) {
|
|
|
|
|
+ .pw-stamp {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|