C#/.NET Software Developer Looking for Work

Brett's AI Native Development -- AI Assistant

Message LLMster

Ask the local model about Brett or anything else.
ENTER = SEND   •   SHIFT+ENTER = NEW LINE

I'm Brett Drake, a C#/.NET Software Developer Looking for Work

I am seeking software development work of any kind. If you have a development project you'd like help with, or something you'd like to see added to this site, then email me.

The main things to see may be the fully functional demos or the AI Native develpment. I originally wrote OutlookJunkEmailCleaner for fun as a reaction against spammers, but it turned out to have real value for me. Building it helped me learn more about how the spam operations behind those messages work. Most importantly, it gave me back control of my Outlook junk-email folder.

There is also a small Kafka project I did to see the difference from Azure's service bus.

You can also find me on Stack Overflow and LinkedIn.

Deployment status preview

AI-Assisted Development

I was an early adopter of ChatGPT once it became good enough to write code.

I now use Codex efficiently to produce not just working functionality, but clean, maintainable code.

Codex writes mediocre code by default regardless of the model or time spent. Keeping it in PR mode and reviewing every line, I can force it to meet my much higher standards and ask it to remember aspects of those standards. Also, I can just let it update the local directory and use diffs to guard against unwanted changes. There is value in both methods--PR or local directory diffs. That feels like more of an organizational decision based on how a company wants to operate.

Although AI makes me faster, I still must oversee and guide the development. One thing that happened recently was I said "Fix the eslint issues", and it took away await and replaced it with promise chains. This was a documented eslint false positive. I pushed back, and it then fixed it correctly, preserving my original async await style.

Keeping Codex Honest

The AI Stack

The chat above runs on a language model hosted on this Mac mini. Apple silicon's unified memory makes it a compact and capable AI server.

Each prompt travels through my C#/.NET API, across my local network, and into LM Studio's llmster, which serves the model.

I initially configured google/gemma-4-e4b with its Enable Thinking option turned on. Although the model supports reasoning, the additional thinking produced extremely long response delays in my setup, so I disabled it for this application.

The model returns Markdown-formatted text. To preserve the responsiveness of the streaming interface, each chunk is displayed immediately as it arrives. Once the complete response has been received, the accumulated text is rendered as Markdown, providing formatted output without delaying the streamed response.

The Mac mini that runs Brett Drake's AI model
The computer that hosts Brett Drake's containerized sites

How Is This Site Hosted?

Apache is the reverse proxy server. Multiple subdomains are used for different frontend implementations, with each subdomain routed to the appropriate Docker container.

Apache and Docker Engine make a good combination for this machine.

The machine itself is an older eight-core computer with 32 GB of RAM. Its capable hardware aged out of Windows 11 support, but as a Linux server it is an absolute powerhouse and is exceptionally well suited to this setup.