Skip to main content

Developer advocacy

Talks

Nium

VenueTopicAudienceCrowd sizeRemarks
Monthly Nium eventsFintech Meetup
Money20/20
Money Street Fest
Developers
PMs
payment leaders
treasury teams
20+Panel discussions regarding trust, compliance, payments stack and other financial topics as well as how Nium can help

Couchbase

VenueTopicAudienceCrowd sizeRemarks
San Jose Convention CenterCouchbase Connect - Hands-on query walkthroughDevelopers
techy PMs
300+Projected a PowerPoint presentation while speaking and leading the crowd to build queries on their laptops while I did on my laptop
Monthly MeetUp groupsCouchbase NoSQL vs SQLDevelopers
DBAs
20+Discussed various index and query types and use cases of Big Data

Blog posts

API

TitleAudienceRemarks
Stripe API authenticationFintech developersAuthentication, errors, idempotent requests, pagination, etc.
Stripe API chargesFintech developersCharges object, creating, retrieving, updating, etc.
Stripe API customersFintech developersCustomers object, creating, retrieving, updating, etc.

SDK

TitleAudienceCode samplesRemarks
Android SDK for online paymentsFintech developersJavaUsing Android Pay, collecting credit card info and payments, setting up an app, creating & using tokens, testing & deploying
iOS SDK for Apple Pay paymentsFintech developersSwift
Objective-C
Using Apple Pay, collecting credit card info, creating tokens, sending tokens to your server
Atelio web SDK documentationFintech developersRequirements, importing, displaying, setting card PIN

KB

TitleAudience
AppStack exclusions are not excluded from Writables VolumesVMware developers
After AppStack rescan, AppStacks is disabled or unprovisionedVMware developers
Writables are not created upon login in a multi-vCenter environmentVMware developers
How to install and use Log Collection with AppVolumesVMware developers
Printers with ThinPrint default conflictsVMware developers
How to allowlist blocked applicationVMware developers
Run Once configurations that run multiple timesVMware developers
How to replace an expired UEM licence fileVMware developers

Dev problems I've solved

Developer problemHow I solved itCompany
Developers had a hodge-podge of skill.md and instruction.md and various .yaml files and needed structure for their internal agent-driven workflows, server architecture, and usability.I Created a framework of governance and guardrails with templates in Markdown and YAML files to make it easier for developers to build Copilot AgentsMicrosoft
Metaverse developers had trouble making 3-D objects behave the way they wanted.I improved the Metaverse documentation with explanations and examples for faster building.Meta
Developers created an AI/ML/LLM system to populate the Netflix home screen of titles and needed to share this technology with other Netflix departments but weren't able to install or configure it outside their group.I tested and created internal documentation for the complex installation and configuration of their tool that populates the Netflix Home screen of titles so other departments can use it as wellNetflix
Developers of Nium's customers weren't able to onboard Nium's products due to the complexity of different steps for different company types in different countries.I made a step-by-step unified onboarding process that immediately doubled the number of customers onboarded while reducing helpdesk tickets by 75%.Nium
Developers were building internal AI/ML/LLM tools but had difficulty since Apache's documentation didn't cover all of their use cases or needs.I filled in their documentiona gaps and greatly enhanced their internal documentation with more explanations and examples for engineers to use the Apache ecosystem tools for their Big Data and IoT projects. My docs were called, "more thorough than Apache's documentation site."Yahoo
AdWordsAPI developers had trouble finding what they needed since the Confluence pages hadn't been updated in many months or years and some were simply obsolete.I improved the completeness and accuracy of the AdWords API department's documentation to be the highest rated department in all of GoogleGoogle
Customer developers had trouble writing queries since the documentation was sparse and had no example queries of usage.I vastly improved their documentation by elaborating on the explanations and usage as well as adding many example queries, which Reduced helpdesk tickets by 30%Couchbase
Developers couldn't keep up with the ever-growing queue of helpdesk tickets since their process didn't call customers at the best time to reach them.I redesigned their Helpdesk system to call them during the timespan the specified and at the number (home or work) specified; and I answered many calls myself instead of creating a ticket. These Reduced helpdesk tickets by 88%Microsoft

Community contributions

Nium.com Dev Portal

    and

Couchbase.com/forums

Moderator

  • Helped facilitate community discussions by enforcing forum guidelines
  • Removed spam, ads, and self-promotion posts
  • Ensured posts remain respectful and on-topic
  • Moved, edited, or merged threads so questions are properly categorized and easier to find

Developer advocate

  • Assisted developers
  • Escalated technical questions to the right engineering teams
  • Replied to posts with technical answers
  • Replied to dozens of forum posts via email due to privacy issues
  • (In the future, I'll post the non-private parts in the forum so everyone can benefit)

Driver of growth

  • Gathered customer and potential customer feedback which influenced the product
  • Identified friction points of customers and potential customers and addressed them
  • Generated dozens of "leads" and "pipeline influence"
  • Noticed stalled or immature forum categories and designed plans to grow them

Feedback loops

On the Couchbase SQL++ for Query Reference and Atelio documentation pages, I added a feedback mechanism that:

  • asks Is this page helpful? Yes/No
  • has a Leave Additional Feedback? link to send entered text to the technical writer for triage and ticket making

Code samples I wrote

SDK quickstarts

PostAudienceCode samplesRemarks
Android SDK for online paymentsFintech developersJavaUsing Android Pay, collecting credit card info and payments, setting up an app, creating & using tokens, testing & deploying
iOS SDK for Apple Pay paymentsFintech developersSwift
Objective-C
Using Apple Pay, collecting credit card info, creating tokens, sending tokens to your server
Atelio SDK for cardsFintech developerscURL
Ruby
Python
JavaScript
C#
Java
Requirements, importing, displaying, setting card PIN

API sandbox demos

Sandbox demoCompany
Sandbox vs ProductionAtelio of FIS
Testing servicesNium

Postman collections

Postman collectionCompany
Atelio APIsAtelio of FIS
Nium APIsNium

Nium API reference

Nium has added more API endpoints and supported languages after I left. The following are the API endpoints I documented with code samples in:

  • C
  • cURL
  • HTTP
  • Java
  • JavaScript
  • Python
CUSTOMERS

Customer onboarding
List customers
Create customers
Get customer
Update customer
Submit KYC for entity
Fetch public corp details
Fetch exhaustive corp details

Customer account - individual
Unified add customer
Customer update
Fetch indv cust RFI details
Respond to RFI
Upload document
Add customer - MyInfo
Add customer - eDoc verify

Customer account - corporate
Fetch corp details by Biz ID
Onboard corporate customer
Fetch corp cust RFI details
Respond to RFI for corp cust
Upload doc for corp customer
Regenerate KYC URL
Fetch corp constants
Update corp customer
Fetch public corp cust details

Customer management
Customer list
Customer details
Block/Unblock customer
Acct statement
Acct statement of a wallet
Manage customer tags

LINKED BANK ACCOUNTS

Fetch all accounts
Fetch an account
Create an account
Confirm acct authentication
Delete account
Update account

PAYINS

Customer funding
Confirm funding instrument
Get funding instr. details
Get funding instr. list
Delete funding instr.
Add funding instr.
Fund wallet
Approve or reject funds

Customer virtual accounts
Assign payment ID
Manage virtual acct tags
Virtual account details
Acct ownership certificate
Verification of consent

PAYOUTS

Account verification
Beneficiary list
Add beneficiary
Beneficiary details
Update beneficiary
Bene validation schema
Delete beneficiary



CARDS

Simulators
Simulate authorize card
Simulate settlemet

Lifecycle
Add card
Activate card
Card details
Update card details
Card list
Get card details widget
Block and replace card
Convert to physical card
Lock/Unlock card
Renew card
Assign card

Security
Fetch card data encrypted
Fetch PIN status
Unblock PIN
Fetch ATM PIN
Set/Reset PIN
Show sec details encryp

CLIENTS

Prefund account
Client prefund request
Fetch prefund request
Client prefund balances

Client settings
Client details
Fee details
Get max and avail limits
Client transactions
WALLETS

Wallet balance
Get wallet balance
Update wallet
Fetch wallet
Add wallet

Wallet transfers
Wallet-to-wallet xfer
Transactions
Update biz trans flag
Trans geo-tagging
Download trans receipt
Upload trans receipt
Manage trans tags

REPORTS

Initiate report
Download report

TESTING

Sim payout trans
Sim payin recv
Sim payin funding

CUSTOMERS

User management
List users
Create user
Get user
Submit user KYC




SQL indexes and queries

  • While at Couchbase, there was a potential customer who wanted to buy if he could see examples of a new ANSI Index that was shipping in the latest version.
    • The problem was that the default database that comes with Couchbase Server didn't contain enough specialized indexed fields to demonstrate the power of the new ANSI Index, and Couchbase executives didn't want to change any part of their example database.
    • So, I created the indexes needed to make a query that could use the new ANSI Index and then made sample queries that used the new ANSI Indexes with my newly made indexed fields; and then I made a script so anyone could replicate those creation steps.
    • I did this ad hoc "patch" again a few weeks later for a different customer who had a different use case.
    • A few months later, Couchbase modified their example database to include these and other index types for all customers.
  • All the SQL indexes and SQL queries on all pages under SQL++ for Query Reference
OperatorsFunctions
Statements (A-D)
Statements (E-U)SELECT
Arithmetic


Collection

Comparison

Conditional

Construction


Logical


Nested


Sequence

String
Aggregate
Array

Bitwise

Comparison
Conditional for X
Conditional for Int

Date

JSON

Miscellaneous Utility

Number

Object

Pattern-Matching
Search

String

Token
Type

User-Defined

Vector

Window
ADVISE
ALTER BUCKET
ALTER GROUP
ALTER INDEX
ALTER SEQUENCE
ALTER USER
ALTER VECTOR INDEX

BEGIN TRANSACTION
BUILD INDEX

COMMIT TRANSACTION
CREATE BUCKET
CREATE COLLECTION
CREATE FUNCTION
CREATE GROUP
CREATE INDEX
CREATE PRIMARY INDEX
CREATE SEQUENCE
CREATE SCOPE
CREATE USER
CREATE VECTOR INDEX

DELETE
DROP BUCKET
DROP COLLECTION
DROP FUNCTION
DROP GROUP
DROP INDEX
DROP PRIMARY INDEX
DROP SEQUENCE
DROP VECTOR INDEX
DROP SCOPE
DROP USER
EXECUTE
EXECUTE FUNCTION
EXPLAIN
EXPLAIN FUNCTION

GRANT

INFER
INSERT

MERGE

PREPARE

REVOKE
ROLLBACK TRANSACTION

SAVEPOINT
SET TRANSACTION

UPDATE
UPDATE STATISTICS
UPSERT
USING AI
Syntax
Clause

WITH
WITH RECURSIVE

FROM

USE

JOIN
JOIN Comma-Separated

NEST
UNNEST

LET

WHERE

GROUP BY
WINDOW

UNION, INTERSECT, EXCEPT

ORDER BY

LIMIT
OFFSET