Back to Writing
Guide

Coding with AI

๐—ง๐—ต๐—ฒ๐—ฟ๐—ฒ ๐—ถ๐˜€ ๐—ฎ ๐—ด๐—ผ๐—ผ๐—ฑ ๐˜„๐—ฎ๐˜† ๐˜๐—ผ ๐—ฐ๐—ผ๐—ฑ๐—ฒ ๐˜‚๐˜€๐—ถ๐—ป๐—ด ๐—”๐—œ ๐—ฎ๐—ป๐—ฑ ๐—ต๐—ฒ๐—ฟ๐—ฒ ๐—ถ๐˜ ๐—ถ๐˜€....

January 1, 2026
3 min read
AI

I have written a couple of posts about cons of blind use of AI for writing code for Bioinformatics. Don't take me on the AI bashing side, I myself use Claude Code and Cursor. The AI coding assistants help me writing code faster for sure.

Here is how I extract the most out of them reliably.

1. ๐—ฆ๐—ฒ๐˜ ๐˜‚๐—ฝ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ฎ๐˜€๐˜€๐—ถ๐˜€๐˜๐—ฎ๐—ป๐˜๐˜€ ๐—ฝ๐—ฟ๐—ผ๐—ฝ๐—ฒ๐—ฟ๐—น๐˜† ๐—ณ๐—ผ๐—ฟ ๐—ฎ ๐—ฝ๐—ฟ๐—ผ๐—ท๐—ฒ๐—ฐ๐˜
Before starting on a project, spend time in defining a plan. Could be in form of claude.md in Claude Code or .cursorrules in case of Cursor. Mention all considerations, for ex: folder structure, test cases, overall intent, rules etc. Do these docs well with examples, intent and structure.

2. ๐—ฆ๐˜๐—ฎ๐—ฟ๐˜ ๐˜„๐—ถ๐˜๐—ต ๐—ฎ ๐—ฐ๐—น๐—ฒ๐—ฎ๐—ฟ ๐˜๐—ฎ๐˜€๐—ธ, ๐—ป๐—ผ๐˜ ๐—ฎ ๐˜ƒ๐—ฎ๐—ด๐˜‚๐—ฒ ๐˜„๐—ถ๐˜€๐—ต
Even for specific tasks, instead of "help with this bug", I describe the goal and constraints.
"Given this function, add input validation and clear error msg. Do not change the public API."
Task first prompts consistently produce better code.

3. ๐—™๐—ฒ๐—ฒ๐—ฑ ๐—ถ๐˜ ๐˜๐—ต๐—ฒ ๐—ฟ๐—ถ๐—ด๐—ต๐˜ ๐˜€๐—น๐—ถ๐—ฐ๐—ฒ ๐—ผ๐—ณ ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐˜…๐˜, ๐—ป๐—ผ๐˜ ๐˜๐—ต๐—ฒ ๐˜„๐—ต๐—ผ๐—น๐—ฒ ๐—ฟ๐—ฒ๐—ฝ๐—ผ๐˜€๐—ถ๐˜๐—ผ๐—ฟ๐˜†
I open the relevant files, select the function/module, and add a comment about what it should do and then let IDE take care of it. Assistants perform best when the context is small and focused, not with a dump of thousands of lines.

4. ๐——๐—ผ๐—ป'๐˜ ๐—ฎ๐—ฐ๐—ฐ๐—ฒ๐—ฝ๐˜ ๐˜๐—ต๐—ฒ ๐˜€๐˜‚๐—ด๐—ด๐—ฒ๐˜€๐˜๐—ถ๐—ผ๐—ป๐˜€ ๐—ฏ๐˜† ๐—”๐—œ ๐—”๐˜€๐˜€๐—ถ๐˜€๐˜๐—ฎ๐—ป๐˜๐˜€ ๐—ฏ๐—น๐—ถ๐—ป๐—ฑ๐—น๐˜†.
Developers often accept AI suggestions with less scrutiny than they would from a human. Don't do that. Ask the assistants to explain the approach & reasoning, consider alternatives and weigh pros & cons. Treat the assistant like a smart junior developer. Always assume "this is a good draft, but I must verify it".

5. ๐—ก๐—ฒ๐˜ƒ๐—ฒ๐—ฟ ๐—ฐ๐—ผ๐—บ๐—บ๐—ถ๐˜ ๐—ฐ๐—ผ๐—ฑ๐—ฒ ๐˜†๐—ผ๐˜‚ ๐—ฑ๐—ผ ๐—ป๐—ผ๐˜ ๐˜‚๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€๐˜๐—ฎ๐—ป๐—ฑ
Big rule. If I cannot explain what the AI generated line by line, I do not ship it. I step through the logic, run it in a small sandbox, and only then let it near main.

6. ๐—ž๐—ฒ๐—ฒ๐—ฝ ๐˜€๐—ฒ๐—ฐ๐˜‚๐—ฟ๐—ถ๐˜๐˜† ๐—ฎ๐—ป๐—ฑ ๐—ฝ๐—ฟ๐—ถ๐˜ƒ๐—ฎ๐—ฐ๐˜† ๐—ถ๐—ป ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐˜…๐˜ ๐˜†๐—ผ๐˜‚ ๐˜€๐—ต๐—ฎ๐—ฟ๐—ฒ
I avoid pasting secrets, API keys, real customer data or anything sensitive into prompts or shared traces. I use example data and clearly label it as such.

7. ๐—ฆ๐—ผ๐—ณ๐˜๐˜„๐—ฎ๐—ฟ๐—ฒ ๐—ฒ๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด ๐—ณ๐˜‚๐—ป๐—ฑ๐—ฎ๐—บ๐—ฒ๐—ป๐˜๐—ฎ๐—น๐˜€ ๐˜€๐˜๐—ถ๐—น๐—น ๐—บ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ ๐—ฒ๐˜ƒ๐—ฒ๐—ป ๐—บ๐—ผ๐—ฟ๐—ฒ
Plans, tests, good code practices, documentation and code review habits matter even more when a model is helping you write code. Be the driver behind the AI, don't let it make decisions on an autopilot. Be responsible for quality and maintainability.

Used this way, Claude Code, Cursor or any other IDE help you write the kind of code you are proud about, just with less grunt work and more focus on the interesting parts.