Career Development

Kill Your Inner Code Monkey

Kill Your Inner Code Monkey

by Patrick McKenzie

In his talk "Kill Your Inner Code Monkey" at the Keep Ruby Weird 2015 conference, Patrick McKenzie addresses the common challenges developers face in advocating for their value within the workforce. He encourages coding professionals to rethink their identity as 'Code Monkeys'—a term he uses to describe the frustrating mindset of many developers who feel undervalued in their roles. McKenzie emphasizes the importance of integrating marketing and sales strategies into their careers to optimize their professional trajectory and reclaim their worth.

Key Points Discussed:
- Professional Identity: McKenzie discusses the concept of the 'Code Monkey' as a limiting identity, which often leads developers to devalue their marketing and sales knowledge. He urges developers to embrace their potential beyond just coding.

- Value of Marketing and Sales: He makes the case for understanding marketing and sales as vital components of a developer's toolkit rather than tedious responsibilities. Emphasizing the importance of these skills helps developers advocate for their contributions effectively.

- Charging More: A significant part of the talk revolves around the need for developers to charge what they are worth. McKenzie advises against medium pricing between a full rate and a discounted rate, and encourages practitioners to negotiate in terms of project scope rather than bidding down on rates.

- Consulting Business Perspective: McKenzie shares insights from his own journey as a consultant in software, highlighting how understanding value and pricing dynamics can lead to better client engagement and financial success.

- Building Client Relationships: Practical strategies are outlined for networking and building relationships with customers, including market research to validate business ideas, leveraging email lists for outreach, and creating case studies to showcase successful work.

- Long-term View: Lastly, he emphasizes maintaining a long-term perspective in building professional relationships and business success rather than seeking immediate gains.

McKenzie concludes with an invitation for developers to embrace their entrepreneurial potential and develop strategies that will set them apart in a competitive landscape. He encourages audience members to reach out for deeper discussions as they begin to reshape their professional identities and strategies.

00:00:11.440 Hi to everybody, my name is Patrick McKenzie, better known as Pattio 11 on the Internet. So Chris Off mentioned that in his local time zone it's about midnight.
00:00:16.600 I was born in the Central Time Zone, but my body is on JST, Japan Standard Time, where it is about 9:00 a.m. in the morning.
00:00:22.840 So my body is sending my brain signals like: 'You have just pulled an all-nighter.' As a former Japanese salary man, I have substantial experience with all-nighters.
00:00:35.239 They produce a physiological response in you which resembles being drunk. You have lowered inhibitions and make poor decisions.
00:00:41.079 Be warned, engineering managers in the room, remember that when you're telling the team to work late at night. Anyhow, in the spirit of really poor decisions, I thought I would bring my own intro music.
00:00:54.000 And you might think looking at me, 'Oh surely it's going to be something white and New York,' and you would be right. But Weird Al's licensing people didn't get back to me in time, so instead, I pulled something with an appropriate license for an open source conference.
00:01:11.159 With apologies to Jonathan Coulton, here's "Code Monkey."
00:01:16.280 Code Monkey, get up, get coffee. Code Monkey, go to job. Code Monkey, have boring meeting with boring manager Rob. Rob said, 'Code Monkey very diligent, but his output stinks. His code's not functional or elegant.' What does Code Monkey think?
00:01:29.920 Code Monkey thinks maybe manager wants to write a goddamn login page himself.
00:01:35.360 Code Monkey not say it out loud. Code Monkey not crazy, just proud. Code Monkey needs to die in a fire. That's not actually how the song ends, but I think that Code Monkey is not really a person. It's a mask, an identity we choose for ourselves.
00:01:49.560 It's something that works against our interests in the long run. We heard in an earlier speech someone mention that we tend to outsource the understanding of marketing, sales, and management to the folks above us in our organizations, and then they get most of the wealth we create with our skills.
00:02:08.160 I think outsourcing is not exactly the right word here, because outsourcing suggests that it was at least a considered action. I believe we tend to abdicate that responsibility. We think marketing and sales is just something that we could never learn to do, and since we could never learn to do it, we tend to devalue it. I think that's one of the biggest problems I see in the developer community.
00:02:30.920 So I want to talk to you about how you can do marketing and sales in a way that doesn't require you to contravene your values, will allow you to do the best possible work, and not turn into the boring manager Rob here. Also, maybe gain a little respect for the sales folks and marketing folks and management because they actually do bring a lot to the table.
00:02:53.760 Let's talk about killing your inner Code Monkey. I'm going to talk a lot about money in the upcoming slides, but you should understand that when I'm talking about money, I'm really using it as a shortcut to say value.
00:03:12.120 The reason we want to optimize our careers isn't just to make piles of cash. If you want to do that, you can go to Silicon Valley; I hear they're hiring. But we want to achieve what really matters to us.
00:03:34.280 For me, what really matters is having lots of time to spend with my family, my wonderful wife Rudo, and our daughter Lilan, who just turned one.
00:03:39.799 I want time to spend with my community, coming out across the world to talk in front of you guys, and time to learn things. I recently picked up a new language—Go—it's awesome.
00:03:46.959 I'm continuing to become a better Rubyist and hoping to improve at all the other stuff I do as the CEO of a company. So here is the FizzBuzz proof that I've actually coded Ruby before.
00:04:05.680 My first business was called Bingo Card Creator, and this is the beating heart of Bingo Card Creator back here. We didn't have array shuffle back then; we were in the mists of prehistory. This would shuffle an array.
00:04:20.040 Bingo Card Creator was described by one of my friends as 'Hello World' attached to a random number generator, which is totally true, and it sold $300,000 basically based on that four-line method.
00:04:32.080 So here's the quick arc of my career. Back, by the way, back in the mists of prehistory, I had a different job before I got into entrepreneurship. It was running a World of Warcraft Guild.
00:04:56.400 So I totally got that World of Warcraft reference earlier; it's my only management experience until becoming CEO of a company.
00:05:02.720 I did Bingo Card Creator for a few years, and I was the sole developer, which meant I had to figure out this marketing and sales thing because there was no one else to do it for me. I got pretty decent at marketing and selling software over the Internet, and it turns out it's a fantastically useful skill set.
00:05:39.600 Other companies would come to me and say, 'Hey, you seem to know a little bit about that. Why don't you help us out with it?' Jill Pulaski memorably phrased it as, 'You seem to be a guru-level expert in things like SEO and email marketing; it's a shame you apply it to a product that is so small.'
00:06:01.160 So I ended up working as a consultant under this company named after a dragon in an RPG campaign I had in high school because that's how I roll. I did consulting for a few years and got pretty decent at it.
00:06:16.000 Then I ran a new SaaS business called Appointment Reminder, which was the biggest mistake of my professional career. I was never really enthusiastic about doing the business at all.
00:06:39.000 I should have done something that passed what we call the 'PI test,' referring to the gentleman behind Balsamiq.
00:06:54.880 When I told him I was going to do Appointment Reminder, he asked me, 'Do you really want to be optimizing the schedules of dentist offices for the next five years of your life?' I told him, 'Oh God no, but it's a great business, right?' And he said, 'No, no, no.'
00:07:09.800 If you’re going to spend the next five years of your life on it, make sure it’s something you’d actually enjoy. Tragically, I ignored Pell's advice.
00:07:20.760 Here we are five years later, and I actually have something I enjoy now—yay! It's called Starfighter; we might talk about that a little in a minute.
00:07:31.560 But let's talk a little bit less about me and more about you guys. Somebody I’d like to introduce you to is my lawyer; his name is George Gies.
00:07:46.640 I was originally going to replace this slide with stock art of a business guy, but then I realized I knew someone who actually looked like stock art of a business guy. You are much more like George than you think.
00:08:09.920 I want to talk about my first professional engagement with George. Recently as we were spinning up the company, I went to George and said, 'Now, me being boring manager Rob here, who knows absolutely nothing about legal matters, I have a wonderful idea. We're going to hire me as an independent contractor for the new company, and I'll be the independent contractor CEO.'
00:08:24.840 George said, 'Interesting. Why do you want to do that?' Now, note that George could have said, 'That is a really terrible idea; you suck at this.'
00:08:36.760 That might be the engineering response to Boring Manager Rob saying, 'Hey, I heard about this new database you should totally be using; it's called NoSQL.' So, yeah, George said, 'No, I want to understand the business rationale for this.'
00:08:54.960 You had some reason for doing it; what was it? I said, 'Well, my personal tax situation in Japan is complicated, and I think you complicate it.'
00:09:07.440 He said, 'Okay, I hear you. That won't work. What you have to do is set up a Japanese Kabushiki Gaisha, which is a subsidiary of the American corporation. You put yourself on the books as a W-2 employee or the local equivalent in Japan of the Japanese Kabushiki Gaisha.
00:09:22.200 Then you own one-third of the American corporation. Take distributions to minimize your tax burden and tax planning burden while actually remaining legal and avoiding IRS issues.' I was taken aback, 'Wow, George really knows his stuff.'
00:09:35.800 If I had decided to ignore George's advice and ended up in legal trouble, George would have said, 'No, I'm the professional in the room. I know my stuff. You trust me to do this, so you're going to trust my advice.'
00:09:44.800 And I think George is very good at this. He exudes professionalism. When he gets into a room, he effectively communicates that he knows everything there is to know about the subject. You brought him in because he is the best, and he will give you the best advice.
00:10:05.600 Unlike many of us in our consulting days, George rarely has the problem of working tirelessly for months only for management to essentially throw the effort in a trash can. Lawyers are very good at getting their invoices paid.
00:10:26.399 I’m going to talk a lot about business in this presentation, but I think all the W-2 employees in the room or their local equivalents should consider themselves as businesses. You have lots of functions in your life that resemble being a business.
00:10:50.280 For example, you've all done enterprise sales before—it just didn't seem that way during your job interview when you said, 'I think we can agree on me swapping my services from my LLC to build Ruby on Rails apps for your corporation for x amount a year.' That's enterprise sales.
00:11:12.240 You've all done marketing before; you just called it Twitter, GitHub, OSS contributions, etc. You've all done financial planning like a CFO does except you thought you were just buying tickets to this event.
00:11:38.640 I'm hoping that I can provide you with some tactical advice that will create a positive ROI for you—another CEO term—so you can come back next year.
00:11:56.240 The most important advice I've ever given anyone, and I put it in all my presentations for a reason, is:charge more.
00:12:05.600 Most developers have huge mental hang-ups over this. I know that just saying 'charge more' doesn't sound actionable. So I want to break it down into easy, concrete steps.
00:12:11.600 Why do you want to charge more? Well, a) To make more money, which is always nice, but as you charge more, you'll find that people bracket you into an entirely different class. They'll start listening to your advice more; your projects will actually get implemented.
00:12:34.440 You'll be allowed the creative decision-making to do your best possible work.
00:12:39.920 You will even do better work, as you'll be more motivated and better work actually gets implemented. Back when I was a Japanese salary man making roughly $30,000 a year, about 80% of my professional output got shelved the day I delivered it.
00:12:59.600 I was doing 100 hours a week, and it never mattered to anyone. When I was doing consulting engagements and my final rate was this is not to brag, but just to illustrate what happens when you understand value and positioning, my final rate was $30,000 a week.
00:13:11.640 Rarely does someone make you work for three weeks only to throw your work into the garbage, which happened all the time when I was the cheap option.
00:13:27.440 So how do you charge more? Instead of saying a small number, say a big number. Okay, that might not have been super actionable, so let's get to more concrete approaches.
00:13:44.160 You generally want to have two rates and only two: your full rack rate, which is whatever you think you can get as the market clearing rate for your position—say back in the last days of my consultation that would have been $30,000 a week—and free.
00:14:09.840 You want nothing in between those two extremes.
00:14:17.840 Why? A lot of people create excuses for themselves as to why they're not worth the full rate or why this particular deal is worth giving a discount for. You don't want to give discounts; that corrupts your decision-making process.
00:14:34.800 For example, my church's website was made in 1996—it's exactly as good as you think. They asked me, 'Patrick, you're in the web business; can you make us a better website?'
00:14:53.160 I said, 'Of course I could do that for my church.' But then I thought, 'Oh, I don’t want to stick them with the big capitalist price number; I'll stick them with something smaller that would have been a really poor decision if I'd gone through with it.
00:15:09.960 Let’s say I offered to do it for $500 a week, which is below cost; that would have probably been the maximum they can afford.
00:15:30.600 It would inevitably get prioritized to the last thing I did every day, I'd feel insulted doing it, and I wouldn't deliver my highest and best work.
00:15:46.320 My church wouldn't get the best web page they could possibly get for that amount of money, and it would corrupt my reasoning behind why I was doing that engagement.
00:16:01.920 What you would want to do is engage at your full rate for whoever will pay it. If you want to donate, just donate money instead, forcing you to confront that you are actually donating value.
00:16:17.520 So you want to negotiate only on scope and never on rate, particularly for the service providers in the room. This means that when a client comes to you and says, 'Oh, your proposal had a number on it,' say that number is $155,000 and they only have $110,000 in budget.
00:16:33.360 You don’t say, ‘Well, we just won’t do the engagement.’ You also don't say, ‘Okay, that’s one-third, cut my rate but I need to pay my rent this month; I’ll do it.’ Never do that.
00:16:52.000 Instead, you say, 'Okay, if the budget is $110,000, what do you want me to cut? That gives clients something they want more than money; it gives them the feeling of agency.
00:17:03.360 Let's talk a little about internal anchors for pricing. Say you never heard about my consultancy and I threw out the number, 'My rack rate is $30,000 a week,' you would say, 'Oh my God, that's expensive!'
00:17:19.480 So I wouldn't want clients to compare numbers I was quoting against numbers that other people quoted for services that were frankly not comparable.
00:17:39.600 I would present clients with a few options, like, 'Okay, we have X, Y, and Z options for our engagement. What takes the least amount of time?' You want clients to carefully consider these options rather than immediately compare them against each other.
00:17:57.200 If you're doing a SaaS business or whatever, every SaaS business prices on like three-plan pricing grids.
00:18:02.280 They say, 'If you’re an enterprise, it costs $500 a month. If you're a small business, it's $99 a month, and the starter package is $49.' This way, they’re comparing $49 and $99 without considering costs.
00:18:19.960 Recurring revenue is the best, best kind of revenue. There are fundamentally only a few ways to increase revenue in a business: sell to more customers, charge them more, and keep them engaged.
00:18:38.880 So if you're pitching the most common deal in Ruby on Rails consulting, you could say, 'I’m going to make an application for you; it will take a certain amount of time, and once that's done, we're finished until the next project.' Instead, you could suggest a retainer arrangement.
00:19:06.560 You say, ‘I want to pitch you on a retainer agreement where you agree to buy one day of my availability every month at a slight discount to my retail rates.' This means if you get two or three clients on that arrangement, you'll know your first week of work is booked every month.
00:19:23.920 This setup allows you to avoid the feast or famine cycle of consulting—you know you can afford to pay your rent every month, so you can be a bit aggressive in putting out proposals only to the best clients.
00:19:41.760 Let’s talk about marketing and sales for developers. I know a lot of developers are against marketing and sales, but I want to stress that sales is not like some sleazy justification for what car dealers do to unsuspecting people.
00:19:58.800 There’s a guy on the Internet known as the Potato Peeler Guy. He performed on the streets of New York City, selling potato peelers while demonstrating their effectiveness. He would explain the benefits: that a sharp peeler cuts vegetables thinner to soak more juice.
00:20:13.680 This was a feature proposition to the customer, allowing them to make the best French fries, not that McDonald’s garbage.
00:20:24.840 Despite his product costing $5—while you can get a cheaper option at any grocery store—he would preemptively address the common objections customers might have with good reasoning.
00:20:41.680 He would say, 'This potato peeler is made in Switzerland. No one chooses Switzerland for cheap options; they choose it for quality. This will be the last peeler you ever buy.'
00:20:57.440 He sold over $1 million worth of potato peelers in a year by performing demonstrations and addressing objections.
00:21:14.320 So, let's get into market research and particularly for those considering going into business for themselves without a clear offering.”
00:21:36.520 The process generally looks like this (you can view it in detail yourself). I’ll share a personal anecdote about how I did market research for Appointment Reminder. I offered phone calls, SMS messages, and email reminders to clients of professional services businesses.
00:22:02.560 Before committing extensive development time, I went to Chicago and approached different massage therapists asking if they had issues with no-shows and how they managed appointment reminders.
00:22:15.240 I asked questions about scheduling tools, client turnover, and their experiences. Most indicated they had a no-show issue but didn’t have time to manage reminders personally, indicating a need for a service.
00:22:33.800 I simply asked them if they would pay $30 a month for a service that calls clients to confirm appointments. 15 of them said yes—so I knew there was market demand.
00:22:47.440 Then get letters of intent from the clients you interact with. For example, you can ask them to agree that if you provide such an offering, they're willing to pay.
00:23:04.640 This allows you to validate your market approach without committing resources upfront.
00:23:12.480 You can also focus on targeting the right customers. Not all customers are equal, especially when transitioning to businesses.
00:23:29.600 Look for businesses that are likely to buy your service naturally and diversely; you'll be able to do your best work for businesses that have the budget to support your service.
00:23:43.360 That means they are already aware of their needs and understand their spaces well enough to purchase quickly.
00:23:55.680 Additionally, use your network effectively! Customers travel in groups; good customers know other good customers, just like bad customers do.
00:24:13.560 Toward the end of every successful customer interaction, ask your satisfied customers who they know that might benefit from your service.
00:24:29.760 You can also gain momentum by creating an email list using services like MailChimp or Customer.io. Every time you contribute value, tell people, 'If you like this, there's more where that came from. If you give me your email address, I'm happy to share key insights that you would find helpful.'
00:24:53.760 And whenever you find yourself needing more clients, just send an email to that list to say, 'I have some availability.' You can make it feel like you're providing value to your engaged customers.
00:25:07.760 At the core of consulting is the understanding that much of your work goes unseen by others, similar to an iceberg phenomenon. One way to deal with it is through advertising your excellent work.
00:25:22.760 Seek out case studies aggressively. Flip the script and say, 'This worked out great! I'm proud of this work. I want to give you even more value out of this engagement totally free.'
00:25:37.760 Offer to write a case study for your customer, showing how things turned out beneficially while removing their confidential elements.
00:25:52.000 This will give you testimonial material to validate your performance for future potential clients.
00:26:06.550 The sales funnel looks like a process where each increasing engagement will lose some prospects. The key is to master the transitions between stages.
00:26:26.200 Each customer engagement follow-up is another chance to prove you can help deliver what their business might expect to pay for.
00:26:42.320 Beg to practice looking after both your sales funnel and your project management simultaneously. Success begets success.
00:27:02.320 Many developers might push through sales in a way that causes unnecessary chaos like having to move from gig to gig without a structured plan.
00:27:20.520 If you plan the overall picture of your engagements with solid workflows, you'll be preparing your offerings based on repeatable patterns we can follow.
00:27:35.200 Some of you might feel discouraged by your efforts every month, and for that reason, avoid focusing on a single customer or project.
00:27:53.320 Instead, anticipate the costs, evaluate the value, and pay heed to how you approach the business. Success will reward your efforts.
00:28:09.400 I'll leave you with a phrase: 'Play long ball.' I have been doing this for about ten years after the World of Warcraft, which is a long time to build relationships.
00:28:27.920 It could be tempting to get caught up in the short-term view, but staying focused on the big picture will yield greater rewards.
00:28:42.640 Identify things you can show, work you can own. Engage with openly available technologies. Share their benefits so others can see the value.
00:29:00.280 And as your quality improves, your work will speak for you, building relationships with firms and customers that will offer you real satisfaction.
00:29:14.760 It's all about crafting those unfair advantages through those connections and expertise that make you stand out in a crowded field.
00:29:39.520 Thank you for your time! If you're interested in having more discussions, you can reach me by email at Patrick at starfighters dot com, with an S.
00:30:01.280 Let’s start building those connections today.