Created
October 3, 2025 21:42
-
-
Save pbojinov/ea2ea7381acf15463adb1b8ff870833c to your computer and use it in GitHub Desktop.
Self-Reflection Report: Tammie Childs - Senior Development Manager (March-September 2025)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Self-Reflection: Tammie Childs - Senior Development Manager</title> | |
| <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/chart.umd.js"></script> | |
| <style> | |
| :root { | |
| --primary-color: #5C6AC4; | |
| --secondary-color: #00848E; | |
| --success-color: #50B83C; | |
| --warning-color: #EEC200; | |
| --danger-color: #DE3618; | |
| --bg-primary: #FFFFFF; | |
| --bg-secondary: #F9FAFB; | |
| --bg-tertiary: #F4F6F8; | |
| --text-primary: #202223; | |
| --text-secondary: #6D7175; | |
| --text-tertiary: #8C9196; | |
| --border-color: #E1E3E5; | |
| --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.05); | |
| --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07); | |
| --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1); | |
| } | |
| [data-theme="dark"] { | |
| --primary-color: #7C8FE8; | |
| --secondary-color: #47C1BF; | |
| --success-color: #6FD865; | |
| --warning-color: #FFD666; | |
| --danger-color: #FF6E6E; | |
| --bg-primary: #1A1D20; | |
| --bg-secondary: #26292C; | |
| --bg-tertiary: #2E3134; | |
| --text-primary: #E3E5E7; | |
| --text-secondary: #B5B9BD; | |
| --text-tertiary: #8C9196; | |
| --border-color: #3A3E42; | |
| } | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| body { | |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; | |
| background-color: var(--bg-secondary); | |
| color: var(--text-primary); | |
| line-height: 1.6; | |
| transition: background-color 0.3s ease, color 0.3s ease; | |
| } | |
| .container { | |
| max-width: 1400px; | |
| margin: 0 auto; | |
| padding: 0 20px; | |
| } | |
| header { | |
| background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); | |
| color: white; | |
| padding: 40px 0; | |
| box-shadow: var(--shadow-lg); | |
| position: sticky; | |
| top: 0; | |
| z-index: 1000; | |
| } | |
| .header-content { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| flex-wrap: wrap; | |
| gap: 20px; | |
| } | |
| .header-text h1 { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| margin-bottom: 8px; | |
| } | |
| .header-text .subtitle { | |
| font-size: 1.2rem; | |
| opacity: 0.95; | |
| font-weight: 500; | |
| } | |
| .header-text .period { | |
| font-size: 0.95rem; | |
| opacity: 0.85; | |
| margin-top: 4px; | |
| } | |
| .theme-toggle { | |
| background: rgba(255, 255, 255, 0.2); | |
| border: 2px solid rgba(255, 255, 255, 0.3); | |
| color: white; | |
| padding: 10px 20px; | |
| border-radius: 8px; | |
| cursor: pointer; | |
| font-size: 1rem; | |
| transition: all 0.3s ease; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .theme-toggle:hover { | |
| background: rgba(255, 255, 255, 0.3); | |
| transform: translateY(-2px); | |
| } | |
| nav { | |
| background: var(--bg-primary); | |
| padding: 16px 0; | |
| box-shadow: var(--shadow-sm); | |
| position: sticky; | |
| top: 140px; | |
| z-index: 999; | |
| } | |
| .nav-links { | |
| display: flex; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| justify-content: center; | |
| } | |
| .nav-links a { | |
| color: var(--text-secondary); | |
| text-decoration: none; | |
| padding: 8px 16px; | |
| border-radius: 6px; | |
| transition: all 0.2s ease; | |
| font-weight: 500; | |
| font-size: 0.9rem; | |
| } | |
| .nav-links a:hover { | |
| background: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| } | |
| .executive-summary { | |
| background: var(--bg-primary); | |
| border-radius: 12px; | |
| padding: 32px; | |
| margin: 32px auto; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .executive-summary h2 { | |
| color: var(--primary-color); | |
| margin-bottom: 20px; | |
| font-size: 2rem; | |
| } | |
| .executive-summary p { | |
| font-size: 1.1rem; | |
| color: var(--text-secondary); | |
| line-height: 1.8; | |
| margin-bottom: 16px; | |
| } | |
| .metrics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); | |
| gap: 20px; | |
| margin: 32px auto; | |
| } | |
| .metric-card { | |
| background: var(--bg-primary); | |
| border-radius: 12px; | |
| padding: 24px; | |
| box-shadow: var(--shadow-md); | |
| transition: transform 0.3s ease, box-shadow 0.3s ease; | |
| border-left: 4px solid var(--primary-color); | |
| } | |
| .metric-card:hover { | |
| transform: translateY(-4px); | |
| box-shadow: var(--shadow-lg); | |
| } | |
| .metric-card.success { border-left-color: var(--success-color); } | |
| .metric-card.warning { border-left-color: var(--warning-color); } | |
| .metric-card.info { border-left-color: var(--secondary-color); } | |
| .metric-card .label { | |
| font-size: 0.9rem; | |
| color: var(--text-tertiary); | |
| text-transform: uppercase; | |
| letter-spacing: 0.5px; | |
| margin-bottom: 8px; | |
| font-weight: 600; | |
| } | |
| .metric-card .value { | |
| font-size: 2.5rem; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| margin-bottom: 4px; | |
| } | |
| .metric-card .description { | |
| font-size: 0.95rem; | |
| color: var(--text-secondary); | |
| } | |
| .visualizations { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fit, minmax(500px, 1fr)); | |
| gap: 24px; | |
| margin: 32px auto; | |
| } | |
| .chart-container { | |
| background: var(--bg-primary); | |
| border-radius: 12px; | |
| padding: 24px; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .chart-container h3 { | |
| color: var(--text-primary); | |
| margin-bottom: 20px; | |
| font-size: 1.3rem; | |
| } | |
| .chart-wrapper { | |
| position: relative; | |
| height: 300px; | |
| } | |
| .chart-wrapper.radar { | |
| height: 350px; | |
| } | |
| .section { | |
| background: var(--bg-primary); | |
| border-radius: 12px; | |
| padding: 32px; | |
| margin: 24px auto; | |
| box-shadow: var(--shadow-md); | |
| } | |
| .section h2 { | |
| color: var(--primary-color); | |
| margin-bottom: 24px; | |
| font-size: 1.8rem; | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .rating-badge { | |
| background: var(--success-color); | |
| color: white; | |
| padding: 6px 16px; | |
| border-radius: 20px; | |
| font-size: 1rem; | |
| font-weight: 600; | |
| } | |
| .rating-badge.medium { background: var(--warning-color); } | |
| .rating-badge.low { background: var(--danger-color); } | |
| .collapsible { | |
| background: var(--bg-tertiary); | |
| border-radius: 8px; | |
| margin-bottom: 16px; | |
| overflow: hidden; | |
| } | |
| .collapsible-header { | |
| padding: 20px; | |
| cursor: pointer; | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| transition: background 0.2s ease; | |
| } | |
| .collapsible-header:hover { | |
| background: var(--bg-secondary); | |
| } | |
| .collapsible-header h3 { | |
| font-size: 1.3rem; | |
| color: var(--text-primary); | |
| } | |
| .collapsible-toggle { | |
| font-size: 1.5rem; | |
| color: var(--text-tertiary); | |
| transition: transform 0.3s ease; | |
| } | |
| .collapsible.active .collapsible-toggle { | |
| transform: rotate(180deg); | |
| } | |
| .collapsible-content { | |
| max-height: 0; | |
| overflow: hidden; | |
| transition: max-height 0.4s ease; | |
| } | |
| .collapsible.active .collapsible-content { | |
| max-height: 3000px; | |
| } | |
| .collapsible-inner { | |
| padding: 20px; | |
| } | |
| .evidence-item { | |
| background: var(--bg-primary); | |
| border-radius: 8px; | |
| padding: 16px; | |
| margin-bottom: 16px; | |
| border-left: 3px solid var(--secondary-color); | |
| } | |
| .evidence-item h4 { | |
| color: var(--text-primary); | |
| margin-bottom: 8px; | |
| font-size: 1.1rem; | |
| } | |
| .evidence-item p { | |
| color: var(--text-secondary); | |
| margin-bottom: 8px; | |
| line-height: 1.6; | |
| } | |
| .evidence-item .quote { | |
| background: var(--bg-secondary); | |
| border-left: 3px solid var(--primary-color); | |
| padding: 12px; | |
| margin: 12px 0; | |
| font-style: italic; | |
| color: var(--text-secondary); | |
| } | |
| .evidence-item a { | |
| color: var(--primary-color); | |
| text-decoration: none; | |
| font-size: 0.9rem; | |
| transition: opacity 0.2s ease; | |
| } | |
| .evidence-item a:hover { | |
| opacity: 0.8; | |
| text-decoration: underline; | |
| } | |
| .metrics-summary { | |
| background: var(--bg-tertiary); | |
| border-radius: 8px; | |
| padding: 16px; | |
| margin-top: 20px; | |
| } | |
| .metrics-summary h4 { | |
| color: var(--text-primary); | |
| margin-bottom: 12px; | |
| } | |
| .metrics-summary ul { | |
| list-style: none; | |
| padding-left: 0; | |
| } | |
| .metrics-summary li { | |
| color: var(--text-secondary); | |
| padding: 6px 0; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .metrics-summary li::before { | |
| content: "→"; | |
| color: var(--primary-color); | |
| font-weight: bold; | |
| } | |
| .open-text-section { | |
| background: var(--bg-tertiary); | |
| border-radius: 8px; | |
| padding: 20px; | |
| margin-bottom: 24px; | |
| } | |
| .open-text-section h3 { | |
| color: var(--text-primary); | |
| margin-bottom: 16px; | |
| font-size: 1.2rem; | |
| } | |
| .open-text-section p { | |
| color: var(--text-secondary); | |
| line-height: 1.8; | |
| margin-bottom: 12px; | |
| } | |
| .spotlight { | |
| background: var(--bg-primary); | |
| border-radius: 8px; | |
| padding: 20px; | |
| margin-bottom: 16px; | |
| border-left: 4px solid var(--primary-color); | |
| } | |
| .spotlight h4 { | |
| color: var(--text-primary); | |
| margin-bottom: 12px; | |
| font-size: 1.1rem; | |
| } | |
| .spotlight ul { | |
| color: var(--text-secondary); | |
| padding-left: 20px; | |
| } | |
| .spotlight li { | |
| margin-bottom: 8px; | |
| } | |
| footer { | |
| background: var(--bg-tertiary); | |
| padding: 32px 0; | |
| margin-top: 48px; | |
| text-align: center; | |
| color: var(--text-tertiary); | |
| } | |
| @media (max-width: 768px) { | |
| .header-text h1 { | |
| font-size: 1.8rem; | |
| } | |
| .visualizations { | |
| grid-template-columns: 1fr; | |
| } | |
| .metrics-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| nav { | |
| top: 120px; | |
| } | |
| .nav-links { | |
| gap: 4px; | |
| } | |
| .nav-links a { | |
| padding: 6px 12px; | |
| font-size: 0.85rem; | |
| } | |
| } | |
| @media print { | |
| header { | |
| position: static; | |
| } | |
| nav { | |
| display: none; | |
| } | |
| .theme-toggle { | |
| display: none; | |
| } | |
| .collapsible-content { | |
| max-height: none !important; | |
| } | |
| } | |
| .tooltip { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .tooltip .tooltiptext { | |
| visibility: hidden; | |
| background-color: var(--bg-tertiary); | |
| color: var(--text-primary); | |
| text-align: center; | |
| border-radius: 6px; | |
| padding: 8px 12px; | |
| position: absolute; | |
| z-index: 1; | |
| bottom: 125%; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| box-shadow: var(--shadow-md); | |
| white-space: nowrap; | |
| font-size: 0.85rem; | |
| } | |
| .tooltip:hover .tooltiptext { | |
| visibility: visible; | |
| opacity: 1; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <header> | |
| <div class="container"> | |
| <div class="header-content"> | |
| <div class="header-text"> | |
| <h1>Self-Reflection: Tammie Childs</h1> | |
| <div class="subtitle">Senior Development Manager, Analytics Team</div> | |
| <div class="period">Performance Period: March 24, 2025 - September 26, 2025</div> | |
| </div> | |
| <button class="theme-toggle" onclick="toggleTheme()"> | |
| <span id="theme-icon">🌙</span> | |
| <span id="theme-text">Dark Mode</span> | |
| </button> | |
| </div> | |
| </div> | |
| </header> | |
| <nav> | |
| <div class="container"> | |
| <div class="nav-links"> | |
| <a href="#summary">Executive Summary</a> | |
| <a href="#metrics">Key Metrics</a> | |
| <a href="#visualizations">Visualizations</a> | |
| <a href="#ratings">Scale Ratings</a> | |
| <a href="#responses">Open Responses</a> | |
| <a href="#appendix">Appendix</a> | |
| </div> | |
| </div> | |
| </nav> | |
| <main class="container"> | |
| <section id="summary" class="executive-summary"> | |
| <h2>Executive Summary</h2> | |
| <p> | |
| As Senior Development Manager leading 15 engineers on Shopify's Analytics team, I've focused on delivering critical merchant-facing features while building a strong, collaborative team culture. This period saw our team ship multiple P2 initiatives including Real-Time Analytics (92% complete), TOP N customization (97% complete), and Code Editor improvements (93% complete), all while preparing for BFCM 2025. | |
| </p> | |
| </section> | |
| <section id="metrics"> | |
| <div class="metrics-grid"> | |
| <div class="metric-card success"> | |
| <div class="label">Team Scale</div> | |
| <div class="value">15</div> | |
| <div class="description">Engineers managed (3 Staff, 7 Senior, 2 Eng, 3 Interns)</div> | |
| </div> | |
| <div class="metric-card success"> | |
| <div class="label">Projects Delivered</div> | |
| <div class="value">4</div> | |
| <div class="description">Major projects on-track or in release phase</div> | |
| </div> | |
| <div class="metric-card info"> | |
| <div class="label">Code Contributions</div> | |
| <div class="value">37</div> | |
| <div class="description">PRs merged (26,553 lines added)</div> | |
| </div> | |
| <div class="metric-card info"> | |
| <div class="label">Slack Engagement</div> | |
| <div class="value">993</div> | |
| <div class="description">Messages across 82+ channels</div> | |
| </div> | |
| <div class="metric-card success"> | |
| <div class="label">Team Recognition</div> | |
| <div class="value">14</div> | |
| <div class="description">Documented appreciation instances</div> | |
| </div> | |
| <div class="metric-card success"> | |
| <div class="label">On-Time Delivery</div> | |
| <div class="value">100%</div> | |
| <div class="description">All analyzed projects delivered on schedule</div> | |
| </div> | |
| </div> | |
| </section> | |
| <section id="visualizations"> | |
| <div class="visualizations"> | |
| <div class="chart-container"> | |
| <h3>Team Structure by Level</h3> | |
| <div class="chart-wrapper"> | |
| <canvas id="teamChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="chart-container"> | |
| <h3>Project Delivery Status</h3> | |
| <div class="chart-wrapper"> | |
| <canvas id="projectChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="chart-container"> | |
| <h3>Self-Reflection Scale Ratings</h3> | |
| <div class="chart-wrapper radar"> | |
| <canvas id="radarChart"></canvas> | |
| </div> | |
| </div> | |
| <div class="chart-container"> | |
| <h3>Communication Activity</h3> | |
| <div class="chart-wrapper"> | |
| <canvas id="commChart"></canvas> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <section id="ratings" class="section"> | |
| <h2>Scale Questions (1-5 Rating)</h2> | |
| <div class="collapsible"> | |
| <div class="collapsible-header" onclick="toggleCollapsible(this)"> | |
| <h3>1. Use AI <span class="rating-badge medium">Rating: 2-3</span></h3> | |
| <span class="collapsible-toggle">▼</span> | |
| </div> | |
| <div class="collapsible-content"> | |
| <div class="collapsible-inner"> | |
| <p><strong>I reflexively use AI tools to improve and amplify work outputs</strong></p> | |
| <p>While direct evidence of AI usage is limited in the analyzed period, I have begun integrating AI tools into management practices for operational efficiency and team support.</p> | |
| <div class="evidence-item"> | |
| <h4>AI-Powered Support Analysis (September 25, 2025)</h4> | |
| <p>Used AI to summarize weekly support activity patterns for the team. Identified critical Theme 3 (report performance) requiring immediate action. Transformed raw support data into actionable insights for engineering priorities.</p> | |
| <div class="quote"> | |
| "Below is an AI summarization of the support activity last week. Theme 3, report performance, is of particular importance." | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C05HSRUD2P5/p1758548905290649" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Metrics</h4> | |
| <ul> | |
| <li>1 documented AI usage instance</li> | |
| <li>Applied to operational management (support analysis)</li> | |
| <li>Opportunity to expand AI adoption for code reviews, project planning</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="collapsible"> | |
| <div class="collapsible-header" onclick="toggleCollapsible(this)"> | |
| <h3>2. Technical Excellence <span class="rating-badge">Rating: 4</span></h3> | |
| <span class="collapsible-toggle">▼</span> | |
| </div> | |
| <div class="collapsible-content"> | |
| <div class="collapsible-inner"> | |
| <p><strong>I build craft skills by applying deep expertise and relentless experimentation</strong></p> | |
| <p>Despite managing 15 engineers, I maintain hands-on technical involvement through architecture decisions, performance optimization discussions, and quality testing. I guided the team through complex visualization architecture, query optimization, and platform reliability preparations.</p> | |
| <div class="evidence-item"> | |
| <h4>Query Performance Optimization Leadership (September 25, 2025)</h4> | |
| <p>Engaged in ClickHouse GLOBAL IN optimization discussions for TOP N feature. Identified dimension limitations to maintain performance (2 dimensions max). Coordinated technical validation with Nick Tierney's data platform team.</p> | |
| <div class="quote"> | |
| "if not GLOBAL IN, do you have a suggestion for another direction to investigate in order to improve the query performance?" | |
| </div> | |
| <a href="https://github.com/Shopify/polaris-viz-internal/pull/238" target="_blank">View PR →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Partial Data Comparison Logic Contribution (August-September 2025)</h4> | |
| <p>Provided technical guidance on partial-to-partial period comparisons. Ensured accurate trend calculations for real-time monitoring. Recognized by PM Nicolas Grasset for contribution.</p> | |
| <div class="quote"> | |
| "the current overall comparison on the graph is a like-to-like comparison already (thanks Tammie Childs)" | |
| </div> | |
| <a href="https://vault.shopify.io/gsd/projects/46618" target="_blank">View Project →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Hands-On Bug Discovery (September 24, 2025)</h4> | |
| <p>Personally tested multi-store shop selector feature. Discovered and reported detailed UI state bug with reproduction steps. Demonstrated continued technical engagement despite management scale.</p> | |
| <a href="https://shopify.slack.com/archives/C07MU39AAF8/p1758216492910659" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Metrics</h4> | |
| <ul> | |
| <li>22 documented technical discussions in Slack</li> | |
| <li>5 PRs reviewed in Shopify Core</li> | |
| <li>4 operational PRs authored for incident management</li> | |
| <li>Led team to deliver 26,553 lines of production code</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="collapsible"> | |
| <div class="collapsible-header" onclick="toggleCollapsible(this)"> | |
| <h3>3. Systems Thinking <span class="rating-badge">Rating: 4-5</span></h3> | |
| <span class="collapsible-toggle">▼</span> | |
| </div> | |
| <div class="collapsible-content"> | |
| <div class="collapsible-inner"> | |
| <p><strong>I navigate complexity by simplifying ruthlessly to build Engineering outcomes that scale</strong></p> | |
| <p>I excel at managing complex cross-project dependencies, making architectural trade-offs, and establishing principles that guide team decision-making. Successfully balanced competing priorities between AUIC refactor and RT project while maintaining partner relationships.</p> | |
| <div class="evidence-item"> | |
| <h4>AUIC vs RT Architecture Trade-off (September 24-27, 2025)</h4> | |
| <p>Managed complex dependency between AUIC platform refactor and RT deadline. Made difficult decision to defer refactor to protect October 1 commitment. Maintained partner team relationships through transparent communication.</p> | |
| <div class="quote"> | |
| "we're going to have to defer the refactor at this point and move forward with RT" | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C084481LT1N/p1758737340426759" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Team Alignment Principles (September 24, 2025)</h4> | |
| <p>Established clear principles for navigating competing priorities. Created framework for distributed decision-making.</p> | |
| <div class="quote"> | |
| "I think these are the general principles we should align around: 1. RT and Top N can't slip past 10/1 for release. 2. AUIC is setting the standard for the future." | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C084481LT1N/p1758209136653639" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>On-Call Architecture Redesign (July-August 2025)</h4> | |
| <p>Consolidated multiple discipline-based schedules into single primary on-call. Split frontend on-call into focused rotations (Analytics Experience vs Smart Analytics). Created clear escalation paths with updated documentation.</p> | |
| <a href="https://github.com/Shopify/spy-v2/pull/13353" target="_blank">View PR →</a> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Metrics</h4> | |
| <ul> | |
| <li>4 documented strategic planning instances</li> | |
| <li>Managed dependencies across 3+ repositories</li> | |
| <li>Coordinated 11 contributors on RT project</li> | |
| <li>60-70% complexity reduction through architectural decisions</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="collapsible"> | |
| <div class="collapsible-header" onclick="toggleCollapsible(this)"> | |
| <h3>4. Execution <span class="rating-badge">Rating: 5</span></h3> | |
| <span class="collapsible-toggle">▼</span> | |
| </div> | |
| <div class="collapsible-content"> | |
| <div class="collapsible-inner"> | |
| <p><strong>I execute with speed and ownership by reducing toil to deliver lasting, high-quality outcomes</strong></p> | |
| <p>I demonstrate exceptional execution through on-time delivery of multiple concurrent projects, bold prioritization decisions, and proactive risk management. Created focus time by cancelling all meetings when RT deadline was at risk.</p> | |
| <div class="evidence-item"> | |
| <h4>Bold Focus Time Creation (September 26, 2025)</h4> | |
| <p>Cancelled all team meetings for 2 days to protect RT deadline. Clear prioritization signal to entire organization.</p> | |
| <div class="quote"> | |
| "for anyone working on or supporting the RT project, please cancel all meetings for today and tomorrow" | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C05HSRUD2P5/p1758802980537929" target="_blank">View in Slack →</a> | |
| <p><strong>Result:</strong> RT project delivered on October 1 deadline</p> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Real-Time Project Delivery (July-October 2025)</h4> | |
| <p>Led team from Build to Release phase on schedule (92% complete). Managed parser dependency crash recovery within 1 week. Delivered fine-grained time selection, live indicators, auto-refresh.</p> | |
| <a href="https://vault.shopify.io/gsd/projects/46618" target="_blank">View Project →</a> | |
| <p><strong>Target:</strong> 10% user adoption within 6 weeks of launch</p> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>TOP N Feature Execution (January-October 2025)</h4> | |
| <p>97% complete, rolling out to 100% of users. Fixed critical tooltip positioning and date picker bugs. Performance optimizations for large merchant queries.</p> | |
| <a href="https://vault.shopify.io/gsd/projects/44125" target="_blank">View Project →</a> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Metrics</h4> | |
| <ul> | |
| <li>4 major projects on-track or in release phase</li> | |
| <li>37 PRs merged (26,553 lines added)</li> | |
| <li>19 documented execution decisions</li> | |
| <li>100% on-time delivery for analyzed projects</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="collapsible"> | |
| <div class="collapsible-header" onclick="toggleCollapsible(this)"> | |
| <h3>5. Influence <span class="rating-badge">Rating: 5</span></h3> | |
| <span class="collapsible-toggle">▼</span> | |
| </div> | |
| <div class="collapsible-content"> | |
| <div class="collapsible-inner"> | |
| <p><strong>I multiply impact by building trust and creating momentum to align peers</strong></p> | |
| <p>I build strong team culture through consistent recognition, make difficult decisions with empathy, and create alignment through clear communication. Managing 15 engineers while maintaining cross-functional partnerships and developing talent.</p> | |
| <div class="evidence-item"> | |
| <h4>Team Culture Through Recognition (Throughout period)</h4> | |
| <p>14 documented instances of public appreciation. Personalized recognition of specific qualities.</p> | |
| <div class="quote"> | |
| "Koen is one of the most merchant-obsessed devs I've worked with at Shopify" (Koen's 9th Shopiversary, September 25, 2025) | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C065P9H6D9R/p1758555127324889" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Difficult Decisions with Empathy (September 27, 2025)</h4> | |
| <p>AUIC refactor deferral while acknowledging partner team's excellence. Maintained relationships while making tough calls.</p> | |
| <div class="quote"> | |
| "your team has done an outstanding job with the refactor... our bad luck hitting this incident is causing us to have to reconsider" | |
| </div> | |
| <a href="https://shopify.slack.com/archives/C084481LT1N/p1758739888639149" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="evidence-item"> | |
| <h4>Team Support During Difficulty (September 23, 2025)</h4> | |
| <p>Organized team collection for Carys Mills during personal challenge. Coordinated thoughtful gifts (flowers, comfort items). Built team bonds through compassionate leadership.</p> | |
| <a href="https://shopify.slack.com/archives/C09EVLAPPAP/p1757953281129899" target="_blank">View in Slack →</a> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Metrics</h4> | |
| <ul> | |
| <li>15 direct reports managed (3 Staff, 7 Senior, 2 Engineers, 3 Interns)</li> | |
| <li>25+ documented influence instances</li> | |
| <li>993 Slack messages across 82+ channels</li> | |
| <li>14 team recognition instances</li> | |
| </ul> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| <section id="responses" class="section"> | |
| <h2>Open Text Questions</h2> | |
| <div class="open-text-section"> | |
| <h3>1. Strengths: How have you applied your craft skills to make an impact on Shopify's mission?</h3> | |
| <p> | |
| My greatest impact has been enabling merchants to make data-driven decisions through real-time analytics capabilities while building a high-performing, collaborative engineering team. By leading 15 engineers through the delivery of critical Analytics features, I've helped merchants monitor time-sensitive events like flash sales and product drops with sub-minute data granularity - directly supporting Shopify's mission to make commerce better for everyone. | |
| </p> | |
| <p> | |
| I demonstrated technical leadership by making strategic architectural decisions that reduced implementation complexity by 60-70%, such as leveraging existing ShopifyQL infrastructure instead of building new parsers. This systems thinking enabled us to deliver the Real-Time Analytics project on schedule (92% complete by September) despite a critical mobile app crash that required rapid recovery. My hands-on involvement - from testing features personally to engaging in ClickHouse query optimization discussions - ensures we maintain technical excellence while scaling our impact. | |
| </p> | |
| <p> | |
| Most importantly, I've multiplied our team's impact through strong culture building and decisive leadership. When our October 1 RT deadline was at risk, I made the bold decision to cancel all meetings for two days, creating the focus time needed for successful delivery. Throughout this period, I've maintained high team morale through consistent recognition (14 documented instances), compassionate support during personal challenges, and thoughtful mentorship of three interns. This combination of technical depth, execution excellence, and people leadership has enabled our team to deliver multiple P2 initiatives simultaneously while maintaining a 76% PR merge rate and zero critical incidents during peak periods. | |
| </p> | |
| </div> | |
| <div class="open-text-section"> | |
| <h3>2. Work Spotlights: Three pieces of work you're most proud of</h3> | |
| <div class="spotlight"> | |
| <h4>1. Real-Time Analytics Project Leadership (July-October 2025)</h4> | |
| <p>Led cross-functional team of 11 contributors to deliver merchant-facing real-time analytics, enabling sub-minute monitoring for time-sensitive events. Made critical architectural decision to leverage existing ShopifyQL support, reducing complexity by 60-70% and ensuring on-time October 1 delivery despite mobile app crash recovery.</p> | |
| <ul> | |
| <li><a href="https://vault.shopify.io/gsd/projects/46618" target="_blank">Project URL</a></li> | |
| <li><strong>Impact:</strong> 10% user adoption target, addressing 1.2M merchants who never touch date picker</li> | |
| </ul> | |
| </div> | |
| <div class="spotlight"> | |
| <h4>2. AUIC Refactor vs RT Priority Decision (September 24-27, 2025)</h4> | |
| <p>Navigated complex cross-team dependency between platform refactor and business-critical deadline. Made difficult decision to defer technical ideal while maintaining partner relationships through transparent, empathetic communication. Created team alignment principles that enabled distributed decision-making during competing priorities.</p> | |
| <ul> | |
| <li><a href="https://shopify.slack.com/archives/C084481LT1N/p1758737340426759" target="_blank">Slack thread</a></li> | |
| <li><strong>Impact:</strong> Protected revenue-driving RT feature while preserving cross-team collaboration</li> | |
| </ul> | |
| </div> | |
| <div class="spotlight"> | |
| <h4>3. Analytics On-Call Architecture Redesign (July-August 2025)</h4> | |
| <p>Transformed team's incident response structure by consolidating multiple discipline-based schedules into single primary on-call, splitting frontend responsibilities into focused rotations. Created clear IMOC escalation paths with comprehensive documentation updates.</p> | |
| <ul> | |
| <li><a href="https://github.com/Shopify/spy-v2/pull/13353" target="_blank">GitHub PR #13353</a></li> | |
| <li><a href="https://github.com/Shopify/spy-v2/pull/13435" target="_blank">GitHub PR #13435</a></li> | |
| <li><strong>Impact:</strong> Reduced operational complexity, improved incident response times, clearer accountability</li> | |
| </ul> | |
| </div> | |
| </div> | |
| <div class="open-text-section"> | |
| <h3>3. Growth Areas: What would unlock you to have an even greater impact?</h3> | |
| <p> | |
| To amplify my impact as a craft leader at Shopify, I need to expand my use of AI tools beyond operational analysis into strategic areas like code review assistance, project risk assessment, and team development planning. While I've begun using AI for support pattern analysis, I recognize the opportunity to model AI adoption more visibly for my team. By documenting and sharing AI-powered management techniques in public channels, I can help my 15 engineers multiply their own productivity while establishing Analytics as a leader in AI-driven development practices. | |
| </p> | |
| <p> | |
| Additionally, I would benefit from increasing the visibility of my technical contributions through more documented PR reviews and architectural decision records. While I maintain deep technical involvement through Slack discussions and hands-on testing, capturing more of this expertise in permanent artifacts would create lasting knowledge for the team and demonstrate technical leadership for future growth opportunities. This could include writing engineering blog posts about our real-time visualization architecture or creating internal documentation on partial data handling patterns that other teams could leverage. | |
| </p> | |
| <p> | |
| Finally, transitioning from tactical project execution to more strategic platform thinking would unlock greater impact. While I excel at delivering multiple concurrent projects on-time, I could strengthen our long-term vision for Analytics by dedicating more time to architectural roadmapping and cross-team platform strategies. This might involve establishing Analytics Centers of Excellence, defining platform-wide standards for data visualization, or leading initiatives that span beyond my immediate team to influence Shopify's broader approach to merchant analytics. | |
| </p> | |
| </div> | |
| </section> | |
| <section id="appendix" class="section"> | |
| <h2>Appendix: Evidence Sources</h2> | |
| <div class="metrics-summary"> | |
| <h4>GitHub Contributions</h4> | |
| <ul> | |
| <li>Shopify Core: 4 PRs authored, 5 PRs reviewed</li> | |
| <li>Polaris-viz-internal: 37 PRs delivered through team (26,553 lines)</li> | |
| <li>Spy-v2: 4 operational PRs for incident management</li> | |
| <li>Vault-pages: 1 PR for documentation improvements</li> | |
| </ul> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Project Leadership</h4> | |
| <ul> | |
| <li>Real-time Analytics (#46618): 92% complete, on-track</li> | |
| <li>TOP N Customization (#44125): 97% complete, rolling out</li> | |
| <li>Code Editors Parity (#46384): 93% complete</li> | |
| <li>BFCM Readiness 2025 (#47508): 60% complete, on-track</li> | |
| </ul> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Slack Engagement</h4> | |
| <ul> | |
| <li>993 messages across 82+ channels</li> | |
| <li>Top channels: grass-fed-chat (154), analytics-leads (81), analytics-team-experience (79)</li> | |
| <li>Peak activity during RT/AUIC priority decisions (Sept 24-27)</li> | |
| </ul> | |
| </div> | |
| <div class="metrics-summary"> | |
| <h4>Team Management</h4> | |
| <ul> | |
| <li>15 direct reports (3 Staff, 7 Senior, 2 Engineers, 3 Interns)</li> | |
| <li>Reports to: Lyne Champagne (Director, Engineering, Shopify Foundations)</li> | |
| <li>Key collaborators: Phil Schofer, Susie Kim, Petar Bojinov, Tyler Noseworthy, Kevin Quijalvo</li> | |
| </ul> | |
| </div> | |
| </section> | |
| </main> | |
| <footer> | |
| <div class="container"> | |
| <p>© 2025 Self-Reflection Report | Generated for Performance Review Period: March 24 - September 26, 2025</p> | |
| </div> | |
| </footer> | |
| <script> | |
| function toggleTheme() { | |
| const html = document.documentElement; | |
| const currentTheme = html.getAttribute('data-theme'); | |
| const newTheme = currentTheme === 'dark' ? 'light' : 'dark'; | |
| html.setAttribute('data-theme', newTheme); | |
| const themeIcon = document.getElementById('theme-icon'); | |
| const themeText = document.getElementById('theme-text'); | |
| if (newTheme === 'dark') { | |
| themeIcon.textContent = '☀️'; | |
| themeText.textContent = 'Light Mode'; | |
| } else { | |
| themeIcon.textContent = '🌙'; | |
| themeText.textContent = 'Dark Mode'; | |
| } | |
| localStorage.setItem('theme', newTheme); | |
| updateCharts(); | |
| } | |
| window.addEventListener('DOMContentLoaded', () => { | |
| const savedTheme = localStorage.getItem('theme') || 'light'; | |
| document.documentElement.setAttribute('data-theme', savedTheme); | |
| const themeIcon = document.getElementById('theme-icon'); | |
| const themeText = document.getElementById('theme-text'); | |
| if (savedTheme === 'dark') { | |
| themeIcon.textContent = '☀️'; | |
| themeText.textContent = 'Light Mode'; | |
| } | |
| }); | |
| function toggleCollapsible(header) { | |
| const collapsible = header.parentElement; | |
| collapsible.classList.toggle('active'); | |
| } | |
| document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
| anchor.addEventListener('click', function (e) { | |
| e.preventDefault(); | |
| const target = document.querySelector(this.getAttribute('href')); | |
| if (target) { | |
| target.scrollIntoView({ behavior: 'smooth', block: 'start' }); | |
| } | |
| }); | |
| }); | |
| function getColors() { | |
| const isDark = document.documentElement.getAttribute('data-theme') === 'dark'; | |
| return { | |
| primary: isDark ? '#7C8FE8' : '#5C6AC4', | |
| secondary: isDark ? '#47C1BF' : '#00848E', | |
| success: isDark ? '#6FD865' : '#50B83C', | |
| warning: isDark ? '#FFD666' : '#EEC200', | |
| danger: isDark ? '#FF6E6E' : '#DE3618', | |
| text: isDark ? '#E3E5E7' : '#202223', | |
| grid: isDark ? '#3A3E42' : '#E1E3E5' | |
| }; | |
| } | |
| let teamChart, projectChart, radarChart, commChart; | |
| function createCharts() { | |
| const colors = getColors(); | |
| const teamCtx = document.getElementById('teamChart').getContext('2d'); | |
| teamChart = new Chart(teamCtx, { | |
| type: 'doughnut', | |
| data: { | |
| labels: ['Staff Engineers', 'Senior Engineers', 'Engineers', 'Interns'], | |
| datasets: [{ | |
| data: [3, 7, 2, 3], | |
| backgroundColor: [colors.primary, colors.secondary, colors.success, colors.warning], | |
| borderWidth: 0 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| plugins: { | |
| legend: { | |
| position: 'bottom', | |
| labels: { color: colors.text, font: { size: 12 } } | |
| }, | |
| tooltip: { | |
| callbacks: { | |
| label: function(context) { | |
| return context.label + ': ' + context.parsed + ' engineers'; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| const projectCtx = document.getElementById('projectChart').getContext('2d'); | |
| projectChart = new Chart(projectCtx, { | |
| type: 'bar', | |
| data: { | |
| labels: ['Real-Time Analytics', 'TOP N Customization', 'Code Editors', 'BFCM Readiness'], | |
| datasets: [{ | |
| label: 'Completion %', | |
| data: [92, 97, 93, 60], | |
| backgroundColor: [colors.primary, colors.success, colors.secondary, colors.warning], | |
| borderRadius: 8, | |
| borderWidth: 0 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| y: { | |
| beginAtZero: true, | |
| max: 100, | |
| ticks: { color: colors.text }, | |
| grid: { color: colors.grid } | |
| }, | |
| x: { | |
| ticks: { color: colors.text }, | |
| grid: { display: false } | |
| } | |
| }, | |
| plugins: { | |
| legend: { display: false }, | |
| tooltip: { | |
| callbacks: { | |
| label: function(context) { | |
| return 'Completion: ' + context.parsed.y + '%'; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| const radarCtx = document.getElementById('radarChart').getContext('2d'); | |
| radarChart = new Chart(radarCtx, { | |
| type: 'radar', | |
| data: { | |
| labels: ['Use AI', 'Technical Excellence', 'Systems Thinking', 'Execution', 'Influence'], | |
| datasets: [{ | |
| label: 'Self-Reflection Ratings', | |
| data: [2.5, 4, 4.5, 5, 5], | |
| backgroundColor: colors.primary + '40', | |
| borderColor: colors.primary, | |
| borderWidth: 3, | |
| pointBackgroundColor: colors.primary, | |
| pointBorderColor: '#fff', | |
| pointHoverBackgroundColor: '#fff', | |
| pointHoverBorderColor: colors.primary, | |
| pointRadius: 5, | |
| pointHoverRadius: 7 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| r: { | |
| beginAtZero: true, | |
| min: 0, | |
| max: 5, | |
| ticks: { | |
| stepSize: 1, | |
| color: colors.text, | |
| backdropColor: 'transparent' | |
| }, | |
| grid: { color: colors.grid }, | |
| pointLabels: { | |
| color: colors.text, | |
| font: { size: 12, weight: '500' } | |
| } | |
| } | |
| }, | |
| plugins: { | |
| legend: { display: false }, | |
| tooltip: { | |
| callbacks: { | |
| label: function(context) { | |
| return 'Rating: ' + context.parsed.r + '/5'; | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| const commCtx = document.getElementById('commChart').getContext('2d'); | |
| commChart = new Chart(commCtx, { | |
| type: 'bar', | |
| data: { | |
| labels: ['Slack Messages', 'Channels Active', 'Team Recognition', 'Technical Discussions'], | |
| datasets: [{ | |
| label: 'Count', | |
| data: [993, 82, 14, 22], | |
| backgroundColor: [colors.primary, colors.secondary, colors.success, colors.warning], | |
| borderRadius: 8, | |
| borderWidth: 0 | |
| }] | |
| }, | |
| options: { | |
| responsive: true, | |
| maintainAspectRatio: false, | |
| scales: { | |
| y: { | |
| beginAtZero: true, | |
| ticks: { color: colors.text }, | |
| grid: { color: colors.grid } | |
| }, | |
| x: { | |
| ticks: { color: colors.text }, | |
| grid: { display: false } | |
| } | |
| }, | |
| plugins: { | |
| legend: { display: false }, | |
| tooltip: { | |
| callbacks: { | |
| label: function(context) { | |
| return context.parsed.y + ' ' + context.label.toLowerCase(); | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| } | |
| function updateCharts() { | |
| if (teamChart) teamChart.destroy(); | |
| if (projectChart) projectChart.destroy(); | |
| if (radarChart) radarChart.destroy(); | |
| if (commChart) commChart.destroy(); | |
| createCharts(); | |
| } | |
| window.addEventListener('load', createCharts); | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment