datamays logo datamays david mays

datamays.com

Status: In Production

Why I Built This

As I matured as a data engineer, I had so many things I wanted to work on and so many stories I wanted to tell. I wanted to document my journey, refine my understanding through writing, and share what I'm building with others.

Expected Outcome

I have a consolidated hub from which I can build my data projects, write articles relevant to my work, and share my projects and career journey with others. I don't have to worry much about the design elements, keep it simple and professional, and I get to have fun building the actual content.

Challenges & Tradeoffs

Building datamays.com presented a few non-trivial challenges, even though it was a personal project rather than a client deliverable:

1. Balancing flexibility and consistency

I wanted the site to feel polished and cohesive without creating a rigid framework that would slow down content creation. Tailwind’s utility-first approach solved part of this, but I still had to consciously define semantic tokens, reusable patterns, and minimal custom CSS to avoid “utility soup.”

2. Rendering Markdown reliably

Since the site’s writing system is Markdown-first, I needed a solution that could handle complex content—headings, lists, blockquotes, code blocks—while staying consistent with the design system. Tailwind Typography helped, but it required careful configuration to make colors, spacing, and typography match the rest of the site.

3. Integrating LLMs responsibly

Using large language models to accelerate development introduced a unique challenge: ensuring they aided productivity without diluting my voice. Every draft or outline had to be carefully reviewed, pruned, and refined to maintain technical accuracy, clarity, and my personal judgment.

4. Long-term maintainability

Even for a personal site, I wanted the architecture, styling, and content workflows to age well. This meant anticipating future feature expansions, evolving writing patterns, and potential site redesigns without locking myself into brittle or over-engineered solutions.

Lessons Learned

Reflecting on the project, several key lessons emerged:

1. LLMs are accelerators, not authors

Using AI in development is most effective when treated as a collaborative tool: draft generation, outlining, and idea exploration are strengths, but final judgment, technical correctness, and voice must remain human-controlled.

2. Simplicity beats cleverness

Features like a lightweight admin interface, structured typography, and a small set of reusable design tokens proved more valuable than complex animations, micro-interactions, custom-built text-editors, or experimental layouts. A clear, maintainable system reduces cognitive overhead for both developer and reader.

3. Iteration is critical

The site improved not in a single pass, but through repeated cycles of design, review, and refinement. Each iteration clarified tradeoffs and reinforced the principle that deliberate, thoughtful iteration is often more valuable than early perfection.