The Kitchen Sink Post
This is a test post to make sure everything renders nicely. Think of it as a stress test.
Code blocks
Plain Python with syntax highlighting:
def naive_bayes(doc, vocab, priors, likelihoods):
scores = {}
for label, prior in priors.items():
score = math.log(prior)
for word in doc:
if word in vocab:
score += math.log(likelihoods[label].get(word, 1e-10))
scores[label] = score
return max(scores, key=scores.get)
Go with error handling:
func fetchMetrics(ctx context.Context, endpoint string) ([]Metric, error) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, endpoint, nil)
if err != nil {
return nil, fmt.Errorf("building request: %w", err)
}
resp, err := http.DefaultClient.Do(req)
if err != nil {
return nil, fmt.Errorf("executing request: %w", err)
}
defer resp.Body.Close()
var metrics []Metric
if err := json.NewDecoder(resp.Body).Decode(&metrics); err != nil {
return nil, fmt.Errorf("decoding response: %w", err)
}
return metrics, nil
}
Bash:
# Deploy to production
kubectl apply -f k8s/deployment.yaml
kubectl rollout status deployment/api --timeout=120s
kubectl get pods -l app=api
Inline code also works: const x = 42 or kubectl get pods.
Callouts
Astro ships zero JavaScript by default. This entire page has no client-side JS except the theme toggle.
Use error budgets to decide when to ship features vs. fix reliability. If your error budget is full, ship. If it’s gone, fix.
Never run kubectl delete namespace production without a backup. Ask me how I know.
Don’t store secrets in environment variables baked into Docker images. Use a secrets manager.
Blockquotes
The goal of SRE is to make tomorrow’s work easier than today’s.
— Ben Treynor Sloss, inventor of SRE at Google
Tables
| Company | Role | Period |
|---|---|---|
| Apple | Site Reliability Engineer Intern | Jun – Sep 2025 |
| Coinbase | Backend Software Engineer Intern | May – Aug 2024 |
| Unlimited Remit | Software Engineer Intern | Jun – Aug 2023 |
Lists
Unordered:
- Computer vision models like SAM3D and DepthAnything
- Volumetric 3D formats (.splat, .ply, .glb)
- Upload pipelines handling 1500+ files
Ordered:
- User uploads an image or video
- Pipeline sends it to a GPU worker
- Model runs depth estimation
- Output is converted to a 3D splat
- File is stored and served via CDN
Nested:
- Infrastructure
- Kubernetes on GCP
- Spinnaker for deployments
- Prometheus + Grafana for metrics
- Application
- Go services for the API
- Python workers for ML
Typography
Normal paragraph text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Bold text for emphasis. Italic text for softer emphasis. Strikethrough for corrections. inline code for technical terms.
A link to the blog and an external link both work fine.
Headings at every level
H3 heading
Some content under an H3.
H4 heading
Some content under an H4.
That’s everything. If it all looks good, the blog is ready.