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.
Categories
eCommerce Prototyping

Centralized to Decentralized Marketplace

Bluxome Labs : 3/18-4/18)

Challenge

Re-conceptualize centralized marketplace idea around leveraging Blockchain.

Action

Going into Q1/18 after the mania of 2017 ICOs, I assisted the CEO to re-conceptualize the centralized marketplace idea around leveraging Blockchain. I dove into the Blockchain ecosystem, prototyped around Origin Protocol, and crafted the initial beginnings of a White Paper.

As part of that process, I explored options leveraging Truffle…

POC (derivative of Truffle Petstore DApp)

… as well as Origin Protocol.

POC (derivative of Origin Protocol DApp)

As the market cooled, we slowed down towards project planning a gradual transition to a decentralized paradigm.

Result

Contributed to Origin Protocol.

Categories
Building buy-in Distributed Teams Frontend Optimization Performance Engineering

Making an Operations Excellence Frontend Excellent

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

For the client, I probed their UX using multiple tools to determine low-hanging fruit, worked with the CTO and VP PROD to understand resourcing constraints given the product roadmap, and enumerate several tactics in a (prioritized) phased approach towards improving performance.

Heuristic discoveries included FE perf bottlenecks such as:

  • multiple inline JS snippets causing slowdowns
  • un-optimized JS libs, including of React components
  • multiple 3rd party JS libs that were no longer necessary
  • JS libs that loaded neither async nor defer
  • retrieval of multiple styling resources

I found that the greatest opportunity to optimize existed for two key user experiences at ~6s avg page load and ~4.5s average page load respectively.

During one iteration, changes lead to a 52% reduction in the Webpack bundle of React components, improving page speed by 10% or better across four key user experiences.

During another iteration, one key UX was sped up by 39.4% without Cache, 53.8% with Cache.

During a final iteration, changes lead to a 20% page speed improvement on one key user experience and 10% or better on two others.

Results

  • Introduced Performance Engineering mindset leading to 20% page-load speedup.
Categories
Growth Strategy

Non-Head-of-Engineering Contributions

(Bluxome Labs : 1/18-4/18)

Disciplined Product Management

I took the basics of use cases that had been articulated, in spreadsheet and Pivotal forms, and refined them with an intent to GTD while keeping our eyes-on-the-prize. Also, I introduced feature and bug templates in Pivotal to make it easy for team members to follow a quality process…

PRD, original

… as well as the use of Koan for retrospective-like reflection.

Growth

Survey

After our first broadcast event, I sent out a simple survey gathering NPS and other key data.

To help everyone keep their eyes on the prize, I threw together a quick spreadsheet tracking KPIs. At first I was tracking daily but switched to weekly.

Landing Page

To facilitiate a better understanding for customers, both demand- and supply-side, I put together a first, simple version of a Landing Page.

Design Improvement

In addition to all other improvements I’ve already mentioned, I applied minimalist quick improvements to take the general UX from this on the PLP

… to this (w/hand-rolled JS and CSS ‘filters’ added in the header)

… and this on the Activity Feed

… to this

Being Social

In a bid to help the supply-side of the market promote their brand, learned how user metadata is managed in WordPress in order to modify the registration form in order to capture salient social media handles.

regisration form, after
Once submitted, the handles were captured in the DB and then rendered in three locations.

After I started, I saw an opportunity to improve code DRYess and consolidated the rendering code into a single place.

Refined Strategy

In addition to being the technical contributions as Head of Engineering, I helped refine strategy:

  • incl. for the pitch deck
  • introduced structured approach to product management
  • budgeted ops costs in prep for pre-seed/seed funding
  • introduced process around password credential and software license management

Results

  • Led Growth efforts with Landing Pages, NPS Surveys, social virality, and KPI tracking.
Categories
Management Process

Impactful Planning

(Bluxome Labs : 11/17-11/17)

It has been my finding in small, medium, and large engineering orgs that any engineering leader faces challenges in primarily these three areas

  1. recruit and retain top-notch engineering talent
  2. engineer appropriate level of software quality
  3. ensure stewardship of engineering costs

I was brought in to consult, delivering an approach as well as methodology for measuring progress in those areas. Below is the generalized version of my deliverable.

30 Day Plan

  • Establish presence and key relationships
    • establish trust and rapport through get-to-knows with
      • execs
      • key business partners in ENGR, PROD, DSGN, etc., and
      • impactful ICs
    • understand engineers’ motivations
  • Get familiar with the company
    • become conversant around business
      • get a better understand of company values/KPIs
      • review product roadmap and identify engineering objectives
      • identify/facilitate improvements for any engineering/product bottlenecks
    • familiarize self with engineering processes
    • get hands-on with codebase; implement features and/or fix bugs
  • Recruit top-notch engineering talent
    • formulate/revise current job reqs as necessary
    • reach out to own network to populate open reqs
    • incentivize engineers to recruit friends/former co-workers
  • Retain top-notch engineering talent
    • review/establish benchmarks around engineer productivity
    • establish monthly Developer NPS
    • encourage pairing
    • engage engineers around
      • SDLC processes, including TDD/testing and release management
      • tools (scripts, shells, editors, aliases, etc.)
  • Engineer appropriate level of software quality
    • review/establish benchmarks around software quality
    • examine engineering/product relationship for any potential improvement wins
  • Ensure stewardship of engineering costs
    • review engineering spend
    • identify categories for re-allocation as appropriate

60 Day Plan

  • Get feedback from C-Suite
  • Recruit top-notch engineering talent
    • internally-facing
      • review anticipated engineering challenges of next 24 months
      • review/assess Applicant Tracking System (e.g. JobScore)
      • ensure that company is represented on GlassDoor
      • present to executives a review of needs vs. current team resources
    • externally-facing
      • setup engineering blog (one-time)
      • incentivize engineers to provide content for engineering blog (ongoing)
      • post job reqs to Hacker News on the first of the month
  • Retain top-notch engineering talent
    • internally-facing
      • review/revise engineer productivity benchmarking
      • establish engineering orgs values; establish any further training needs
      • tie company initiatives back into engineering efforts
      • establish
        • catered team lunches (weekly)
        • refactoring Reviews (monthly)
        • lunchtime tech-talks (monthly)
    • externally-facing
      • strategize around engineering at company as a desirable place to work (as determined by positive reviews on GlassDoor)
  • Engineer appropriate level of software quality
    • review/revise benchmarks around software quality
    • inventory/assess/establish action items around
      • performance, scalability, and stability of key user experiences
      • testing strategy
  • Ensure stewardship of engineering costs
    • socialize generalized cost details among trusted advisors in my network for further ideation around cost reduction

90 Day Plan

  • Recruit top-notch engineering talent
    • internally-facing
      • monitor GlassDoor for action items (monthly)
    • externally-facing
      • continue to post job reqs to Hacker News on the first of the month
      • participate (and incentivize participation amongst engineers) in outreach towards 1) recruiting 2) promoting the company’s engineering culture and 3) professional development
      • host a Meetup on engineering-relevant topic (quarterly)
  • Retain top-notch engineering talent
    • internally-facing
      • review results of Developer NPS; assess any action items
      • establish
        • 2-day Hackathons (semi-annual)
        • team-building offsites (quarterly)
        • leveling plan
  • Engineer appropriate level of software quality
    • support culture of data-driven decision-making
    • continually review overall tact as manifestation of company/engineering values
  • Ensure stewardship of engineering costs
    • ensure that any new initiatives involving ENGR meet key criteria for ROI
    • review forthcoming scalability, security, reliability goals; organize initiatives accordingly

Results

  • Delivered immediate-term vision and strategy towards high-performance engineering culture.
Categories
Distributed Teams eCommerce Management Mobile

Managing @ TRR

(The RealReal : 9/16-9/17)

Execution

Provided research support around pre-IPO due diligence of SDLC metrics, teams’ productivity, and intellectual property

Shepherded months-long-overdue supply-side user acquisition feature into production (which had been built by third party vendor but then mothballed) by delegating to senior engineer for verification

Evaluated dev work towards long-term financial capitalization

Made introductions leading to offers for data science intern and candidate for Director of Estate Sales

Supported business’s most-important monthly accounting processes

Participated in Erlang and Elixir Factory 2017 and Google I/O 2017

Performed requirements analysis/discovery around 3rd party video chat solutions as a tactical way to increase supply-side engagement/retention

Proposed and shepherded build-out of Rules Engine POC (using Wongi) to simplify item pricing; abandoned because of time constraints

Hiring, Retaining

Led 21 Software and QA Engineers across seven web/mobile engineering teams (incl. in Russia, Canada, Central America) for:

  • web : Rails/vanilla JS/Resque/MySQL/ElasticSearch on Heroku
  • mobile: iOS and Android

Filled capacities of: Release Manager, (acting) Lead Engineer, Technical Recruiter, Scrum Master, Software Architect, Senior Engineering Representative (C-suite,) and Manager.

Partnered with HR to:

  • identify ways to plan direct reports’ performance improvements while effectively managing reports through direct communication and engagement when issues arise; crafting Performance Improvement Plans as necessary
  • start the engineering internship program in a bid to recruit highly-engaged, motivated potential future junior engineers; bringing on and coaching a female CS major from Columbia
  • to ensure diligence around off-boarding consultancy in favor of a more performant agency

Increased capacity by:

  • collaboratively establishing and tracking against 2017 objectives while engaging direct reports through periodic 1:1s as well as yearly performance reviews, including providing feedback as part of peripheral teams’ review processes
  • making introduction to highly-performant near- (Canada) and offshore (Russia) teams to augment local web teams while organizing and managing engineers and deliverables
  • fielding request to procure more resources on a Tuesday, re-established communication to previously-contacted near-shore agency immediately thereafter, and by Friday of that week, had a contract signed for two engineers to start two weeks later
  • facilitated Agile SDLC through leading standups, backlog grooming, commitment-based sprint planning, and retrospectives

Increased engagement by:

  • mentoring junior engineer in taking on time-sensitive accounting change having major impact to business and shepherded that effort to complete without bugs while meeting the deadline
  • organizing company-culture events for promoting team spirit (holiday party, cocktail contests, bowling, bocce, Exploratorium)
  • doing daily code reviews of teams’ PRs
  • drafted leveling plan

Continued search after multiple Lead engineer candidates ghosted/fell off the radar after offer; including the time after a candidate accepted job offer only then to inform us the day before he was to start that he had accepted another offer

Quality

Took over QA when QAE suddenly left; picking up Ghost Inspector, Runscope, and TestPad

Led eval efforts around Rainforest QA/on-boarding seasoned QAE replacement

Results

  • Led diverse co-located and remote web and mobile teams to deliver the user-facing experience for the premier luxury reseller.
Categories
Optimization

Optimizing @ TRR

(The RealReal : 9/16-9/17)

Intro’d technical design reviews : as part of initiative kick-offs towards improving scoping and architecture earlier in the product lifecycle.

Intro’d heart-beat deploys and a release calendar : for mitigating release risk while shepherding cultural shift towards feature deploys.

Integrated Zendesk, Pivotal, and Pager Duty : for improving escalation process.

Automated creation of Release Notes.

Coordinated development efforts with Marketing to facilitate Optimizely/OptimizelyX-powered third-party A/B Testing.

Increased velocity 13 to 30pts/sprint (Q4/2017.)

Decreased sprint Volatility by 62% (to 11%) and Standard Deviation by 15.5pts (to 4.8pts.)

Achieved improved productivity/engineer of 4.47 to 6.54pts/sprint (H1/2017.)

Intro’d idea of managing issues by severity (minor, major, critical.)

Established gold and silver tier browsers for effective due-diligence around ensuring quality desktop and mobile web experiences based on usage data from Google Analytics.

Templatized (and socialized) bug and feature story creation to improve information collection, team coordination, and hand-off of stories.

Mentored junior and Lead QA Engineers.

Reduced 35% of JS errors logged in Bugsnag (by updating config to not report 3rd party errs.)

Results

  • Quantitatively and qualitatively improved performance around people, quality, and process.
Categories
Integration Process

Planning @ TRR

(The RealReal : 9/16-9/17)

Upon learning of a shift in business logic potentially adding $500K to the bottom line, worked with a junior engineer to apply an Occam’s Razor approach for planning necessary system changes; empowering said engineer to run point, taking the rest of the team with, delivering functionality without bugs and well ahead of project schedule.

Lacking a company-adopted product management tool, built spreadsheet for tracking engineering efforts as they facilitated delivery against business initiatives and key product priorities (against milestones tracked in Pivotal.)

Regarding Engineering org’s movement towards an Elixir-based SOA:

  • Scoped 50K-ft-view project plan towards porting all functionality
  • Coordinated efforts of local and remote engineers for prioritized, accelerated port of supply-side acquisition funnel from Rails to Phoenix

Provided high-level technical scoping for company’s best-performing (2017) lead-acquisition features:

  • friend referral (via Friendbuy) and
  • reconsignment (e.g. demand-side users selling items they previously bought)

Facilitated logistical and technical scoping around periodic (~2x/year) commission rule changes affecting key business metric : cost-of-consignment.

Led engineering effort around integration of third-party referral program (Friendbuy,) providing guidance that we could deliver in six weeks, then leading post-mortem around process inefficiencies preventing us from delivering before eight weeks.

Led representation around quality initiatives while interfacing with 3rd-party provider (Rainforest QA.)

Results

  • Contributed strategically and tactically towards planning and executing work.