Guides and API reference
Live company websites
I created and fully owned the following company websites. I used Git, Markdown, Oxygen, Postman, ReadMe, and VS Code to create documentation for developers, DBAs, and technical PMs. Links open into a new browser tab.
| Company | Developer guides | API reference | Collaborated with | Highlight |
|---|---|---|---|---|
| Atelio of FIS | Product discontinued My copy | Product discontinued. Similar to Nium's | 1 editor, 5 SMEs | Revamped and reduced the developer pages by 40% |
| Nium | Getting Started | Introduction | 1 editor, 6 SMEs | 70% more onboarding of clients with 70% fewer issues |
| Couchbase | SQL++ Reference | 1 editor, 9 SMEs | Reduced their writing process by 80% |
My most technical projects
| Developer problem | How I solved it | Company |
|---|---|---|
Developers had a hodge-podge of skill.md, instruction.md, and .yaml files that 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 help developers build Copilot Agents that adhere to company rules and standards. | Microsoft |
| 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 well. | Netflix |
| 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 saw 70% more customers onboarded while reducing helpdesk tickets by 70%. | 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 documentation 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. An engineer called my docs "more thorough than Apache's documentation site." | Yahoo |
Kubernetes kubectl
(I wrote this for an interview's assignment with that company's style guide)
Major and alternative cloud providers support Kubernetes, offering fully managed services that handle the control plane. Use kubectl, a command-line utility, to communicate with a cluster's control plane via the Kubernetes API. Every kubectl command has the following syntax:
kubectl [command] [TYPE] [NAME] [flags]
The following table lists all kubectl commands for debugging your cluster:
CLI Command | Description |
|---|---|
kubectl get pods --namespace <namespace> | Get a list of pods and their status by specifying the namespace. |
kubectl logs <pod-name> | Retrieve the logs of a specific pod. |
kubectl logs -f <pod-name> | Stream or "follow" logs in real-time. |
kubectl exec <pod-name> | Debug a container from the inside or explore the environment of the container itself. |
kubectl exec -it <pod-name> -- /bin/bash | Open an interactive terminal session inside a running pod's container. |
Handle Errors
Issues Inside a Container
If you experience issues inside a container, use the following syntax:
kubectl debug -it <pod-name> --image=busybox --target=<container-name>
What you see first:
Defaulting debug container name to debugger-xxxxx.
Targeting container "your-app-container". If you don't see logs for this container, try something else.
Use kubectl debug to diagnose the following symptoms in a running (or crash-looping) container:
- Container lacks a shell
- Container constantly crashes
- Container requires node-level host troubleshooting
Pod Doesn't Terminate
A stuck pod is often caused by:
- stuck finalizers
- a hung kubelet
- a volume that won't unmount
To troubleshoot this, try kubectl delete pod <name> --grace-period=0 --force or investigate finalizers directly.
References
Appendix
Years of DITA
| Company | From | Until | Years | DITA | AEM | Oxygen XML | XMetaL | Pages |
|---|---|---|---|---|---|---|---|---|
| ChargePoint | Nov 2018 | May 2019 | 0.5 | ✅ | ✅ | |||
| Couchbase | Apr 2017 | May 2018 | 1.2 | ✅ | ✅ | |||
| Wells Fargo | Jan 2017 | Mar 2017 | 0.2 | ✅ | ✅ | |||
| VMware | Aug 2016 | Dec 2016 | 0.3 | ✅ | ✅ | |||
| Visa | Mar 2016 | Jun 2016 | 0.3 | ✅ | ✅ | |||
| Hitachi | Aug 2015 | Feb 2016 | 0.5 | ✅ | ✅ | |||
| Apple | Feb 2015 | Jun 2015 | 0.3 | ✅ | ✅ | |||
| NICE Systems | May 2014 | Jul 2014 | 0.2 | ✅ | ✅ | |||
| V.A. Medical | Feb 2011 | Sep 2012 | 1.6 | ✅ | ||||
| ADP Payroll | Oct 2008 | Dec 2010 | 2.2 | ✅ | ✅ | |||
| ==== | ==== | ====== | ====== | ===== | ||||
| 7.2 | 0.8 | 1.9 | 2.7 | 0.3 |