Skip to content

Instantly share code, notes, and snippets.

View andrew-templeton's full-sized avatar

Andrew Templeton andrew-templeton

View GitHub Profile
@andrew-templeton
andrew-templeton / context-packet.md
Created December 23, 2025 18:32
SLT VP Product & Technology — Take-Home Case Study (Candidate Materials)

Sur La Table (SLT) — VP Product & Technology Take-Home: Working Context Brief

This document is provided to candidates alongside the case study. It defines the operating environment, constraints, and how to interpret the data.


1) What you should assume is true

  • You are joining as VP of Product Management & Tech at Sur La Table.
  • You own product + software platforms end-to-end: e-commerce (Next.js/headless), BFF/API gateway, services, OMS, POS software, data warehouse/ETL, loyalty, personalization, ERP integrations.
"schemaname","tablename","indexname","tablespace","indexdef"
"public","ahoy_events","ahoy_events_pkey",NULL,"CREATE UNIQUE INDEX ahoy_events_pkey ON public.ahoy_events USING btree (id)"
"public","api_request_logs","api_request_logs_pkey",NULL,"CREATE UNIQUE INDEX api_request_logs_pkey ON public.api_request_logs USING btree (id)"
"public","awsdms_ddl_audit","awsdms_ddl_audit_pkey",NULL,"CREATE UNIQUE INDEX awsdms_ddl_audit_pkey ON public.awsdms_ddl_audit USING btree (c_key)"
"public","batch_import_logs","batch_import_logs_pkey",NULL,"CREATE UNIQUE INDEX batch_import_logs_pkey ON public.batch_import_logs USING btree (id)"
"public","batch_imports","batch_imports_pkey",NULL,"CREATE UNIQUE INDEX batch_imports_pkey ON public.batch_imports USING btree (id)"
"public","bisac_hierarchies","bisac_anc_desc_idx",NULL,"CREATE UNIQUE INDEX bisac_anc_desc_idx ON public.bisac_hierarchies USING btree (ancestor_id, descendant_id, generations)"
"public","bisac_hierarchies","bisac_ancestor_idx",NULL,"CREATE INDEX bisac_ancestor_i
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken
chicken
'Analog': 'AAAAAgAAAHcAAAANAw==',
'Audio': 'AAAAAQAAAAEAAAAXAw==',
'Blue': 'AAAAAgAAAJcAAAAkAw==',
'ChannelDown': 'AAAAAQAAAAEAAAARAw==',
'ChannelUp': 'AAAAAQAAAAEAAAAQAw==',
'Confirm': 'AAAAAQAAAAEAAABlAw==',
'Display': 'AAAAAQAAAAEAAAA6Aw==',
'Down': 'AAAAAQAAAAEAAAB1Aw==',
'EPG': 'AAAAAgAAAKQAAABbAw==',
'Exit': 'AAAAAQAAAAEAAABjAw==',
@andrew-templeton
andrew-templeton / gist:1e4335fec9923675b0bb95ccc235bc71
Last active July 28, 2016 21:05
Text breaking-bad-ification
@andrew-templeton
andrew-templeton / rule.json
Last active June 24, 2016 18:57
Generic lambda cron CloudFormation substack
{
"Parameters": {
"TARGET_LAMBDA_ARN": {
"Type": "String"
},
"EXEC_SCHEDULE": {
"Type": "String"
},
"RULE_NAME": {
"Type": "String"
@andrew-templeton
andrew-templeton / index.js
Last active June 6, 2016 18:52
Embedded Lambda custom resource for getting an EB Environment's ELB's CanonicalHostedZoneId
var AWS = require('aws-sdk');
var response = require('cfn-response');
exports.handler = function(event, context) {
console.log('REQUEST RECEIVED: %j', event);
if (event.RequestType == 'Delete') {
response.send(event, context, response.SUCCESS);
return;
@andrew-templeton
andrew-templeton / index.js
Created April 1, 2016 03:12
lambda function to test the IP of your lambda as seen by ifconfig.co
var http = require('http');
exports.handler = function (event, context) {
http.get('http://ifconfig.co', function (res) {
var buff = [];
console.log('Got response: %s', res.statusCode);
res.on('data', function (chunk) {
buff.push(chunk);
});
res.on('end', function () {
console.log('Found: %s', buff.join(''));
@andrew-templeton
andrew-templeton / vpc.json
Created April 1, 2016 02:20
CloudFormation template packaging a serverless VPC for fixed/static IPs on Lambdas
{
"Description": "Host VPC for Lambda Static IPs",
"Parameters": {
"VPCClassBOctet": {
"Type": "Number",
"Description": "The Class B block to use for the VPC (0-255).",
"MaxValue": 255,
"MinValue": 0,
"Default": 0
},
@andrew-templeton
andrew-templeton / aws-cloudwatch-events-rule-scheduleexpression.js
Created February 28, 2016 07:59
Full Regex for ScheduleExpression property of AWS CloudWatch Events Rule
"^(rate\\(((1 (hour|minute|day))|(\\d+ (hours|minutes|days)))\\))|(cron\\(\\s*($|#|\\w+\\s*=|(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[0-5]?\\d)(?:(?:-|\/|\\,)(?:[0-5]?\\d))?(?:,(?:[0-5]?\\d)(?:(?:-|\/|\\,)(?:[0-5]?\\d))?)*)\\s+(\\?|\\*|(?:[01]?\\d|2[0-3])(?:(?:-|\/|\\,)(?:[01]?\\d|2[0-3]))?(?:,(?:[01]?\\d|2[0-3])(?:(?:-|\/|\\,)(?:[01]?\\d|2[0-3]))?)*)\\s+(\\?|\\*|(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?(?:,(?:0?[1-9]|[12]\\d|3[01])(?:(?:-|\/|\\,)(?:0?[1-9]|[12]\\d|3[01]))?)*)\\s+(\\?|\\*|(?:[1-9]|1[012])(?:(?:-|\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?(?:,(?:[1-9]|1[012])(?:(?:-|\/|\\,)(?:[1-9]|1[012]))?(?:L|W)?)*|\\?|\\*|(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?(?:,(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC)(?:(?:-)(?:JAN|FEB|MAR|APR|MAY|JUN|JUL|AUG|SEP|OCT|NOV|DEC))?)*)\\s+(\\?|\\*|(?:[0-6])(?:(?:-|\/|\\,|#)(?:[0-6]))?(?:L)?(?:,(?:[0-