Building a nonprofit before you are allowed to earn money
My immigration status governs what I can and cannot be paid for, and it can change. I confirm my current status in writing on request rather than summarising it here, where it would go stale. The post is kept as written because the structural lessons — separating artifacts from operations, consolidating entities, defining what “launched” means — hold regardless of status, and because quietly deleting a post about building under constraint would be the wrong way to stop being constrained. What has not changed: nothing is incorporated, nothing is filed, nothing is pending, and no donations are solicited or accepted.
When I wrote this, I was in the United States on a dependent nonimmigrant status that did not, by itself, authorize employment. That single fact shaped a year of my work in a way almost nobody writes about, because the interesting part was not what I was blocked from doing. It was the strange gap between what you may build and what you may do with it.
Over the past year I have written a curriculum, drafted governance documents, built the software, published four program pages, and worked out the formation arithmetic for a nonprofit. Nothing has been filed. Not one form. That is not a delay in the plan, it is the plan.
Nothing described here is incorporated. No articles of incorporation have been filed, no IRS Form 1023 has been submitted, and no application is pending anywhere. It is not a recognized charity, donations are not tax-deductible, and none are being solicited or accepted. The board is one person, which is me, and a one-person board is not a board.
The line I keep running into
There is a distinction I have had to get very precise about, and it took me longer than it should have to see it clearly.
Writing code is building. Designing a curriculum is building. Drafting bylaws, sketching a governance structure, publishing a page that explains what a program would do: all building. None of it involves money changing hands and none of it requires anyone's authorization.
Accepting money is different. Being compensated is different. Registering an entity that solicits donations and then operating it is different. At the time, that whole category sat on the other side of a line my status drew, and I did not have a written answer about exactly where that line fell for someone in my situation.
I have not concluded that any of it is permitted. I have concluded that until someone qualified tells me in writing, the safe set is the set that involves no money.
I want to be clear that this is not a loophole I found. It is a distinction I am treating as real and unresolved, which is a much less satisfying position than having figured something out. I am waiting on a consultation with a free student legal services clinic. Until that answer exists in writing, I build and I do not operate.
What that actually feels like
It is a strange position. The work is ready and the permission is not.
I could hand the entire thing to someone else tomorrow and it would run. The curriculum is written. The scanner the security program would use is already open source and working. The pages are live. Every part of it exists except the part where it becomes real, and that part is not a technical problem I can solve by working harder, which is the only tool I am actually good at using.
The uncomfortable version of this: I am very well practiced at the parts that do not require anyone's permission, and completely stalled on the one part that does. I do not think that is a coincidence, and I do not think it is entirely a virtue either.
Four ideas, one entity
The concrete decision worth writing down is the one about structure, because it is the part that transfers to anyone, status or no status.
I had four separate program ideas and I was going to make four separate organizations. That was the default assumption and it was wrong.
- A bilingual introductory computer science program for English language learner high schoolers, built directly out of the peer-reviewed CS education research I co-authored.
- A navigation program for visa and scholarship questions facing international and immigrant students, which exists because I could not find good answers to my own.
- Environmental cleanups with impact tracking.
- Free security audits for student founders, running on the open source scanner I already wrote.
Collapsing those into one California nonprofit public benefit corporation with four programs changed the arithmetic considerably. Working it out for my own case, one entity is roughly $275 to form and carries three recurring filings a year. Four separate entities would have been roughly $1,100 and twelve filings a year. Those are my own estimates for my own situation, not a fee schedule anyone should plan against.
| Dimension | Four entities | One entity, four programs |
|---|---|---|
| Formation cost | About $1,100 | About $275 |
| Recurring filings | Twelve a year | Three a year |
| Boards to recruit and seat | Four | One |
| Bank accounts and bookkeeping | Four sets | One set |
| When something fails | Dissolve an entity | Shut down a program |
The money was the smallest reason
The filing fees are the part that shows up in a spreadsheet and the smallest part of the real cost. What actually kills small nonprofits is compliance load. Four entities means four boards to recruit, four sets of minutes, four annual reports, four registrations to keep current, and four independent chances to quietly fall out of good standing while you are busy doing the work you actually care about.
The other argument is about the unit of failure. A program is a much cheaper thing to be wrong about than an entity. If the cleanup program does not find traction, it gets shut down in a board meeting. If it had been its own corporation, being wrong means a dissolution process.
One caveat, because consolidation is not automatically right. Those four ideas share one audience and one thesis, which is access: to computing, to information, to a clean neighbourhood, to security work that normally costs money. If they did not share a thesis, one entity would be the wrong answer and I would just be building a conglomerate to save on filing fees.
The interim structure that borrows someone else's institution
The safest near-term path I found for the CS education program is not to run it as an independent anything. It is to run it as a program under my university's computer science education research lab, where I am already an undergraduate researcher.
That puts it inside an institution that already has legal counsel, insurance, a safeguarding policy, and a background check process. Borrowing that infrastructure is worth more than the independence I would be giving up, especially for a program whose entire premise is putting adults in a room with minors.
Safeguarding is a hard gate, not a nice-to-have. Background-checked tutors and a written policy have to exist before a program runs, and that requirement does not care how good the curriculum is or how badly the students need it.
What the research actually says, stated carefully
The CS education program comes out of a 60-participant study I co-authored. It found pre-to-post improvements in programming confidence, computing identity, enjoyment, and motivation, with novices gaining more than experienced programmers.
The limitation matters and I am not going to bury it. The comparison between the bilingual condition and the English-only condition produced an effect size in the range of Cohen's d 0.25 to 0.40 and was not statistically significant. So the honest claim is that the intervention moved students, not that bilingual instruction beat English instruction. A paper I co-authored was accepted to SIGCSE 2026, and I would rather represent it accurately than usefully. More on the research is on the research page and in the bilingual coding guide.
Working the program economics out on paper: roughly $200 per cohort, roughly $92 per student. Both are planning estimates, not results, because no cohort has run.
What launched means
I want to be strict about this word, because I watch people use it loosely and I notice how good it feels when they do.
Launched means a school has said yes, background-checked tutors are cleared, and students are in a room. That is the whole definition. A live web page is not a launch. Right now the pages are live and the organization is not, and I would rather say that sentence plainly than let a well-designed site imply otherwise.
What actually transfers
Most people reading this are not on a nonimmigrant status, but almost everyone builds under some constraint: an employment agreement, a non-compete, a university IP policy, or plain uncertainty about whether a thing is allowed.
- Separate the artifacts from the operation, then be honest about which side of the line each task sits on. Most of the work is usually on the safe side.
- Get the constraint answered in writing before you build what depends on the answer, not after. A verbal reassurance is not an answer, and I learned that the slow way.
- Consolidate entities aggressively. Recurring compliance load, not the formation fee, is the cost that compounds.
- Borrow an institution for the interim structure. Someone else's counsel, insurance, and safeguarding process is a real asset you can be granted without incorporating anything.
- Write down what launched means while you are still far away from it, so you cannot redefine it later when you want to claim it.
- Do the unpaid, unblocked work first. Curriculum, code, and documentation are not gated by anyone's permission, and they are the parts that make the answer worth having when it arrives.
The part I would not tell someone confidently
"Wait for a written answer" is genuinely hard advice to follow when the clock on your own status is running, and at the time of writing mine was. I am not going to pretend patience is easy when the calendar is the thing making you impatient. I wrote a timeline planner partly so the clock would be a diagram instead of a feeling, and I wrote about why I built it.
What I would actually say to someone in the same position: the waiting is only tolerable if the waiting is productive. Build the thing. Write the documents. Ship the code. Then, when the answer comes back, you are not starting. You are switching one thing on.
This is a personal account of my own decisions. It is not legal advice, not immigration advice, and not tax advice. Immigration and nonprofit rules are fact-specific and they change. If you are in a similar position, talk to a qualified attorney about your own situation rather than reasoning from mine.
A constraint on what you may do is not a constraint on what you may build, and the two get conflated constantly, usually by the person being constrained.
Nothing here is filed, nothing is pending, and the board is one person. That is the accurate status, and publishing it that way is the only version of building in public that is worth anything.
Free tools, three installable offline apps, and a co-authored ACM SIGCSE TS 2026 poster abstract. See the work or read the facts. Open to Summer 2027 software engineering, AI/ML, and quant internships.