Contributions
NBI MOCA
Dev Experience Improvement
Datapath Language Server VS Code Extension
https://code.amazon.com/packages/DatapathLanguageServerVsCode/
Basic language support for Datapath in VS Code
Features:
- Syntax highlighting
- Hover view to preview implementation
- Right click a view to "Go to implementations" to open source file in IDE
- Report arity problems with comparison and arithmetic operators
- Report basic syntax errors, such as invalid characters or brace mismatch
- Preview relevant views by hovering namespaces or incomplete views
- Completion suggestions for keywords and built in operators
- Completion suggestion for possible views
Datapath VS Code Extension
https://code.amazon.com/packages/DatapathVsCode
Enables to adhoc query execution from within VsCode. Run > Datapath: Execute query
on an open .dp
file to execute the query and open the results in a side panel.
Features:
> Datapath: Execute query
> Datapath: Execute selection
> Datapath: Execute test file
> Datapath: Execute test
- Query results panel displays the query that was executed for easy reference
- Each query execution displays in its own window for easy reference of query history
- Configure Datapath sandbox options, such as a) setting endpoint to local dev box, integ, or prod endpoints; b) Datapath weblab overrides; c) timeout
Personalization Options Discovery Design Project, fullstack
Designed project to implement the requirements for the Personalization Options Discovery project.
Project Objective: Amazon shoppers lack insight as to what customization options exist for a given ASIN on both search and detail page. This project surfaces customization summaries in two areas: AFO (or ASIN Faceout, surfaced by search results), and DP (Detail Page).
- Design Document - https://quip-amazon.com/b9TSAy6YktF9/POD-Personalization-Options-Discoverability
- Epic - https://taskei.amazon.dev/tasks/MOCA-9926
- Tasks - https://taskei.amazon.dev/rooms/299da447-6f5f-40e5-9aa2-aff16b940b8e/tasks?mss=d4604f47-caea-4703-ab8d-05174e5c8b45&f=name%3A%5C%5BPOD%5C%5D
Milestones
- Wrote thorough and extensive design document, held multiple design reviews, and created revisions to address each new concern raised during each meeting.
- Enabled calling GCSS from Datapath, unlocking potential to call GCSS from Detail Page, Search, and other environments. This work can now be used in House of Cards, Voyager, and predefined customizations. It is a great milestone for acheiving progress on our long term roadmap. This project took 6 weeks and required extensive troubleshooting, creative problem solving, navigating extreme ambiguity, and making many decisions based on inferences about the BSF Codigo client and BSF Datapath client generation framework. These issues were documented to improve any future onboarding efforts of services to Datapath.
- Interfaced with Amazon API schema working group to revise and merge contract changes for new CustomizationsSummary and CustomizationsDiscoverySummary subresources
- Implemented Datapath changes required to populate subresources.
- Implemented Java changes in PUIS to surface customization summaries in SCX.
- Implemented Java changes to surface customization summaries in DPX.
- Interfaced with SCX team to manage SIP process and contribute code as away work.
- Setup Datapath pipeline for use with Typescript Datapath in order to implement recursive view. This enables other team members to contribute any Typescript Datapath required for other projects.
Challenges
- Working cross team with HIP and Elcano due to ambiguous ownership of the variation options component and gathering design feedback from those teams as additional stakeholders.
- Identified existing issue with text truncation for the SCX options summary, navigated ambiguity with requirements, and worked cross-team and cross-role with several stakeholders to reach a resolution while seeking diverse input.
- Handle SCX and DPX usecases in parallel. In addition, parallelized backend and frontend work to identify problems and ambiguity early.
- Tasked with implementing Phase II of two separate projects, one for SCX and one for DPX, for which I had no prior context. This required a deep dive and speedy ramp up on the purpose and implementation of Phase I across many environments and codebases in many different languages.
- Ramp up on SCX and PUIS architecture, set up for local SCX environment, and away work in SCX codebase. The recent migration from AFS to PUIS made navigating documentation for the SCX archictecture a complex task.
- Ramp up on Datapath, develop skill in Datapath for more complex data manipulation.
- Handle obscure, incomplete, or outdated wiki and Sage information with regards to many issues that arose from generating the BSF and Datapath client for GCSS.
- Handle complex requirements for Datapath view, including aggregating and deduping summaries, rank priority, different component types, variation precedence, weblab triggering logic, and whether or not to suppress color.
- Wrote utility script that accepts a PM managed attributes metadata spreadsheet as input and generates: 1) Datapath code to surface those attribute metadata; 2) tests for the same; and 3) string translation source files. This 1) enables PMs to make many revisions without introducing overhead; 2) reduces ops burden and effort required to maintain, update, or add new PCS attributes; and 3) reduces human mistakes and failure points by automating tedious processes.
- Handled friction from SWG on design for new AAPI subresources. Design revisions were required to move all of the logic for constructing the summary from the Java layer to the Datapath layer.
- Persuaded others that creating plural string translations would result in the best CX for the customer and that well curated translations are key to the success of the experiment. This decision ensures a first class CX at the cost of additional complexity and maintenance burden. SDE III agreed to disagree and commit.
- Navigated interfacing with FMA and Twister teams in order to acquire permissions for required Datapath views.
CPC delivery promise, fullstack
Project Objective: Increase customer visibility and incentivize ordering by surfacing the delivery promise in the customizations modal.
Wrote code to call Prisma to render content to match the buybox delivery promise on Mobile and desktop.
$35,653,305 in projected GCCP lift with 98% confidence (material Amazon profits).
- Task Document
- Experiment Results
- Note: Change to annualized and bayesian
Challenges
- Learning Prisma architecture
- Debugging delivery promise block to determine what parameters to pass to Prisma in order to keep the rendered delivery promise consistent between CPC and BuyBox
Other
- Rio Compliance, fullstack
- Updated Handmade widgets to be compliant with new storewide style guidelines
- Rewrote Handmade Artisan Card and Kata, adopting new tech and sharing knowledge in the process. Fullstack
- Launched Gestalt Gift Recommendations Widget, fullstack
- Updated code and configure for cloud auth
- Configured content creatives and percolate
MOCA Specific Wikis
- DPX GBE RDE Stack Quick Start Guide
- DPX GBE In-Depth RDE Guide
- Guild RW Zombie Setup Guide
- For testing changes to Guild ASINs for Detail Page
- Developing on Guild Detail Page
Victoria Solar
High level contributions
- Owned and implemented design for Getting Starting Widget Phase II to increase Seller engagement with useful tools available in B2B Central. Fullstack.
- Designed the Action Tracker component and plan for Front End integration tests.
- AREST vs Coral & Lambda vs APIG & NAWS vs MAWS
- Design Document
- Adding CloudAuth to an AREST NAWS service
- Implemented CloudAuth and generated guide artifact
- Designed and implemented Grow Amazon Business Sales Card
- Grow AB Sales Developer Guide
- Surfaces sales metrics to customers, incentivizing re-investment in B2B products
- Config based conversion of currency for cross-region analytics
- Owned and implemented design for Business Product Opportunities Card. Fullstack.
- Identified general Front End improvements, designed and implement changes.
- Supported devs on projects long since leaving the team. For instance, I wrote this guide for @clinqife when she was unable to test the service locally and no remaining team members had knowledge on how to run the server. MBOP Horizonte Dev Env Setup
- Developed clear SOP for smoke tests for B2B Datacentral Service - wiki
- Owned design for B2B Traffic Report. Design documents:
- Whitepaper
- B2B Traffic Report
- Create Lambda to load Kinesis data into to S3
- Create Cradle jobs
- Setup ElasticSearch clusters for B2B Datacentral Service, configured Kibana
- Individually owned and implemented design for new B2B Datacentral Service data pipeline redesign. Supporting design docs:
- Kinesis to ElasticSearch to Andes and DJS with quick results cached in Dynamo and then fetched via Coral or via ElasticSearch queries
- Andes Ingest Design
- Individually owned and implemented design for a new user B2B Central preferences store as onboarding assignment. Fullstack.
- Developed B2B Central SPA frontend integration tests plan, research, and implementation
- Launched MBOP in EU5
- Launched MBOP Reports in EU5 so B2B Sellers in those regions can generate demographic reports and recommended item reports to help increase their GMS.
- Implemented B2B Prime Upsell Quantity Discounts value prop modal as away team work. Took great care to implement complicated UX mock exactly to spec, pixel-for-pixel. Fullstack.
- Generated developer readme for the same: B2B DPAS Readme
- SIM
- Updated datapath endpoint to enable behavior
- Designed intern project, supported and evaluated intern Saum Emami throughout hiring and onboarding project for Seller Central Cards
- DRR
- Defined onboarding project & designed task roadmap
- Developed important design documents resources - Design Resources
- RPC Discussion
- Owned design for Business Impact Engine so seller can understand which actions they take result in the most lift. For instance, setting Quantity Discounts or allowing RFQs.
- Audited and prepared Solar Q4 Peak Readiness document for 10 owned services
- Created new report for industry buyer segment analysis in B2B Central. Fullstack.
- Implementation to internationalize Marketplace Business Opportunities Report in order to reach Sellers in their native language and generate reports for all marketplaces. SIM
- Implemented fullstack changes for new Business Accelerator Recommendation Report Widget. SIM. Fullstack
Solar Design & Research Documents
- Business Accelerator Design Doc and Task Roadmap
- Ops Tool Design & Research Doc
- Investigate potential options for building a team Ops Tool and presented results to team.
- Andes Ingestion design for B2BDataCentralService Buyer Analytics Widget
Solar Tasks or specific contributions
- Created re-usable Angular route guard for B2B Central
- Solved the B2B Central SPA 403/404 issue by surfacing the KeysToDeepMerge feature
- Setup step flow to be able to be defined with YAML instead of inline json via the fromyaml_tojson filter
- Migrate to Python 3.5 for HorizonteMonsMarketplaceB2bRegistrationWbebApp
- Streamline B2B enrollment for existing sellers - SIM
- Write reports Cradle/Dryad Scala big data jobs, for instance, Sales breakdown by Industry for Japan, which presented unique challenges when working with Japanese regions.
- Took initiative to solve many UX painpoints and bugs
Solar Specific Wikis
- Buyer Analytic Service Tips
- Improve SAM Dev Experience
- Researched and presented information on how to run a personal SAM stack so each developer could test their own NAWS changes without impacting the beta stack .
- Space Casino Guide
- Designed guide for Space Casino Cards as first team domain expert for subject
Sim
- 426 resolved SIM sprint tasks (as of 12/05/2023)
Trouble Ticket
As of 03/25/2023
Leadership
- Participated in ASU outreach programs, panels, and recruiting efforts
- Introduced the concept and implementation of Sprint retrospectives to team process
- FEAT Advocate
- Implemented new front end advocate role to help spread knowledge and awareness of Front End tech to organization
- Took initiative to lead Victoria Solar sprints for 9 months.
- Implemented SCRUM master rotation so every developer is able to get experience running Sprints, Groomings, Retros and Sprint Plannings
- Introduced staggered standups to org so individuals could attend multiple standups if working cross-team.
- Implemented policies to streamline standups
- Led UX best practices for Solar
- Steven Shay's onboarding buddy
- Create new MCM/Template process for Solar
- Presented multiple Hackathon presentations
- ABSX Leadership Principle Award Recepient
- Februrary 2020 - Earn Trust
- January 2020 - Bias for Action
- Accolades
- 2022 - Naomi Siegal - For Handmade's Artisan Accelerator proof of concept VP-level goal of moving Handmade to the cards framework
- 2020 - Vishnu Sudha - For uncovering a Seller facing issue on Seller Central where an information tab was incorrectly showing on Japan region, deep diving issue, and taking initiative to solve the issue within a day.
General
- Writes comprehensive documentation, wikis, and sage posts to avoid the tribalization of knowledge
- Supports devs from external teams
- Brings comprehensive typescript / React knowledge to teams, shares expertise with peers and supports them
Internal Knowledge & Skills Developed
Datapath, Cloudformation, LPT, NAWS, MAWS, Apollo, ElasticSearch, Kibana, Scala, Percolate, Content Symphony, AST, Prisma, AAPI2, npm-pretty-much, Odin, SAMToolkit, CfnBuild, AMZNWikiClient, Coral, Katal, Kata, SpaceCasino, Cards, DPX, PULP, Luminos, Mons, SellerCentral, Scala, Andes, Hoot, Dryad, EDX, Datanet, DJS, Redshift, Tortuga, MWS, Cradle, Datacraft, AUI, FRP
Documentation & Knowledge Share
Sage
As of 02/24/2024
- Silver leaf contributor on Sage
- 2627 Points
- Received 138 answer votes
- 18 accepted answers
- 43 total answers contributed
- 55,230 total views across all questions answered
- 7 silver badges, 22 bronze badges
- Sharing knowledge on Sage breaks has a compound effect in breaking down silos and unblocking future devs
Wiki Guides or Tutorials
263 wiki pages (guides, tips, meeting minutes, design docs, troubleshooting docs, dev setup, research docs, generic notes, etc)
Notable wikis
In-depth guides:
- Auto sync/upload local MD notes to wiki
- Custom command line tool built to automatically sync local markdown notes to wiki to enable more effective knowledge sharing
- Adding CloudAuth to an AREST NAWS service
- How to setup VS Code Code Coverage Gutters and Coverage Explorer
- Create BONES NAWS EC2 AREST Service
- Gating CSS with Weblabs
- Setup Cloudformation Workspace
- Change LTP NAWS region
- Guide for correcting the NAWS region of an LPT stack in case of erroneously creating in the incorrect region.
- Guide to testing in Angular
- Building custom Angular form controls
- Add link to a Katal Angular Dropdown Control
- Configuring Puppeteer to run Chromium in a remote build context
Quick guides:
- Setup Odin on Mac
- Graph TPS in iGraph
- Find the application name for a MONS application
- Pulling logs with Timber or Bark
- Create AWS Dev Account
- Create AWS Deploy User
- Setup AWS Deploy Role
- Setup Identity Broker for SAM development
- Sage: Setup Java Checkstyle for VSCode
- Sage: Map Prisma Device Type
- Sage: Datapath syntax highlighting in VSCode
Troubleshooting Guides:
New hire resources, tools, and general tips
- Tools & Tech
- Amazon Tools Directory
- Apollo Tips
- Brazil Tips
- Cloudformation Tips
- Git Tips
- Java Tips
- Linux Tips
- LPT Tips
- Datapath Tips
- Prisma Tips
- DPX Dev Tips
- Viceroy Tips
- Tips on using Viceroy, Amazon's Brazil VSCode plugin
- Misc Tips
- RDE Tips
- General
Tampermonkey Scripts
- Sprint Filter
- Allows you to favorite any sprint in your active sprints tab and adds the favorited sprints to the main nav bar.
- Highlight Assignee
- Add orange border to sprint board tasks assigned to you to easily view all tasks while being able to identify your own quickly.
Linux scripts
- Fast Re-activate Apollo Service
- Save dev time by easily restarting Apollo service with running a full Flip-Activate deployment.
Tools & Automation
wiki-sync tool
Allows you to automatically publish any changes to your local markdown notes to your user wiki for sharing with coworkers. Auto sync/upload local MD notes to wiki
Features:
- Automatically generates tags for easily searching all wiki pages you've generated via this script.
- Watch local directory & sync
.md
notes on save - Supports backfilling an existing directory
- Supports creating a custom
dot-config
to enable transcluding a page onto all generated wiki pages. - Easily install via
npm install
and configure with a guided setup wizard