Categories
Analytics Troubleshooting

Missing Mixpanel

(Decorist : 3/19-5/19)

Challenge

Late discovery that new initaitive/partnership was missing a key metrics instrumentation.

Action

Jumped in and instrumented, verifying in Mixpanel. Worked with Director of Data Science to formulate Jira stories breaking down the problem into discrete chunks/units-of-work towards cleaning up/adding new events in the future.

Results

  • Launched new strategic initiative on time and empowered the business to have greater analytics clarity.
Categories
Mobile Process SEO

Mobile First

(Decorist : 4/19-4/19)

Challenge

Realized most users were using mobile devices on the site when Engineering was developing/testing on larger screensizes.

Action

Dug into Google Analytics to identify data pointing to predominance of usage of mobile screensizes.

Results

  • Modified release process to incorporate FE review (“Mobile First”) on iPad, iPhone, improving site’s overall UX.
Categories
eCommerce Process SEO Troubleshooting

Improving SEO

(Decorist : 3/19-3/19)

Challenge

Received word that a number of key UXes weren’t rendering for SEO, likely impacting our rankings.

Action

  • Setup local emulation as Googlebot/Chrome 41.
  • Identified problem as having been ongoing since prior October (through git bisect.)
  • Introduced process for ensuring SEO/M compatability for releases going forward.

Results

  • Intro of process has engineers developing proficiency on key aspect of business: SEO.
Categories
Architecture AWS EC2 VR

Cutting Cloud Costs

(Decorist : 3/19-3/19)

Challenge

Given trends in 2018, AWS budget was projected to increase 92%.

Action

  • Worked with full-stack engineer on web team to tweak EC2 configs.
  • Iteratively introducing Reserved Instances to add to cost savings.
  • Worked with VR team to optimize the rendering pipeline.

As part of the VR work, we found that EC2 instances were running unneccessarily 24/7 so we adapted processes to more efficiently utilize those resources.

Results

  • Reduced AWS MoM spend by 40%.

 

Categories
3D Collaboration Process Troubleshooting VR

Salvaged PR Opportunity

(Decorist : 3/19-3/19)

Challenge

Marketing opportunity showcasing company’s proprietary shop-the-room modeling was four months behind and at-risk after key in-house designer departed and PR client was losing patience.

Action

I took ownership of project management, working with new designer and remote Pakistani VR engineering team, introducing a lightweight process (spreadsheet-based and daily 15m check-ins) in order to get backlog of shop-the-room models modeled and bundled into our VR (Unity-based) design app.

Results

Categories
Management Monitoring Process Site Reliability Troubleshooting

All the False Positives

(Decorist : 9/18-12/18)

Challenge

Inherited a situation where there were incomprehensible 1000+ issues per day in exception reporting software (Sentry.)

Action

Identifed and delegated KR to FE lead to create a daily process to chip away at remediation. Encouraged accountability by having FE lead give status report weekly.

Results

  • 1000+ to 7 system alert notifications.
Categories
Growth Marketing Troubleshooting

FB Pixel Headache

(Decorist : 10/18-12/18)

Challenge

The business wasn’t confident in ROI on FB marketing spend because FB pixel wasn’t firing (and no one internally was a Subject Matter Expert.)

Action

Worked with a SF-based, non-technical marketing consulting and delegated to a Delhi-based junior frontend engineer to get familiar with FB Pixel.

We went back and forth, encumbered by the 12.4h time difference and lack of holistic understanding about how to best run campaign and test the efficacy of the pixel.

Finally, after weeks of simply not being able to get to “Done,” I jumped in and found the FB Pixel Helper:

With the problem solved, we were able to finally turn up our marketing spend.

Results

  • Got FB pixel tracking for PageView and AddToCart.
Categories
Coordination Distributed Teams Leadership Process

An American Helps Ukrainians Transfer Knowledge to Indians

(Decorist : 8/18-9/18)

Challenge

One week after joining, I realized that a Knowledge Transfer trip (T-3 weeks) for the 8-person Kiev team to handover reins to the newly-formed 25-person Delhi team based was in jeopardy because travel logistics had not been taken care of.

Action

I persistantly followed-up with six East coast corporate travel coordinators over two weeks, advocating on behalf of the Ukrainian team while also securing my own travel.

Early Sep 2018, I hopped on a flight to Delhi. Before we got down to business, we enjoyed a day outing.

Then, we gathered to kickoff the week.

Results

  • Coordinated travel, led the agenda, and ensured a smoothly-faciliated-transfer while on-site.
Categories
Architecture Backend Chat Cloud demand-side eCommerce Frontend Innovation Prototyping Strategy supply-side

Launched MVP

I was brought on initially part-time into a two-sided marketplace in the holistic services space to assist the team to go from an environment where code wasn’t being shipped to a place that could launch an MVP.

Prior to joining, I commissioned my own Market Landscape (via UpWork) around holistic services potential; one finding: 2015 global revenue = ~$40B

Better Engineering

When I arrived, the POC had been built by an offshore team in WordPress via cPanel and PHPAdmin and transferred from AWS to Digital Ocean. There was no source control. The first thing I did was `git init`.

I spent time attempting to decompose the production instance into a Docker container (of WordPress and MySQL.) I learned how tricky it is when an application is not already 12-factored to spin-up an alternative instance having functional parity. In case you didn’t know, much of the application state of a WordPress site is maintained as JSON config blobs IN THE DATABASE.

Seeing opportunity to prioritize feature creation (in support of product-market fit) in lieu of operational excellence, I put the Docker initiative on hold and spun up dev and staging instances using cPanel and PHPMyAdmin, simply copying the prod DB.

dev instance after trying to decouple

CaaS : Chatroom as a Service

First Iteration

My initial task was to integrate a chat UX with a broadcast streaming experience being built out and powered by Wowza. I settled on Converse.js and ejabberd given decent documentation, an acceptable UX, and (what seemed to be) easy integration; delivering the following POC

chat, working

Next Iteration

With the web server running under CentOS on one Droplet, I had thought it smart to run ejabberd on a separate instance, installing v14 on an Ubuntu Droplet. I ran into issues opening port 5281 from the CentOS VPS to Ubuntu so I doubled-back on my strategy, opting to co-host the daemons on one Droplet (CentOS.) I then ran into package manager issues and wound up having to build and install ejabberd 18 from scratch while upgrading OTP to v20.

While this was happening, the junior engineer was working to get the Wowza live-broadcast video solution working and time wasn’t on our side to get the MVP launched.

(Additionally, at one point, I looked at using the YouTube/Hangout API didn’t find support for our use case.)

Attempt to leverage YouTube/Hangouts

Once I got ejabberd 18 built, installed, and running, we started experiencing timeout issues; manifesting in FE with a spinner that spun for 1.5 mins before the user was finally able to get into the chatroom. I dove into the ejabberd code, and realized that there was something blocking going on server-side. I never did figure out what was happening, but about that same time I realized that the junior engineer had integrated Twilio Video for the 1:1 experience and Wowza Streaming for the 1:many broadcast experience.

Seeing opportunity to reduce waste and consolidate coding paradigms, I researched Twilio Video and realized that we could, for the MVP, likely replace the Wowza experience for both of the 1:1 and 1:many experiences WHILE ALSO leveraging Twilio Chat to replace Converse.js/ejabberd.

Twilio Video, 1:many POC

Next Iteration

I found and customized React Programmable Chat

Twilio Chat, POC

The next step was to integrate with Wowza.

Wowza UX, now w/Twilio Chat

As their were some production issues with the Wowza implementation, I forged ahead creating an alternative Twilio Video React component using React Scripts.

1:1 UX, Twilio Video Chat (desktop and mobile)

At soft (internal) launch, I posited the Twilio solution and the other team members were delighted.

Though the Twilio Video quickstart project was useful, I ran into challenges around the video codecs (VP8 and H.264) between Chrome and Safari, namely getting desktop and mobile video interaction to work as expected. Digging around produced Github links helping lead to resolution (e.g. simply switching to H.264 to ensure cross-browser support.)

On 4/6/18, we had our first successful supply-side (1:many) broadcast, powered by Twilio Video and Chat.

MVP

After helping the team achieve MVP launch and when funding could not be raised in a timely fashion, I moved on.

Results

  • Swooped in when feature-delivery was woefully behind, built out (desktop/mobile) UX, and launched MVP to paying customers.
Categories
Building buy-in Distributed Teams Growth SOA SWOT Analysis

Beginnings of a Platform Strategy

(Bluxome Labs : 5/18-5/18)

After reviewing the company’s developer docs and Platform Roadmap, I addressed low-hanging fruit around improving readability and structure while working with key stakeholders (Head of Platform, VP PROD) to organize growth priorities regarding platform adoption over timeframes of 1, 1-3, 3-6, and 6-12 months.

Upon further iterations around growth KPIs while learning about constraints of the platform engineering team, I advocated for the creation of a separate Developer Relations team of a minimum of a Lead, Partner Engineer, Developer Advocate, and a Product Manager (and provided the basic job descriptions for each.)

Also, upon discovering that the Hello World experience of integrating with the platform was less-than-intuitive, crafted the following How-To in one take without a script and using QuickTime:

Result

  • Laid foundation for Developer Relations.