Faits:
Faits:
A. Z._ SA, une société active dans le domaine des prestations de service en matière d'informatique, a engagé X._ en qualité d'expert en architecture de logiciels (software architect). Deux conventions furent signées aux fins de cet engagement, le 31 juillet 1998 au nom de la société et le 22 suivant par l'expert.
L'une d'elles prévoyait que l'expert se chargerait de tâches à accomplir dans les locaux de la société ou au domicile de clients, moyennant une rétribution mensuelle de base fixée à 10'000 fr. Parmi d'autres questions, cette convention réglait la fin des rapports de travail, dont la durée n'était pas définie: après le temps d'essai et pendant la première année de l'engagement, chaque partie pourrait donner congé par un avis écrit, à remettre à l'autre partie un mois à l'avance pour la fin d'un mois.
L'autre document attribuait à l'expert une mission à accomplir pour le compte de A._ dans les locaux de la banque B._ à Zurich. La durée initiale de cette mission était fixée à une année dès le 24 août 1998. L'expert avait droit à une rétribution horaire fixée à 88% du montant de 162 fr. 50 que la société percevrait elle-même de son client. La rétribution convenue s'élevait donc à 143 fr. l'heure. La société déduirait toutefois la rétribution de base, les charges sociales et tous les frais directement imputables aux rapports de travail.
Le 25 août 1998, la société a établi et signé une nouvelle version de cette deuxième convention. L'expert ne travaillerait pas pour le compte de A._ mais pour celui de la société directement; en outre, la rétribution horaire serait fixée à 150 fr. Pour le surplus, les modalités déjà convenues étaient reproduites sans changement. L'expert a reçu ce document mais il ne l'a pas signé ni renvoyé.
L'expert a entrepris l'activité convenue en faveur de la banque B._ à Zurich; la société l'a rétribué sur la base du taux horaire de 150 fr.
L'expert a entrepris l'activité convenue en faveur de la banque B._ à Zurich; la société l'a rétribué sur la base du taux horaire de 150 fr.
B. La société et la banque B._ ont convenu de mettre fin à la mission de l'expert au 26 février 1999. Celui-ci a également accepté l'interruption de sa mission; il acceptait aussi la fin de ses rapports de travail avec la société mais il exigeait d'elle le respect du délai de congé. Par lettre du 25 février 1999, la société a au contraire résilié le contrat d'engagement avec effet immédiat. Cet écrit devait être communiqué à l'expert par l'intermédiaire de la banque B._; cependant, le 26 février, jour où son activité s'est effectivement terminée, le destinataire a refusé d'en prendre connaissance et de le recevoir. Un autre exemplaire de cette lettre lui est parvenu le 1er mars 1999.
Par la suite, Z._ SA est devenue C._ SA; elle s'est transformée en une société à responsabilité limitée et elle a enfin pris le nom de Y._ Sàrl.
Par la suite, Z._ SA est devenue C._ SA; elle s'est transformée en une société à responsabilité limitée et elle a enfin pris le nom de Y._ Sàrl.
C. Le 20 mars 2001, X._ a ouvert action contre C._ Sàrl devant le Tribunal cantonal du canton de Neuchâtel. Sa demande tendait au paiement de 80'800 fr. 85 avec intérêts annuels à 5% dès le 1er mars 1999. Il soutenait que la résiliation immédiate du contrat d'engagement était injustifiée. Il réclamait le salaire correspondant aux mois de mars et avril 1999, au titre de ce qu'il aurait gagné si l'autre partie avait respecté le délai de congé; il prétendait en outre à un mois de salaire à titre d'indemnité. Il faisait aussi valoir que son employeuse avait facturé, pour chaque heure de son activité, un honoraire de 195 fr. à la banque B._. A son avis, il aurait dû être lui-même rétribué au taux de 88% de cet honoraire, soit 171 fr. 60 l'heure; il réclamait donc la différence entre cette rémunération et celle effectivement perçue au taux de 150 fr. l'heure.
La défenderesse, contestant toute obligation, a conclu au rejet de la demande.
Statuant par un jugement du 5 octobre 2004, la IIe Cour civile du Tribunal cantonal l'a condamnée à payer au demandeur un salaire brut de 21'829 fr. La Cour a admis que la résiliation immédiate du contrat était injustifiée. Cette résiliation avait été communiquée au demandeur avant la fin de février 1999; celui-ci ne pouvait donc réclamer que le salaire du mois de mars, soit le montant précité, au titre de ce qu'il aurait gagné en cas de respect du délai de résiliation contractuel. Il n'y avait pas lieu de lui allouer une indemnité supplémentaire et la défenderesse ne devait aucune rétribution au-delà du taux horaire de 150 fr. Le jugement est entièrement silencieux en ce qui concerne d'éventuels intérêts sur la prétention allouée au demandeur.
Statuant par un jugement du 5 octobre 2004, la IIe Cour civile du Tribunal cantonal l'a condamnée à payer au demandeur un salaire brut de 21'829 fr. La Cour a admis que la résiliation immédiate du contrat était injustifiée. Cette résiliation avait été communiquée au demandeur avant la fin de février 1999; celui-ci ne pouvait donc réclamer que le salaire du mois de mars, soit le montant précité, au titre de ce qu'il aurait gagné en cas de respect du délai de résiliation contractuel. Il n'y avait pas lieu de lui allouer une indemnité supplémentaire et la défenderesse ne devait aucune rétribution au-delà du taux horaire de 150 fr. Le jugement est entièrement silencieux en ce qui concerne d'éventuels intérêts sur la prétention allouée au demandeur.
D. Agissant par la voie du recours en réforme, le demandeur requiert le Tribunal fédéral de modifier le jugement en ce sens que sa demande soit entièrement admise.
La défenderesse a présenté des observations tendant au rejet du recours mais elle n'a pas pris de conclusions.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours est formé par une partie qui a succombé dans ses conclusions. Il est dirigé contre un jugement final rendu par un tribunal suprême. Alors même que ce tribunal n'a pas statué sur les conclusions du demandeur tendant à des intérêts moratoires, le jugement n'est pas susceptible de révision selon les art. 427 ou 428 CPC neuch.; le droit cantonal diffère, sur ce point, de l'art. 136 let. c OJ. De toute manière, si elle était disponible, la révision ne constituerait pas un recours ordinaire aux termes de l'art. 48 al. 1 OJ (Jean-François Poudret, Commentaire de la loi fédérale d'organisation judiciaire, n. 1.3.6 ad art. 48 OJ) et elle ne s'opposerait donc pas à la recevabilité du recours en réforme. Le jugement est intervenu dans une contestation civile dont la valeur litigieuse dépasse largement le seuil de 8'000 fr. (art. 46 OJ). Déposé en temps utile (art. 54 al. 1 OJ) et dans les formes requises (art. 55 OJ), le recours est en principe recevable.
Le recours en réforme peut être formé pour violation du droit fédéral (art. 43 al. 1 OJ). Il ne permet en revanche pas de critiquer la violation directe d'un droit de rang constitutionnel (art. 43 al. 1 2e phrase OJ) ni la violation du droit cantonal (<ref-ruling> consid. 2c et les arrêts cités). Le Tribunal fédéral doit conduire son raisonnement juridique sur la base des faits constatés dans la décision attaquée, à moins que des dispositions fédérales en matière de preuve n'aient été violées, qu'il y ait lieu de rectifier des constatations reposant sur une inadvertance manifeste (art. 63 al. 2 OJ) ou qu'il faille compléter les constatations de l'autorité cantonale parce que celle-ci n'a pas tenu compte de faits pertinents, régulièrement allégués et clairement établis (art. 64 OJ; <ref-ruling> consid. 2.2, 136 consid. 1.4). Dans la mesure où la partie recourante présente un état de fait qui s'écarte de celui contenu dans la décision attaquée, sans se prévaloir avec précision de l'une des exceptions qui viennent d'être rappelées, il n'est pas possible d'en tenir compte (<ref-ruling> consid. 2.2, 136 consid. 1.4). Il ne peut pas être présenté de griefs contre les constatations de fait, ni de faits ou de moyens de preuve nouveaux (art. 55 al. 1 let. c OJ). Le recours n'est pas ouvert pour se plaindre de l'appréciation des preuves et des constatations de fait qui en résultent (<ref-ruling> consid. 2.2 in fine, 136 consid. 1.4; <ref-ruling> consid. 3).
Le Tribunal fédéral ne peut pas aller au-delà des conclusions des parties (qui ne peuvent en prendre de nouvelles: art. 55 al. 1 let. b OJ) mais il n'est lié ni par les motifs qu'elles invoquent (art. 63 al. 1 OJ) ni par l'argumentation juridique adoptée par la juridiction cantonale (art. 63 al. 3 OJ; <ref-ruling> consid. 1.4; <ref-ruling> consid. 2e/cc in fine). Le Tribunal fédéral peut donc admettre un recours pour des motifs autres que ceux invoqués par le recourant; il peut aussi rejeter un recours en opérant une substitution de motifs, c'est-à-dire en adoptant une argumentation juridique autre que celle de la juridiction cantonale (<ref-ruling> consid. 1.4 in fine).
La réponse de l'intimée, déposée en temps utile (art. 59 al. 1 OJ), doit être prise en considération bien qu'elle ne comporte pas de conclusions (Poudret, op. cit., n. 3.3 ad art. 59 et 61 OJ, p. 491).
La réponse de l'intimée, déposée en temps utile (art. 59 al. 1 OJ), doit être prise en considération bien qu'elle ne comporte pas de conclusions (Poudret, op. cit., n. 3.3 ad art. 59 et 61 OJ, p. 491).
2. Il est constant que les parties se sont liées par un contrat de travail et que la défenderesse était débitrice du salaire convenu (<ref-law>).
Pendant les rapports de travail, le demandeur a critiqué sa rémunération et il a demandé d'être payé au taux de 171 fr. 60 l'heure. Le contrat signé par les deux parties prévoyait 143 fr. l'heure seulement et le jugement attaqué ne constate pas que la défenderesse ait accepté de verser une rémunération supérieure à 150 fr. l'heure. Les prétentions excédant ce dernier taux sont donc dépourvues de tout fondement contractuel, de sorte que la défenderesse n'assume aucune obligation correspondante.
La juridiction cantonale a déterminé le salaire d'un mois en calculant la moyenne des rétributions mensuelles brutes que le demandeur a obtenues de septembre 1998 à février 1999. Hormis le grief concernant le taux horaire, cette méthode n'est pas critiquée. Contrairement aux affirmations du demandeur, le calcul repose effectivement sur des montants bruts qu'il avait lui-même indiqués. Cela conduit à confirmer le montant de 21'829 fr. pour le salaire brut d'un mois.
La juridiction cantonale a déterminé le salaire d'un mois en calculant la moyenne des rétributions mensuelles brutes que le demandeur a obtenues de septembre 1998 à février 1999. Hormis le grief concernant le taux horaire, cette méthode n'est pas critiquée. Contrairement aux affirmations du demandeur, le calcul repose effectivement sur des montants bruts qu'il avait lui-même indiqués. Cela conduit à confirmer le montant de 21'829 fr. pour le salaire brut d'un mois.
3. Conclu pour une durée indéterminée, le contrat de travail était susceptible d'une résiliation ordinaire avec observation d'un délai de congé, selon l'<ref-law> ou d'autres dispositions éventuellement applicables, ou d'une résiliation immédiate pour de justes motifs, selon l'<ref-law>. La défenderesse a déclaré la résiliation immédiate du contrat, par lettre du 25 février 1999, mais, dans l'instance cantonale, elle n'a allégué aucun motif qu'elle aurait elle-même tenu pour pertinent au regard de cette dernière disposition. Aucun motif de ce genre n'est donc constaté. En principe, le demandeur est par conséquent fondé à faire valoir les prétentions qui appartiennent au travailleur, d'après l'<ref-law>, en cas de résiliation immédiate et injustifiée du contrat.
3. Conclu pour une durée indéterminée, le contrat de travail était susceptible d'une résiliation ordinaire avec observation d'un délai de congé, selon l'<ref-law> ou d'autres dispositions éventuellement applicables, ou d'une résiliation immédiate pour de justes motifs, selon l'<ref-law>. La défenderesse a déclaré la résiliation immédiate du contrat, par lettre du 25 février 1999, mais, dans l'instance cantonale, elle n'a allégué aucun motif qu'elle aurait elle-même tenu pour pertinent au regard de cette dernière disposition. Aucun motif de ce genre n'est donc constaté. En principe, le demandeur est par conséquent fondé à faire valoir les prétentions qui appartiennent au travailleur, d'après l'<ref-law>, en cas de résiliation immédiate et injustifiée du contrat.
4. Ces prétentions portent d'abord sur ce que le travailleur aurait gagné si les rapports de travail avaient pris fin à l'expiration du délai de congé (<ref-law>). Il faut donc déterminer quand la résiliation a été effectuée dans la forme prescrite et, à ce moment, quel était le délai à observer.
La lettre du 25 février 1999, dûment signée, constituait l'avis écrit nécessaire selon les termes du contrat.
La résiliation est une déclaration de volonté soumise à réception, qui produit ses effets seulement lorsqu'elle parvient à l'autre partie (<ref-ruling> consid. 2a p. 261). Une déclaration de volonté émise sous forme de lettre parvient à son destinataire au moment où elle entre dans la sphère d'influence de celui-ci, d'une manière telle que l'on peut prévoir, selon les usages, qu'il en prendra connaissance (Gauch/Schluep/Schmid/Rey, Schweizerisches Obligationenrecht, Allgemeiner Teil, 8e éd., vol. I, n. 199 et 200 p. 36). Un éventuel refus de recevoir la lettre et d'en lire le contenu n'est pas opposable à l'auteur de cet écrit. En l'occurrence, la résiliation est entrée dans la sphère d'influence du demandeur au moment où le personnel de la banque B._, chargé de cette démarche par la défenderesse, a voulu la lui remettre et s'est heurté à un refus. Elle a donc pris effet le 26 février 1999.
A cette date, le sixième mois des rapports de travail - qui avaient commencé le 24 août 1998 - était terminé. A supposer que la relation des parties fût soumise à l'art. 19 al. 4 let. b de la loi fédérale sur le service de l'emploi et la location de services (LSE, RS 823.11; cf. Manfred Rehbinder, Arbeitsvermittlungsgesetz, Zurich 1992, n. 14 ad art. 19 LSE), le délai de congé de sept jours prévu par cette disposition, du quatrième au sixième mois d'un emploi ininterrompu, n'entrait de toute manière plus en considération. Le délai était celui de l'accord écrit des parties, soit d'un mois pour la fin d'un mois, conformément à l'<ref-law>. Le demandeur avait donc droit au salaire du mois de mars 1999, en entier.
Cette prétention doit être réduite du revenu que le demandeur a pu tirer d'un autre travail pendant le délai de congé, ou du revenu de ce genre auquel il a intentionnellement renoncé (<ref-law>). Contrairement aux affirmations de la défenderesse, le jugement attaqué ne constate pas que la banque B._ ait offert au demandeur de l'engager directement, à mi-temps, pour le mois de mars 1999. C'est donc à bon droit que le jugement alloue un mois de salaire sur ce chef de la demande.
Cette prétention doit être réduite du revenu que le demandeur a pu tirer d'un autre travail pendant le délai de congé, ou du revenu de ce genre auquel il a intentionnellement renoncé (<ref-law>). Contrairement aux affirmations de la défenderesse, le jugement attaqué ne constate pas que la banque B._ ait offert au demandeur de l'engager directement, à mi-temps, pour le mois de mars 1999. C'est donc à bon droit que le jugement alloue un mois de salaire sur ce chef de la demande.
5. L'<ref-law> prévoit que le juge peut en outre allouer au travailleur une indemnité dont il fixe librement le montant, en tenant compte de toutes les circonstances; cette indemnité peut atteindre six mois de salaire au plus. Le demandeur réclame, à ce titre, un mois de salaire.
L'indemnité est due, en principe, dans tous les cas de licenciement immédiat et injustifié. Une éventuelle exception doit répondre à des circonstances particulières, qui ne dénotent aucune faute de l'employeur et qui ne lui sont pas non plus imputables pour d'autres raisons (<ref-ruling> consid. 5a p. 301; voir aussi <ref-ruling> consid. 3c p. 68; <ref-ruling> consid. 3e p. 247). L'indemnité est évaluée d'après la gravité de l'atteinte portée aux droits de la personnalité du travailleur; d'autres critères tels la durée des rapports de travail, l'âge du lésé, sa situation sociale, une éventuelle faute concomitante (<ref-ruling> consid. 3c) et les effets économiques du licenciement (<ref-ruling> consid. 3c p. 394) entrent aussi en considération.
Statuant selon les règles du droit et de l'équité (<ref-law>), le juge dispose d'un large pouvoir d'appréciation. Le Tribunal fédéral ne substitue qu'avec retenue sa propre appréciation à celle de la juridiction cantonale. Il n'intervient que si la décision s'écarte sans raison des règles établies par la doctrine et la jurisprudence en matière de libre appréciation, ou lorsqu'elle repose sur des faits qui, dans le cas particulier, ne devaient jouer aucun rôle, ou encore lorsqu'elle n'a pas tenu compte d'éléments qui auraient absolument dû être pris en considération; en outre, il redresse un résultat manifestement injuste ou une iniquité choquante (<ref-ruling> consid. 3c; <ref-ruling> consid. 2a in fine p. 160; <ref-ruling> consid. 4 p. 55/56).
Le jugement attaqué n'indique pas clairement les motifs qui ont conduit la juridiction cantonale, dans la présente affaire, au refus de toute indemnité. Il met seulement en évidence que la défenderesse a agi sans motif de résiliation immédiate, dans le but de faire coïncider la fin des deux contrats qui la liaient d'une part au demandeur et d'autre part à la banque B._. Cette préoccupation est bien compréhensible mais, néanmoins, l'interruption abrupte des rapports de travail constituait une violation grossière des obligations à observer envers le travailleur. Au regard de cette situation, l'octroi d'une indemnité s'impose. Indépendamment de toute autre circonstance, la quotité énoncée par le demandeur, soit un mois de salaire, est appropriée à la gravité de cette violation. Le montant de l'indemnité, non soumis aux cotisations sociales (<ref-ruling>), sera arrêté à 21'800 fr.
Le jugement attaqué n'indique pas clairement les motifs qui ont conduit la juridiction cantonale, dans la présente affaire, au refus de toute indemnité. Il met seulement en évidence que la défenderesse a agi sans motif de résiliation immédiate, dans le but de faire coïncider la fin des deux contrats qui la liaient d'une part au demandeur et d'autre part à la banque B._. Cette préoccupation est bien compréhensible mais, néanmoins, l'interruption abrupte des rapports de travail constituait une violation grossière des obligations à observer envers le travailleur. Au regard de cette situation, l'octroi d'une indemnité s'impose. Indépendamment de toute autre circonstance, la quotité énoncée par le demandeur, soit un mois de salaire, est appropriée à la gravité de cette violation. Le montant de l'indemnité, non soumis aux cotisations sociales (<ref-ruling>), sera arrêté à 21'800 fr.
6. Selon l'<ref-law>, le débiteur qui est en demeure pour le paiement d'une somme d'argent doit l'intérêt moratoire au taux de 5% par an.
En instance cantonale, la défenderesse n'a pas prétendu s'être trouvée en demeure, le cas échéant, seulement dès une date postérieure au 1er mars 1999. Dans sa réponse au recours, elle déclare s'en rapporter à l'appréciation du Tribunal fédéral en ce qui concerne les intérêts moratoires. Il convient donc d'allouer cet accessoire conformément aux conclusions du demandeur.
En instance cantonale, la défenderesse n'a pas prétendu s'être trouvée en demeure, le cas échéant, seulement dès une date postérieure au 1er mars 1999. Dans sa réponse au recours, elle déclare s'en rapporter à l'appréciation du Tribunal fédéral en ce qui concerne les intérêts moratoires. Il convient donc d'allouer cet accessoire conformément aux conclusions du demandeur.
7. Le recours en réforme se révèle partiellement fondé. Le montant de la demande, qui détermine la valeur litigieuse selon les <ref-law> et 23 al. 2 LSE, était supérieur à 30'000 fr., de sorte que le Tribunal fédéral perçoit l'émolument judiciaire conformément à l'art. 156 OJ (<ref-law>; <ref-ruling> consid. 4). Au regard des prétentions qui étaient encore litigieuses devant le Tribunal fédéral, cet émolument doit être réparti dans la proportion de deux tiers à la charge du demandeur et d'un tiers à celle de la défenderesse (art. 156 al. 3 OJ).
Les dépens sont alloués d'office (<ref-ruling> consid. 4 et 5 p. 156; Poudret, op. cit., n. 1 ad art. 159 OJ, p. 158/159) à toute partie en droit de les recevoir. En l'occurrence, le demandeur doit acquitter deux tiers des dépens à allouer à l'autre partie, évalués à 3'000 fr., et recevoir un tiers de cette somme (art. 159 al. 3 OJ). Après compensation à due concurrence, le demandeur reste débiteur de 1'000 fr.

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est partiellement admis et le jugement attaqué est réformé en ce sens que la défenderesse doit payer au demandeur, avec intérêts à 5% l'an dès le 1er mars 1999:
- 21'829 fr. à titre de salaire brut, soumis aux cotisations sociales;
- 21'800 fr. à titre d'indemnité.
- 21'800 fr. à titre d'indemnité.
2. Les parties acquitteront un émolument judiciaire de 3'000 fr., à raison de 2'000 fr. à la charge du demandeur et de 1'000 fr. à la charge de la défenderesse.
2. Les parties acquitteront un émolument judiciaire de 3'000 fr., à raison de 2'000 fr. à la charge du demandeur et de 1'000 fr. à la charge de la défenderesse.
3. Le demandeur acquittera une indemnité de 1'000 fr. à verser à la défenderesse à titre de dépens.
3. Le demandeur acquittera une indemnité de 1'000 fr. à verser à la défenderesse à titre de dépens.
4. Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 31 janvier 2005
Au nom de la Ire Cour civile
du Tribunal fédéral suisse
Le président: Le greffier: