Skip to main content

Designing Facebook photo storage

· 2 min read

Motivation & Assumptions

  • PB-level Blob storage
  • Traditional NFS based desgin (Each image stored as a file) has metadata bottleneck: large metadata size severely limits the metadata hit ratio.
    • Explain more about the metadata overhead

For the Photos application most of this metadata, such as permissions, is unused and thereby wastes storage capacity. Yet the more significant cost is that the file’s metadata must be read from disk into memory in order to find the file itself. While insignificant on a small scale, multiplied over billions of photos and petabytes of data, accessing metadata is the throughput bottleneck.

Solution

Eliminates the metadata overhead by aggregating hundreds of thousands of images in a single haystack store file.

Architecture

Facebook Photo Storage Architecture

Data Layout

index file (for quick memory load) + haystack store file containing needles.

index file layout index file layout 1

index file layout 2

haystack store file

haystack store file

CRUD Operations

  • Create: write to store file and then ==async== write index file, because index is not critical
  • Read: read(offset, key, alternate_key, cookie, data_size)
  • Update: Append only. If the app meets duplicate keys, then it can choose one with largest offset to update.
  • Delete: soft delete by marking the deleted bit in the flag field. Hard delete is executed by the compact operation.

Usecases

Upload

Photo Storage Upload

Download

Photo Storage Download

Designing Uber

· 2 min read

Disclaimer: All things below are collected from public sources or purely original. No Uber-confidential stuff here.

Requirements

  • ride hailing service targeting the transportation markets around the world
  • realtime dispatch in massive scale
  • backend design

Architecture

uber architecture

Why micro services?

==Conway's law== says structures of software systems are copies of the organization structures.

Monolithic ==Service==Micro Services
Productivity, when teams and codebases are small✅ High❌ Low
==Productivity, when teams and codebases are large==❌ Low✅ High (Conway's law)
==Requirements on Engineering Quality==❌ High (under-qualified devs break down the system easily)✅ Low (runtimes are segregated)
Dependency Bump✅ Fast (centrally managed)❌ Slow
Multi-tenancy support / Production-staging Segregation✅ Easy❌ Hard (each individual service has to either 1) build staging env connected to others in staging 2) Multi-tenancy support across the request contexts and data storage)
Debuggability, assuming same modules, metrics, logs❌ Low✅ High (w/ distributed tracing)
Latency✅ Low (local)❌ High (remote)
DevOps Costs✅ Low (High on building tools)❌ High (capacity planning is hard)

Combining monolithic ==codebase== and micro services can bring benefits from both sides.

Dispatch Service

  • consistent hashing sharded by geohash
  • data is transient, in memory, and thus there is no need to replicate. (CAP: AP over CP)
  • single-threaded or locked matching in a shard to prevent double dispatching

Payment Service

==The key is to have an async design==, because payment systems usually have a very long latency for ACID transactions across multiple systems.

UserProfile Service and Trip Service

  • low latency with caching
  • UserProfile Service has the challenge to serve users in increasing types (driver, rider, restaurant owner, eater, etc) and user schemas in different regions and countries.

Push Notification Service

  • Apple Push Notifications Service (not quite reliable)
  • Google Cloud Messaging Service GCM (it can detect the deliverability) or
  • SMS service is usually more reliable

The Importance of Names — Insights from a Nickname Enthusiast

· 3 min read

We all know that Donald Trump is a very unconventional American president. Regardless of his political achievements, we cannot deny that his speeches are highly engaging. His persuasive power is discussed in detail in Scott Adams' book, “Win Bigly”, and I find it particularly interesting that he has a penchant for giving his opponents nicknames—he is truly a nickname enthusiast.

For instance, he refers to Hillary as “Crooked Hillary,” and others include “Little Marco,” “Lying Ted,” and “Low-Energy Jeb.” Looking at the following image from Jeb Bush's speech, where the audience appears to be dozing off, I think Trump has a point.

Low Energy Jeb

The importance of names is such that they can even determine life and death. A 13-year-old girl from Minnesota, Rachel Ehmke, took her own life after being bullied and called a “slut.” This is not an isolated case; researchers at Syracuse University found that when people use derogatory terms to refer to a certain social group, the suicide rate among that group tends to be higher.

Words can be frightening; when faced with harsh words, we must learn to protect ourselves. There are generally three ways to deal with derogatory terms: the first is to ignore them. Of course, if it were that easy to ignore, we wouldn't need to pay extra attention to them. The second is to eliminate them. For example, Facebook's COO Sheryl Sandberg believes the word “bossy” should be banned. ==Banning a word widely and comprehensively is quite difficult, so there is a third option: to change it. This strategy is common in business, such as when “ValuJet Airlines” was renamed “AirTran Airways” after a series of accidents.==

In addition to these three methods, there is a more advanced approach, and the key is that ==the meaning of a name is not fixed; you can proudly reclaim the use of derogatory terms==. This reclamation can unite members within an organization, and it can even create an exclusive zone. For instance, the term “negro” can be used by Black individuals but not by white individuals; Jeremy Lin can use the ID ChiNkBaLLa88, but ESPN cannot use “chink in the armor.”

Names are a very important weapon; they can harm people or unite them. Israeli researchers conducted an experiment with the same game: when it was called “Community Game,” 72% of participants chose to cooperate, while when it was called “Wall Street Game,” only 33% chose to cooperate.

This ==technique of controlling feelings through names== can be applied in practical work. Researchers at Harvard found that when people face stressful activities like public speaking, singing competitions, or math contests, if they can cheer for themselves and say out loud, “I am excited!” they often achieve their best performance.

The insight here is that ==giving an appropriate name to your inner feelings to channel emotions, rather than avoiding them, is the best way to process and utilize emotions==. If we can correctly understand the source of negative emotions, for example, “I feel angry coming home today because work was really frustrating,” we won't take our bad mood out on friends and family, avoiding actions that would hurt those we care about.

Blockchain Technology Review

· 6 min read

What is blockchain?

A blockchain is an incorruptible distributed ledger that is…

  1. Hosted by multiple parties
  2. Secured by crypto algorithms
  3. Append-only/immutable and thus verifiable in data storage

How does it work?

how does blockchain work

Categorization: Public vs. Private vs. Hybrid Blockchains

  • Public: It is permission-less to join the network.
  • Private: The permission to join is centrally controlled.
  • Hybrid: Multi-parties control the permission to join.

Do you need a blockchain?

Do you need a blockchain?

Architecture

Hardware

Hardware

Basic Utils

Basic Utils

Ledger

Ledger

Concensus

Concensus

Smart Contract

Smart Contract

APIs

APIs

dApps

dApps

Dev


Ops


[Not supported by viewer]

  1. Hardware: computer resources = computing + networking + storage

  2. Basic Utils: P2P network + crypto + data storage w/ db or filesystem

  3. Ledger: chain of data blocks + domain-specific data models

  4. Consensus: write first consensus later (PoW/PoS/DPoS) / consensus first write later (PBFT)

  5. Smart Contract: limited program running on the blockchain

  6. API: RPC + SDK

  7. dApps: 1) transfer of values 2) data certification 3) data access control

  8. DevOps: deployment, operations, metrics, logs

Industries

  1. Financial Services

    • crypto exchange: binance, coinbase, etc.
    • international payments: ripple, stellar, etc.
    • Know Your Customer (KYC) / anti-money laundry (AML): civic
  2. Health care

    • sharing data across providers, insurers, vendors, auditors, etc
  3. Public sector

    • asset tokenization
    • transparent voting in public election
  4. Energy and resources

    • trading
    • sharing data across suppliers, shippers, contractors, and authorities
  5. Technology, media, and telecom

    • DRM and incentivizing content creator
    • securing operations and data storage of IoT devices
  6. Consumer and industrial products

    • loyalty points programs in traveling
    • document signing
    • supply-chain management

Case Study: Ripple for Cross-border Payments

  • Partnering with 200+ banks
  • 47 trillion dollar cross-border payments market
  • Huge hassles and costs. A large number of businesses cannot afford the high transaction fee of traditional cross-border payments.
    • Without ripple, it may take days to fulfill the transaction in some African countries
      1. Quote the exchange rate
      2. Find the path in those hops
      3. Lock the quote
      4. Validate, KYC, AML, etc…
    • With ripple, users in country A buys ripple tokens, pay with ripple, and then users in another country just withdraw. It just takes a few minutes and during which the token price will not fluctuate much.

Killer Apps

  • Graphite Docs: Similar to Google Docs but everything is encrypted when data leaves your computer.
  • Textile Photos: Phone App like a private Instagram. Photos are encrypted and stored on IPFS, a decentralized storage network running by the community.
  • Augur: Web App where people can bet on predictions on many things.
  • Blockstack: Tools for developers to build DApps.
  • D.Tube: Video streaming service that is add-free but content creators are rewarded by tokens. Similarly ThetaNetwork for e-sports videos.
  • OpenBazaar: Online marketplace with no platform fees, powered by cryptocurrency.

Challenges

  • Network Effects. It is hard to convince users leaving existing well-established centralized services.
  • Privacy vs. Free Services. Would people like to buy services with crypto? Or would people like to sacrifice privacy for free services?
  • Efficiency in decentralized systems. Complex and decentralizes systems vs. simple and centralized systems.

System Admin Time Management: The Cycle System

· 4 min read

A brief recap of previous lessons we learned from Thomas Limoncelli:

  1. Time Management Principles tells us not to trust our brains for remembering things; our brain power should be conserved for doing things.
  2. Keep Focus and Handle Interruptions identifies the archenemy of productivity - interruptions. Fortunately, we can handle them with certain techniques.
  3. Radical Automation with Routines let us know that the best way of not thinking is to develop good mantras, routines, habits. The so-called ==radical automation==.
  4. Introducing the Cycle System is unveiling his secret sauce to the “perfect-through” by using the cycle system that contains to-do list, schedule, calendar, and life goals.

Today, let us focus on how to operate the cycle system.

To Do Lists and Schedule

Everyday, repeat the following process.

  1. Start a new day with planning.

  2. Create a schedule. Fill in with meetings and appointments. So we can estimate the time left for working on tasks.

    1. Schedule one hour per day for interruptions
  3. Create to-do list. Remember to count the hours in those tasks because this helps you estimate the workload.

  4. Prioritize and Reschedule.

    1. Too often people are too optimistic about the tasks they can finish in one day, so please ==deal with overflow carefully==.
      1. move low priority tasks to the next day
      2. break up a large chunk into small pieces
      3. reduce the task’s scope
      4. delegate
      5. your boss might feel impressed by your to-do list (wow, it's full!), and they will be glad to help you prioritize those tasks. (Let bosses feel in control.)
      6. postpone the meeting if you really have to present yourself
      7. do not work late
  5. Work the plan

    1. Work on the tasks in order from high-to-low-priority tasks
    2. Take the momentum to finish tasks one by one.
    3. ==Once in a while, pause to stretch or take a quick walk around the building with your laptop, which makes you look on your way to something important==
  6. Finish the day with a review and reschedule

    1. Ensure unfinished tasks receive sufficient attention, which means they are ==managed== and not forgotten.

How to deal with new tasks during the day?

  • reshuffle and reschedule accordingly

Calendar Management

==Never miss a meeting and show up on time. It demonstrates your responsibility reliability. And the secret is to always use your calendar and don’t trust your brain to agree an appointment without checking your calendar==. If you are going to be late or miss an appointment, always call.

The calendar is the place to put events fixed to happen in a certain time range. They can be:

  1. Appointments and meetings
  2. Milestones
  3. Future to do items
  4. Repeating tasks

==Adjust yourself according to your personal rhythms and your company's rhythms.== Most important (high-impact) work should be scheduled to peak hours you can focus with the highest energy level.

Balance is important. Work, family life, social life, volunteer work, personal projects, sleep are all important and can be scheduled well with a centralized calendar.

Life Goals

You will achieve more if you set goals. And setting a goal without working toward it is better than having no goals at all. If you haven’t determined what your goals are, you cannot spot the few opportunities that do cross your path by chance.

The secret lies in writing down your goals. Apply the SMART principles during the goal-setting. (Specific, Measurable, Assignable, Relevant, Time-based). However, stretching the goals and challenging yourself is very important to boost personal growth. Keep those goals in two dimensions:

  1. Time. In 1 month, 1 year, or 5 years?
  2. Roles. Personal or Professional Goals?

Then develop strategies for those goals -

  1. ==Diagnose== the current status and identify the major challenges
  2. ==Find guiding policies== that will derive new advantages over time
  3. ==Act coherently==. All the actions and resources should be aligned to follow the guiding policies to fulfill the goals.

When working on those goals over time, be sure to keep up with the system. Periodically review them per month, quarter, and year, which includes:

  1. Goal review
  2. Step review

Finally, use your calendar for this repeated “Goal & Next Step Review.”

Auth Solutions on the Market

· 2 min read

In summary...

  1. If I am running a new startup and do not want to build my own auth systems, go with auth0.
  2. If I am running a company that needs integrations of enterprise services, then go with onelogin for their compliance.
  3. Google Firebase is awful and not easy to migrate in the future. Google would better consider acquiring auth0.
Auth0OktaAmazon CognitooneloginFirebase Authentication
Send Welcome Email after SignupTemplate providedevent handler provide but need email vendor integration
Customer TypeB2C, B2B, B2EB2C, B2B, B2E?B2E
SSO?
MFAPush Notification, SMSAuthenticator, SMS, Voice Call, Security QuestionSMS, AuthenticatorPush, SMS, AuthenticatorSMS
Social Login / Public Identity Providers
Login Rules Engine / Policy
RBAC / Group-based
Cross-platform SDKWeb, Mobile, NativeWeb(Angular, Node.js, React, PHP, Java, .NET), Mobile(iOS, Android), Native (Java, .NET), Machine-to-machineraw examplesiOS, Android, Web, C++, Unity,
Industry StandardsSAML, OpenID Connect, JWT, OAuth2.0, OAuth1.0a, WS-Federation, OpenIDSAML identity providerOAuth2.0, SAML2.0, OpenID ConnectSAML 1.1 and 2.0 WS-Federation 2005 SCIM 1.1 and 2.0 OAuth 1.0 and 2.0 OpenID Connect 1.0 JSON Web Token (JWT) Integrated Windows Authentication (IWA)
Analyticsaws Pinpoint
General SLA99.95%99.97%99.98%
PasswordlessTouch ID, Email Magic Link, SMS
Anomaly Detection1. Brute-force ProtectionLimit the amount of signups and failed logins from a suspicious IP address.2. Breached-password Detection. Detects login attempts with credentials that have been known to be breached.Risk-based authenticationRisk-based authentication
Anomaly Detection ReactionsEmail notificationBlock IP
Providing User Profile / Directory Store✅very extensive✅W/ Management Metrics: Total Users, Authentications, Failed Logins, System Log✅access configured by Apps✅very limited fields
Workflows - Email address verification
Workflows - Email address change
Workflows - Forgot password✅limited page customization✅email templates✅email/SMS template✅no UI customization
Workflows - Lockout Self-Service
AD/LDAP integrationADAD
ComplianceSOC 2 Type II, EU-US Privacy Shield Framework, HIPAA, OpenID ConnectHIPAA, EU, and FED compliancePCI DSS Compliance and is HIPAA EligibleASSURANCE PROGRAMS: SOC 2 Type 2 SOC 1 Type 2 ISO 27017:2015 ISO 27018:2014 ISO 27001:2013 SECURITY PROGRAMS: Skyhigh Enterprise-Ready CSA STAR PRIVACY PROGRAMS: TRUSTe Certified Privacy U.S. Privacy Shield GDPR EU Model Contract Clauses VULNERABILITY MANAGEMENT: Penetration Tests Network Scans Bug Bounty Program OTHER INITIATIVES: HIPAA FFIEC / GLBA NIST Cybersecurity Framework G-Cloud FERPA
User Devices Management

Gazing at the Stars and Deliberate Curiosity

· 6 min read

Deliberate practice is now likely a widely recognized concept. To reach a high level of mastery in a particular field, you need to practice with focus, repetition, volume, and speed, and only practice within your learning zone.

Taking vocabulary memorization as an example, the most efficient way to memorize a vocabulary book is to first memorize the first word in each chapter, then the first two; then the first three; and so on, until you reach the last word N. After that, reverse the order of the chapter and memorize it again using the same method. Additionally, apply the Ebbinghaus forgetting curve to schedule your review sessions. This is akin to Mario jumping through warp pipes, or Xiao Lin discovering the secret sword manual.

Deliberate Practice is Not Surprising

Deliberate practice is especially important in the software engineering industry because programming is essentially a craft. The question we need to ask today is: can you dominate the industry solely through deliberate practice and your exceptional skills?

The answer is, of course, no. We both know that simply writing good code is far from enough. I often say that there are three factors for promotion: having resources, having people, and having credibility. Resources refer to whether you can handle your work with ease; people refer to whether the decision-makers for your promotion are in your network and willing to advocate for you; credibility refers to whether your achievements and words can convince others. Writing good code, at best, accounts for one-third of the equation. If you fail in the other two-thirds, you risk losing your job!

The book "People Who Won't Be Replaced by Machines" tells a story about Southwest Airlines hiring a highly skilled IT engineer who isolated himself in his office, focusing solely on his work and refusing to engage with others. The boss told him that this approach was not acceptable because the company culture at Southwest Airlines emphasized communication, and he was subsequently fired.

Technology is Not a Moat

You might say, "Fine, I won't collaborate with others. I don't need a company; the genius code I develop through deliberate practice can serve everyone on my own." Can this lead to global domination?

The answer is likely no—unless your development and learning speed can sustain the entire lifecycle of large-scale internet services all by yourself.

Uber's founder, Travis Kalanick, once said that technology is layered; once a layer of technology matures, it gradually becomes less important, while new layers become more advanced and iterate faster based on the previous ones. Therefore, we can conclude that the skills you painstakingly practice begin to lose their significance from the moment they are formed. I strongly agree with what Ruan Yifeng mentioned:

In software development, technology changes so rapidly that the time you invest in learning technologies and tools can render your knowledge worthless once those technologies are replaced, as most of it consists of implementation details.

It's no wonder Warren Buffett's moat theory also asserts that technology is not a moat because it will ultimately be replicated by others.

Steve Jobs' Answer

I once pondered deeply: since the internet age is fleeting, how can I ensure that I won't be swept aside? Upon reviewing Steve Jobs' speech at Stanford University, I found the answer. Although he shared three stories and offered one piece of advice, I believe it essentially boils down to two points.

==First, face life's uncertainties with love and death==. Because of your passion, you imbue your work with immense meaning. Life is short; if you don't pursue it, you might as well die. Therefore, even if you are cast out, even if you achieve financial freedom and retire at 30, you will still persist in doing meaningful things you love. Faust's life is filled with suffering, yet the divine grants him ultimate redemption. Don Quixote's life is also fraught with hardship, yet readers are inspired by his spirit.

==Second, be a fool and never be satisfied==. Jobs believed that regardless of whether you achieve great success through the first point, you should never settle for the status quo—strive for your ideals, break conventions, persevere, and always protect the inner child within you.

You may wonder, "These lofty worldviews are indeed fascinating, but what relevance do they have for you and me? Or what guiding significance do they hold for our lives?"—"I understand the principles, yet I still struggle to live well."

I believe that borrowing from the concept of deliberate practice, exploring the unknown in a structured and methodical way is what we call ==deliberate curiosity==. Curiosity is not about hosting banquets, writing articles, or painting; it cannot be that elegant, that composed, that refined, or that humble. Curiosity is a rebellion, a fierce action of an individual exploring a complex world.

Deliberately Explore the World

This fierce action must be organized and premeditated. You need to manage your reading, chatting, watching, and listening inputs like you manage your financial investments. Your investment portfolio consists of 24 hours a day—what percentage do you allocate to health, work, family, and input? Within that input, what percentage do you dedicate to technology, economics, management, psychology, design, politics, the future, and history? What channels do these pieces of information come from? Are those channels trustworthy?

==The information we input shapes our thoughts, just as the food we eat shapes our bodies. In his book "The Creative Curve," Allen Gannett interviewed numerous creative individuals and summarized this principle: 20%. To create and maintain cultural awareness and understand what resonates with the public, you must spend 20% of your waking time each day absorbing knowledge in your field.==

This is not easy, but at the very least, we can ask ourselves daily: before meeting someone today, did I prepare any interesting questions to ask them? When solving a problem today, did I consider faster, better, or stronger solutions? During a meeting today, did I ask myself what else I could learn from the other person? Hu Shi said, "Talk less about ideologies, ask more questions," which embodies deliberate curiosity.

Final Summary

Gaze at the stars with deliberate curiosity, and stay grounded with deliberate practice. What worries do we have that our daily endeavors won't come to fruition?

How to instantly appear clever when speaking

· 3 min read

The Greeks uses those persuasive tricks (schemes)

You are already familiar with many of the tricks:

  1. Analogy (my love is like a cherry)
  2. Oxymoron (pretty ugly)
  3. Rhetorical question (do I have to explain this one?)
  4. Hyperbole (the most amazingly great figure of all)
  5. Coyness (Dad gifts me a new iWatch ... but I say "oh, you shouldn’t have")
  6. Dialogue (teenagers are especially fond of this: Alice said what and then I sad what and then Charlie said what)
  7. Speak-round (“He Who Must Not Be Named”)

The secrets lie in figures of speech

Figures of speech - Making words presented differently by repetition, substitution, sound, and wordplay. Making words sound differently by skipping, swapping, etc.

  1. Repeated first word: use a lot of “and” to start the sentence while thinking what to say.

    1. e.g., And God said, let there be light: and there was light. 2., e.g. Political figures substitute “um” or “you know” with “and” when thinking what to say.
  2. Multiple yoking

    1. e.g., he gets it past two defenders, shoots … misses… shoots again… goal!
  3. Idiom

  4. Self-answering question

    1. e.g., “What do we want? Justice! When do we want it? Now!”
  5. Tropes: swapping

    1. Metaphor
    2. Irony
    3. Synecdoche: White House
    4. Metonymy

Twist a cliche

Win the intelligent audience by twisting the expression. For example, adding a surprising end. e.g.

  • Friend: it’s excellent book for killing time.
  • You: sure, if you like it better than dead.

The Yoda technique of switching

==The mighty ABBA sentences (chiasmus)==, e.g.

  1. Ask not what your country can do for you, ask what you can do for your country.
  2. Let’s not settle for swimming with the sharks. Let’s make the sharks want to swim with us.

Or even more, ==inserting a pun into a chiasmus.== e.g.

  • a birthday card for a friend who turns 40. Front: “what kind of party suits bob’s birthday?” Back with a photo of naked two-year-old bob: “the kind where he wears his birthday suit.”

How Churchill Got Rhythm?

Dialysis: Either... or... e.g., George W Bush: you’re either with us, or you’re with the terrorists.

Antithesis: Not... but... e.g., The success of our economy has always depended not just on the size of our gross domestic product, but on the reach of our prosperity.

Say yes and no at the same time

  • Edit yourself loud, which makes the narrative sound more fair and accurate. (Correction figure)
  • No-yes sentence. (Also dialysis)
    • e.g.
      • friend: he seems like a real straight shooter
      • you: straight, no. shooter, yes.
    • e.g.
      • lover: you seem a little put out with me this morning.
      • you: put out, no. furious, yes.

We are not unamused

  • litotes 緩叙法 *, e.g. OJ Simpson’s appearance at a horror comic book convention: I’m not doing this for my health.
  • climax *, e.g. A little neglect may breed great mischief…for want of a nail the shoe was lost; for want of a shoe the horse was lost; and for want of a horse the rider was lost.

For fun: Invent new words

Inventing new words is dangerous in high school or a government agency. However, it is impactful so we would better use it wisely.

examples of inventing

  1. Verging. Turn a noun into a verb or vice versa. (e.g., Google it!)
  2. *-like figure. (e.g., God-like!)

Sarah Tavel: The Three Levels of User Engagement

· One min read

How can we maximize the creation of a long-term, billion-dollar non-transactional company focused on end users?

Establish sustainable user engagement through three levels:

  1. User Growth: Focus on the growth of users completing ==core actions==.

  2. User Retention: The longer the product is used, the greater its value, and the greater the loss when users leave.

  3. Self-Sustaining: As users engage (or leverage) their participation, they create a ==positive feedback loop== within the product.

    • Pinterest excels in this area
      • Network effects
      • Re-engaging users through new UGC (User-Generated Content)
      • Viral content recommendations
    • Evernote and Tinder, on the other hand, have not performed as well in this regard.

Tailoring the arguments for persuading the decision maker

· 2 min read
  1. People make the mistake of focusing too much on the content of their argument and ==not enough on how they deliver that message==. Certain buzzwords only work for certain executives.
  2. Finding the chief decision maker and then tailoring the arguments can vastly improve the chances of success.
  3. There are five decision-making categories…
    1. Charismatic: exuberant about a new idea initially but make decisions based on balanced information.
    2. Thinker: may be contradictory and need to be cautiously worked through.
    3. Skeptic: make decisions based on ==gut feeling==.
    4. Follower: make decisions based on their trusted executives or their past similar decisions.
    5. Controller: focus on pure facts and analytics because of their fears and uncertainties.
StyleTarget CharacteristicsPursuader's Strategy
Charismaticeasily enthralled but make decisions based on balanced info
Emphasize bottom-line results
Focus on results
be straight-forward
benefits w/ visual aids
keyword: proven, actions, easy, clear
Thinker (Xing Wang)toughest to persuade
needs extensive detail
presents market research, surveys, cost/benefit analysis.
keyword: quality, numbers, expert, proof
Skepticchallenge everything and make decisions based on gut feelingsestablish credibility with endorsements from someone they trust.
keyword: grasp, power, suspect, trust.
Followerrely on past decisions
late adopter
Use testimonials to prove low risks.
present innovative but proven solutions.
keyword: expertise, similar to, innovate, previous.
Controllerunemotional, analytical
only implements own ideas
present highly structured arguments
==make listener own the idea==.
avoid aggressive advocacy.
keyword: facts, reason, power, just do it.