Skip to content

The Coding Career Handbook


  • Author: [[swyx]]


Write down what “everyone” knows but doesn’t write down.  Address the two questions everyone wants to know: “So What?”  and “Now What?” — location: 3850 ^ref-3557

You can become a very good, well regarded writer by earning a “Do-It-Yourself PhD”: Look for a Nexus of Interest, the most interesting topic to you that is also interesting to others Write a million words to deliberately improve from where you are, to becoming the world’s foremost expert on that topic — location: 3903 ^ref-52905

With that, we collapse the four parts of the Ikigai concept into just two: Find something that is most interesting to you, that is also interesting to others.  That is the raw essence of Ikigai, and that is what I call your Nexus of Interest. The second part is less obvious – writing a milion words as a means to both find, and grow into, the predominant expert in your Nexus of Interest. — location: 3921 ^ref-19844

A bunch of writing commitment platforms exist: 750 Words, Diary Email, WriteNext, Commit, Reddit’s No Zero Days, and Writing Prompts, or this book’s own community. — location: 4033 ^ref-7177

What’s the strategy?  Say it with me: PICK UP WHAT THEY PUT DOWN. — location: 4120 ^ref-59964

Trigger: Something new was created Action: “Pick it up” a.k.a you create some piece of content based on the new thing Variable Reward: You get feedback or endorsement or criticism from the creator Investment: You respond to, or internalize, the feedback so you get better the next time around.  (aka “learning”) — location: 4133 ^ref-8220

Strategy in Games offer you infinite runs of a Finite Game, where you have almost perfect information and the rules don’t change.  Strategy in Life gives you one run of an Infinite Game, where misinformation outnumbers information, and the rules are constantly in flux. — location: 4175 ^ref-49531

written than a decent SWE3 who knows his codebase.  The reason they have a reputation as rockstars is that they can apply this productivity to things that really matter; they’re able to pick out the really important parts of the problem and then focus their efforts there, so that the end result ends up being much more impactful than what the SWE3 wrote. — location: 4185 ^ref-56953

Agency = Resourcefulness + Initiative. — location: 4199 ^ref-25913

Good Strategy: Is Simple and Obvious - it says No to complexity Has a theory or Diagnosis on the key challenge to overcome Includes guiding policies and actions to take to overcome the challenge Is Coherent - all actions reinforce and support each other rather than compete Bad Strategy: Has a bunch of Fluff - corporate business speak Fails to face the challenge - the central problem the company faces Mistakes goals for strategy - statements of desire rather than concrete plans (we will get it if just we want it hard enough) Has objectives which fail to address critical issues (because they are inconvenient) — location: 4226 ^ref-15664

But strategy applies anytime you make major irreversible decisions, in the face of uncertainty. — location: 4241 ^ref-19413

Tech is immensely complex and noisy, yet there are clear supercycles and winners that you need to stay on top of.  You need a way to filter and organize information about information technology. — location: 4249 ^ref-30739

Because you should understand the economics of what you work on, I will also introduce the basics of Tech Strategy.  Advertising vs SaaS vs Marketplace business models.  Horizontal vs Vertical.  And other ABC’s of the Business of Software. — location: 4251 ^ref-9364

Peter Drucker is famous for saying that “Culture eats Strategy for breakfast”.  Whatever fancy strategy you or your leadership adopt, remember that people are always at the heart of your work, and great people can overcome bad strategy when united by a strong culture. — location: 4265 ^ref-63249

If you’re just starting to #LearnInPublic, start as an Explorer.  Map out whatever you’re learning, whatever tickles your fancy.  Go as fast as you like, an inch deep and a mile wide. When you know where you want to settle and focus, become a Settler.  Learn how to learn, and learn what everyone else already knows about the topic. When you have a good sense of the terrain and see other Explorers you can help, start being a Connector.  Link people and ideas, use your full creative talents.  Go back and cover gaps in your knowledge. If you find yourself tripping over gold, start Mining.  Dig into what people don’t know, talk about what people don’t know they don’t know, build infrastructure and communities to make it all easier.  If it turns out a dud, switch gears, no shame in moving on. Four gears of learning, all in Public.  Get started! — location: 4380 ^ref-59511

intelligently when people cannot even agree on definitions.  Someone who looks like a generalist in certain circles, looks like a specialist to everyone else standing outside that circle.  Specialization is in the eye of the beholder. — location: 4394 ^ref-14623

The world will never stop coming up with ways to tell you that you are not good enough, that you are missing out, that you should do the opposite of what you’re doing.  It is difficult to read (and write!)  advice that fundamentally accepts that there are multiple paths to success.  The real debate is less an outward facing one of What The World Wants, and more an inward facing one of What Do I Want. — location: 4468 ^ref-18124

To paraphrase Tim Ferris, probably all of the developer heroes you look up to are walking flaws who’ve maximized one or two strengths. — location: 4496 ^ref-59273

When you become an expert in something, you also learn how to be an expert. — location: 4487 ^ref-16440

23.6 Specialist in Public, Generalist in Private? — location: 4500 ^ref-45708

The cynical dev thinks technology never changes.  The optimistic dev persists in trying to change technology.  Therefore all progress depends on the optimistic dev. — location: 4523 ^ref-1992

If you’re in Full-stack JavaScript, check out Rails.  If you’re in Rails, check out Laravel.  If you’re in React Native, check out Flutter.  And so on.  You’ll see a lot of things that are the same or worse, but every now and then you’ll find something that that community takes for granted, but you find absolutely mind-blowing. — location: 4577 ^ref-52144

New technology is usually inferior to existing alternatives in every way but one. — location: 4598 ^ref-6619

You should also be aware that the technically superior project often does not “win”.  Often this is because the superior qualities require too much change, whereas the “less superior” project compromises technical merit for compatibility.  Economics rewards evolution over revolution. — location: 4603 ^ref-24652

The other factor to weigh heavily is the people behind the project.  If the project maintainers have a track record of running high quality projects, that should be an immediate upgrade in terms of your interest level. — location: 4623 ^ref-17287

Being Early is the best time you can tie your career to a technology and grow as it grows. — location: 4630 ^ref-47761

Values are destiny. I was first exposed to this idea via Bryan Cantrill, CTO of Joyent (and elaborated in this talk).  Here is a sampling of software platform values: Resiliency Velocity Interoperability Simplicity Security Maintainability — location: 4645 ^ref-62878

As an employee, you should be aware of whether you work in a “profit center”, a “cost center”, or a “investment center”.  This is a somewhat artificial, and arguably toxic, classification, but it can predict company behavior, so it is worth discussing. — location: 4676 ^ref-56482

Profit centers bring in money to the company.  There is no limit to how much they can bring in, however their outcomes are not always within their control (e.g.  due to the economy and competitive landscape).  Cost centers spend the company’s money as efficiently as possible.  The maximum possible savings is 100%, however controlling spending is more predictable (as it is tied to things within company control).  Investment centers hemorrhage the company’s money today in hopes of profit tomorrow.  This can take the form of conducting R&D, or creating loss leaders that draw future customers. — location: 4687 ^ref-49384

An out of control cost center might justify itself as an investment center based on promising future benefit that never arrives.  A desparate or greedy profit center might find a loophole that lets them book profit upfront and misattribute the true cost to a cost center.  Investment centers get set up when business is going well, waste money for years with no accountability, and get shut down at the first sign of trouble. — location: 4699 ^ref-18140

“Look, it’s simple.  You make more money the closer you are to The Money.”  (In a bank, “The Money” meant either the clients, who had the money, or having executive decision on deals, where the bank made money.) — location: 4717 ^ref-23161

It goes without saying that your coding does not have independent value.  It must be applied usefully on some economic problem to have sustainable real world impact. — location: 4988 ^ref-24997

will be associated with the success of your company.  We infer better ability in someone who was an early engineer at Uber, despite having no knowledge of their actual contributions, compared to someone at an unknown startup who may have accomplished far more interesting things. — location: 4992 ^ref-31215

Perhaps more pertinent to your career: your coding ability will be associated with the success of your company.  We infer better ability in someone who was an early engineer at Uber, despite having no knowledge of their actual contributions, compared to someone at an unknown startup who may have accomplished far more interesting things. — location: 4991 ^ref-24372

When the chips are down, Developers are designers and product managers of last resort. — location: 5013 ^ref-34290

As you increase in seniority, you will also have to grow in your business judgment. — location: 5014 ^ref-63210

If your business is designed from the ground up to serve a single industry or customer profile, you are a Vertical business.  Vertical businesses typically grow by offering more and more capabilities to serve the customers they have, despite these features existing as standalone offerings elsewhere.  The goal is to be a “One Stop Shop”.  User experience can be mindblowing when it is vertically integrated - but frustrating when limitations arise.  If your business can be used by customers across any industry, you are a Horizontal business.  Horizontal businesses typically grow by reaching more and more kinds of customers, building any integrations required or adding knobs and configs to accommodate their use case.  The goal is to “Do One Thing Well” and be the best in the world at it.  Many “API Economy” developer tooling platforms are Horizontal: Stripe, Auth0, Okta, Twilio. — location: 5037 ^ref-26365

New technology categories usually start vertical, because nobody else makes all the components needed.  Eventually the individual roles become well-defined enough that horizontal specialists make sense. — location: 5050 ^ref-55728

Bundling (Vertical) vs Unbundling (Horizontal): — location: 5060 ^ref-65155

Remind me of cyclic nature

The maturation of technology is usually rife for a “Cambrian Explosion” of unbundling, which is exactly what happened to Craigslist, Excel, and the chip design industry.  Less mature unbundling movements that have only recently begun are Cable TV (splitting up into individual subscriptions like Disney+ and HBO Go), universities (splitting into online courses), radio (splitting into podcasts) and newspapers (though newspapers have already been decimated by social media, top journalists are now leaving and simply starting their own newsletters).  There are cases to be made for unbundling everything else from LinkedIn to banks as well.  These are all promising areas for startups. — location: 5066 ^ref-26924

Despite the flaws, agencies are still so popular because of the sheer amount of work that needs to be done, and the specialized talent needed for certain types of high skill work. — location: 5100 ^ref-45663

Social Media and Digital Media differ in one important way - digital media companies have to hire journalists and editors to create the content that draws people, whereas social media companies get User-Generated Content for free. — location: 5119 ^ref-58889

all subscription business eventually start charging per-seat, and then find their way toward some form of metered billing — location: 5155 ^ref-38563

A platform is when the economic value of everybody that uses it, exceeds the value of the company that creates it.  Then it’s a platform. — location: 5262 ^ref-22938

Platforms exist on a higher level than business models - for Windows it was licensing, while for Google it is ads.  Yet the two-sided nature of a Platform makes it seem like a Marketplace, and Bill Gates’ definition seems comparable to GMV. — location: 5282 ^ref-14608

Platforms help people do things (aka Bicycles for the mind), Aggregators do things for people. — location: 5349 ^ref-47968

this idea.  Categorical Imperatives: I have a suspicion that software has intrinsic desires, expressed by inevitable and unimaginative customer and product manager feature requests.  If you anthropomorphize the codebase you are working on and treat it as a living, breathing thing, you can think about what IT “wants”.  You can therefore predict what features you are going to have to build.  Examples: Every collaboration app wants email Every data analysis app wants the power of Excel Every marketplace wants to be two-sided Every social app wants chat Every User Generated Content app wants Snapchat’s Stories format Every B2B app wants a dashboard Every site author eventually wants a CMS — location: 5371 ^ref-63286

You have the power to both contract your Circle of Concern (aka Focus) and expand your Circle of Influence (aka Competence, Power, Network).  The rest of this book deals with your Circle of Influence, so here we shall concern ourselves with helping you focus. — location: 5412 ^ref-39045

Ways to shrink your Circle of Concern as a developer: Have a primary domain that you concern yourself with - projects, news, and discussions in this always take priority over everything else.  Don’t spend too much time on Hacker News, or on email news recap newsletters.  Trim your unrelated follow list on Twitter (it is never personal, you can refollow in future).  Learn Just in Time instead of Just in Case.  Prefer grooming relationships with people who know things you don’t know, and resist the urge to learn everything yourself.  Get comfortable lampshading ignorance (Chapter 34).  Having better things to do than know everything is always a valid defense. — location: 5414 ^ref-46582

Thoughtworks has split out Circles of Concern into four levels, called a Technology Radar: Adopt: A strong recommendation for adoption Trial: Try this out on projects with risk tolerance Assess: Explore to understand how it might affect you Hold: Don’t bother — location: 5428 ^ref-58749

Know What You Want, and Know What People Want.  You don’t have to be interested in everything - knowing what you want can help you only look out for projects that will be helpful to you, and knowing what people want can help you pick projects that will be well received. — location: 5462 ^ref-14716

Your information inflow should be managed to help you create action.  Not quantity of consumption.  People brag about how many books they read in a year, or obsessively keep up with headlines (because of Fear of Missing Information). — location: 5464 ^ref-12305

It’s much easier and faster to become an expert in a subject still young and evolving, and people are actively looking for new voices to listen to. — location: 5492 ^ref-10881

Early Adopters can be very forgiving and imaginative, while Early Majority need a lot of the documentation and usecases paved for them before they will jump aboard. — location: 5506 ^ref-17599

This happens to closely map to Technology Adoption Curves - the more widely adopted something is, the more commoditized it is. — location: 5580 ^ref-5071

Keep a reference counter for technologies: Every time you hear about a technology and think “I should check it out!”  - keep a mental or literal tally.  Only actually check it out once your counter hits five - enough that it isn’t a flash in the pan, but also not too late that you’re ignoring something that could be amazing. — location: 5621 ^ref-51939

Debounce your Information: Whenever you run into something new, ask: Do I need to know now?  Does this information have an expiry date?  A nice trick to force yourself to do this is to put everything on time delay - for example, all new blogposts and articles must be stored in a Read Later app like Instapaper, and new YouTube talks relegated to the Watch Later list. — location: 5625 ^ref-1633

Developers interact with Megatrends in two ways: They fuel and profit from Megatrends by working on companies and products that reach the broader non-developer market.  This has primarily financial benefits for the developer.  They are influenced by and contribute to Megatrends within the developer ecosystem itself.  This has primarily career benefits for the developer. — location: 5668 ^ref-455

Any time you can think of something that is possible this year and wasn’t possible last year, you should pay attention.  You may have the seed of a great startup idea.  This is especially true if next year will be too late.  When you can say “I am sure this is going to happen, I’m just not sure if we’ll be the ones to do it”, that’s a good sign.  - Sam Altman on Idea Generation — location: 5793 ^ref-16689

Don’t forget that you can also make your fonts responsive, using the font-size: calc(1rem + 2px + ((100vw - 550px) / 250)) trick. — location: 6230 ^ref-55820

The reality is that the ultimate customers of conferences are the bosses of the people attending conferences.  They want to see some “I can use this at work” return on investment — location: 6597 ^ref-32124

The key insight of Mise en Place Writing is that we should decouple writing from pre-writing. — location: 6807 ^ref-46216

If you really need to deliver a message, use the Tell them what you will tell them, Tell them, and Tell them what you just told them metastructure, that highlights the structure itself. — location: 6849 ^ref-19185

We should have a separate workflow for pre-writing than we do for writing. — location: 6859 ^ref-2413

A good rule of thumb is that a project should have at least three constraints: scope, content and mission.  Scope means you constrain the project to be only a certain amount of time or a clearly defined size.  Content means what you’re actually going to do—I chose exams and programming for my MIT Challenge, but I could have gone with something different (say a research project).  Mission means you narrowly pick what your project stands for, which then lets you make cuts more easily when things start to grow. — location: 7051 ^ref-50405

One such useful constraint is to decide up front whether your project is about shipping a new product or about learning a new technology.  Don’t let yourself do both. — location: 7056 ^ref-34138

“Fixed deadline, negotiable scope” has to be the most underrated pattern in product management.  It’s the secret to shipping.  - Ryan Singer — location: 7074 ^ref-34158

Branding is the stuff that uniquely identifies you.  Marketing gets your awesome in front of people. — location: 7528 ^ref-55947

In fact anything not “average” is a good candidate for inclusion.  In particular: Diversity is strength.  Adversity is strength.  Weakness is strength.  Nothing is off limits - the only requirements are that you be comfortable self identifying with your personal brand, AND that it evokes positive emotions as a result. — location: 7569 ^ref-12777

Another template is “X for Y”: “ for ”.  “I create gorgeous, accessible frontends for DTC ecommerce brands” is a highly marketable oneliner pitch.  “I create backends that scale to millions of peak concurrent users for live streaming apps.”  And so on.  This is a more business oriented template that puts the target audience/customer squarely in focus. — location: 7586 ^ref-25395

Humans love consistency.  Developers REALLLLY love consistency. Here’s an idea of how much humans love consistency.  We often want people who are famous for doing a thing, to come on to OUR stage, and do the thing.  Then they do the thing, and we cheer!  Simple as that. — location: 7612 ^ref-61553

excellent Patrick McKenzie keynote).  People want expertise.  People want to defer to authority.  People don’t actually need it all the time, they just want the option just in case.  People love hoarding options.  You can satiate that latent insecurity indefinitely.  Most people also define “expertise” simply as “someone who has spent more time on a thing than I have” (The bar is depressingly low, to be honest.  People should have higher standards, but they just don’t.  This is a systematic weakness you can – responsibly – exploit.) — location: 7692 ^ref-15987

Just by “having a guy” for something, you suddenly feel no desire to overlap with that person’s domain.  You can now focus on something else.  And, to the extent you do that, you are now utterly dependent on “having a guy”.  You’re also extremely invested in your “guy” (aka go-to person – the gender is not important) being as successful and prominent as possible, so that you look better by association. — location: 7684 ^ref-527

Author’s note: 10x may be an understatement.  Cory House saw a 15x increase in enquiries when he went from “general dev consulting” to “helping teams transition to React”.  Same dev, different pitch, 15x opportunities. — location: 7735 ^ref-8640

you should try to do a little more than you’re comfortable with.  An aggressive form of this advice?  If you’re not getting complaints about how you’re showing up everywhere, you’re not doing it enough. — location: 7871 ^ref-1954

Log your own metrics for significant projects. — location: 7888 ^ref-30619

Do Demos.  Offer to do them every time.  This is an internal marketing opportunity — location: 7903 ^ref-39290

your interests with fellow devs.  Start an internal book club.  A lunch and learn series.  If leaders at Google and Etsy started an external talk series, why can’t you? — location: 7915 ^ref-59945

Assemble your Personal Brand, your Domain, and your Coding Skills/Business Value, then Market Yourself in Public + at Work. — location: 7944 ^ref-7025

Your outcomes are a lagging measure of your habits.  Your net worth is a lagging measure of your financial habits.  Your weight is a lagging measure of your eating habits.  Your knowledge is a lagging measure of your learning habits.  Your clutter is a lagging measure of your cleaning habits.  You get what you repeat.  - James Clear — location: 8059 ^ref-62848