Skip to content

Best Practices

This guide outlines recommended practices for achieving optimal performance when working with the library.

Getting Started with the Library

For New Users (Students)

typescript
// DO: Start with a well-defined problem
const project = await daniel.mentor({
  level: 'student',
  approach: 'guided',
  scope: 'well-defined',
  meetingFrequency: 'weekly'
});

// DON'T: Try to solve everything at once
const project = await daniel.mentor({
  scope: 'boil-the-ocean'  // SCOPE_OVERFLOW error
});

Key principles:

For Experienced Users (Collaborators)

typescript
const collaboration = await daniel.collaborate({
  mode: 'peer-to-peer',
  communication: 'async-first',
  codeReview: true,
  whiteboard: 'on-demand'
});

Research Workflow

The Ideal Pipeline

  1. Start with the physics — What question are you actually trying to answer?
  2. Literature review — What has been tried? (Check arXiv, not just Google)
  3. Prototype fast — Get a minimal version working before optimizing
  4. Measure everything — If you can't plot it, you don't understand it
  5. Write as you go — The paper is not something you do "at the end"

Common Anti-Patterns

typescript
// Anti-pattern: Premature optimization
const model = new GNN({ layers: 47, features: 2048 });
// Start simple. Add complexity only when the simple version fails.

// Anti-pattern: Training without understanding
model.fit(data);  // "It works!" — but do you know WHY?

// Best practice: Understand, then scale
const baseline = new SimpleModel();
const results = await baseline.evaluate(data);
// Now you have something to compare against.

Communication Protocols

MethodBest ForResponse SLA
EmailFormal requests, paper drafts
Slack/MattermostQuick questions, links
In-personWhiteboarding, debugging, brainstorming
Video callRemote collaboration

Supervision Style

typescript
const supervisionConfig = {
  style: 'collaborative',
  meetings: {
    frequency: 'weekly',
    duration: '1h',
    format: 'discussion-not-status-update'
  },
  expectations: {
    independence: 'high',
    communication: 'proactive',
    mistakes: 'encouraged-and-expected'
  }
};

Teaching Philosophy

Released under the MIT License.