Beats to bytes. Music producer - AI engineering from scratch. Building towards Audio AI.

Joined June 2009
294 Photos and videos
Pinned Tweet
The music industry is changing faster than most people realize. I spent 18 years on the creative side. Now I've started to build the technology that's reshaping it. Music producer -> AI engineer. From scratch. In public. Follow the journey.
2
211
Today I learned async with Claude Code. Running API calls one at a time took 3.44 seconds. Running them together dropped it to 1.36. Two weeks ago I didn't know what await meant. The pace still surprises me. #claudecode
1
23
Instance methods work on one object. Class methods work on the class itself. @classmethod gets the class as first argument. @staticmethod gets nothing special. Same class, different levels. #100DaysOfCode #buildinpublic
22
Some attributes shouldn't be changed from outside the class. Prefix with _ to signal "internal use only." Prefix with __ to actually enforce it. Not a lock. More like a label that says "don't touch this." #100DaysOfCode #buildinpublic
1
20
Goodnight thought: I keep waiting to feel like I know what I'm doing. Starting to think that feeling never really arrives. You just get more comfortable not having it.
11
__str__ is what your object says when someone calls print() on it. Without it, you get <Track object at 0x104f3a2b0>. With it, you get something useful. #100DaysOfCode #buildinpublic
37
Goodnight thought: starting over at something this late feels strange. But the part of me that learned music is the same part learning this. It still knows how to be a beginner.
31
Inheritance means "start with everything this class has, then add your own." StemTrack gets all of Track for free. Then I just add what's different. Less code. More structure. #100DaysOfCode #buildinpublic
1
26
The error message told me exactly what was wrong. I just had to read it more than once. Okay, more than five times.
1
2
27
Goodnight thought: some days you just show up, write the code, and nothing breaks. No insight. No breakthrough. Those days count too.
3
3
73
Methods inside a class are just functions that know which instance they belong to. self.bpm doesn't mean "bpm in general." It means "the bpm of this track." That "this" is what makes OOP click. #100DaysOfCode #buildinpublic
2
54
Goodnight thought: Anthropic dropped Fable 5 today. Their most capable public model yet. I just started learning AI agents. The timing feels right.
1
36
Hey everybody, this is Fable! Thanks @claudeai !!
25
The model I learn with every day just leveled up. 2x the usage of Opus. Going to feel the difference. #ClaudeFable #Anthropic
31
OOP has one rule that changes everything: keep the data and the functions that use it in the same place. A Track knows its own BPM. It doesn't need to ask. That's what a class actually is. #100DaysOfCode #buildinpublic
1
17
Goodnight thought: Most days you don't feel the progress. You just show up, write the code, close the laptop. Then one day you look back and can't believe how far the starting point is.
20
A class is a blueprint. Track("Apex", 140) is the actual thing. __init__ runs the moment you create one. self is the instance referring to itself. That's all I needed to hear to get started. #100DaysOfCode #buildinpublic
46
print() is my debugger and at this point I'm not even embarrassed about it.
1
1
91
class InvalidBPM(Exception): pass Just a name, no body needed. That name lets you write except InvalidBPM to catch only this specific error. The more specific your exceptions, the clearer your error messages. #100DaysOfCode #buildinpublic
1
56
4 months ago I opened a code editor for the first time. Since then: Python, OOP, NumPy, Pandas. Shipped a CLI tool. Now learning Flask. 18 years in music production taught me how to build things that feel right. Now I'm learning to build things that actually run.
2
58