Code For Cash – Month 10 revenue report

Last month, things were bad at our little company that matches programmers to freelance software jobs.  


Revenue was down.  


“If you’re not growing, you’re dying.”  


We were dying.


Last month, I threw down some modest goals, and said that if I achieved them, I would consider the next month a success.  


I didn’t want to reach too big – I wanted to keep things doable.  Sometimes, you really need a win, even if it’s a small one.


My goals:

    • Add 12 new markets to our regular search.

      Done!  adzuna, beincrypto, betalist, careerbuilder, careerjet, cybercoders, goremote, indeed, jobisjob, randstad, reed,, simplyhired.   

      We’re now up to 45 software development markets total that we automatically monitor for our customers.

      Get it?  We’re gradually building a moat. The big picture value here is that although Code For Cash is a tool that a lot of programmers have already built for themselves, for example using a mashup of RSS feeds and some personal scripting, we’re making the product better and better so that “buy” clearly outweighs “build” in a “build or buy” analysis.  

    • Ship a better job matching engine.


      The next cool thing to do will be to expose our intelligence through our product… for example, if you type “vue.js” as a keyword, we’ll let you know that we’re also searching javascript/java script/js/vue.

    • Be able to click a button and initiate intelligent outreach to a job lead.

      We now have a system where you can write blurbs about your experience using a given technology, dynamically generate cover letters, tweak them as necessary, and send to job postings.


We achieved those goals.  Sometimes setting modest and achievable goals can be a growth hack that propels me into greater productivity.  The wins compound into momentum.

So, how did that momentum manifest?

We totally changed up the funnel: the two week free trial no longer requires a credit card – users may sign up with an email and nothing less.


This had a huge effect on conversions – 


Previously, we required paying upfront (no free trial).  The page converted at 0.1%.


Then, we asked for a credit card up front, but promised not to charge unless they canceled before two weeks.  That boosted conversion rate to 0.2%.  


But now, having a no credit card required, 100% free two week trial has boosted our funnel an additional 50%– conversion on the page, from unique visit to paying customer, is now at 0.30%!  


(We also cleaned up the design on the landing page, which may have had some impact).


If you’re curious at checking out how I measure my funnel, I do it in Excel.  Measuring how prospects progress through the stages helps me get an intuitive feel of what’s going on.


Anyway, insofar as revenue goes, things are moving in the right direction.  Slowly.


Revenue for month 10

Recurring revenue: $3,400.00

Total Revenue, including consulting revenue: $10,580

Compared to last month (Total revenue: $9,705.43; Recurring revenue: $2,919.0), we see 16% M/M growth in MRR, okay!


If you’re interested in how I make the non-recurring revenue, it’s through consulting.  If you know how to program on your own without supervision, you’re capable of doing that too.  Jay El-Kaake, Richard Burt and I coauthored Software Engineer’s Guide to Freelance Consulting.  We sold about 337 copies this month.


I may never have a #1 rap album, but Software Engineer’s Guide to Freelance Consulting is currently #11 in Kindle Store > Kindle eBooks > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development.


Anyway, for me, this 16% jump in MRR begs the question, is this MRR growth sustainable and repeatable?  If we were to grow next month at this rate, at the end of next month we’d have $3944 or an extra $540 in revenue.   That would require signing up an additional 12 paying subscribers..on average of one every other day.  Two days from now, it should be clear whether we’re on track or not.


Taking a look at the marketing funnel spreadsheet (, you’ll see that 0.3% of visits end up converting.  So in order to attract 12 subscribers, I would need 12/0.003 = 4,000 unique visits to the landing page.  Honestly this is completely unlikely; 2000 organic visits in a month is typical.  With this, my expectation would be 8% monthly growth…

In the marketing funnel, I have a whole list of improvement ideas for various parts of the funnel, but I’d also love to hear your impressions or ideas.  The cool thing is that there are clear ideas for improving conversion rates at each segment in the funnel, and it’s really intuitive how to do that – the only challenge with this approach is that we could potentially end up at a local maxima, but I’m trying to force myself to believe that because I’m exhausted from the endless grind of finding and removing bottlenecks.  We need to continue moving forward.

Improving the business engine


One of our biggest expenses is data labeling.  If I wanted to sell Code For Cash (or shares in it), I would have to think realistically about valuation – Code For Cash is not a “hot” company at present and would not enjoy a 100X MRR valuation.  Instead, 36 times monthly profit is more likely, given its size and growth rate.  

According to this interview with FE international, small SaaS companies (under $80K MRR) sell for 3 to 6 times Seller Discretionary Income.  So Code For Cash would conservatively be worth 36 * monthly discretionary income.

So, 3400*36 = $122,000 … but that assumes we take home 100% of revenue each month.

We don’t take home 100% of revenue.  

The biggest non-essential cost is data labeling, probably $2000 per month.  That leaves us at $2200.  And $130/month for Heroku, $60/month for AWS, $80/month for DigitalOcean, we’re down to $1930.  Then a few marketing services and other SaaS products brings us down to about $1800 (which I’m currently investing into improving the platform, so I don’t actually see that money, but for the purposes of our analysis, it might as well be there).  

So $1800 * 36 = $64,800

But what if we could use machine learning to decrease data labeling costs to $1000?

$2800 * 36 = $100,800

Gotta love technology!

So, my initial approach to this involved finding a SaaS text classification solution.  I investigated various options: Aylien, MonkeyLearn.  Unfortunately, neither met our needs in effectively reducing our labeling costs.  But I did find a solution from Facebook called fastText ( with a simple API and an easy getting started guide.

So I decided to go through the Code For Cash data, prepare it for fastText, and then bundle it up as a serverless AWS Lambda program

The business value question is how many tasks per month will this reduce?  Well, we still have some measurement to do in so far as accuracy before we fully deploy a machine learning solution to production.  Going to start from scratch, re-train the model on the first 80% of the data set, and test on the last 20%..  So check in next month for an update on that.

Financing growth

I’ve been taking a class called Venture Deals –

It’s been helpful.  Our first assignment involved finding VCs to pitch, and I started thinking about that it in a totally new way.  I made a list of VCs that have funded NYC-based developer tools SaaS companies in seed stage deals.  Extremely specific targeting.  I’m working my network in order to get introduced to these targets.  

In the process of raising money, I put together this presentation – – it’s a work in progress.  It would probably be much improved through a round of iteration from our designer.  And telling a more compelling narrative about how we will capture a valuable market…  feedback definitely welcome.

$250,000 would be a good amount to raise.  Why $250,000?  It’s really arbitrary.  I picked an amount that we could deploy safely, using proven channels, that would definitely improve our business.


$200/month Instagram

$1600/month Blog/Articles

$2000/month Ads

Total: $3800/month


$2000/month Design

$2000/month Job leads improvements

$2000/month Platform improvements

Total: $6000/month



Total: $12,800 – so $250,000 would provide us with about 18 months of runway.  

Of course, I have to also assume that VCs aren’t just playing mind games with me through their total failure to level with me, and they actually aren’t interested in funding us – in fairness, the company is “rationally” worth what, $64,000 at this point?  And hope is not a strategy – so therefore need a backup plan.

One tractable approach involves a company called Lighter Capital that offers revenue-based funding.  They will fund you up to ⅓ of your ARR (annually recurring revenue).  And more importantly, they work with business entities rather than requiring you to personally guarantee the loan.  However, they don’t work with companies doing less than $15,000 monthly.  So, I would need a plan to bridge up to $15,000 – how could I do that in the least expensive way possible?

We need about $11,600 in additional MRR, about 260 new developer subscriptions.  While we could potentially sprint there through marketing spend (limiting ourselves at 41¢ CPC, ⅓ of projected LTV), I feel like to do so would be unwise.  At this time, there are clear improvements that could be made to the marketing/onboarding/activation funnel:

(This is a transparent look into how I manage my tasks.  The time estimates factor in the high switching cost to wearing multiple hats and also help me decide where would be best for me to delegate.  Every time I review, I decide: “do it now”, “delegate”, “don’t do this”, “do it later”).



4h Bugfix CV edge cases – .doc files and .pdf documents
2h Strip non-essential fields from onboarding flow (is this essential to this person finding work?)
2h Cache Prospect data to prepopulate keywords in new User Profiles.
1h Can we skip onboarding entirely if they have prospect keywords array? Think about this.


0.5h Ask designer to redesign Prospect (job leads count widget) experience
4h Speedup prospect search through Algolia implementation:
– Script to remove records from indexes if created_at > 1.month.ago
– Algolia block in ActiveRecord model for GigOpportunityMetum
– Frontend (SalesController) calls out to Algolia instead of iterating through
16h Design onboarding tour

User should move directly from onboarding into tour

“Here’s our Slack channel.  90% of freelance jobs travel through relationships and word of mouth.  Chatting in Slack is actually professional networking.  And, lots of gigs trade in Slack.”

“Here are internal requisitions: companies that have came to Code For Cash and asked to hire a freelance designer.  We’re still building this system, so if you have questions, feel free to ask.”

“Here are gigs for you that we found for you on the ‘net.  You can use Code For Cash to apply to them with smart templates”. -> TOUR for this

“Click “apply via CFC”

“Annotate your keywords so you can pre-populate these outreach emails”

“Send your message”

8h Improve job system UI/UX – new design is ready.  Currently waiting on CSS changes. Preview:



6h Join us in Slack reminder email (“90% of freelance jobs still trade through word-of-mouth networking”) to people who haven’t.
5 days after signup, -> email scheduled after account created
Send actual email if user hasn’t set Slack id.
2h Job system education email to people who haven’t used -> encourage users to make annotations of above-market ability
3 days after signup, -> annotation tour email
unless GigOpportunities.any?(ignored || applied)


16h Add 15 additional crawlers to find more jobs
20h Use machine learning models to reduce human task labeling costs.  If the machine learning models for time commitment, onsite/remote, or employment type are 95%+ confident, label immediately.  If data from all 3, skip human labeling.
4h Add “Email me about new gig opportunities: Never, Instantly, Daily Batch”
Email should contain deep link to Apply via CFC
1h Add Confirmation popup to Cancel subscription link.


24h More entrepreneur/manager marketing to source more original gigs

– SEO links:

Early-stage VC firms
Angel investors
Hedge funds
1h Screenshot of microtask action (Slack channel) on homepage, superimposed in laptop
12h Introduce “Concierge” level service
– Account Settings page should toggle between:
Level of service (with explanation of different benefits)
Redesign signup page


*Remove “Preview” from cfc_outreach view*
Add hover notice to keywords to show off our intelligence (e.g. User types “rails” -> We say “we’re also searching ruby and ror”)


Anyway, once all of this is executed (and that’s my plan of what to get done this month!), then it could be time to revisit investing personal capital in buying traffic.  Or, perhaps, Venture Capital.

For now, we don’t need it.

This todo list is emblematic of a long term vision of Code For Cash.  In a perfect world, I could copy/paste it into our service.  Suddenly, I would receive competitive bids for each feature change.  And a developer could hop on, do the work, and get paid in cash.. right away.

I’d like to see that.  Would you?


Zack Burt

An AWS Lambda (serverless) implementation of Facebook fastText – text classification

Code For Cash finds freelance programming jobs.  One of our biggest methods is through scraping websites.  In order to match these jobs to our subscribers, we have to apply some labeling.  Currently, we have human workers doing the labeling, but in order to save money, we have to make the move to machine learning.


Here’s how I handled the initial migration to fastText:


  1. I took the labeled data from our MySQL database and dumped it into a TSV file.  

    mysql -ucfcjobs -pPASSWORD cfcjobs -e ‘select * from gig_opportunity_meta’ > gom_table.csv
  2. I wrote a python script to normalize the job ad text (combining title and description), making lowercase, removing punctuation and removing stopwords.  I then outputted one lead per line, prefixed with the labels I already know. 

    (Here’s the script)


  1. I then ran fasttext to create a model

    /fasttext supervised -input normalized_gom -output model_gom -lr 1.0 -epoch 25 -wordNgrams 3 -bucket 200000 -dim 50 -loss hs

    This created a file, model_gom.bin


  1.  I used ec2 to create an Amazon Linux micro instance (free tier).  I then installed git (sudo yum install git), installed a c++ compiler (sudo yum groupinstall “Developer tools”), downloaded fastText and compiled it with “make”


  1.  I then used scp to copy the compiled fasttext binary to my local machine.  I moved the fasttext-for-Amazon Linux binary into a folder called lambda.  I also copied model_gom.bin.  


  1.  I then installed nltk locally to the lambda directory: pip install nltk -t /Users/zackburt/fastText/lambda  – I also ran to download nltk_data to a local directory.


  1.  I then wrote a serverless script that could ingest the job ad text and return a string with the predicted labels.  Here it is:


  1. Then, fromwithin the Lambda directory, I ran “zip -r ~/ *”.  This created a zip archive in my home directory.  It’s very important that when you zip up serverless components for AWS Lambda, your zip archive’s root isn’t a folder.  I.e. when you unzip, it needs to unzip the contents into the current directory, rather than a subfolder.  Amazon doesn’t yet play nice with error messages regarding this subtle point, and failing to put your handler file in the root directory of the zip (NOT within a folder in the root directory) will result in confusion.


  1.  I then used s3cmd to upload the script to a S3 bucket.  


  1. Once the file was up in s3, I created a new Lambda function and set NLTK_DATA=./nltk_data as an environment variable in the Lambda configuration.  I also maxed out memory, since even at scale, we should be on the free tier, and a max memory config will run the function 3 times faster, even considering the fact that 350MB is the maximum memory used by the function.  Just a little tip I learned from ServerlessConf.


Et voilà! A text classification SaaS API, except without the need for paying for a 3rd party SaaS!

Providing real value as a middleman

Because Code For Cash is a marketplace between freelance programmers and hiring managers, we’re also a middleman.  There’s a book called The Middleman Economy that discusses a framework for roles in which middlemen provide value.


Here are Marina’s six categories:

  1. The Bridge (reducing physical, social, or temporal distance)
  2. The Certifier (be able to discern quality)
  3. The Enforcer (make sure both parties stay honest)
  4. The Risk Bearer
  5. The Concierge (makes life easier)
  6. The Insulator (taking the heat, enabling self-promotion)


In this article, I examine Code For Cash’s opportunity to play each role – from the lens of the hiring manager as well as the freelance developer.  I also suggest a few ways in which we could measure our progress…

The Bridge


Hiring Manager

Opportunity: Finding personnel to execute a task.

How we measure this: Average time from posting job to finding a good candidate.  



Opportunity: Find jobs for developer.

How we measure this: Average number of opportunities for developer after 2 weeks (increase).  Average number of opportunities per user per month that were declined due to poor match quality (Low-value, not a skill match, miscategorized, bad cultural fit, other) (decrease).




Hiring Manager

Opportunity: Conducting reference checks, coding tests, interviews, checking work samples, managing a vouching and reputation system.

How we measure this: What percent of potential projects succeed or fail, but not because of personnel issue?



Opportunity: Check into reputation of client and verifying that client has funds to pay.  Check client’s history with freelancers..

How we measure this:  What percent of projects that start end up with complaint?  What percent of projects result in repeat transactions between developer and manager?




Hiring Manager + Developer

Opportunity: Publishing a Software Grievances forum where developers and managers may post and respond to grievances.  Indicate whether the parties chose to forgo best practices: specification with data inflows and acceptance tests (projects > $2000), reference checks, keeping funds in escrow, independent verification of functionality.  Indicate how the parties were introduced (enable posts external to Code For Cash).

How we measure this: How many views do Grievances posts get?   



Opportunity: Provide an escrow service.

How we measure this:  How much $ flows through escrow monthly?



Opportunity: Provide an escrow service.  Provide an independent verification of functionality service.

How we measure this:  How much $ flows through escrow monthly?  How many projects choose to purchase independent verification of functionality?


Risk Bearer


Hiring Manager

Opportunity: Managing the five core risks common to all software development: irrational deadline, requirements inflation (“scope creep”), spec ambiguity, employee turnover, and poor productivity.  Making sure that all big projects have clearly defined data inflows and outflows as well as a spec.  

How we measure this:  

What percent of projects have clearly defined data inflows and outflows?  

What percent of projects have a spec?

What percent of projects have unrealistic expectations for timeline (this is arbitrary, but possible to judge with human judgment)?

What percent of projects experience scope creep – what percent of projects use a milestone-based scope system, to discourage scope creep (punt changes; force adjustments to subsequent milestones before milestones are underway).

What percent of projects experience a key member leaving the project underway?

What percent of milestones are missed?  Perhaps also–Git integration, tag all commits with milestone id, measure commits toward milestone.  Force breaking up of milestones into subtasks, and measure avg. time for task-in-progress.


Opportunity: Finance development with SAFEs.  Developers get paid normal wage; financier (Code For Cash) accepts equity at 2x wage.  For projects with proven/credible ROIs.  

How do we measure this:  How much SAFE funded development flows through the system each month?




Hiring Manager

Opportunity: Managing the hiring process *for* you so you can focus on other tasks: take a budget and be responsible for a deliverable; acting like an agency.

How do we measure this:  What is the GMV that flows through the platform?



Opportunity: Apply to jobs on your behalf

How do we measure this:  How much outreach are we performing per week?




Hiring Manager and Developer

Opportunity: Negotiating on your behalf, playing “bad cop” in the hiring process.

How do we measure this:  How many people have elected to have us negotiate rates for them?


Opportunity: Evaluate credibility of counterparties

How do we measure this:  How many reference checks do we do per week?



Which opportunities should we prioritize? If you run a middleman business, where do you provide value? Where are your opportunities? I’d love if you leave a comment! My email is

My YCombinator application: Winter 2018


Company name:

Code For Cash

Company url, if any:

If you have a demo, what’s the url? For non-software, demo can be a video.

(Please don’t password protect it; just use an obscure url.)

Describe your company in 50 characters or less.

Code For Cash matches freelance devs with jobs.

What is your company going to make?

We have software that matches freelance programmers with jobs. We’re bootstrapping the marketplace by scraping all freelance and remote/contract programming jobs that we find on the Internet. Our pattern-matching software applies metadata to gigs (on-site vs remote, full-time, part-time, project-based, etc.), and it falls back to our human data team in cases where the information can’t be inferred. We have one machine learning model (SVMs using uni-,2-,3-grams) but will have more to fully automate this once we have a bigger, well-labeled, structurally sound dataset. (I’m not a machine learning expert, so we leverage a SaaS for our machine learning, but I did take lots of college level math and also know the relevant essentials, such as Garbage In, Garbage Out).

Which category best applies to your company?


Is this application in response to a YC RFS?


Where do you live now, and where would the company be based after YC?

(List as City A, Country A / City B, Country B.)

New York, USA / New York, USA


Email address of the founder who is filling out this application:

Phone number(s):

+1 (917) 754-7298


Please enter the url of a 1 minute unlisted (not private) YouTube video introducing the founders. (Follow the Video Guidelines.)

Please tell us about an interesting project, preferably outside of class or work, that two or more of you created together. Include urls if possible.

I’m a solo founder with over 20 years of programming experience who has also worked in sales, marketing and operations.

How long have the founders known one another and how did you meet? Have any of the founders not met in person?

I’m a solo founder with over 20 years of programming experience who has also worked in sales, marketing and operations. NOTE: Throughout this application, I interchangeably refer to Code For Cash as “I” and “We”. Although I am the sole founder, I also benefit from a team of contractors whom I’ve assembled, and so saying “we” is appropriate!


How far along are you?

I have a bit over $3000 MRR. I also generate revenue from consulting and facilitating billing of projects through our system – highest in a month is about $66,000. For example, instead of writing code for my consulting clients, I find Code For Cash subscribers to do it for them, charge a 5%-10% markup, invoice my clients and then pay the developers. In that way I’m “dogfooding” the app (as a hiring manager). This, however, is not the long-term plan, since I’m essentially subcontracting. But everything I do to facilitate these transactions could definitely be automated by smart enough software and processes, which I am in the process of building. In that way, with good enough software, we could eventually wipe out agencies and recruiters – perhaps even managers! – just through process-driven software.

How long have each of you been working on this? Have you been part-time or full-time? Please explain.

I’ve been working on this part-time since December 2016, supplementing my income with freelance programming jobs (dogfooding the system).

Which of the following best describes your progress?

Public Beta

How many active users or customers do you have? If you have some particularly valuable customers, who are they?

62 subscribers and 14 currently in trial. 59 of the customers are developers, two are hiring managers, and one is a coding bootcamp. The developers pay for the software because it helps them find jobs; the hiring managers pay for a license to the software as long as they are working with a contractor sourced through Code For Cash (if they hire additional developers, they pay for additional “seats” to the software); the coding bootcamp pays a flat fee to provide developer-level membership for all its students.

Do you have revenue?


What was your revenue in the last full calendar month?

(Please use USD. If none, enter ‘0’)


Your revenue 2 months ago?


Your revenue 3 months ago?


Your revenue 4 months ago?


Your revenue 5 months ago?


Your revenue 6 months ago?


Anything else you would like us to know regarding your revenue or growth rate?

I showed you our MRR from Recurly subscriptions, but a few of our early customers subscribed with SendOwl, so our actual MRR is about $500 higher (~$3300).

I’m also leveraging the Code For Cash product itself to do consulting work in order to fund development of the platform – for example, instead of writing code for my consulting clients, I find Code For Cash subscribers to do it for them, charge a 5%-10% markup, invoice my clients and then pay the developers. In that way I’m “dogfooding” the app (as a hiring manager).

There are also the book sales: The Software Engineer’s Guide to Freelance Consulting and 30 Days To Your First Freelance Programming Client are both published on Amazon and available for $2.99, selling ~13 copies a day (in the Top 10 – Kindle Paid – Software Development category).

Last month I drastically reduced our advertising spend in order to focus on product improvements but revenue still increased.

How much money do you spend per month?


How much money does your company have in the bank now?


How long is your runway?

(e.g. 5 months)

5 months

If you’ve applied previously with the same idea, how much progress have you made since the last time you applied? Anything change?

Monthly Recurring Revenue has gone from zero to over $3300.

We’ve found five unique customer acquisition channels.

We learned that freelance developers really hate paying referral fees, even if they wouldn’t have found the work otherwise, and would rather pay a flat rate.

We learned that hiring managers vary in their price sensitivity according to how tech-savvy they are: for example, a nontechnical founder is willing to pay a $200/month/developer recruitment fee, but a technical founder would pay one-time flat fee <$200, if that.

We learned that there are more w2 developers in USA than freelance developers due to tax reform legislation that was passed in 1986.

We’ve grown our customer base from fewer than 5 subscribers to over 60 active accounts, and increased our prospect list (e.g. purchasers of our books and mailing list signups) to over 2,000.

We’ve identified the size of the market using top-down as well as bottom-up estimates and identified some key players (in the freelance programming platform market: Upwork, Guru, Freelancer; ancillary competitors: IT staffing firms like Randstad; development agencies like YC-funded Gigster).

We have improved the product from barely a crontab, some ruby scripts, and a mysql database into a webapp with 6 major functional areas, (Preferences, CRM, Portfolio webpage, Training Materials, Share An Opportunity, Search [this is really just Algolia]).

We search 40+ markets for jobs instead of just 10+.

We filed for incorporation and started preparing essential legal documents, started to open a business bank account, and hired a bookkeeper to label all of our transactions in our accounting software.

We’ve grown to understand the importance of culture fit (communication) during the freelancer hiring process, as well as the importance of having a specification/scope of work for freelance projects in order to ensure both parties are successful (we haven’t implemented this, structurally, into the webapp yet, but we will).

We learned that freelance developers immensely care about time commitment when searching for work, and like to search based on a fulltime, part-time, or project-based commitment.

I learned that developers respond very well to transparency, as do hiring managers.

Despite relying on it as a livelihood, freelance developers dislike sales, so creating a “pull” approach to placement (that results in getting matched to a paycheck very quickly) rather than a “push” approach will be adopted very quickly.

The main hurdles for a software development project not getting started are: manager doesn’t trust developer; developer doesn’t trust manager; project doesn’t have a specification yet; manager doesn’t know what a fair price is; developer doesn’t know how to bid the project. (Most of such problems are solvable through the right software).

Developers are willing to take a chance on new platforms and see if they quickly get matched with a project that’s a good fit. So a smarter-matching engine is essential, as is a high volume of projects.

The list goes on…

If you have already participated or committed to participate in an incubator, “accelerator” or “pre-accelerator” program, please tell us about it.



Why did you pick this idea to work on? Do you have domain expertise in this area? How do you know people need what you’re making?

I’ve been a freelance programmer for over 10 years (since my Facebook app went viral and was acquired), so I am scratching my own itch (and the itches of my peers). But I have more knowledge than simply anecdata:

I’ve talked to dozens of freelance programmers during this process. This includes email conversations, Slack conversations, phone conversations, and in person conversations. In fact, everyone who signs up for the app gets invited into Slack, and I also man our support chat-widget.

I am in the process of putting together full, formal “Buyers Matrix” (persona) documents for 20 freelance developers and 20 hiring managers and have conducted nine formal interviews already. If I need to talk to a completely fresh (uncontacted) customer, either hiring manager or developer, I can find one who will really talk with me within a day.

I’ve researched the competition in depth, and can tell you how much revenue the top competitors are generating (freelancer itself generates ~$20M annually from software gigs; Upwork, ~$12M from software gigs; Randstad, ~€1.25B).

What’s new about what you’re making? What substitutes do people resort to because it doesn’t exist yet (or they don’t know about it)?

90% of freelance programming jobs travel by word of mouth, so the substitutes are LinkedIn posts, emails to friends, company mailing lists, etc.

Who are your competitors, and who might become competitors? Who do you fear most?

There are online marketplaces like Upwork,,, but they don’t focus on freelance programmers. Toptal has focus on freelance programmers, but they only concentrate on the top 3% of the market. C2C (corporate staffing firms, like Robert Half) do (roughly) ~$6B in annual revenue in this area. My biggest fear is Upwork launching a product that caters to the idiosyncrasies of the freelance programming market.

What do you understand about your business that other companies in it just don’t get?

Freelance programming in USA is limited because of a 1986 tax reform act that targeted developers. Companies were penalized for hiring developers as 1099 workers and are at risk of being taxed as if their hires were w2.

However, in spite of this, the “gig economy” is here and expanding. Some estimates peg the eventual TAM of the Gig Economy at $1.5T, attributing half of that to IT projects, including software.

The software workforce is growing. Although most freelance developers are not Americans (due to the limitations in American law), with the advent of travel visas (such as Thailand introducing a Digital Nomad visa) and the general growth of the gig economy, freelance software development will grow in size in spite of the legislative roadblocks.

Hiring a freelance software developer is currently like finding a taxi: you call up the cab company and hope that they show up on time or if you live in an area with a high enough volume of cabs, you go outside and hope one shows up near you in time. But with the right dispatch system (quickly matching developers to projects that are a good fit, not only technically but also culturally) and the right structural systems in place to make sure the software projects succeed (enforcing best practices for software development), we could become the Uber for Software.

People understand that hiring is broken. Developers hate recruiters, and companies admit that up to 50% of their software hires are wrong. It’s clear that matching needs fixing.

Freelance software projects are a chance for us to get this right, because freelance projects are small and more frequent than job postings, there is a higher volume of turnover – we get more passes through the funnel in order to get matching right. By the time we have developed a system for consistently outputting high quality software projects (with a lower failure rate), we will have a moat on competitors. Analogy: think about the YC application and its idiosyncrasies that give YC a competitive advantage in fundraising…

How do or will you make money? How much could you make?

(We realize you can’t know precisely, but give your best estimate.)

We collect subscription fees from developers and hiring managers. We charge developers $45/month (with a discount for early adopters or multiple licenses, such as in the case of a bootcamp). We charge hiring managers anywhere from $0 to $200/month/developer for the duration of their contract.

We estimate the freelance programming market to be anywhere from $500M to $3B in annual volume currently, depending on whether you include IT staffing in the definition of “freelance programmers”. Intermediary services get away with charging anywhere from 5% to 50%, so our annual revenue could be anywhere from $25M to $1.5B if we own the market. That’s immediately. Freelancing as a market is growing, though… with some estimates of the TAM maturing to $1.5T annually.

Even immediately, however, there are opportunities for us to pivot our matching software into adjacent markets. Prospects have asked me if I could service other freelance markets: video post production, web design, marketing gigs… for now, we are focusing on conquering the software development market before expanding adjacently.

How will you get users? If your idea is the type that faces a chicken-and-egg problem in the sense that it won’t be attractive to users till it has a lot of users (e.g. a marketplace, a dating site, an ad network), how will you overcome that?

We currently have five customer acquisition channels that are effective for sourcing freelance software developers: Reddit ads; Indie Hackers community participation; Instagram (organic– suggests that paid Instagram could work as well); Social media articles; the books, 30 Days To Your First Freelance Programming Client and Software Engineer’s Guide to Freelance Consulting – I estimate 1 in every 200 readers becomes a customer. Using Amazon Marketing Services, I estimate that we can move books at scale for about -$2 net per copy.

The main point to get across is that I’m confident we could scale paid acquisition of freelance developers, although LTV is approximately == CAC, and through product improvements (reducing churn) and normal growth hacking, we are on a mission to move LTV == 3X CAC.

It has occurred to me that some of our users come from referrals from fellow users. So we technically have six customer acquisition channels, including referrals.

However, we don’t yet have scalable systems for acquiring hiring manager customers (aside from networking and referrals– not *scalable*). Although our social media articles (designed to attract developers) are also accidentally finding us hiring managers, (including developers who are, internally, responsible for hiring), we don’t have a system where we can spend $X and ensure $Y hiring manager signups. In fact, we don’t yet have a software product for hiring managers to manage the hiring process… everything is done manually, with me often not charging the hiring managers and working closely with them to recruit a developer to their project, simply in order to facilitate customer learning.

We’re overcoming the chicken-and-egg problem this presents by writing scrapers to scour the Internet for freelance programming jobs, and we’ve written scrapers for about 50 different markets so far.

Currently, the bottleneck is scalable systems for signing up freelance hiring managers, but we haven’t even built software to manage the freelancer hiring process yet, though it will be shipped by the end of October, if not sooner. Now, after many conversations, we know what to build and what aspects are important, systematically addressing the bottlenecks within the hiring process, itself: pre-screening with rubric-based technical evaluations, having a spec, getting the description in front of developers who are well-suited to it in terms of ability and availability, signing developers to NDAs where appropriate, conducting reference checks, and transparently monitoring of the process, for both sides.


Have you incorporated, or formed any legal entity (like an LLC) yet?


What kind of entity and in what state or country was the entity formed?

(e.g. Delaware C Corp)

Delaware C Corp

Please describe the breakdown of the equity ownership in percentages among the founders, employees and any other stockholders.

Zachary Burt owns 100% – all employees to date have been independent contractors (paid in cash) and not awarded any equity. Once funded, I will hire FTEs with a generous option pool.

List any investments your company has received. Include the name of the investor, the amount invested, the premoney valuation / valuation cap, and the type of security sold (convertible notes, safes or stock).

I have invested about $50,000 into the company already. That’s a rough estimate, since our books are not 100% up-to-date yet, but it’s within the right order of magnitude.

Please provide any other relevant information about the structure or formation of the company.

I’ve been operating as a sole proprietor since December 2016. In August, I filed for a DBA (doing business as) license with New York County. At the end of September (a few days ago), I filed with Delaware to create a C-Corp. Once that is confirmed, I still have to “qualify to do business as a foreign corporation” (legal terms – means out-of-state corporation) by submitting some forms to the New York State authorities.


Are any of the founders covered by noncompetes or intellectual property agreements that overlap with your project? If so, please explain.


Who writes code, or does other technical work on your product? Was any of it done by a non-founder? Please explain.

I write code and have programmed for over 20 years. I hire freelance programmers (often through searching the Code For Cash database) and pay them as independent contractors. I’m capable of personally handling all the necessary tech; it’s simply a matter of scaling my time.

Is there anything else we should know about your company?

(Pending lawsuits, cofounders who have left, etc.)

A few of the freelancers who wrote job scrapers for us did so as independent contractors (you do this as a contractor, I will send you PayPal) but haven’t signed formal work-for-hire agreements. My lawyer says this shouldn’t be a huge issue, since it’s just auxiliary code (like scrapers for additional markets rather than core product code), but going forward, everyone is signing a formal agreement.


If you had any other ideas you considered applying with, please list them. One may be something we’ve been waiting for. Often when we fund people it’s to do something they list here and not in the main application.

I think there’s an opportunity for a service that hires product-inclined software developers to write specifications for software programs: from having facilitated many consulting projects via the platform, I can tell you that projects with well-defined data-input and data-ouput tend to end in success rather than tears. This would be beneficial for the FTE software market/ecosystem as well as the freelance developer market. These specifications could consist of simply wireframes/data flow descriptions, or even possibly automated testing systems (TDD, except the test writing is outsourced).

Please tell us something surprising or amusing that one of you has discovered.

(The answer need not be related to your project.)

Most programmers work as w2 rather than 1099 employees because of a 1986 tax reform act that threatens to (at the IRS’s whims) tax employers as if their 1099 programmers are w2 employees. Congress suspected that programmers were using their companies as tax havens, but studies show that programmers are actually more scrupulous than average when it comes to IRS reporting. The freelance programming economy is growing in spite of this (since software is eating the world), but many companies have an institutional memory from this 1986 law (which is still a threat) and prefer w2 or c2c arrangements.


What convinced you to apply to Y Combinator?

The apply for w18 email reminder.

How did you hear about Y Combinator?

Alex Rampell told me about you in 2006.

Cost to Acquire a Customer (or “Cost of Customer Acquisition”) explained with real world examples and real numbers

One of the best ways to grow your business is by acquiring more customers.  If you solely grow through extending the value you get from your few customers, you run the risk of becoming a captured company.  We see this at a micro level where independent contractors with one golden goose client forcing them to convert to W2 employees.

If you know how much it costs to acquire a customer, and you know your customer lifetime value, you can then make the rational decision to invest in acquiring customers because you’re going to make the money back over the lifetime of your business relationship.

Of course, the formula is a bit more complex than “if LTV > CAC, invest heaps in customer acquisition!”.

For example, there is also the cost to deliver the service to the customer.  And there is the cost of capital to acquire the customer.  So therefore, VC firms have the golden ratio of 3+ as LTV/CAC ratio.  But VCs target 30%+ IRR on their portfolios.  If you are working with a bank having cost of capital around 10% – 20%, you may be able to get away with a lower LTV/CAC ratio.

So how do you calculate Cost of Customer Acquisition?

You take the amount you spent on marketing during a given month and divide it by the number of new customers in that month.

Let’s take this business, Code For Cash, as an example.  In August 2017 we had 17 new customers.  What were our marketing expenses?

Facebook ads – ($390)
Reddit ads – ($112)
Amazon marketing services for our ebooks Software Engineer’s Guide to Freelance Consulting and 30 Days To Your First Freelance Programming Client–  ($2000)  with $1260 in ebook royalties so ($740)
Freelance blog content – ($600)

Total: $1842

$1842/17 customers = $108 to acquire a customer.  According to this analysis, $108 is our CCA.

Unfortunately, this is too superficial an analysis to have any value.  The truth is, marketing programs pay off in months.  You would also have to look at my marketing spend for July, June, May, April, March – and the customer signups – to get greater accuracy.   Not only that, but I am probably forgetting lots of other relevant costs: SaaS programs used to automate the marketing, freelancers hired here and there for miscellaneous tasks, etc.

So, let’s get more accurate data:

Looking at the preliminary report from our bookkeeper Jamel Salter our marketing spend for the past few months is:

Sep Aug Jul Jun
2,419 3,641 3,680 5,661

Totaling $15,401

If we credit the revenue from Amazon royalties, approximately $4500, that’s $10,901 in marketing spend.  We added 31 customers over that time period: customer acquisition cost is actually higher than our preliminary estimate, at around $350.

Strategy for lowering customer acquisition cost

What does it take for someone to become a customer?

They have to:

A) Learn about our business (visit our webpage)

B) Sign up for a free trial

C) Convert their free trial into a paid subscription (establishing themselves as a customer)

Note: for the purposes of calculating CCA, only people who make it to stage “C” count.  However, people in B and A should be treated as customers – prospective customers, that is.

So in order for us to lower our customer acquisition cost, we need to: educate people on our business for a lower cost; improve our webpage so that more people sign up for the free trial; and do a great job during the free trial so that more people become paying customers.

What are some concrete example tactics?

Educate people on our business for a lower cost

  • Rely more heavily on content marketing, posting it on social media without promotional fees.  This article is an example.

Improve our webpage so that more people sign up for the free trial

  • Improve the design of the page so that it signals high quality
  • Remove the credit card requirement from the trial signup

Convert more trials into paid subscriptions

  • Aim for a 0% defect rate – 0 errors raised per customer
  • Measure # of gig opportunities available for user immediately: add additional markets to the database; write content that is also aimed at acquiring business customers (who will submit original gigs to the network)

My hypothesis is the highest impact things we could do would be to remove the credit card requirement from the trial signup, aim for a 0% defect rate through automated testing of key customer workflows, and adding new markets.  So that’s what’s coming up on the product roadmap!

Strategy and Tactics of Pricing – Summary

Chapter-by-chapter summary of The Strategy and Tactics of Pricing: A Guide to Growing More Profitably

Thomas T. Nagle, John E. Hogan and Joseph Zale

Summary notes by John O’Malley
  • A sophisticated understanding of the value a product creates for the customer serves as the bedrock input to a pricing strategy.
  • Different customers will value products differently. An effective pricing strategy will leverage a segmented price structure that reflects the values and costs across customer segments.
  • An integrated, strategic plan seeks to influence how customers perceive a product and its price rather than set prices reactively.
  • Setting a price is difficult, and the decisions too often reflect unclear leadership and misleading data. Strategic pricing prioritizes profitability.
  • Costs and competition are important considerations but not the drivers of effective pricing strategy because changes in prices alter volume and impact costs.
Chapter 1: Strategic Pricing
Coordinating the Drivers of Profitability

In the Information Age, the factors that determine profit are changing more rapidly than ever. New pricing models, such as those employed by Netflix, Ryanair, and Apple, form an integral part of some the most profitable enterprises in those changing markets. Yet, few managers train to set prices in anticipation of changes, rather than in reaction to them. Some common approaches to pricing simply reflect outmoded thinking: cost-plus pricing, customer-driven pricing, and share-driven pricing. These approaches all misunderstand the role of pricing.

Strategic pricing, on the other hand, rests on three key principles. First, the pricing strategy is value based. This means that prices reflect the differences in value across customers and over time. Second, the strategy is proactive. It anticipates those market changes, designs strategies to account for them and even dictates the terms of various trade-offs. Finally, the strategy is profit-driven. Instead of comparing prices to competitors, a pricing strategy is evaluated relative to the company’s alternative options.

These principles lead to the five-tier pyramid of strategic pricing, where each block builds on the next. Likewise, each of the following chapters expands on the nature of value creation, price structure, price and value communication, pricing policy, and price level before turning to the final component of strategic pricing: implementation. Although most companies do not need a large, central price management function, a clear strategic vision must ultimately have everyone in the organization do their part. Managers need to understand their role and have to data to execute successfully. A good strategy will seek to motivate new behaviors.

Pricing Policy Pyramid

Chapter 2: Value Creation
The Source of Value Creation

Value refers here to economic value, which relies on the differentiation of one product from another. Almost no one would volunteer to pay $2.00 for a can of coke from a seller if they know that it is available in a vending machine for $1.00 around the corner, but, more practically, a swimmer on hot beach might readily pay the higher price rather than walk to an inconvenient snack shack. This differentiation value is the only component of economic value captured by price.

Understanding the nature of differentiation is critical to understanding the creation of value. The two forms of differentiation are monetary value, which is the cost savings or income enhancements that a product provides, and psychological value, which is a measure of the satisfaction and pleasure derived from a product. Therefore, the total economic value of a product reflects the value of the next best competitor (the reference) plus the net value of the differentiation between products (the differentiation value).

To return to the example of why the beachgoer is willing to pay $2.00 for a can of coke, this breakdown of value creation can explain the decision to purchase. The reference value is the cost of the soda at the snack shack, the value normally derived from drinking a can of coke. The differentiation value is the psychological value of convenience and immediate gratification. The price point that results in the sale, the $2.00, captures the the total economic value to the customer on the beach.

Economic Value

This process also allows for value-based market segmentation, one of the most powerful ways to maximize profitability through strategic pricing. With a segmented marketing plan and price structure, a marketer can ensure that different segments pay an optimal price, instead of charging a single price that undercharges some customers and drives others to competitors. After a marketer determines the basic criteria for segments according to commonalities in purchasing behavior, they can identify the values that drive purchasing decisions within segments. These value-drivers do not necessarily correspond intuitively to segmentation criteria, and a deep understanding of the total economic value of a product helps identify specific value drivers. Then, after creating levels of segmentation and detailed descriptions for marketers, as illustrated in the two tables below, it’s time to move into the pricing strategy.

Segmented Customers

Chapter 3: Price Structure
Tactics for Pricing Differently Across Segments

A company that attempts to serve customers at a single price-point tends to make large, unnecessary trade-offs between volume and margin. By nature, differentiation value changes across customer segments, and the profit potential created by those differences can be captured through strategic pricing. In the case of railroads, for instance, railroad tariffs ensure that coal and grain cost significantly less to transport than other goods. At this lower price point, railroads maximize the profits on goods that would not be cost-efficient to ship at the cost of manufactured goods. The price structure allows the railroad to cover the high costs of its infrastructure.

Whenever differentiation value changes across customers, it is possible to design different offers for different segments. In fact, effectively designed bundles will accurately understand how they create differentiated value, and customers will self-select for the bundle that most directly corresponds to their needs. One of the core questions for configuring a price structure is deciding which features to offer individually and which features to bundle. In music, most customers will pay a premium for famous headliners, but must be enticed with lower prices to attend smaller performances. Some customers, however, may be willing to pay a premium for those same concerts, and segmenting can help buoy the profitability of these smaller performances.

Sometimes, quantity, such as number of tickets sold, does not accurately capture the value of a product. In these cases, marketers might adopt new price metrics by applying the cost of the price to a different unit. Price metrics can vary substantially. A sports club could charge per hour, per visit, or for a membership. Within that membership, the club might charge yet another hourly fee for a particular feature, like a sauna. Good metrics are unambiguous, appealing to prospective buyers, and aligned with their values. Someone primarily looking for a good sauna might balk at that sports club membership. Innovative price metrics, especially ones that are more effective than competitors, can improve existing margins and expand volume.

Value can also differ among customers receiving identical benefits because the factors contributing to their perception of economic value are different. In this case, a price fence, in which different segments are charged a different price for the same product, may be effective. This is quite common. Most museums have different charges based on age or student status. However, price fences can annoy people and create an incentive for buyers to, often successfully, avoid them. Effective price fences rely on proxy metrics like buyer identification, location, time of purchase, or quantity.

Chapter 4: Price and Value Communication
Strategies to Influence Willingness-to-pay

In order for strategic pricing to succeed, customers must accurately understand the value of the product on offer. More specifically, sellers need to convince customers to perceive the differentiation value of their product. Successfully communicating value protects segments from competitors by clearly highlight the differentiated value because the customer understands why one product better fits their need than the next best alternative. By extension, communicated value improves a customers willingness to pay and, ultimately, increases the likelihood of a purchase.

Take the example of the Amazon Kindle. Many observers feared that the high price point of the first devices would put off customers who considered the switch from physical books to e-books extremely risky. Amazon had to find a way to communicate the value of a new technology. They decided on a “Meet a Kindle Owner” program where prospective customers could meet people similar to themselves and learn the benefits of owning a Kindle. As a result of this highly effective approach to communicating value, Kindle sales far exceeded expectations.

This highlights that value communication is most important when the differentiated value of a product is not obvious to potential costumers. Typically, this is the case for inexperienced buyers or, in the case of the Kindle, when the product is highly innovative. In both cases, customers may have trouble noticing the differentiated value, so the purpose of effective value communication becomes identifying the perceptions to influence and connecting the key values to the appropriate characteristics of the product.

Two characteristics play the most important roles in influencing perception: type of benefit and cost to search. Type of benefit refers to the breakdown of value into monetary and psychological value. Presenting the monetary value to someone who primarily derives psychological value from a product will probably not influence them in any meaningful way, and it may even drive them away from the product.

The other characteristic is the relative cost to search, the cost relative to the expenditure of identifying a product’s value. Someone making a $5,000 purchase can reasonably spend more time searching than someone making a $5 purchase. When investigating search goods, a buyer can easily compare features and benefits objectively. The cost of search is low. However, experience goods that are more difficult to evaluate, like which auto shop to go to, have a higher relative cost to search. An effective value communication takes both of these kinds of attributes into account and adapts the communication across each stage of the purchase as the costs change.

The Customer Search Process

Importantly, customers do not always evaluate price as strategically as marketers, especially when it comes to discounts. Studies have demonstrated that customers evaluate purchase choices proportionally rather than absolutely. Most people would walk a block to pay $2.00 for a drink rather than $5.00, but they would consider it a waste of time to walk the same block to spend $102 rather than $105. Customers also place great weight on reference prices, the standard “fair” price, and perceptions of fairness. Although the subjectivity of these perceptions may make them seem difficult or unpredictable, in practice value communication can leverage them to a marketer’s advantage. In general, marketers can set a high “regular” price in order to lower the price through discounts and promotions before raising it again without seeming unfair. This also impacts reputation and whether the price is seen as maintaining or improving a standard of living, both important components of perceived fairness. Finally, people prefer to avoid losses when evaluating differences in products. Again, minimizing out of pocket costs or framing costs against a high reference cost can account for this gain-loss framing.

Chapter 5: Pricing Policy
Managing Expectations to Improve Price Realization

All sellers eventually face difficult customers asking for price exceptions. They may be loyal customers asking for an exception during an economic downturn or highly aggressive buyers forcing ad-hoc negotiations, slowing down sales overall. An effective pricing policy is a set of rules or habits that precludes exceptions for any factors that do not reflect changes in value or cost. Pricing policy ought to be consistent across the board. Over time, unclear pricing policies can allow buyers to dictate expectations to sellers. Strategic pricing flips this problem on its head by leveraging the price strategy to influence future customer behavior. Consistent price policies dictate consistent expectations, a key component to influencing customer behavior that avoids the pitfalls of ad-hoc negotiation.

Price policy develops over time. Each request for an exception to a price is an opportunity to set a pricing policy that will predict and prevent a similar exception request in the future. Over time, buyers will come to expect these pricing policies, as long as they are consistent and transparent. These policy decisions clearly must come from market level management, but they still have to empower sales managers to stand by pricing policies even at the potential cost of a sale. While this might seem intimidating, ad-hoc negotiations only defer substantial costs that will continue from unpredictable customer behavior. A pricing policy can cover price changes associated with discounts, increased industry costs, promotional trials, and changes in competitors prices. What matters is that each policy remain consistent.

Good policies also transform purchases into a price-value trade-off rather than an effort to extort the lowest prices. There are a wide variety of buyers who might engender pricing policies. In addition to consistency of application, good price policies can rely on give-get negotiations, in which the seller refuses to make any concession that does not have some value return. The principle behind give-get negotiations, which motivates good price policies generally, is identifying whether exception requests are a product of misplaced expectations or lost value. Pricing policy seeks to manage the expectations, but an in-depth, accurate understanding of value to customers may have wider repercussions. Revisit the thinking in early chapters to review how understanding value can influence strategic pricing.

Chapter 6: Price Level
Setting the Right Price for Sustainable Profit

A lot of data is available to set a price point, and a three stage process can guide the decision. This process builds on the premise that, in order to maximize profitability, price is different for different segments. This is the final level of the pyramid. At each step of the process, it is important to consider the pay-off for invested time. Managerial experience and market knowledge is always an essential component of price setting, and it may not be necessary to spend much time where experience will suffice.

The first step is to set a price window. This window outlines the highest and lowest acceptable prices for a product as defined by its total economic value. It extends the process for estimating value.

Price Windows

The next step is to set the price that best captures the differential value. The goal is not to set the highest price possible. The price should drive profitability because it aligns with the overall business strategy. Jeff Bezos, in the early days of Amazon, sought to undercut distributors in order to move market share to Amazon’s online platform, which was the germ of the company that exists today. It answers core question of the price-volume trade-off: “how much volume can I afford to lose for a price increase/how much volume would I have to gain for a price decrease?” Incremental break even analysis can help answer this question. Finally, it predicts the customer response to the price point. This is perhaps the most subjective step and therefore the best served by experience. Marketers have to estimate price-sensitivity, or the sensitivity to the price-value trade-off. This is the degree to which factors other than value influence willingness-to-pay, and it includes the same factors outlined in Chapter 4, such as expenditure size, perceived risk, and gain-loss framing.

The last step of the price setting process is to communicate the reason for the price to customers. Customers must understand the price and perceive it as fair. This clearly demonstrates how this step builds on all the others. Communicating a price to customers must particularly grapple with perceived fairness, which companies manage through price policies that reflect an understanding of differentiated value.

Chapter 7: Pricing Over the Product Lifestyle
Adapting Strategy in an Evolving Market

Products have a typical, and therefore predictable, life cycle. A market for a product appears, grows, reaches maturity, then declines. An effective strategy does not react to these changes. It predicts them. Profitable pricing represents the culmination of a successful plan and prediction. Moreover, while not every new product creates a new market, every new product presents new challenges and opportunities for marketers to introduce profitable price changes that reflect the different stages of the market life-cycle.


For new products at the market development stage, the critical goal is buyer education. When buyers know nothing about a product, they have little sensitivity to its price. Consider how much information they lack. They have no way to evaluate cost to search, for instance, or leverage reference prices. Competitors are few or non-existent, and the potential profits of market development far outweigh the threat of competition. Pricing strategy revolves around effectively communicating value through adaptive solutions such as promotional trials, direct sales, or manipulation of distribution channels according to the characteristics of the innovation. Diffusion of experience across customers is a critical component of market development, as early adopters, such as in the case of the Amazon Kindle, can have a massive impact on developing customer knowledge.

During the growth stage, buyers have more information and increased price sensitivity so lower prices can effectively increase market share. In particular, strategies that successfully leverage diffusion can increase reception of price reductions and promote long-term profitability. Moreover, high rates of growth limit the impacts of price competition since companies can cut prices while maintaining profitability. Through effective product strategy, marketers can establish their product as the industry standard in anticipation of market maturity. In the case of Apple, promoting their computers as user friendly allowed them charge premium prices throughout the ongoing product life-cycle. Companies may also pursue cost-leadership, in which a price captures profitability by establishing the product as the cost-efficient market product, although not necessarily by maximizing market penetration.

Strategies in the maturity stage depend substantially on how a company positions its product in the growth stage. Buyer information is at its height, as is price sensitivity. Firms can only grow by seizing competitive market share, so prices are depressed and products become homogenous. As a result, cost-leadership or sustained, well-communicated differentiation produces competitive advantage. Strategic pricing at this stage might leverage unbundling that highlights differentiated characteristics, more accurate estimations of demand and value, expansion of the product line, or reconfigured distribution. In all of these solutions, a marketer takes advantage of the increased amount of information available to maximize price effectiveness.

Finally, the market declines as new products create entirely new markets. This leaves firms with excess capacity, which dictates effective pricing. Variable or easily reallocated costs might cause prices to fall only slightly, but fixed costs can result in higher average costs and increased competition as firms consequently attempt to seize market share, often through price slashing. Effective options include proactively protecting the strongest product lines, pricing to exit the market with minimum losses, or price cutting to capture the markets of weaker competitors.

Chapter 8: Pricing Strategy Implementation
Embedding Strategic Pricing in the Organization

Implementation relies on effectively designing organizational structure and motivating incentives. Effective organization uses a combination of formal reporting and empowered flexibility. This idea can be managed along a spectrum of roles, centralization, and rights and processes.

There are roughly four roles for the pricing function to take on within an organization. It can operate as an expert resource, which provides consultation to different market groups. It can operate as functional coordinator that decides how pricing decision will be made. In the next iteration, it can operate as a commercial partner, that sets both process and price. Less than ideally, it can also take on a figurehead role that sets a price without consideration to different markets. Each of these roles can play into different levels of centralization, and they can produce a center of scale that operates at the corporate level, a center of expertise that sets an advisory price for local managers, or simply a dedicated support unit for other pricing organizations. Across this map, managers and marketers must be assigned clear decision rights to set prices and clear process rights to dictate how decisions are made.

Pricing Function Archetypes

Even the best organizational plan is meaningless if managers refuse to implement it. Perhaps one of the largest challenges is utilizing data to organize incentives around profitability, not volume or price. The key is to link incentives to the correct data. Two effective categories of data analysis are customer analysis and process analysis. Customer analysis seeks a deeper understanding of customer behavior, similar to the estimation of value. In addition to those estimations, analyzing performance trends can reveal how competitors are influencing customers. Building metrics around customer profitability, a combination of the average price to the cost to serve, can provide another specific metric.

In process analytics, the goal is to find leaks in profits so that new pricing policies can seal them. Two forms of analysis are particularly appropriate: price bands, and price waterfalls. A price band shows which customers pay significantly more or less than others. This is a helpful tool to identify aggressive negotiators. A price waterfall tracks the impacts of all forms of discounts as they differ from invoices. This can show where out of pocket costs are actually much higher than what an invoice records.

Of course, implementation still poses seriously difficulties. These metrics can be effectively tied to more specific and effective selling incentives, but it may still be necessary for senior leadership to exemplify a commitment to new processes. Even with demonstrations, clear communications, and well designed incentives, it can take years to reach something close to the theoretical product. However, the benefits are worth it: firms that use strategic pricing earn 24 percent higher operating incomes than their peers.

Chapter 9: Costs
How Should They Affect Pricing Decisions

Costs are critical but not obvious. Strategic pricing integrates costs and value by avoiding the mistakes of cost-plus pricing. In strategic pricing, value comes first. A marketer understands what price will capture the value of a market, which allows them to understand the role of costs. Airlines, when faced with increases in the price of fuel, do not simply charge higher prices. Instead, they raise their revenue per mile by decreasing the number of trips and maximizing the number of full-fare travelers on each flight. However, costs are extremely complicated and subject in the text only to review.

Relevant costs are incremental, which means they are the cost of changing a price, or avoidable, which means they have not happened or can be easily reversed. These costs do not simply correspond to historical information. Knowing these costs determines whether or not a market would be profitable. There are four important mistakes associated with identifying relevant costs. The first is averaging total variable costs to estimate the cost of a single unit. If the incremental cost is not constant this is misleading. Second, accounting depreciation formulas do not always use current value. Third, considering one apparent cost as totally relevant or irrelevant may miss the incremental cost and, as a result, a chance to increase profitability. Finally, overlooking opportunity costs can lead to underpriced products.

The purpose of finding these costs is calculate an accurate contribution margin. This is the measure of the price-volume trade-off and, by extension, a measurement of the relationship of a product’s profitability to its volume. This allows managers to understand how a price change must affect the market in order to maintain profitability, the key first step to making the profitable price decision discussed earlier. It is also important to consider how the fixed costs of suppliers are passed on as incremental costs, and how price coordination can improve efficiency as outlined in the discussion of the product life-cycle and the implementation of a strategic plan.

Chapter 10: Financial Analysis
Pricing for Profit

The formulas presented in this chapter expand on the articulated theory of costs. They provide a method to quantify the impact of price changes on profitability and make informed, profitable decisions that integrate cost considerations. The method is called incremental break-even analysis. Managers simply take a considered price change and create a standard of comparison to the current level, a projection, or a hypothetical. Then they apply the formula to calculate the point at which the change will prove profitable. This is a quantitative answer the challenge of solving the price-volume trade-off.


There are four cases where incremental break-even analysis can provide information about profitable pricing. In the most basic case, the formula produces the percent change in sales volume needed to maintain the same level of probability after a price change. (It can be converted into the percent change for price as well.) The formula can also be calculated with changes in variable costs or with changes in incremental fixed costs. It can even be calculated with consideration to a competitor’s price changes.

One of the most powerful tools that emerges from incremental break-even analysis is the break-even sales curve. The curve presents a range of price changes by percentage on a curve that includes the baseline. Profitable prices produce volumes to the right of the curve. Although to many it may seem unrealistic to apply economic theory to price decisions, working from the minimum elasticity can account for these concerns. However, it is important to keep in mind that the baseline should reflect the market change without a price change.

Strategic pricing does not ignore the problem posed by fixed or sunk costs. It simply notes that considering those costs is irrelevant to setting a price because they do not affect the profits the price will produce. The question of how to cover fixed costs is an important question of profitability that can be more clearly answered when firms understand the impact of price.

Chapter 11: Competition
Managing Conflict Thoughtfully

Effective responses to competitors leverage competitive advantage, not price. Price cutting, especially to make the next sale and without due consideration to strategy, can undermine the whole industry and irreversibly change a market, often to the disadvantage of the firms that resorted to price slashing. Sustainable, successful companies leverage their competitive advantage, which emerges from value differentiation. It can be reflected in the value of serving a highly specific customer segment, or it can be geographic and leverage convenience. Many American breweries maintain a competitive advantage by promoting their beer as the standard for a particular region. Advantage may also be based on variety, which takes advantage of cost-sharing and highly specific differentiation. Microsoft focused on developing computer operating systems, giving the company strong differential value in the computer industry while sharing costs with hardware manufacturers.

When competitors do changes prices, its important to react thoughtfully. Besides lowering prices, it is worthwhile evaluating how many customers will be attracted to a new competitor because of values like convenience, making them immune to reactive price changes. It may be the case that only one segment of customers is attracted by a discount. A response may call for new communication. Analysis may reveal that any retaliation would not be profitable. By carefully collecting and announcing information, firms can react to competitors in far more sustainable ways than simply slashing prices in a bid to grow market share.

Chapter 12: Measurement of Price Sensitivity
Research Techniques to Supplement Judgement

Estimates of price sensitivity can helpfully supplement managerial knowledge and expertise, but they cannot replace it. Experienced managers often have the strongest sense of which customers represent a product’s key market, know most acutely the factors that affect a sale, and can recommend appropriate parameters for research. On the other hand, most marketing decisions are highly subjective, and the information provided by estimates can serve as a guide or illuminate new information.

Research methods do differ in accuracy, cost, and applicability so its important for managers to assess the potential benefits of the information, without cutting corners. Techniques differ between highly controlled and totally uncontrolled. The added cost of controlled research is often worth it since uncontrolled environments have too many variables to allow for accurate information. Controlled analysis overwhelming tends to produce superior data.

Research can also track either actual purchase information or intentional purchase. Although information about actual purchase decisions is highly desirable, it is difficult and costly to acquire. In a controlled environment, however, measurements of intention and preference can prove highly predictive. Conjoint analysis, in particular, can match price sensitivity to specific differentiated characteristics.

The possibility for different research techniques also depends on the stage of the product development. Obviously, purchase information is not available for products in the early stages of development. This is when conjoint analysis tends to be the most helpful. Once the product is available, controlled in-store or laboratory experiments are possible, and, at the maturity stage, historical purchase data is easier and cheaper to obtain.

Chapter 13: Ethics and the Law
Understanding the Constraints on Pricing

Ethical constraints on pricing are meaningful from the standpoint of personal and societal ethics. However, beyond personally considered ethical stances, small changes can often bring suspect pricing policies into line with both the law and profit. In the United States, price competition is enforced through anti-trust law, as administered criminally by the Department of Justice, and civilly by the Federal Trade Commission and private parties. In the last decade, anti-trust law has focused on demonstrable economic effect, allowing a great degree of creativity for price setters. Some forms of prohibited price activity include price-fixing among competitors or price encouragement between suppliers and distributors. They remain, largely, per se illegal but some ambiguity in the application of the law has allowed them to become permissible in the last thirty years. Other key areas of ethical concern include price discrimination, promotional discrimination, non-price vertical restrictions, predatory pricing (in which the seller prices to harm their own profitability), and price signaling. However, these restrictions are rarely enforced due to the need to demonstrate economic harm over intention.

Managing risk on software development projects

Notes from Waltzing With Bears: Managing Risk on Software Projects (by Tom DeMarco and Timothy Lister)

Required reading for all serious students of software engineering.

If a project has no risk, don’t do it. No risk, no reward.

Risk defined: a possible future event that will lead to an undesirable outcome; the undesirable outcome itself. Better definition of risk: a weighted pattern of possible outcomes and their associated consequences.

Transition indicator: a harbinger the risk is likely to materialize

“Project managers often tell us that their clients would never do any projects if they understood the downside. Such managers see themselves as doing a positive service to their clients by shielding them from the ugliness that lies ahead. Concealing the potential for delay and failure, as they see it, is a kindness that helps clients marshal sufficient gumption to give the go-ahead. Then, the project can very gently introduce them to bad news, a little bit at a time, as it happens.”

Risk Management Decriminalizes Risk. “Can-do thinking” in corporate America; when you put a structure of risk management in place, you authorize people to think negatively, at least part of the time.

Risk Management Protects Against Invisible Transfers of Responsibility. When a client negotiates away a contingency fee that was meant to cover certain risks, responsibility for those risks has likely migrated from the contractor to the client.

Risk Management Requires Organizational Buy-In. Telling the truth where optimism/lying is the norm puts you at a huge disadvantage. Use your risk management knowledge in secret, unless your organization explicitly provides for this; otherwise you lose out to the hungry peer who says “Give me the project and I will deliver on time, guaranteed”.

Bad risk management: only dealing with problems for which you have solutions. To vaccinate, at the first go-round of what would normally be risk identification, vaccinate everyone by naming all the catastrophic outcomes you can imagine. Work backwards and try to describe which scenarios might lead to that.

Risk management: where your project planning is very much focused on what to do if you don’t catch breaks. Projects that start off as personal challenges seldom have their risks managed sensibly. Luck should never have to be built into the plan. Offer reasonable stretch goals, but make sure that real expectations make room for the breaks that don’t happen.

The pathology of setting a deadline to the earliest articulable date essentially guarantees that the schedule will be missed.

For the software industry as a whole, window size of delivery is in the range of 150 to 200% of the allocated time. That means in general, you can expect projects to take up to two times as long as you think they should, even when you do thorough, bottom-up estimates.  This is why I personally multiply all my estimates by 4x.

When a project strays from schedule, it’s seldom because the work planned just took longer than anyone had thought; a much more common explanation is that the project got bogged down doing work that wasn’t planned at all.

Totally mechanical beginning to the business of risk management: run a few postmortems of projects good and bad and look for ways in which they deviated from their initial expectations. Trace each deviation back to its cause and call that cause a risk. Give it a number and carry on. Yesterday’s problem is today’s risk.

In personal experience (having worked mostly in the industry since 2003) the common risks (the ones that keep appearing AGAIN AND AGAIN) are:

  • Key personnel turnover
    • You have someone great, but they aren’t being treated or compensated properly. Enjoy your amazing deal while it lasts, but find a way to treat people fairly and still profit. Improve the quality of codebase README documentation to reduce the onboarding time of new hires. Every new hire should make README improvements that fully resolve all areas of confusion.
  • Building systems that haven’t been designed for potential scale
    • You haven’t measured or modeled what it will take to scale delivery of services and how those costs will scale.
  • Changing product requirements
    • Use a spec and have 1-day development cycles, with team standups at the start and at the end of the day. Start of day: what I did yesterday, what I plan to do today, where I’m blocked. End of day: what I did today, what I plan to do tomorrow, where I’m blocked.
  • Growing too slow; having no predictable channel for acquiring customers
    • This can be done in parallel to building the product
  • Users find the product unintuitive
    • Easily mitigated through blind usability studies and then actually responding to the feedback.
  • Confusing and undocumented codebase functionality
    • All commits to version control should reference a JIRA/Trello ticket

There are 5 core risks common to all software projects: irrational deadline, requirements inflation (“scope creep”), spec ambiguity, employee turnover, and poor productivity.

What to do about a risk? Avoid it, contain it, mitigate it, evade it? Avoiding means forgoing the reward of the risk. You mitigate a risk when you take steps before its materialization to reduce eventual containment costs. These are the steps required in advance so that the containment strategy you’ve chosen will be implementable at transition time. Evading a risk is just like crossing your fingers and getting lucky: risk management is not the same as worrying about your project.

The client has every right to nominate certain risks for the contractor to manage, and vice versa. If you are the client, your safest posture is to assume that only those risks specifically allocated to the contractor are his, and that all the rest are yours. Incentives or penalties in the contract allocate risk.

The contractor’s risks are those that endanger the successful completion of the contract or diminish the value of completion to the contractor. Everything else is judged by the contractor to be somebody else’s risk, and thus a candidate for exclusion from his risk management. That means that you, as the client, have to manage these risks or no one will.

A common class of litigation arises out of projects in which the client is surprised to find that certain important risks never made it onto the contractor’s radar. Usually, fault lies with the contract that failed to assign those risks. As a general rule, there are no contracts that successfully transfer all responsibility to a single party. If you are either client or contractor, expect to have to do some risk management.

If you calculate exposure for all your risks and set aside a risk reserve equal to the total exposure, that risk reserve will, on average, be sufficient to pay for the risks that do materialize. Your best guess about likely materialization may come from industry data, previous lists, or just a flat-out guess… Don’t excuse yourself from this essential act just because any answer you come up with will never be demonstrably correct. Risks also need to be budgeted for in a time sense as well as money.

Showstopper risks: these are risks that, should they materialize, will fully kill a project. The rule here is that a risk owned above you in the hierarchy is an assumption to you. The risk still belongs on your risk list, but it should be explicitly noted as a project assumption. You would do well to make a little ritual of passing this risk upward. When you present your risk management plan, formally delegate the management of some risks upward to someone above you in the hierarchy.

For each managed risk, you need to choose one or more early indications of materialization. For example:

Risk Indicator
Startup won’t acquire enough users Company misses one of its early growth goals
Key personnel turnover Person is uncommunicative during one-on-one meetings

Steps for risk management:

  1. Use a risk-discovery process to compile a census of risks facing your project
  2. Make sure all of the core risks of software projects are represented in your census
    1. Inherent schedule flaw
      1. Managers who come up with or agree to seriously flawed schedule commitments are performing poorly. The key point is that when a project overruns its schedule, it is in spite of, not due to, developer performance. Schedules should be based on bottom-up estimate of work rather than arbitrary commitments.
    2. Requirements inflation
      1. Well-managed projects change at less than 1% per month (US Department of Defense standard)
    3. Employee turnover
    4. Specification breakdown (ambiguity in specification)
      1. 10-15% of software projects are canceled without delivering anything. Each project has cancelation risk that is closed once all parties sign off on the boundary data going into and out of the product, and on definitions down to the data element level of all dataflows arriving or departing from the software to be constructed. Data inflow and outflow descriptions are less prone to ambiguity than function descriptions. Force yourself to get agreement on data inflow and outflow before 15% of the way through the project. If you can’t attain consensus by that point, the best option is project cancellation.
    5. Poor productivity
  3. Do all of the following homework on a per-risk basis:
    1. Give the risk a name and id
    2. Brainstorm to find a transition indicator – the earliest practical indication of materialization – for the risk.
    3. Estimate the cost and schedule impact of risk materialization.
    4. Estimate the probability of risk materialization.
    5. Calculate the schedule and budget exposure for the risk.
    6. Determine in advance what contingency actions the project will need to take if and when transition occurs.
    7. Determine what mitigation actions need to be taken in advance of the transition to make the selected contingency actions feasible.
    8. Add mitigations actions to the overall project plan.
  4. Designate showstoppers as project assumptions. Perform the ritual of passing each of these risks upward.
  5. Make a first pass at schedule estimation by assuming that no risk will materialize.
  6. Using min,max bottom-up estimates for each of your functionality points to construct a risk diagram that shows the earliest and latest possible delivery for the project.
  7. Express all commitments using risk diagrams, explicitly showing the uncertainty associated with each projected date and budget.
  8. Monitor all risks for materialization or expiration, and execute contingency plans whenever materializations occur.
  9. Keep the risk-discovery process going throughout the project, to cope with late-apparent risks.
  10. Force a complete design partioning prior to any implementation. Use this as input to the process of creating an incremental delivery plan.
  11. Assess value to the same precision as cost.
  12. Break the requirements contained in the spec down to their elemental level. Number them in a rank-order by priority. Use net value to the user and technical risk as the two criteria for prioritization.
  13. Create a release plan in which the product is broken into versions (enough to schedule a new version every week or so). Assign all the elemental requirements to their versions, with the higher-priority items coming in earlier. Calculated Expected Value for each version and record it in the plan. Treat the incremental delivery plan as a major project deliverable.
  14. Create an overall final product-acceptance test, divided into releases; one per version.

Keep your risk census public if the politics allow for it.

The hidden meaning of “I don’t know”: an essential part of project management is coming up with the answers to key questions such as, When will you be done? Will your user accept and use the product? Our point is that you need to recognize these I-don’t-know questions because they are always indicators of risk. Force yourself each to ask a subsidiary question: What do I know (or what could I know) about what I don’t know?

Unwritten rules of corporate culture:

  1. Don’t be a negative thinker.
  2. Don’t raise a problem unless you have a solution for it.
  3. Don’t say something is a problem unless you can prove it is.
  4. Don’t be the spoiler.
  5. Don’t articulate a problem unless you want its immediate solution to become your responsibility.

Introduce a ritual that makes it okay to share fears about a project.

  1. Brainstorm disasters
  2. Describe scenarios that could lead to disaster
  3. Run root cause analysis

WinWin management: the project makes an up-front commitment to seek out all stakeholders and solicit from each one the so-called win conditions that would make the project a success from his or her point of view. The requirement is defined as the set of win conditions. Nothing can be considered a requirement if no one can be found to identify it as one of his or her win conditions. Ask participants, “Can you think of an obvious win condition for this project that is in conflict with somebody’s win condition?” Each identified conflict is a potential risk.

Incremental delivery is a way to reduce risk, but doesn’t make sense if you’re only shipping a total of two or three versions. A proactive approach to incremental delivery involves prioritizing value delivered to the stakeholder and confirmation of risk hypotheses. The risk-aware manager will want to force the portions involving serious technical risk into the early versions.

Projects with a critical deadline require an early start:

An IT manager and a normal person are both working in Chicago on a Wednesday afternoon when they learn that they have to be in San Francisco for a noon meeting on Friday and that it’s imperative to be on time. The normal person– let’s call her Diane– takes a Thursday evening flight and checks herself into that pleasant little hotel just down the block from the San Francisco office. She has a leisurely dinner at Hunam and wanders over to Union Street to take in a film. The next morning, she has a relaxed breakfast and works on her laptop until eleven. She checks out at 11:30 and strolls into the office ten minutes early.

Meanwhile, the IT manager, Jack, has booked himself on the 8:40, Friday morning. He catches a cab midtown on at 7:05 and runs into a traffic jam on the Eisenhower. He complains angrily to the cabdriver all the way to O’Hare. The stupid driver just can’t be made to understand that it is essential that Jack make this flight. When he checks in at UNited, he tells the check-in clerk rather forcefully that the flight must take off and land on time, no excuses. He tells her that he will be “very, very disappointed” with any lateness. When a gate hold is announced, Jack jumps up and objects loudly. When a revised departure time is announced, he digs deep into his bag of managerial tools and delivers the ultimate pronouncement: “If you people don’t get me into San Francisco in time for my noon meeting, HEADS WILL ROLL!”

How to decide what to build: costs and benefits need to be specified with equal precision. When a benefit cannot be stated more precisely than “We gotta have it,” then the cost specification should be “It’s gonna be expensive.”

“The savings figures also are classified by whether they are reductions or avoided costs. The difference is important. Reductions are decrements from current approved budget levels. You (the requesting manager) already have the money; you are agreeing to give it up if you get the money for the new system. Avoided cost savings are of this form: ‘If I don’t have this system, I will have to hire another in . But if I do get this system, I can avoid this cost.’ This is every system requester’s favorite kind of benefit: all promise, no pain. The catch is that there is no reason to believe you’d ever have been funded to hire those additional workers. You’re trading off operating funds you may never get in the future for capital funds today. Very tempting, but most request-evaluators see this coming miles away. The correct test for avoided-cost benefits is whether the putative avoidable cost is otherwise unavoidable, in other words, that the future budget request would inevitably be approved. This is a tough test, but real avoided-cost benefits can and do pass it.” – Steve McMenamin, Atlantic Systems Guild

If increasing the size of a product exposes you to more-than-proportional increases in cost, then decreasing product size offers the possibility of more-than-proportional savings. Eliminating those portions of the system where the value/cost ratio is low is probably the easiest and best way to relax constraints on time and budget.

How to lead when you’re not in charge

Summary of HOW TO LEAD WHEN YOU’RE NOT IN CHARGE: Leveraging Influence When You Lack Authority by Clay Scroggins.  Summary by Avery Erwin.


  • No matter your position, you can create a pocket of excellence around you right now.
  • Influence, not authority, is the real currency of leadership.
  • Develop a plan to grow as a leader. Lead yourself, choose positivity, think critically, and reject passivity.
  • Know when, how, and why to challenge authority. Don’t stay silent.
  • The way you lead now determines how you will lead in the future.

Start leading now.

Clay Scroggins worked his way up from facilities intern to lead pastor at the North Point megachurch outside Atlanta, Georgia. Looking back on his twenty years rising through the ranks, Scroggins realizes that he missed many opportunities to develop as a leader well before he was officially in charge. He challenges readers to stop dreaming about a corner office and discover the opportunities they have, right now, to lead. If you wait to lead, Scroggins insists, no one will never be put you in a position to lead.

Influence is the currency of leadership. Think kabash, not kibosh.

Many of us buy into the myth that we must be at the top of the totem pole to lead an organization. This kind of thinking conditions us to assume a go-with-the-flow attitude and shrug off responsibility. We make excuses, blame the institutional machinery. But Scroggins looks at self-appointed leaders like Martin Luther King Jr., Nelson Mandela, and Mahatma Gandhi as hard proof that “Leaders lead with the authority of leadership … or without it.” In fact, many who have formal authority fail to lead. The real lifeforce of leadership is not authority, but influence. The call to leadership is about forgoing brute force and instead cultivating one’s influence, wherever you are positioned in your organization. By focusing on your own area of responsibility, you can create an “oasis of excellence” around you that ripples on up.

We all know kibosh, like “put the kibosh on it.”   Kibosh means “put an end to; dispose of decisively”.  A kibosh leader eliminates, subordinates, squashes, puts an end to people and projects. They leverage their authority to elevate themselves. Scroggins calls for a kabash style of leadership, from the Hebrew word for “subdue.” In its original context, kabash means to bring something under your control in order to cultivate it. A kabash leader leverages influence to elevate those around them. They lead by humility and create space for others to flourish. A kabash leaders shows up to serve.

Plan to Grow as a Leader: Practice the Four Behaviors.

1. Lead Yourself

“Nothing so conclusively proves a man’s ability to lead others

as what he does on a day-to-day basis to lead himself.”

– Tom Watson, former CEO of IBM

The onus is on you to develop as a leader. Don’t depend on your boss to lead you well, or to find opportunities for you to lead. For burgeoning leaders, Scroggins stresses the importance of having a personal vision and built-in accountability. Make a plan to lead. Use others to motivate yourself to assume more responsibility. Get feedback on how you’re developing as a leader. When Scroggins made a job transition some years ago, he conducted an anonymous 360-degree survey of his former coworkers. If you want feedback, you need to ask for feedback. And never stop asking. Even leaders at the top continue to hone their leadership skills. “No matter how successful they become,” Jim Collins explains of truly great leaders, they “maintain a learning curve as steep as when they first began their careers.”

2. Choose Positivity

Research shows that people are most fulfilled at work when they understand how their specific role contributes to the larger results of their organization. Positive energy alone is a tremendous asset to a team and to an organization. One way to boot up a positive approach is to embrace a panoramic, what Scroggins calls a “panoptic,” view of expectancy and hopefulness, a mental posture that is fueled by trust and forward-thinking. Positivity, mind you, doesn’t come naturally. It’s developed, and it’s during the hard decisions you didn’t make and might not like that, as a leader, you’re called on stay positive.

3. Think Critically

There is such a thing as too much positivity. Unbridled positivity can be shortsighted or unrealistic. Beware of becoming what Scroggins calls the “rainbow-puking unicorn.”

Reinforce a positive approach with critical thinking. Scroggins isolates the three pillars of thinking critically:

  • Question. Challenge assumptions so you can discover the hidden realities behind actions and outcomes.
  • Notice. Pay attention to abnormalities.
  • Connect. Draw connections between seemingly disconnected behaviors and feelings. Understand the cause and effect relationships. The more connections you can draw, the more self-aware you’ll be.

Nothing fosters critical thinking like facing obstacles. Scroggins looks at the example of NFL quarterbacks who came from second-rate football colleges. Their “tough road” turned them into critical thinkers. Because his college couldn’t recruit a powerhouse offensive line, Ben Roethlisberger learned how to scramble out of broken pockets on his own.

Thinking critically means thinking as an owner, even if you’re an intern. It means scheduling thinking meetings between meetings, instead of getting sucked, half-alert, into the vortex of back-to-back meetings. Efficient is not always effective. A leader who thinks critically keeps strong motives front and center. Instead of being critical, they think critically about the situation and lend others a hand.

4. Reject Passivity

“You will never passively find what you do not actively pursue.”

– Tim Cooper

Remember, you’re in charge of yourself. Don’t depend on your boss to find work for you. Scroggins has a handy mnemonic to help you “resuscitate your proactivity.” Do CPR.

  • Choose. If you’re mid-level or even an underling in an organization, you often have a better idea of what needs to be done than those who are officially in charge. Take initiative and pick a project. Don’t wait for your boss to pick a project for you. Clean out the company closet that’s stuffed to the brim.
  • Plan. Once you stop stacking meetings and start scheduling thinking meetings for yourself, you’ll discover that well-planned ideas thrive at meetings because they had time to develop. In your calendar, plan time to plan.
  • Respond. Don’t get caught on your heels putting out fires all day. Respond to what’s most important, not just what’s next. Pay attention to the direction your boss is heading in, so you can both respond swiftly and anticipate the next move.


Challenge authority.

Many organizations unconsciously tend toward the status quo and resist change. Great leaders challenge the status quo to make changes for the better. This means learning to spot problems in the first place and then brainstorming solutions. Challenging the status quo also always means challenging up. How you approach the challenge will dictate just how well the challenge goes. Tailor your approach to fit the person you’re challenging. Great leaders don’t get defensive and take challenges to their system personally, but understand, as Scroggins says, that a “Change to the present system will be perceived as a criticism of past leadership.”

The Milkshake Experiment. Scroggins zeroes in on Shane Todd as a perfect case-study for making a patient, wise, and paradigm-shifting challenge to authority. In 2006, Shane was a Chick-fil-A franchise owner and operator in Athens, Georgia. He recognized a demand and introduced the milkshake at his store before it was available nationwide. Shane understood that senior management was concerned about service time, so when Tim Tassopoulus, senior VP of operations, visited Shane’s store, Shane proposed a race. If Tim could prepare two diet cokes faster than Shane could make a milkshake, Shane would call off the milkshake experiment. Two years later, the milkshake was the highest rated product on Chick-fil-A’s menu.

Shane was a single franchise owner, but he had cultivated enough relational capital to challenge delicately and strategically so he could bring about what was ultimately a game-changer for Chick-fil-A. His experiment supplies us with a whole toolkit for challenging up. Here are 10 tools:

  • When you approach your boss with a problem, think ahead and present a solution.
  • Be explicit that you have good intentions before you challenge.
  • Be curious, ask questions, and mean it. Admit that you may be missing information.
  • Know what your boss wants.
  • Know what’s essential to your organization’s mission. Acknowledge what’s secondary.
  • Challenge up quietly, but don’t stay silent.
  • Challenge when emotions are low.
  • Champion publicly, challenge privately. Schedule one-on-one time with your boss.
  • Be okay with a no. Take it as a not yet.
  • Why you’re challenging is more important than what you’re challenging.

Scroggins boils the art of challenging up down to one thought-provoking question: “how does your boss feel when your name pops on his or her phone?”

“As now, so then.” Your influence today will determine your influence tomorrow.

Every day, you are around people whom you can lead and serve. True leadership is powered by influence and filled with humility and self-sacrifice. Many leaders focus on their own success. Few leaders commit themselves to their entire staff, up and down the totem pole. The numbers say a lot: according to one Gallup poll, 50% of people who leave their jobs do so because of their bosses.

Like positivity and critical thinking, leadership is a skill that must be developed. Otherwise, it atrophies. If you don’t develop your ability to lead today, you won’t have the equipment or instincts to lead when you’re finally put in charge. Scroggins takes a point from Scott Adams, who advises, “Avoid career traps such as pursuing jobs that require you to sell your limited supply of time while preparing you for nothing better.” Look for opportunities to lead right now, wherever you are on the totem pole. Every role is an opportunity to lead. Stick to a personal growth plan for developing as a leader. Make a list of exemplary leaders whom you can model. True leaders are self-leaders, self-teachers.

Every role is training for the future, when you will have the corner office and be officially in charge. But every role until then is still an opportunity to lead. Remember that the most powerful leader is a servant-leader, someone who shows up and asks, “are the people I’m leading here for me or am I here for them?” Start cultivating your pocket of excellence today.

Formally establishing a sole proprietorship in NYC so I could open a business bank account


Filing the Code For Cash business certificate with the city 💸

A post shared by Code For Cash (@codeforcash) on Aug 31, 2017 at 9:57am PDT

Formally establishing a sole proprietorship with the city was a necessary but exhausting process.

It’s just one of those things that I kept putting off, because I was intimidated by the process.  But it became a necessity because my personal transactions were so commingled with my business transactions that I had to “get my house in order”.

I wanted to understand questions like: “How much is our overhead?  How will it increase?”  and I wanted to truly understand “Exactly how much is the cost for us to deliver our services, and how low could our gross margins be, given what we know about conversion rates and such, without preventing us from growing rapidly”.  Unfortunately, because I had been simply tracking everything in an Excel spreadsheet (and not keeping it up-to-date), and because I hadn’t been assigning transactions as “overhead” vs. “marginal costs”, I didn’t have the opportunity to answer these questions.  Fortunately, we recently hired a bookkeeper, who will be able to provide data.

One necessary thing to make everyone’s lives easier is to start a separate bank account for all transactions related to the business.  I know this sounds like a no-brainer obvious thing, and I’m ashamed it’s taken me so long to get this together.  I think if I had a step by step tutorial guide on how to get this done, I would have done sooner, so hereby presents the Code For Cash tutorial:

Tutorial: NYC Guide on How to open a new, separate bank account for your sole proprietorship online business (DBA) in (SaaS, software development, freelancing, agency, etc.) if you are already a USA citizen

Time requirement: 2 hours or more if you are not lucky navigating NYC traffic

Prerequisites:  Having a personal bank account in a bank like Citibank, TDBank, etc.  USA citizenship.

  1. Bring two forms of government identification (just in case) before you set out on your quest.
  2. Go to lower Manhattan.  On Park Place St #11 there is a shop inside the building.  He will sell you 3 copies of form X-201 for $10.
  3. Go to the courthouse at 60 Court Street.  Go to the basement.  There is also a basement entrance to the building but it’s fine to enter through the main way.  You will have to go through a metal detector.  Reminds me of the airport in a way.
  4. Go to the basement.  You have to ask around to find out what room to go to, since the signage is wrong (fear not if the door to the business licensing room says “closed”; government business is up and running in another room.
  5. Show them form X-201 and your ID.  They will notarize the forms for you.  Pay $120 for 2 copies of your business certificate.
  6. Go to your bank and show them your business certificate and your driver’s license.  Expect them to have a bunch of forms for you to sign.  This process takes about 30 minutes to an hour and a half, depending on wait time at the bank.
  7. Expect it to take up to 5 business days for your account to be authorized.  This delay is due to AML (anti money laundering) and KYC (know your customer) laws.

Software development risks: the “tree swing risk”

In any software development project, there is going to be risk.  If a project doesn’t have risks, you shouldn’t do it!  After all, as the saying goes: “no risk, no reward”. However, based on the experience of your management team, you can recognize risks in advance that are likely to occur and either mitigate, have a contingency plan, or evade them entirely.

One of the most common risks is what I call the “Tree swing risk”, and it’s exemplified by this image:


I posted this image to the Code For Cash Instagram account and it got a lot of likes.  “So true!” people responded.  It’s resonated with almost everyone’s experience, yet rarely managed-for.

This essential risk describes the customer not receiving what they had envisioned in their mind.  This outcome leads to the negative emotions of surprise and disappointment.  When this happens, “rework” is needed, often at a cost to both parties – it leads to a situation where nobody is happy.  Often, the developer is fired.

How do we avoid this risk?  Through creating an “idiot-proof specification”.

An idiot-proof specification has clear acceptance tests that are binary “yes or no” answers regarding functionality that the application clearly has or does not have.  These are usually in the form of behavioral tests: “Can the user create an account with their email address?”  “Can the user recover their password through the site?”  “Can a user create a Widget through the site and have it be saved into their user dashboard?”  “Can the user export the Widget to PDF format?”  “Does the PDF show three different vantage points depicting the widget?”

An idiot-proof specification has visual wireframes.  My favorite tool for this is Balsamiq mockups, but any reasonable tool that allows you to build mockups/wireframes will enable the customer to visually confirm that you will be building what they envision. It’s also the case that while most engineers are “left brained” and communicate through text, most managers and executives are especially “visual thinkers” and respond best to visual stimuli.  A visual mockup of the deliverable cements everyone to the same page.  A visual mockup need not to have beautiful, branded user interface design elements, as long as it is specified in written form whether or not the final deliverable will have a beautiful design.  Always specify this case – whether or not the deliverable will be beautifully designed – in writing, and have both parties initial that!

An idiot-proof specification may be shopped on the market.  This means that the software may be built by the lowest cost credible bidder on the market; indicators of credibility run the gamut from “has GitHub or portfolio” to “passes reference checks” to “meets standards of our procurement department”.  Once you have an idiot-proof specification, you are in a better position to benefit from an outsourcing model.

A specification should be created in conjunction with an experienced developer (who knows what is possible), the customer (who understands the market) and the end-user who will be using the application day-to-day.  A specification is something that should be paid for (by the customer).  It becomes the customer’s intellectual property.

There is a saying: “a fair fight is the result of poor planning”.  Almost all software projects go over budget, and those are usually due to the materialization of risks that weren’t accounted for – i.e. work that was unexpected rather than work that was expected yet ran over budget.  Having the specification in hand enables a better understanding of expected work.  In case you want another cliche, how about “measure twice, cut once”.

Of course, there is also the question of what should go into the specification and what is extraneous.  These will be addressed in future blog posts, but for now, I recommend googling the phrase “minimum marketable feature”.