This is just a message to see who Racket-consulting-inclined is currently out there and would like to compare notes.

To start, here are some frank thoughts based on my experiences consulting using Racket thus far. Pardon the run-on sentences in quick brain dump.

I have been working as a consultant primarily using Racket and PLT Scheme for several years (except for a break for a scientist term appointment).

There is some work for people who can sling Racket. Not a lot so far, but some. The good clients I acquire, I try to bend over backwards to keep happy, out of natural professionalism, and also because good clients are precious.

The majority of Racket projects are secretive. There is little upside to advertising that you're using a not-currently-mainstream platform, even if your business itself is not secret. For now, "The first rule of Racket Club is: don't talk about Racket Club."

Thus far, the consulting work usually requires a lot of other skills, other than just being good with Racket. Sometimes the client wants someone who both knows Racket and is a top-flight "programmer" in general. Other times, they seemingly want someone who is expert at many related disciplines, including doing Racket well. There's also sometimes a need for application domain knowledge (e.g., from one of the sciences or engineering disciplines), which sometimes I have had, and sometimes I have not.

Industry and government clients seem to generally be a better match than academia for consulting. Academic researchers usually seem to be looking for grad students and the occasional staff Research Programmer (who I think is often easiest to hire from among known-quantity, indoctrinated recent alumni). Also, people fresh out of undergrad (noteworthy exceptions who helped develop the high-quality Racket platform aside) often don't yet have much experience collaborating nor producing maintainable software, which is a problem when the task is to produce production-quality software together. In industry, new grads would be mentored more on their first substantial projects, rather than tending to be in charge or having produced a base of legacy code to inherit. Also, academic compensation usually is not very livable long-term, unless you are getting the university lifestyle, which you won't get as an outside consultant. When I've seen consulting for academic research work, it's been a former grad student employed nominally as a consultant by a tenured professor/scientist who has lots of funding, and they collaborate directly and co-author publications (like an unusually well-paying, part-time post-doc). These comments are based mostly on having spent a lot of time around various universities in various capacities, not as much from first-hand consulting.

There's also potentially consulting for startups using Rackets. Compensation would probably have to be a mix of pay and equity, unless a VC is ready to spring for market rates. You'd need a special VC to let you do something in Racket, rather than Java or whatever the VC heard Google/Facebook/Twitter is using.

I do think that there are some people using Racket in industry, who are not using consultants as much as might be to their advantage. You get a lot of people who are doing pilot projects, usually quietly (say, the manager doesn't want some other manager to start complaining about them using anything other than PHP or COBOL or the like), and are trying to use internal resources rather than put in a PO for a high-priced consultant. Doing it without consultants is certainly doable, thanks to Racket attracting smart developers, good documentation-- and to pseudonymous GMail accounts for posting to the great Racket "users" email list, where people can get good and prompt answers to generic technical questions. However, the email list isn't under NDA, and can't review designs, do code reviews, answer questions that require examination of the application code, mentor much, give much proactive direction, design or implement particularly tricky bits, help plan infrastructure, answer questions that require hours of research, do emergency troubleshooting of a deployment, participate in requirements analysis, understand and influence the big picture, etc. I see a role for consultants in this, which is essentially helping new Racket adopters get up to speed and be successful with their initial projects, at the same time helping them build internal expertise.

Once an organization has internal expertise in Racket, two thoughts: (1) Racket success stories should increase new adoptions, and therefore increase demand for consultants to help the new adopters get up to speed; and (2) Organizations that are successful with Racket will still need need consultants, because they don't always have enough top talent in-house for all their opportunities (and companies like outsourcing these days, anyway), for things like "we want you to make a tricky library to do X, which we can use as part of our Racket-based application" or "we want you to make a tricky application to do Y, preferably using Racket" (which can be some of the best kinds of consulting work to get).

Eventually, there might be a need for a consulting firm that focuses on work involving Racket. I don't yet see enough demand that I'm ready to start having people's livelihoods dependent on business I can round up, nor to end up spending all my time on management and marketing. But at some point I would consider transitioning from being someone who makes things work, to being someone who wears a suit and makes other people make things work. :)

Somewhat separate from consulting, now that some key libraries of mine are coming together, I'm about in a position in which I can very rapidly develop and deploy mini-startup Web sites using Racket, with each site bootstrapping its operational costs from the start by using cloud servers and ads. Doing mini-startups as a background task seems complementary in several ways to consulting in Racket.

Notes-comparison is welcomed.  Feel free to email me privately.

Neil V.

--
http://www.neilvandyke.org/
____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to