Advice to an Undergraduate
back in May of this year, one of my favorite people in the world, Professor Richard Vuduc of Georgia Tech's HPC Garage occupying the Craysian Chair of Badassery, asked me if i had any words of advice for young people, in this case a young man considering entering the consulting racket. in manners of advice, i'm probably the last person to ask: in the words of The Doctor, i hate to advocate drugs, alcohol, violence, or insanity to anyone, but they've always worked for me.
mainly in the hope it might be enjoyed as a literary document, i've reproduced the three replies i sent that student here. editing has otherwise been minimal. the student's name has been redacted.
Date: Sat, 15 May 2021 05:40:21 -0400 From: Nick Black <email@example.com> To: "Vuduc, Richard W" <*********> Cc: ******************* Subject: Re: Advice for an undergrad about technical freelancing/consulting [-- Begin signature information --] Good signature from: Nick Black (Home server) <firstname.lastname@example.org> aka: Nick Black (Public gmail account) <email@example.com> aka: Nick Black <firstname.lastname@example.org> aka: Nick Black (Linux Foundation forwarding address) <email@example.com> created: Sat 15 May 2021 05:40:18 AM EDT [-- End signature information --] [-- The following data is signed --] Richard Vuduc left as an exercise for the reader: > ****** (cc'd) is a GT undergrad who needs some advice about > technical freelancing/consulting. Of people I know, perhaps > you have the most experience here. Do you have some time to > chat with him? ********, you're already doing the single most important thing for a consultant -- building up a network of people worth knowing. Prof. Vuduc is of the first rank. The most important thing to remember is that I have no special insight into the universe beyond my own lived and studied experience, and that old men are full of crap, and that no one but yourself controls your destiny. Tómalo con pinzas. also, i'm a madman. I would have guessed you Argentinian from your name--a hint of the Basque?--, but I see from LinkedIn that your origin lies along the Anáhuac. Rather than Borges, then, let's set the stage with a quote from Roberto Bolaño's *Los detectives salvajes*: "The secret story is the one we’ll never know, although we’re living it from day to day, thinking we’re alive, thinking we’ve got it all under control and the stuff we overlook doesn’t matter." Do you enjoy particularly felicitous circumstances, such that the road rises up to meet you and you need no real advice? If not, my initial reaction is grim...in the words of von Frundsberg at Worms, and later Dale Cooper at Twin Peaks, you propose an arduous path, Little Monk. Allow me for a moment to douse this dream with cold cold water. I know a fair spread of successful computing consultants, even here in the Atlanta area (one not exactly brimming with up-and-coming shops, at least compared to the NYC-CHI financial axis, the SF-PDX-SEA soviets, and whatever the hell's afoot in AUS/MIA). Leaving aside, like, IT "consulting" (temp work)--a fate worse than death--and the soulless avarice of Bain/Deloitte/PWC/BoozHam Capital-C-Consulting--I have nothing to say about these organizations, save that they destroyed the greatest minds of my generation--I recognize exactly three archetypes of successful consultants: I. You "consult" almost entirely with one company. You're pretty much an employee, except without a W-2. Can be very lucrative; can suddenly fall out from underneath you (it's easier to cut the expensive, loosely-bound consultant than poor Bob in the Bubble Sort division, closing in on his 20th year). This isn't otherwise very different from applying for, and accepting, a job. You usually get this by working somewhere, becoming indispensable, quitting, and allowing yourself to be retained in a 1099 capacity. If you want this, go get a job. II. You ride the open source train. This is simple enough: contribute to enough open source projects, and you will start getting consulting offers related to those projects. The work is sometimes greenfield development in the same ecosystem, sometimes extensions of what's there, and sometimes simply reviewing, tightening up, and shepherding in code they've already written (companies do not generally want to spend time getting code merged upstream, which too often involves getting flamed by some 19-year-old insolent little shit named "uWuhackuWu" who's never met a payroll, but they *do* want someone else to do it). This can be accomplished in exactly one way: starting or contributing to open source projects of definite use to companies you might work with. You'll get calls earlier than you think, especially if you contribute to unglamorous but "industrial" projects. Think things like...tools that wrap C so it can be used in, say, Ruby. Think things like...core libs in ROS (the "robot operating system"). Look through buglists and mailing lists to find unfixed issues affecting .com customers. Writing visualization/analysis tools can be very big. Move up the contributor lists. They'll find you. Get on Upwork and similar sites if you're going to do this. III. You establish a significant network, name, and reputation. This takes time, and frankly a level of accomplishment, a substantial enough portfolio you can point to, that seems very difficult for an undergraduate to develop. At this point, everyone in Atlanta Tech Village and the AT/DC and the Spring Street incubation centers and the Marietta Street maker spaces knows there's one person in Georgia who'll take your poorly-specified pile of crap and dewy-eyed fresh grads, disappear for two weeks, and come back with the solid core of your business going forward. Some Buckheadian comes up with an idea, they get some kids in, pay them to mill around for a few weeks, then ask David Cummings or CBQ or Paul Judge "does anyone in this town really know Linux and low-level development?" And they're told "nick black, but it'll cost you, but you'll have a MVP that actually works, upon which you can build." They call; you quote $50k for two weeks' work; they blanch; you point to https://dsscaw.com/techreports/002-%c2%b5nandfs.pdf and https://dsscaw.com/techreports/001-canbusre.pdf, and invite them to look around and call back when they're serious. https://www.youtube.com/watch?v=DXboO0zESxs Leaving out I, both II and III require pretty constant hustle. And I don't mean code hustle -- I mean running down to 55 Trinity Avenue to argue with City tax agents so ignorant you literally can't believe what you're hearing. I mean dealing with Quickbooks and ACHs and Intuit sitting on your paid invoices for ten days and Paycheck Protection Program Loans and forgiveness for same and writing up proposals late at night for projects which end up reabsorbed back in-house like piglets into a starving sow. I mean three weeks on the phone as maddeningly noncommittal VC-backed vampires from the Valley request more and more "technical planning", right up until they take your spec to their devs and inform you your services will not be needed. I mean showing up in-person to ***********'s office and telling him that his own piece-of-shit ***** says that if this goddamn invoice doesn't get paid--it's been 90 days now, *****--symptoms will include a deficiency of copper wiring in his walls, and that you're tired of ******** High School deadbeat garbage (I got paid, and the contract was renewed. Mr. ****** retained his copper wire. For now). It is at least twice as much effort as any pure individual contributor codeslinging, but *unlike* a startup (which can pay off in exponentials), the payoff is only ever going to be multiples. My best year consulting was 2019, when I billed just over $450k. Not bad for Atlanta. I busted my ass for that half-meg, far harder than I'm working now. What am I pulling down now at MSFT? Depends on where Hax0r Jesus lets the roulette ball bounce on my vest days, but probably ******. You simply can't one-man-consult into deals as profitable as a major public company's, not with the equity markets as comically overinflated as they are. Furthermore, the stability of a big company is a very real calming factor -- you've hopefully never felt so dark as one does going into a payroll day with vapours in the ol' Chase SBC account. Destroying your own security and health is one thing; doing it to employees is quite another. So I ask: why do you endeavor to consult? Unless you're some true wunderkind (by which I mean one recognized externally *by people with money*), or have deep connections, or can play some kind of Billy McFarlandesque ruse, I just don't see it happening, at least not in any way that doesn't leave you pigeonholed writing Oracle Delphi code for point-of-sale applications at Forever 21 the rest of your life. And if you *are* such an outlier, why ask for my advice? Go do stuff. Come in close. Listen to my personal advice. I'm not a big believer in the flashy, almost content-free protracted adolescence internships that undergrads go for these days. I saw kids come out to Google, and it did nothing but ruin their attitudes and wither their True Hacker Spirits, leaving them with a horrible sense of entitlement. That L6 at Facebook "overseeing" your internship doesn't give two ripe fucks about whatever meaningless task they've assigned you. They assigned it to you precisely because it was meaningless, and even a clueless, useless intern couldn't burn the building down working on it. Do you want to do it right? Here we get very much into opinion, but there are two paths: 1) get an undemanding job which pays the bills and *doesn't make a great demand of your time*. use the free time to code for real. immerse yourself in man pages and textbooks. every time you wonder "how exactly does that work?", sit down and *prove to yourself how*. become born anew, born again hard. 2) join a local startup, and hurl yourself into it. this was my path; it's also why i didn't have a BS until i was 25 years old. but hey, i was the only self-made millionaire in my Emag lab . even millionaires, however, still must sift through the box of broken resistors, as poignant a metaphor for the technical life as i can summon at ... shit, 0530?  i assume read this and internalize it; it has nothing to say about consulting, but much to say about life: https://nick-black.com/dankwiki/index.php?title=Here_is_how_to_win,_later I'm happy to meet with anyone Rich would like me to, if you think it would be productive. I live among the sky on Peachtree Street, descending to wander Midtown. If you'd like, come join me for a walk sometime. I can be mailed here, or texted at 404-939-DANK. Of course, my saga is not your saga; you are the protagonist of your own universe; our lives have no end in the way in which our visual fields have no limits. Be well. I hope this meandering missive proves useful. If not, burn it. La Historia Universal es la de un solo hombre. hack on, nick
[deletia] it occurs to me that three potential questions need be answered: Q: Agreed that running a consultancy sounds like a bummer! What about working for someone else's consultancy, though? A: This is just a job. I'd say the same things about it as I would any other job. The meaningful definition of "consulting" for the purposes of my mail is "self-employed" plus "services". Q: Man, I just want to build web pages. A: I assumed you desired kinda deep work--we hopefully both know what I mean--by virtue of you asking Prof. Vuduc for advice. Nothing of what I said can be salvaged; I know nothing of that world. I can recommend some folks with a web consulting background. Q: You seem pretty down on consulting. Why do people do it? A: Leave out the bullshit, and it can be pretty sweet, but you can say that about life itself. When you're killing it, consulting is fun. You leap from project to project, taking on work as varied as you like. You quote obscene hourly rates, and excuse yourself to go to the bathroom and giggle at the fact you asked $500/hr and they're paying it. You stride into offices like a Roman *rector provinciae*, looking around with mostly-concealed distaste, but also the earnest hope you might improve these simple people. You talk to C-suite operators and founders. You think the word "baller" about yourself with less than complete irony, though you'd never say it aloud. You get an invoice paid for six figures and say, aloud, "baller". You clap your hand to your mouth. Who have you become? Do you even know yourself anymore? And at the end of the day, you're the one on the phone with the Georgia Deparment of Labor while those simple coders spend time with their kids in tasteful suburban homes, laughing, telling tales about this incredible new asshole consultant at the office. also, a Tip: T: You might at some point say, "wait! I will launch a product company startup, and fund it initially with consulting, so that I needn't immediately go through the VC hell process", know that VCs will generally show you the door immediately. Such a company can't grow, and such founders aren't operating from a growth-first mindset [or so the wisdom goes]. The puritan work ethic's a lot less of a value proposition in these heady days of free-floating [hah] capital. With that said, you can hit a nice niche here. you've gotta be lucky, but you already knew that. hack on, nick
last mail, i promise. it occurs to me that you might be asking about consulting contra some lucrative Big Company internship of the kind i referenced in my first mail, and are simply thinking consulting might make more cash. for your situation, it almost certainly will not. small business owners are not going to throw buckets of cash at twenty year olds, certainly not without a track record you can point at. if you want immediate cash, head West and suck from the teats of the advertising cash cow, or the operating system cash cow, or Bezos's all-singing all-dancing cash-spewing cashcow jamboree, or facebook's discourse-annihilating cash yak. better yet, find a way to graduate faster, go to NYC/CHI, work for a trading firm and make real money (this is much more difficult than FAANG). but again, my advice -- if you want in for the Long Haul, that is, and if your motives are pure -- is to build your skills for the next five years. live with thrift, the thrift made easy by tearing apart code sixteen or twenty hours per diem. learn linux all the way down to the scheduler's shifting registers; learn clang all the way down to the instructions doing the shifting. this is best done **well outside any Big Company ecosystem**. this is how you show up at 30 and absolutely annihilate those comfy cats who've forgotten how to work outside their company's silos, and dread the whiteboard's clarion call. this is how you send them into the hell of middle management from which they'll never emerge. this is how you get to 40, and get paid as much as any manager, but still get to work in Vim instead of Excel, and show up when/if you want. this is how you end up on the path of "partner-level individual contributor", and truly it is the Promised Land. this is how you end up with the new college graduates asking the L4s "what's up with *****************************?", and the L4s answering with reverence, "*********** is one far-out old man." https://www.youtube.com/watch?v=KpX_WeJalbc hack on, nick ps the other path is a PhD. i'm no good at that path, alas.