Updated November 10, 2026
Analytics & privacy.
Contact messages
The contact form asks for your name, email address, and message. A server-side service sends the message through Resend to my private inbox so I can respond. Your address is used as the reply address. Submitting the form does not subscribe you to a mailing list.
The website does not maintain a contact-message database. Message content is processed by the email provider and stored in the receiving mailbox. Please send only information relevant to your inquiry.
Spam protection
The form uses Cloudflare Turnstile and approximate request throttling to reduce automated abuse. Verification is checked by the server before a message is accepted. If the form is unavailable, you can connect with me on LinkedIn.
Website analytics
The production site uses Cloudflare Web Analytics to understand visits and page performance. Contact-form values are not sent as analytics events or added to page URLs. Analytics is disabled on development and preview builds.
Read Cloudflare’s explanation of Web Analytics and its privacy policy for the provider’s processing details.
Operational information
Cloudflare hosts this site and processes requests needed to serve it. Application logs record operational information such as response categories, timing, and request identifiers. The application does not log contact-message bodies, names, email addresses, or verification tokens. Provider-level request processing is governed by the providers’ policies.
Service providers and external links
The site uses Cloudflare for hosting, verification, and analytics, and Resend for contact delivery. GitHub and LinkedIn links take you to those services, where their own policies apply. Fonts and portrait assets are served with this site.
For a question about a message you submitted, use the contact form or LinkedIn. Useful references: Resend privacy policy and Cloudflare privacy policy.