Static APIs
The unsung heroes

Luciano Mammino (@loige)

2025-01-24

Imagine a world where your API is always available, incredibly fastย with great latencyย worldwide, and almost free...

Pre-build all the things!

Through the power of raw JSON files, under the right circumstances, we can achieve all these things!

I love STATIC Websites & APIs

  • I Built 20+ static websites
  • I Built quite a few static APIs
  • I like servers, but I like even more to avoid them! ๐Ÿ˜‡
  • I love free/cheap stuff! ๐Ÿค‘

... if you recognize this background, we should talk!

๐Ÿ‘‹ I'm Lucianoย (๐Ÿ‡ฎ๐Ÿ‡น๐Ÿ•๐Ÿ๐ŸคŒ)

๐Ÿ‘จโ€๐Ÿ’ป Senior Architect @ fourTheorem

๐Ÿ“” Co-Author of Node.js Design Patterns ย ๐Ÿ‘‰

Let's connect!

linktr.ee/loige

$ ~ whoami

๐Ÿ‘‹ I'm Lucianoย (๐Ÿ‡ฎ๐Ÿ‡น๐Ÿ•๐Ÿ๐ŸคŒ)

๐Ÿ‘จโ€๐Ÿ’ป Senior Architect @ fourTheorem

๐Ÿ“” Co-Author of Crafting Lambda Functions in Rustย  ๐Ÿ‘‰

Let's connect!

linktr.ee/loige

$ ~ whoami

Early-access available at

40% discount! ๐Ÿค‘

Always re-imagining

We are a pioneering technology consultancy focused on AWS and serverless

โœ‰๏ธ Reach out to us at ย hello@fourTheorem.com

๐Ÿ˜‡ We are always looking for talent: fth.link/careers

We can help with:

Cloud Migrations

Training & Cloud enablement

Building high-performance serverless applications

Cutting cloud costs

Before we can appreciate
Static APIs, we need to talk about ...

The JAMStack!

a.k.a Static Websites

A somewhat "regular" website

GETย /cars?maxPrice=200

GETย /cars?maxPrice=200

A somewhat "regular" website

GETย /cars?maxPrice=200

A somewhat "regular" website

GETย /cars?maxPrice=200

A somewhat "regular" website

  • It's hosted on a web server
  • It uses a programming language to handle requests and generate responses
  • It might access data sources (databases / APIs) dynamically
  • Every request is processed dynamically*

* gross oversimplification... e.g. assuming no caching!

A somewhat "regular" website

A "Static" website

Build phase

Build server

Web server

A "Static" website

Build phase

Build server

Web server

A "Static" website

Build phase

Build server

Web server

A "Static" website

Build phase

Build server

Web server

A "Static" website

Build server

Web server

Live phase

A "Static" website

Build server

Web server

Live phase

GETย /cars/index.html

A "Static" website

Build server

Web server

Live phase

GETย /cars/index.html

A "Static" website

Build server

Web server

Live phase

GETย /cars/index.html

๐Ÿ’โ€โ™‚๏ธ No "dynamic" backend logic!

A "Static" website

  • All the files (HTML, CSS, images, JS, etc) are pre-generated at build time
  • These files are then hosted on a simple web server
  • No programming language or database is used to serve requests
  • Every request can be served "immediately"

A "Static" website

  • No backend logic!
  • Extremely fast at serving requests
  • Easy / Cheap to host
  • Easy to scale
  • Easy to version / backup
  • Security
  • No dynamic content
    • No realtime data / frequent updates
    • No user-generated content
    • No dynamic queries
  • Content editing might be challenging
  • Needs a process to build and release updates
  • No customized pages / No login

PROS ๐Ÿ‘

CONS ๐Ÿ‘Ž

Common use cases for Staticย websites

Personal sites

Blogs

Documentation

Landing pages

Small Business Websites

Events pages

Portfolio / Resume

Tools to create Staticย websites

  • Next.js (JS/React)
  • Gatsby (JS/React)
  • Astro (JS/JSX)
  • Nuxt (JS/Vue)
  • Jekyll (Ruby)
  • Eleventy (JS)
  • Zola (Rust)
  • MkDocs (Python)
  • Pelican (Python)
  • ... +360 more

Astro: super quick example ๐Ÿš€

npm create astro@latest

Astro: super quick example ๐Ÿš€

npm run dev

Astro: super quick example ๐Ÿš€

npm run build

Astro: super quick example ๐Ÿš€

tree dist

๐Ÿ’โ€โ™‚๏ธ Static files that you can take and publish anywhere you like!

You can make a Static website really fast by using a ...

CDN!

Contentย Delivery Network

Contentย Delivery Network

~42ms

~72ms

~118ms

~140ms

~150ms

~174ms

๐Ÿ’โ€โ™‚๏ธ Latency increases with distance from the server

Contentย Delivery Network

~42ms

~72ms

~118ms

~140ms

~150ms

~174ms

~32ms

~34ms

~26ms

~70ms

~46ms

~18ms

๐Ÿ’โ€โ™‚๏ธ Many servers around the world with your website files!

Common CDN Services

GitHub Pages (Free)

AWS CloudFront

Vercel

Netlify

CloudFlare

Fastly

Akamai

What is aย (RESTful) API?

Applicationย Programmingย Interface

  • Provides a means to extend the functionality of an application
  • Exposes a well-defined interface
  • RESTful: Uses HTTP and leverages verbsย and resourcesย 

GETย  ย  /customers/cus_NffrFeUfNV2Hib

Verb

Resource

Applicationย Programmingย Interface

GETย  ย  ย  ย  /customers/:id

GETย  ย  ย  ย  /customers

POSTย  ย  ย /customers

PUTย  ย  ย  ย /customers/:id

PATCHย  ย /customers/:id

DELETEย /customers/:id

Read

Create

Update

Delete

Can we apply the same principles of static websites to APIs?

IT DEPENDS!

GETย  ย  ย  ย  /customers/:id

GETย  ย  ย  ย  /customers

Read

Dynamic ๐Ÿ˜ต

Dynamic ๐Ÿ˜ต

Dynamic ๐Ÿ˜ต

Read only! ๐Ÿค”

POSTย  ย  ย /customers

Create

PUTย  ย  ย  ย /customers/:id

PATCHย  ย /customers/:id

Update

DELETEย /customers/:id

Delete

GETย  /customers/cus_01hQb49z89Ib

GETย  ย  ย  ย  /customers

[
  {
    "id":"cus_01hQb49z89Hz",
    "name":"Alice Smith",
    "email":"alice.smith@example.com"
  },
  {
    "id":"cus_01hQb49z89Ia",
    "name":"Bob Johnson",
    "email":"bob.johnson@email.net"
  },
  {
    "id":"cus_01hQb49z89Ib",
    "name":"Charlie Brown",
    "email":"charlie.brown@sample.org"
  },
  {
    "id":"cus_01hQb49z89Ic",
    "name":"Diana Miller",
    "email":"diana.miller@test.co"
  },
  {
    "id":"cus_01hQb49z89Id",
    "name":"Ethan Davis",
    "email":"ethan.davis@fakemail.com"
  },
  {
    "id":"cus_01hQb49z89Ie",
    "name":"Fiona Wilson",
    "email":"fiona.wilson@mail.biz"
  },
  {
    "id":"cus_01hQb49z89If",
    "name":"George Thomas",
    "email":"george.thomas@myemail.io"
  },
  {
    "id":"cus_01hQb49z89Ig",
    "name":"Hannah Martinez",
    "email":"hannah.martinez@emailtest.net"
  },
  {
    "id":"cus_01hQb49z89Ih",
    "name":"Ian Garcia",
    "email":"ian.garcia@samplemail.org"
  },
  {
    "id":"cus_01hQb49z89Ii",
    "name":"Julia Rodriguez",
    "email":"julia.rodriguez@myfakeemail.co"
  }
]
{
  "id":"cus_01hQb49z89Ib",
  "name":"Charlie Brown",
  "email":"charlie.brown@sample.org"
}

๐Ÿ’โ€โ™‚๏ธ If we can pre-generate HTML, CSS, and JavaScript, why not pre-generate JSON?

/customers.json
/customers/cus_01hQb49z89Hz.json
/customers/cus_01hQb49z89Ia.json
/customers/cus_01hQb49z89Ib.json
/customers/cus_01hQb49z89Ic.json
...

OK maybe "customers" isn't a great example...

Let's see some other ones!

Currency Exchange API

Do you ever need to know what the exchange rate was from currency A to currency B on a given day?

Currency Exchange API

https://{DATE}.currency-api.pages.dev/v1/currencies/{CODE}.json

Currency Exchange API

https://2025-01-18.currency-api.pages.dev/v1/currencies/eur.json
{
  "date":"2025-01-18",
  "eur":{
    "1inch":2.59035761,
    "aave":0.0030579412,
    "ada":0.91443675,
    "aed":3.77299433,
    "afn":75.38101522,
    "agix":1.68177016,
    "akt":0.312708,
    "algo":2.23380918,
    "all":98.228838,
    "amd":408.66333569,
    "amp":110.58609402,
    "ang":1.84136373,
    "aoa":938.32416799,
    "ape":0.86156104,
    "apt":0.10560898,
    "ar":0.057114921,
    "arb":1.24829283,
    "ars":1066.53783484,
    "atom":0.14560498,
    "ats":13.7603,
    "aud":1.65888421,
    "avax":0.024935658,
    "awg":1.83898158,
    "axs":0.1537599,
    "azm":8732.59426514,
    "azn":1.74651885,
    "bake":3.95537035,
    "bam":1.95583,
    "bat":3.91167347,
    "bbd":2.05472802,
    "bch":0.0020962567,
    "bdt":124.83560431,
    "bef":40.3399,
    "bgn":1.95583,
    "bhd":0.38628887,
    "bif":3001.40051159,
    "bmd":1.02736401,
    "bnb":0.0014352234,
    "bnd":1.40571089,
    "bob":7.10278557,
    "brl":6.25158258,
    "bsd":1.02736401,
    "bsv":0.017657183,
    "bsw":14.42175926,
    "btc":0.0000098507771,
    "btcb":1.9155343,
    "btg":0.090506415,
    "btn":88.95349909,
    "btt":864108.22463947,
    "busd":1.02885278,
    "bwp":14.46067275,
    "byn":3.36392005,
    "byr":33639.20047748,
    "bzd":2.07017434,
    "cad":1.48753132,
    "cake":0.40081311,
    "cdf":2911.68942963,
    "celo":1.50887309,
    "cfx":5.7766449,
    "chf":0.93999819,
    "chz":11.56238544,
    "clp":1036.43410255,
    "cnh":7.5427782,
    "cny":7.5256357,
    "comp":0.011608084,
    "cop":4461.66505726,
    "crc":519.11193487,
    "cro":7.01962322,
    "crv":0.98874576,
    "cspr":57.67350536,
    "cuc":1.02736401,
    "cup":24.63741045,
    "cve":110.27,
    "cvx":0.21372526,
    "cyp":0.585274,
    "czk":25.2621266,
    "dai":1.03131015,
    "dash":0.02358219,
    "dcr":0.066813302,
    "dem":1.95583,
    "dfi":45.5370813,
    "djf":183.10990083,
    "dkk":7.46345083,
    "doge":2.40934167,
    "dop":63.07791263,
    "dot":0.13750854,
    "dydx":0.70768161,
    "dzd":139.50836903,
    "eek":15.64664,
    "egld":0.027527314,
    "egp":51.6127627,
    "enj":4.76785301,
    "eos":1.06926617,
    "ern":15.41046018,
    "esp":166.386,
    "etb":130.77593923,
    "etc":0.036496865,
    "eth":0.00029682509,
    "eur":1,
    "fei":1.06436067,
    "fil":0.1779712,
    "fim":5.94573,
    "fjd":2.39328304,
    "fkp":0.84418881,
    "flow":1.28851352,
    "flr":34.40154471,
    "frax":1.0346439,
    "frf":6.55957,
    "ftt":0.38930863,
    "fxs":0.28416571,
    "gala":25.23084903,
    "gbp":0.84418881,
    "gel":2.9199072,
    "ggp":0.84418881,
    "ghc":154029.15347675,
    "ghs":15.40291535,
    "gip":0.84418881,
    "gmd":73.52997219,
    "gmx":0.038812722,
    "gnf":8885.0220214,
    "gno":0.0040610863,
    "grd":340.74999999,
    "grt":4.36857106,
    "gt":0.050372542,
    "gtq":7.92747109,
    "gusd":1.03366103,
    "gyd":214.84480396,
    "hbar":2.8301626,
    "hkd":7.99968102,
    "hnl":26.15714421,
    "hnt":0.19539547,
    "hot":375.15256225,
    "hrk":7.5345,
    "ht":0.84965256,
    "htg":134.27726194,
    "huf":413.10663519,
    "icp":0.091040256,
    "idr":16823.18272744,
    "iep":0.787564,
    "ils":3.66076547,
    "imp":0.84418881,
    "imx":0.73078178,
    "inj":0.041576322,
    "inr":88.95349909,
    "iqd":1345.90038753,
    "irr":43232.55252413,
    "isk":145.47709087,
    "itl":1936.26999995,
    "jep":0.84418881,
    "jmd":161.07397167,
    "jod":0.72840108,
    "jpy":160.59412751,
    "kas":6.66434135,
    "kava":2.00569262,
    "kcs":0.091213367,
    "kda":0.96951445,
    "kes":133.0494148,
    "kgs":89.84301345,
    "khr":4138.21115884,
    "klay":3.9877996,
    "kmf":491.96774999,
    "knc":1.67171167,
    "kpw":924.62525862,
    "krw":1498.13938546,
    "ksm":0.030302692,
    "kwd":0.31708155,
    "kyd":0.8427044,
    "kzt":545.13914826,
    "lak":22402.94313538,
    "lbp":92009.13328766,
    "ldo":0.51500858,
    "leo":0.10605698,
    "link":0.040534003,
    "lkr":304.59952173,
    "lrc":4.86267758,
    "lrd":194.71973763,
    "lsl":19.22364124,
    "ltc":0.0075719961,
    "ltl":3.4528,
    "luf":40.3399,
    "luna":2.6656913,
    "lunc":9780.88324825,
    "lvl":0.7028,
    "lyd":5.08179567,
    "mad":10.32170822,
    "mana":1.85368368,
    "matic":2.03357499,
    "mbx":2.78063007,
    "mdl":19.27954905,
    "mga":4828.66274604,
    "mgf":24143.31373021,
    "mina":1.6754043,
    "mkd":61.47536353,
    "mkr":0.00070335351,
    "mmk":2156.28248259,
    "mnt":3527.57936879,
    "mop":8.23967145,
    "mro":408.46852081,
    "mru":40.84685208,
    "mtl":0.4293,
    "mur":48.17821156,
    "mvr":15.82566106,
    "mwk":1783.31924133,
    "mxn":21.36132412,
    "mxv":2.55802424,
    "myr":4.62721169,
    "mzm":65344.16220753,
    "mzn":65.34416221,
    "nad":19.22364124,
    "near":0.17834911,
    "neo":0.062007715,
    "nexo":0.73949779,
    "nft":1975077.24993626,
    "ngn":1599.06446556,
    "nio":37.75832863,
    "nlg":2.20371,
    "nok":11.76318356,
    "npr":142.39231367,
    "nzd":1.84041451,
    "okb":0.017674693,
    "omr":0.39553102,
    "one":36.20351332,
    "op":0.52086596,
    "ordi":0.037824215,
    "pab":1.02736401,
    "paxg":0.00038122037,
    "pen":3.85604088,
    "pepe":50288.34836866,
    "pgk":4.16124538,
    "php":60.16060759,
    "pkr":286.31560696,
    "pln":4.2608891,
    "pte":200.48199999,
    "pyg":8093.92500858,
    "qar":3.739605,
    "qnt":0.0085285517,
    "qtum":0.29756104,
    "rol":49766.21724322,
    "ron":4.97662172,
    "rpl":0.092327376,
    "rsd":116.92729963,
    "rub":104.95710997,
    "rune":0.25499493,
    "rvn":47.50878299,
    "rwf":1423.63207546,
    "sand":1.55233605,
    "sar":3.85261504,
    "sbd":8.73237784,
    "scr":15.46528902,
    "sdd":61720.65907281,
    "sdg":617.20659073,
    "sek":11.49941496,
    "sgd":1.40571089,
    "shib":42178.76908069,
    "shp":0.84418881,
    "sit":239.63999999,
    "skk":30.126,
    "sle":23.32953512,
    "sll":23329.53512047,
    "snx":0.51923698,
    "sol":0.0047222435,
    "sos":588.63372655,
    "spl":0.17122733,
    "srd":36.02207219,
    "srg":36022.07219414,
    "std":24467.88776316,
    "stn":24.46788776,
    "stx":0.6078425,
    "sui":0.21075423,
    "svc":8.9894351,
    "syp":13357.53821356,
    "szl":19.22364124,
    "thb":35.32655116,
    "theta":0.41695924,
    "tjs":11.21899162,
    "tmm":17982.49622448,
    "tmt":3.59649924,
    "tnd":3.30173182,
    "ton":0.18333178,
    "top":2.47330622,
    "trl":36404175.43933156,
    "trx":4.15241667,
    "try":36.40417544,
    "ttd":6.97547419,
    "tusd":1.03002107,
    "tvd":1.65888421,
    "twd":33.80495616,
    "twt":0.83291638,
    "tzs":2594.92356637,
    "uah":43.48111528,
    "ugx":3792.94764795,
    "uni":0.068226004,
    "usd":1.02736401,
    "usdc":1.03142921,
    "usdd":1.0324005,
    "usdp":1.03142002,
    "usdt":1.03101666,
    "uyu":45.07401782,
    "uzs":13319.65451032,
    "val":1936.26999995,
    "veb":5647012992.764433,
    "ved":56.51943379,
    "vef":5651943.37865732,
    "ves":56.51943379,
    "vet":18.79110412,
    "vnd":26016.17136917,
    "vuv":127.89019436,
    "waves":0.54595499,
    "wemix":1.18799815,
    "woo":4.65470183,
    "wst":2.91891193,
    "xaf":655.95699998,
    "xag":0.033856096,
    "xau":0.00038023317,
    "xaut":0.00038239845,
    "xbt":0.0000098507771,
    "xcd":2.7762884,
    "xch":0.043549461,
    "xdc":7.42735494,
    "xdr":0.79158337,
    "xec":26670.98711543,
    "xem":37.82549218,
    "xlm":2.15213406,
    "xmr":0.0045300259,
    "xof":655.95699998,
    "xpd":0.0010701707,
    "xpf":119.33174224,
    "xpt":0.0010874679,
    "xrp":0.31648228,
    "xtz":0.72888966,
    "yer":255.90364266,
    "zar":19.22364124,
    "zec":0.018861684,
    "zil":43.95759118,
    "zmk":28480.83968433,
    "zmw":28.48083968,
    "zwd":371.80303588,
    "zwg":26.95121532,
    "zwl":67343.65392907
  }
}

Random Facts about Etna ๐ŸŒ‹

Follow me twitch.tv/loige

The actual Static API ๐ŸŒ‹

{
  "id": 51,
  "fact": "The circumference of Mount Etna is 149 Km (93 miles).",
  "url": "https://lmammino.github.io/etna-facts/51.json"
}
curl 'https://lmammino.github.io/etna-facts/51.json' | jq .

๐Ÿ˜Ž Do you know some cool facts about Etna? Contributeย with a PR!

The (self-proclaimed) most awesome weekly newsletter about fullstack web development

Process automation using Step Functions

Static API

Static API

Tech quotes ๐Ÿ—ฃ๏ธ

{
  "id": 17,
  "text": "The art challenges the technology, and the technology inspires the art",
  "author": {
    "id": "john-lasseter",
    "name": "John Lasseter",
    "description": "Director",
    "wiki": "https://en.wikipedia.org/wiki/John_Lasseter",
    "url": "https://fullStackbulletin.github.io/tech-quotes/authors/john-lasseter.json"
  },
  "url": "https://fullStackbulletin.github.io/tech-quotes/quotes/17.json"
}
curl https://fullStackbulletin.github.io/tech-quotes/quotes/17.json | jq .

๐Ÿ˜Ž Do you know some cool tech quotes? Contributeย with a PR!

FullStack books ๐Ÿ“š

{
  "slug": "art-of-scalability-the-2-martin-abbott-michael-fisher",
  "title": "Art of Scalability, The",
  "subtitle": "Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise",
  "edition": 2,
  "authors": [
    {
      "name": "Martin Abbott",
      "slug": "martin-abbott",
      "url": "https://fullStackbulletin.github.io/fullstack-books/authors/martin-abbott.json"
    },
    {
      "name": "Michael Fisher",
      "slug": "michael-fisher",
      "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-fisher.json"
    }
  ],
  "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/art-of-scalability-the-2-martin-abbott-michael-fisher.jpg",
  "links": {
    "amazon_us": "https://www.amazon.com/dp/0134032802",
    "amazon_uk": "https://www.amazon.co.uk/dp/0134032802"
  },
  "description": "The Comprehensive, Proven Approach to IT Scalability-Updated with New Strategies, Technologies, and Case Studies\nIn The Art of Scalability, Second Edition, leading scalability consultants Martin L. Abbott and Michael T. Fisher cover everything you need to know to smoothly scale products and services for any requirement. This extensively revised edition reflects new technologies, strategies, and lessons, as well as new case studies from the authors' pioneering consulting practice, AKF Partners.\nWriting for technical and nontechnical decision-makers, Abbott and Fisher cover everything that impacts scalability, including architecture, process, people, organization, and technology. Their insights and recommendations reflect more than thirty years of experience at companies ranging from eBay to Visa, and Salesforce.com to Apple.\nYou'll find updated strategies for structuring organizations to maximize agility and scalability, as well as new insights into the cloud (IaaS/PaaS) transition, NoSQL, DevOps, business metrics, and more. Using this guide's tools and advice, you can systematically clear away obstacles to scalability-and achieve unprecedented IT and business performance.",
  "url": "https://fullStackbulletin.github.io/fullstack-books/books/art-of-scalability-the-2-martin-abbott-michael-fisher.json",
  "descriptionHtml": "<p>The Comprehensive, Proven Approach to IT Scalability-Updated with New Strategies, Technologies, and Case Studies\nIn The Art of Scalability, Second Edition, leading scalability consultants Martin L. Abbott and Michael T. Fisher cover everything you need to know to smoothly scale products and services for any requirement. This extensively revised edition reflects new technologies, strategies, and lessons, as well as new case studies from the authors&#39; pioneering consulting practice, AKF Partners.\nWriting for technical and nontechnical decision-makers, Abbott and Fisher cover everything that impacts scalability, including architecture, process, people, organization, and technology. Their insights and recommendations reflect more than thirty years of experience at companies ranging from eBay to Visa, and Salesforce.com to Apple.\nYou&#39;ll find updated strategies for structuring organizations to maximize agility and scalability, as well as new insights into the cloud (IaaS/PaaS) transition, NoSQL, DevOps, business metrics, and more. Using this guide&#39;s tools and advice, you can systematically clear away obstacles to scalability-and achieve unprecedented IT and business performance.</p>\n"
}
curl https://fullstackbulletin.github.io/fullstack-books/books/art-of-scalability-the-2-martin-abbott-michael-fisher.json | jq .

๐Ÿ˜Ž Do you know some cool full-stack books? Contributeย with a PR!

Access Patterns โ›•

How do you expect data to be accessed?

Access Patterns โ›•

By ID (with incremental IDs)

/etna-facts/0.json
/etna-facts/1.json
/etna-facts/2.json
/etna-facts/3.json
/etna-facts/?.json

Access Patterns โ›•

By ID (with incremental IDs)

/etna-facts/stats.json
{
  "total": 58,
  "all": "https://lmammino.github.io/etna-facts/all.json",
  "first": "https://lmammino.github.io/etna-facts/0.json",
  "last": "https://lmammino.github.io/etna-facts/57.json",
  "urlPrefix": "https://lmammino.github.io/etna-facts/"
}

This also allows us to get a random fact
( using a random value in [0, 57] )

Access Patterns โ›•

By ID (with non predictableย IDs)

/fullstack-books/books/eloquent-javascript-4-marijn-haverbeke.json

??? ๐Ÿ˜ฐ

/fullstack-books/books/ids.json
[
  "eloquent-javascript-4-marijn-haverbeke",
  "tidy-first-1-kent-beck",
  "articulating-design-decisions-2-tom-greever",
  "building-progressive-web-apps-1-tal-ater",
  "build-1-tony-fadell",
  "designing-for-behavior-change-2-stephen-wendel",
  "the-design-of-everyday-things-1-don-norman",
  "dont-make-me-think-revisited-3-steve-krug",
  "first-things-first-1-stephen-r-covey-a-roger-merrill-rebecca-r-merrill",
  "how-to-think-like-leonardo-da-vinci-1-michael-j-gelb",
  "how-we-got-to-now-1-steven-johnson",
  "indistractable-1-nir-eyal",
  "tragic-design-1-jonathan-shariat-cynthia-savard-saucier",
  "linchpin-1-seth-godin",
  "on-writing-1-stephen-king",
  "start-ugly-1-david-duchemin",
  "the-subtle-art-of-not-giving-a-fck-1-mark-manson",
  "web-design-playground-1-paul-mcfedries",
  "the-principles-of-beautiful-web-design-1-jason-beaird-alex-walker-james-george",
  "building-the-web-of-things-1-dominique-guinard-vlad-trifa",
  "mastering-api-architecture-1-james-gough-daniel-bryant-matthew-auburn",
  "nodejs-design-patterns-third-edition-3-mario-casciaro-luciano-mammino",
  "distributed-systems-with-nodejs-1-thomas-hunter-ii",
  "node-cookbook-4-bethany-griggs",
  "ultimate-nodejs-for-cross-platform-app-development-1-ramesh-kumar",
  "event-driven-architecture-in-golang-1-michael-stack",
  "javascript-7-david-flanagan",
  "full-stack-graphql-applications-1-william-lyon",
  "modern-javascript-for-the-impatient-1-cay-horstmann",
  "the-complete-developer-1-martin-krause",
  "learn-react-with-typescript-second-edition-2-carl-rippon",
  "hacking-the-system-design-interview-1-stanley-chiang",
  "the-road-to-graphql-1-robin-wieruch",
  "python-crash-course-3rd-edition-3-eric-matthes",
  "fluent-python-2-luciano-ramalho",
  "python-for-data-analysis-3-wes-mckinney",
  "introduction-to-algorithms-fourth-edition-4-thomas-h-cormen-charles-e-leiserson-ronald-l-rivest-clifford-stein",
  "grokking-algorithms-1-aditya-bhargava",
  "the-algorithm-design-manual-texts-in-computer-science-3-steven-s-skiena",
  "algorithms-to-live-by-1-brian-christian-tom-griffiths",
  "the-self-taught-computer-scientist-1-cory-althoff",
  "the-rust-programming-language-2nd-edition-2-steve-klabnik-carol-nichols",
  "rust-for-rustaceans-1-jon-gjengset",
  "programming-rust-2-jim-blandy-jason-orendorff-leonora-tindall",
  "rust-in-action-1-tim-mcnamara",
  "zero-to-production-in-rust-1-luca-palmieri",
  "hands-on-rust-1-herbert-wolverson",
  "design-patterns-1-erich-gamma-richard-helm-ralph-johnson-john-vlissides",
  "information-architecture-4-louis-rosenfeld-peter-morville-jorge-arango",
  "designing-data-intensive-applications-1-martin-kleppmann",
  "the-linux-command-line-2nd-edition-1-william-shotts",
  "the-pragmatic-programmer-1-andrew-hunt-david-thomas",
  "css-secrets-1-lea-verou",
  "javascript-1-douglas-crockford",
  "how-javascript-works-1-douglas-crockford",
  "elasticsearch-1-clinton-gormley-zachary-tong",
  "cassandra-3-jeff-carpenter-eben-hewitt",
  "art-of-scalability-the-2-martin-abbott-michael-fisher",
  "elixir-in-action-third-edition-3-sasa-juric",
  "docker-in-action-second-edition-2-jeff-nickoloff-stephen-kuenzli",
  "sql-pocket-guide-4-alice-zhao",
  "laravel-3-matt-stauffer",
  "kafka-2-gwen-shapira-todd-palino-rajini-sivaram-krit-petty",
  "learn-you-a-haskell-for-great-good-1-miran-lipovaca",
  "learn-python-the-hard-way-3-zed-shaw",
  "think-python-3-allen-b-downey",
  "introduction-to-networking-1-dr-charles-r-severance",
  "architecture-patterns-with-python-1-harry-percival-bob-gregory",
  "fundamentals-of-software-architecture-1-mark-richards-neal-ford",
  "fullstack-vue-1-hassan-djirdeh-nate-murray-ari-lerner",
  "learning-vue-1-maya-shavin",
  "building-micro-frontends-1-luca-mezzalira",
  "serverless-development-on-aws-1-sheen-brisals-luke-hedger",
  "full-stack-serverless-1-nader-dabit",
  "javascript-for-impatient-programmers-1-dr-axel-rauschmayer",
  "web-application-security-2-andrew-hoffman",
  "grokking-web-application-security-1-malcolm-mcdonald",
  "the-tangled-web-1-michal-zalewski",
  "react-2-stoyan-stefanov",
  "hacking-apis-1-corey-j-ball",
  "programming-phoenix-14-1-chris-mccord-bruce-tate-jose-valim",
  "webassembly-1-brian-sletten",
  "web-scraping-with-python-3-ryan-mitchell",
  "acing-the-system-design-interview-1-zhiyong-tan",
  "secrets-of-the-javascript-ninja-2-john-resig-bear-bibeault-josip-maras",
  "the-devops-handbook-1-gene-kim-jez-humble-patrick-debois-john-willis-nicole-forsgren",
  "accelerating-server-side-development-with-fastify-1-manuel-spigolon-maksim-sinik-matteo-collina",
  "building-microservices-2-sam-newman",
  "the-tao-of-microservices-1-richard-rodger",
  "ai-as-a-service-1-peter-elger-eoin-shanaghy",
  "rust-atomics-and-locks-1-mara-bos",
  "accelerate-1-nicole-forsgren-phd-jez-humble-gene-kim",
  "nodejs-secure-coding-1-liran-tal",
  "software-engineering-at-google-1-titus-winters-tom-manshreck-hyrum-wright",
  "observability-engineering-1-charity-majors-liz-fong-jones-george-miranda",
  "the-rational-software-engineer-1-mykyta-chernenko",
  "building-evolutionary-architectures-2-neal-ford-rebecca-parsons-patrick-kua-pramod-sadalage",
  "software-architecture-metrics-1-christian-ciceri-dave-farley-neal-ford-andrew-harmel-law-michael-keeling-carola-lilienthal-joao-rosa-alexander-von-zitzewitz-rene-weiss-eoin-woods",
  "communication-patterns-1-jacqueline-read",
  "fullstack-d3-and-data-visualization-1-amelia-wattenberger",
  "real-world-svelte-1-tan-li-hau",
  "multithreaded-javascript-1-thomas-hunter-ii-bryan-english",
  "fluent-react-1-tejas-kumar",
  "aws-cookbook-1-john-culkin-mike-zazon",
  "essential-typescript-5-third-edition-3-adam-freeman",
  "typescript-cookbook-1-stefan-baumgartner",
  "learning-typescript-1-josh-goldberg",
  "designing-interfaces-3-jenifer-tidwell-charles-brewer-aynne-valencia",
  "laws-of-ux-1-jon-yablonski",
  "introduction-to-the-theory-of-computation-3-michael-sipser",
  "the-art-of-computer-programming-vol-1-3-donald-knuth",
  "functional-light-javascript-1-kyle-simpson",
  "restful-web-api-patterns-and-practices-cookbook-1-mike-amundsen",
  "continuous-delivery-pipelines-1-dave-farley",
  "foundations-of-scalable-systems-1-ian-gorton",
  "high-performance-browser-networking-1-ilya-grigorik"
]

Access Patterns โ›•

GIVE ME EVERYTHING!

/fullstack-books/books/all.json

If all the data is small enough ๐Ÿค—

[
  {
    "slug": "eloquent-javascript-4-marijn-haverbeke",
    "title": "Eloquent JavaScript",
    "edition": 4,
    "authors": [
      {
        "name": "Marijn Haverbeke",
        "slug": "marijn-haverbeke",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/marijn-haverbeke.json"
      }
    ],
    "links": {
      "free": "https://eloquentjavascript.net/"
    },
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/eloquent-javascript-4-marijn-haverbeke.jpg",
    "description": "JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.\nThis much anticipated and thoroughly revised third edition of Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code. It has been updated to reflect the current state of JavaScript and web browsers and includes brand-new material on features like class notation, arrow functions, iterators, async functions, template strings, and block scope. A host of new exercises have also been added to test your skills and keep you on track.\nAs with previous editions, Haverbeke continues to teach through extensive examples and immerses you in code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. You start by learning the basic structure of the JavaScript language as well as control structures, functions, and data structures to help you write basic programs. Then you'll learn about error handling and bug fixing, modularity, and asynchronous programming before moving on to web browsers and how JavaScript is used to program them. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you'll learn how to:\n- Understand the essential elements of programming, including syntax, control, and data\n- Organize and clarify your code with object-oriented and functional programming techniques\n- Script the browser and make basic web applications\n- Use the DOM effectively to interact with browsers\n- Harness Node.js to build servers and utilities\nIsn't it time you became fluent in the language of the Web?",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/eloquent-javascript-4-marijn-haverbeke.json",
    "descriptionHtml": "<p>JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.\nThis much anticipated and thoroughly revised third edition of Eloquent JavaScript dives deep into the JavaScript language to show you how to write beautiful, effective code. It has been updated to reflect the current state of JavaScript and web browsers and includes brand-new material on features like class notation, arrow functions, iterators, async functions, template strings, and block scope. A host of new exercises have also been added to test your skills and keep you on track.\nAs with previous editions, Haverbeke continues to teach through extensive examples and immerses you in code from the start, while exercises and full-chapter projects give you hands-on experience with writing your own programs. You start by learning the basic structure of the JavaScript language as well as control structures, functions, and data structures to help you write basic programs. Then you&#39;ll learn about error handling and bug fixing, modularity, and asynchronous programming before moving on to web browsers and how JavaScript is used to program them. As you build projects such as an artificial life simulation, a simple programming language, and a paint program, you&#39;ll learn how to:</p>\n<ul>\n<li>Understand the essential elements of programming, including syntax, control, and data</li>\n<li>Organize and clarify your code with object-oriented and functional programming techniques</li>\n<li>Script the browser and make basic web applications</li>\n<li>Use the DOM effectively to interact with browsers</li>\n<li>Harness Node.js to build servers and utilities\nIsn&#39;t it time you became fluent in the language of the Web?</li>\n</ul>\n"
  },
  {
    "slug": "tidy-first-1-kent-beck",
    "title": "Tidy First?",
    "subtitle": "A Personal Exercise in Empirical Software Design",
    "edition": 1,
    "authors": [
      {
        "name": "Kent Beck",
        "slug": "kent-beck",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/kent-beck.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/tidy-first-1-kent-beck.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098151240",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098151240"
    },
    "description": "Messy code is a nuisance. \"Tidying\" code, to make it more readable, requires breaking it up into manageable sections. In this practical guide, author Kent Beck, creator of Extreme Programming and pioneer of software patterns, suggests when and where you might apply tidyings to improve your code while keeping the overall structure of the system in mind.\nInstead of trying to master tidying all at once, this book lets you try out a few examples that make sense for your problem. If you have a big function containing many lines of code, you'll learn how to logically divide it into smaller chunks. Along the way, you'll learn the theory behind software design: coupling, cohesion, discounted cash flows, and optionality.\nThis book helps you:\n- Understand the basic theory of how software design works and the forces that act on it\n- Explore the difference between changes to a system's behavior and changes to its structure\n- Improve your programming experience by sometimes tidying first and sometimes tidying after\n- Learn how to make large changes in small, safe steps\n- Approach design as a human activity with diverging incentives",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/tidy-first-1-kent-beck.json",
    "descriptionHtml": "<p>Messy code is a nuisance. &quot;Tidying&quot; code, to make it more readable, requires breaking it up into manageable sections. In this practical guide, author Kent Beck, creator of Extreme Programming and pioneer of software patterns, suggests when and where you might apply tidyings to improve your code while keeping the overall structure of the system in mind.\nInstead of trying to master tidying all at once, this book lets you try out a few examples that make sense for your problem. If you have a big function containing many lines of code, you&#39;ll learn how to logically divide it into smaller chunks. Along the way, you&#39;ll learn the theory behind software design: coupling, cohesion, discounted cash flows, and optionality.\nThis book helps you:</p>\n<ul>\n<li>Understand the basic theory of how software design works and the forces that act on it</li>\n<li>Explore the difference between changes to a system&#39;s behavior and changes to its structure</li>\n<li>Improve your programming experience by sometimes tidying first and sometimes tidying after</li>\n<li>Learn how to make large changes in small, safe steps</li>\n<li>Approach design as a human activity with diverging incentives</li>\n</ul>\n"
  },
  {
    "slug": "articulating-design-decisions-2-tom-greever",
    "title": "Articulating Design Decisions",
    "subtitle": "Communicate with Stakeholders, Keep Your Sanity, and Deliver the Best User Experience",
    "edition": 2,
    "authors": [
      {
        "name": "Tom Greever",
        "slug": "tom-greever",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tom-greever.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/articulating-design-decisions-2-tom-greever.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492079227",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492079227"
    },
    "description": "Talking to people about your designs might seem like a basic skill, but it can be difficult to do well. In many cases, how you communicate with stakeholders, clients, and other nondesigners may be more important than the designs themselves. Because if you can't get their support, your work will never see the light of day--no matter how good it is.\nThis practical guide focuses on principles, tactics, and actionable methods for presenting your designs. Whether you design apps, websites, or products, you'll learn how to get support from people who have influence over the project with the goal of creating the best user experience.\n- Walk through the process of preparing and presenting your designs\n- Understand stakeholder perspectives and learn how to empathize with them\n- Cultivate both implicit and explicit listening skills\n- Learn tactics and strategies for expressing the most effective response to feedback\n- Create the right documentation for your decisions to avoid repeated conversations\n- Discover why the way you follow through is just as important as the meeting itself",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/articulating-design-decisions-2-tom-greever.json",
    "descriptionHtml": "<p>Talking to people about your designs might seem like a basic skill, but it can be difficult to do well. In many cases, how you communicate with stakeholders, clients, and other nondesigners may be more important than the designs themselves. Because if you can&#39;t get their support, your work will never see the light of day--no matter how good it is.\nThis practical guide focuses on principles, tactics, and actionable methods for presenting your designs. Whether you design apps, websites, or products, you&#39;ll learn how to get support from people who have influence over the project with the goal of creating the best user experience.</p>\n<ul>\n<li>Walk through the process of preparing and presenting your designs</li>\n<li>Understand stakeholder perspectives and learn how to empathize with them</li>\n<li>Cultivate both implicit and explicit listening skills</li>\n<li>Learn tactics and strategies for expressing the most effective response to feedback</li>\n<li>Create the right documentation for your decisions to avoid repeated conversations</li>\n<li>Discover why the way you follow through is just as important as the meeting itself</li>\n</ul>\n"
  },
  {
    "slug": "building-progressive-web-apps-1-tal-ater",
    "title": "Building Progressive Web Apps",
    "subtitle": "Bringing the Power of Native to the Browser",
    "edition": 1,
    "authors": [
      {
        "name": "Tal Ater",
        "slug": "tal-ater",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tal-ater.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/building-progressive-web-apps-1-tal-ater.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1491961651",
      "amazon_uk": "https://www.amazon.co.uk/dp/1491961651"
    },
    "description": "Move over native apps. New progressive web apps have capabilities that will soon make you obsolete. With this hands-on guide, web developers and business execs will learn howโ€”and whyโ€”to develop web apps that take advantage of features that have so far been exclusive to native apps. Features that include fast load times, push notifications, offline access, homescreen shortcuts, and an entirely app-like experience.\nBy leveraging the latest browser APIs, progressive web apps combine all of the benefits of native apps, while avoiding their issues. Throughout the book, author Tal Ater shows you how to improve a simple website for the fictional Gotham Imperial Hotel into a modern progressive web app. Plus:\n- Understand how service workers work, and use them to create sites that launch in an instant, regardless of the user's internet connection\n- Create full-screen web apps that launch from the phone's homescreen just like native apps\n- Re-engage users with push notifications, even days after they have left your site\n- Embrace offline-first and build web apps that gracefully handle loss of connectivity\n- Explore new UX opportunities and challenges presented by progressive web apps",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/building-progressive-web-apps-1-tal-ater.json",
    "descriptionHtml": "<p>Move over native apps. New progressive web apps have capabilities that will soon make you obsolete. With this hands-on guide, web developers and business execs will learn howโ€”and whyโ€”to develop web apps that take advantage of features that have so far been exclusive to native apps. Features that include fast load times, push notifications, offline access, homescreen shortcuts, and an entirely app-like experience.\nBy leveraging the latest browser APIs, progressive web apps combine all of the benefits of native apps, while avoiding their issues. Throughout the book, author Tal Ater shows you how to improve a simple website for the fictional Gotham Imperial Hotel into a modern progressive web app. Plus:</p>\n<ul>\n<li>Understand how service workers work, and use them to create sites that launch in an instant, regardless of the user&#39;s internet connection</li>\n<li>Create full-screen web apps that launch from the phone&#39;s homescreen just like native apps</li>\n<li>Re-engage users with push notifications, even days after they have left your site</li>\n<li>Embrace offline-first and build web apps that gracefully handle loss of connectivity</li>\n<li>Explore new UX opportunities and challenges presented by progressive web apps</li>\n</ul>\n"
  },
  {
    "slug": "build-1-tony-fadell",
    "title": "Build",
    "edition": 1,
    "authors": [
      {
        "name": "Tony Fadell",
        "slug": "tony-fadell",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tony-fadell.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/build-1-tony-fadell.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1787634108",
      "amazon_uk": "https://www.amazon.co.uk/dp/1787634108"
    },
    "description": "THE NEW YORK TIMES BESTSELLER.  An unorthodox guide to making things worth making, from 'the father of the iPod and iPhone' and the creator of Nest. Everyone deserves a mentor. For every career crisis, every fork in the road, you need someone to talk to. Someone who's been there before, who knows exactly how wobbly and conflicted you feel, who can give it to you.\nHere's how to think about choosing a job.\nHere's how to be a better manager.\nHere's how to approach design.Here's how to start a company.\nHere's how to run it.\nTony Fadell learned all these lessons the hard way. He spent the first 10 years of his career in Silicon Valley failing spectacularly, and the next 20 building some of the most impactful devices in history - the iPod, iPhone, and Nest Learning Thermostat. He has enough stories and advice about leadership, design, startups, mentorship, decision making, devastating screwups, and unbelievable success to fill an encyclopedia. So that's what this book is. An advice encyclopedia. A mentor in a box. But Tony's doesn't follow the standard Silicon Valley credo that you have to radically reinvent everything you do. His advice is unorthodox because it's old school. Because it's based on human nature, not gimmicks.  Tony keeps things he just tells you what works. He gives you exactly what you need to make things worth making.\nPRAISE FOR BUILD 'This is the most fun - and the most fascinating - memoir of curiosity and invention that I've ever read.'\nMalcolm Gladwell,Host of the Revisionist History podcast. Author of Outliers and Talking to Strangers .\n'Whether you're looking to build a great product, a creative team, a strong culture, or a meaningful career, Tony's guidance will get you thinking and rethinking.'\nAdam Grant,Author of Think Again & Host of the TED podcast WorkLife",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/build-1-tony-fadell.json",
    "descriptionHtml": "<p>THE NEW YORK TIMES BESTSELLER.  An unorthodox guide to making things worth making, from &#39;the father of the iPod and iPhone&#39; and the creator of Nest. Everyone deserves a mentor. For every career crisis, every fork in the road, you need someone to talk to. Someone who&#39;s been there before, who knows exactly how wobbly and conflicted you feel, who can give it to you.\nHere&#39;s how to think about choosing a job.\nHere&#39;s how to be a better manager.\nHere&#39;s how to approach design.Here&#39;s how to start a company.\nHere&#39;s how to run it.\nTony Fadell learned all these lessons the hard way. He spent the first 10 years of his career in Silicon Valley failing spectacularly, and the next 20 building some of the most impactful devices in history - the iPod, iPhone, and Nest Learning Thermostat. He has enough stories and advice about leadership, design, startups, mentorship, decision making, devastating screwups, and unbelievable success to fill an encyclopedia. So that&#39;s what this book is. An advice encyclopedia. A mentor in a box. But Tony&#39;s doesn&#39;t follow the standard Silicon Valley credo that you have to radically reinvent everything you do. His advice is unorthodox because it&#39;s old school. Because it&#39;s based on human nature, not gimmicks.  Tony keeps things he just tells you what works. He gives you exactly what you need to make things worth making.\nPRAISE FOR BUILD &#39;This is the most fun - and the most fascinating - memoir of curiosity and invention that I&#39;ve ever read.&#39;\nMalcolm Gladwell,Host of the Revisionist History podcast. Author of Outliers and Talking to Strangers .\n&#39;Whether you&#39;re looking to build a great product, a creative team, a strong culture, or a meaningful career, Tony&#39;s guidance will get you thinking and rethinking.&#39;\nAdam Grant,Author of Think Again &amp; Host of the TED podcast WorkLife</p>\n"
  },
  {
    "slug": "designing-for-behavior-change-2-stephen-wendel",
    "title": "Designing for Behavior Change",
    "subtitle": "Applying Psychology and Behavioral Economics",
    "edition": 2,
    "authors": [
      {
        "name": "Stephen Wendel",
        "slug": "stephen-wendel",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stephen-wendel.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/designing-for-behavior-change-2-stephen-wendel.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492056030",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492056030"
    },
    "description": "Designers and managers hope their products become essential for usersโ€•integrated into their lives like Instagram, Lyft, and others have become. Such deep integration isn't accidental: it's a process of careful design and iterative learning, especially for technology companies. This guide shows you how to apply behavioral scienceโ€•research that supports many productsโ€•to help your users achieve their goals using your product.\nIn this updated edition, Stephen Wendel, head of behavioral science at Morningstar, takes you step-by-step through the process of incorporating behavioral science into product design and development. Product managers, UX and interaction designers, and data analysts will learn a simple and effective approach for identifying target users and behaviors, building the product, and gauging its effectiveness.\n- Learn the three main strategies to help people change behavior\n- Identify behaviors your target audience seeks to changeโ€•and obstacles that stand in their way\n- Develop effective designs that are enjoyable to use\n- Measure your product's impact and learn ways to improve it\n- Combine behavioral science with data science to pinpoint problems and test potential solutions",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/designing-for-behavior-change-2-stephen-wendel.json",
    "descriptionHtml": "<p>Designers and managers hope their products become essential for usersโ€•integrated into their lives like Instagram, Lyft, and others have become. Such deep integration isn&#39;t accidental: it&#39;s a process of careful design and iterative learning, especially for technology companies. This guide shows you how to apply behavioral scienceโ€•research that supports many productsโ€•to help your users achieve their goals using your product.\nIn this updated edition, Stephen Wendel, head of behavioral science at Morningstar, takes you step-by-step through the process of incorporating behavioral science into product design and development. Product managers, UX and interaction designers, and data analysts will learn a simple and effective approach for identifying target users and behaviors, building the product, and gauging its effectiveness.</p>\n<ul>\n<li>Learn the three main strategies to help people change behavior</li>\n<li>Identify behaviors your target audience seeks to changeโ€•and obstacles that stand in their way</li>\n<li>Develop effective designs that are enjoyable to use</li>\n<li>Measure your product&#39;s impact and learn ways to improve it</li>\n<li>Combine behavioral science with data science to pinpoint problems and test potential solutions</li>\n</ul>\n"
  },
  {
    "slug": "the-design-of-everyday-things-1-don-norman",
    "title": "The Design Of Everyday Things",
    "edition": 1,
    "authors": [
      {
        "name": "Don Norman",
        "slug": "don-norman",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/don-norman.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-design-of-everyday-things-1-don-norman.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0465050654",
      "amazon_uk": "https://www.amazon.co.uk/dp/0465050654"
    },
    "description": "One of the world's great designers shares his vision of \"the fundamental principles of great and meaningful design\", that's \"even more relevant today than it was when first published\" (Tim Brown, CEO, IDEO). Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door.\nThe fault, argues this ingenious -- even liberating -- book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization. The Design of Everyday Things shows that good, usable design is possible. The rules are simple: make things visible, exploit natural relationships that couple function and control, and make intelligent use of constraints. \nThe goal: guide the user effortlessly to the right action on the right control at the right time. \nThe Design of Everyday Things is a powerful primer on how -- and why -- some products satisfy customers while others only frustrate them.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-design-of-everyday-things-1-don-norman.json",
    "descriptionHtml": "<p>One of the world&#39;s great designers shares his vision of &quot;the fundamental principles of great and meaningful design&quot;, that&#39;s &quot;even more relevant today than it was when first published&quot; (Tim Brown, CEO, IDEO). Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door.\nThe fault, argues this ingenious -- even liberating -- book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization. The Design of Everyday Things shows that good, usable design is possible. The rules are simple: make things visible, exploit natural relationships that couple function and control, and make intelligent use of constraints. \nThe goal: guide the user effortlessly to the right action on the right control at the right time. \nThe Design of Everyday Things is a powerful primer on how -- and why -- some products satisfy customers while others only frustrate them.</p>\n"
  },
  {
    "slug": "dont-make-me-think-revisited-3-steve-krug",
    "title": "Don't Make Me Think, Revisited",
    "subtitle": "A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter)",
    "edition": 3,
    "authors": [
      {
        "name": "Steve Krug",
        "slug": "steve-krug",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/steve-krug.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/dont-make-me-think-revisited-3-steve-krug.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0321965515",
      "amazon_uk": "https://www.amazon.co.uk/dp/0321965515"
    },
    "description": "Since Don't Make Me Think was first published in 2000, hundreds of thousands of Web designers and developers have relied on usability guru Steve Krug's guide to help them understand the principles of intuitive navigation and information design. Witty, commonsensical, and eminently practical, it's one of the best-loved and most recommended books on the subject.\nNow Steve returns with fresh perspective to reexamine the principles that made Don't Make Me Think a classic-with updated examples and a new chapter on mobile usability. And it's still short, profusely illustratedโ€ฆand best of all-fun to read.\nIf you've read it before, you'll rediscover what made Don't Make Me Think so essential to Web designers and developers around the world. If you've never read it, you'll see why so many people have said it should be required reading for anyone working on Web sites.\nโ€œAfter reading it over a couple of hours and putting its ideas to work for the past five years, I can say it has done more to improve my abilities as a Web designer than any other book.โ€\n-Jeffrey Zeldman, author of Designing with Web Standards .",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/dont-make-me-think-revisited-3-steve-krug.json",
    "descriptionHtml": "<p>Since Don&#39;t Make Me Think was first published in 2000, hundreds of thousands of Web designers and developers have relied on usability guru Steve Krug&#39;s guide to help them understand the principles of intuitive navigation and information design. Witty, commonsensical, and eminently practical, it&#39;s one of the best-loved and most recommended books on the subject.\nNow Steve returns with fresh perspective to reexamine the principles that made Don&#39;t Make Me Think a classic-with updated examples and a new chapter on mobile usability. And it&#39;s still short, profusely illustratedโ€ฆand best of all-fun to read.\nIf you&#39;ve read it before, you&#39;ll rediscover what made Don&#39;t Make Me Think so essential to Web designers and developers around the world. If you&#39;ve never read it, you&#39;ll see why so many people have said it should be required reading for anyone working on Web sites.\nโ€œAfter reading it over a couple of hours and putting its ideas to work for the past five years, I can say it has done more to improve my abilities as a Web designer than any other book.โ€\n-Jeffrey Zeldman, author of Designing with Web Standards .</p>\n"
  },
  {
    "slug": "first-things-first-1-stephen-r-covey-a-roger-merrill-rebecca-r-merrill",
    "title": "First Things First",
    "edition": 1,
    "authors": [
      {
        "name": "Stephen R. Covey",
        "slug": "stephen-r-covey",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stephen-r-covey.json"
      },
      {
        "name": "A. Roger Merrill",
        "slug": "a-roger-merrill",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/a-roger-merrill.json"
      },
      {
        "name": "Rebecca R. Merrill",
        "slug": "rebecca-r-merrill",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/rebecca-r-merrill.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/first-things-first-1-stephen-r-covey-a-roger-merrill-rebecca-r-merrill.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0684802031",
      "amazon_uk": "https://www.amazon.co.uk/dp/0684802031"
    },
    "description": "From the author that brought you the New York Times bestseller The 7 Habits of Highly Effective People comes a guide to prioritizing your personal and professional goals.\nI'm getting more done in less time, but where are the rich relationships, the inner peace, the balance, the confidence that I'm doing what matters most and doing it well?Does this nagging question haunt you, even when you feel you are being your most efficient? If so, First Things First can help you understand why we so often prioritize things that are unimportant to both our larger goals and our inner happiness. From the author that brought you the New York Times bestseller The 7 Habits of Highly Effective People comes a guide to building your work on the principles of effectiveness so that your life can spent cultivating genuine relationships, investing in pursuits you enjoy, and achieving balance in both your personal and professional lives.\nIn First Things First, Stephen M. R. Covey advocates categorizing tasks by urgency and importance so that you can focus on what actually needs to be done in the limited amount of time that you have. Using personal examples and insight from years of business experience, he argues for a new way of looking at your โ€œto-doโ€ list. Rather than offering you another clock, First Things First provides you with a compass, because where you're headed is more important than how fast you're going.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/first-things-first-1-stephen-r-covey-a-roger-merrill-rebecca-r-merrill.json",
    "descriptionHtml": "<p>From the author that brought you the New York Times bestseller The 7 Habits of Highly Effective People comes a guide to prioritizing your personal and professional goals.\nI&#39;m getting more done in less time, but where are the rich relationships, the inner peace, the balance, the confidence that I&#39;m doing what matters most and doing it well?Does this nagging question haunt you, even when you feel you are being your most efficient? If so, First Things First can help you understand why we so often prioritize things that are unimportant to both our larger goals and our inner happiness. From the author that brought you the New York Times bestseller The 7 Habits of Highly Effective People comes a guide to building your work on the principles of effectiveness so that your life can spent cultivating genuine relationships, investing in pursuits you enjoy, and achieving balance in both your personal and professional lives.\nIn First Things First, Stephen M. R. Covey advocates categorizing tasks by urgency and importance so that you can focus on what actually needs to be done in the limited amount of time that you have. Using personal examples and insight from years of business experience, he argues for a new way of looking at your โ€œto-doโ€ list. Rather than offering you another clock, First Things First provides you with a compass, because where you&#39;re headed is more important than how fast you&#39;re going.</p>\n"
  },
  {
    "slug": "how-to-think-like-leonardo-da-vinci-1-michael-j-gelb",
    "title": "How to Think Like Leonardo da Vinci",
    "subtitle": "Seven Steps to Genius Every Day",
    "edition": 1,
    "authors": [
      {
        "name": "Michael J. Gelb",
        "slug": "michael-j-gelb",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-j-gelb.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/how-to-think-like-leonardo-da-vinci-1-michael-j-gelb.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0440508274",
      "amazon_uk": "https://www.amazon.co.uk/dp/0440508274"
    },
    "description": "This inspiring and inventive guide teaches readers how to develop their full potential by following the example of the greatest genius of all time, Leonardo da Vinci.Acclaimed author Michael J. Gelb, who has helped thousands of people expand their minds to accomplish more than they ever thought possible, shows you how. Drawing on Da Vinci's notebooks, inventions, and legendary works of art, Gelb introduces Seven Da Vincian Principlesโ€”the essential elements of geniusโ€”from curiositร , the insatiably curious approach to life to connessione, the appreciation for the interconnectedness of all things. With Da Vinci as your inspiration, you will discover an exhilarating new way of thinking. And step-by-step, through exercises and provocative lessons, you will harness the powerโ€”and awesome wonderโ€”of your own genius, mastering such life-changing abilities as:\n- Problem solving\n- Creative thinking\n- Self-expression\n- Enjoying the world around you\n- Goal setting and life balance\n- Harmonizing body and mind\nDrawing on Da Vinci's notebooks, inventions, and legendary works of art, acclaimed author Michael J. Gelb, introduces seven Da Vincian principles, the essential elements of genius, from curiosita, the insatiably curious approach to life, to connessione, the appreciation for the interconnectedness of all things. With Da Vinci as their inspiration, readers will discover an exhilarating new way of thinking.\nStep-by-step, through exercises and provocative lessons, anyone can harness the power and awesome wonder of their own genius, mastering such life-changing skills as problem solving, creative thinking, self-expression, goal setting and life balance, and harmonizing body and mind.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/how-to-think-like-leonardo-da-vinci-1-michael-j-gelb.json",
    "descriptionHtml": "<p>This inspiring and inventive guide teaches readers how to develop their full potential by following the example of the greatest genius of all time, Leonardo da Vinci.Acclaimed author Michael J. Gelb, who has helped thousands of people expand their minds to accomplish more than they ever thought possible, shows you how. Drawing on Da Vinci&#39;s notebooks, inventions, and legendary works of art, Gelb introduces Seven Da Vincian Principlesโ€”the essential elements of geniusโ€”from curiositร , the insatiably curious approach to life to connessione, the appreciation for the interconnectedness of all things. With Da Vinci as your inspiration, you will discover an exhilarating new way of thinking. And step-by-step, through exercises and provocative lessons, you will harness the powerโ€”and awesome wonderโ€”of your own genius, mastering such life-changing abilities as:</p>\n<ul>\n<li>Problem solving</li>\n<li>Creative thinking</li>\n<li>Self-expression</li>\n<li>Enjoying the world around you</li>\n<li>Goal setting and life balance</li>\n<li>Harmonizing body and mind\nDrawing on Da Vinci&#39;s notebooks, inventions, and legendary works of art, acclaimed author Michael J. Gelb, introduces seven Da Vincian principles, the essential elements of genius, from curiosita, the insatiably curious approach to life, to connessione, the appreciation for the interconnectedness of all things. With Da Vinci as their inspiration, readers will discover an exhilarating new way of thinking.\nStep-by-step, through exercises and provocative lessons, anyone can harness the power and awesome wonder of their own genius, mastering such life-changing skills as problem solving, creative thinking, self-expression, goal setting and life balance, and harmonizing body and mind.</li>\n</ul>\n"
  },
  {
    "slug": "how-we-got-to-now-1-steven-johnson",
    "title": "How We Got to Now",
    "subtitle": "Six Innovations That Made the Modern World",
    "edition": 1,
    "authors": [
      {
        "name": "Steven Johnson",
        "slug": "steven-johnson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/steven-johnson.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/how-we-got-to-now-1-steven-johnson.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1594633932",
      "amazon_uk": "https://www.amazon.co.uk/dp/1594633932"
    },
    "description": "From the New York Times-bestselling author of Where Good Ideas Come From and Unexpected Life, a new look at the power and legacy of great ideas.\nIn this illustrated history, Steven Johnson explores the history of innovation over centuries, tracing facets of modern life (refrigeration, clocks, and eyeglass lenses, to name a few) from their creation by hobbyists, amateurs, and entrepreneurs to their unintended historical consequences. Filled with surprising stories of accidental genius and brilliant mistakesโ€”from the French publisher who invented the phonograph before Edison but forgot to include playback, to the Hollywood movie star who helped invent the technology behind Wi-Fi and Bluetoothโ€”How We Got to Now investigates the secret history behind the everyday objects of contemporary life.\nIn his trademark style, Johnson examines unexpected connections between seemingly unrelated fields: how the invention of air-conditioning enabled the largest migration of human beings in the history of the speciesโ€”to cities such as Dubai or Phoenix, which would otherwise be virtually uninhabitable; how pendulum clocks helped trigger the industrial revolution; and how clean water made it possible to manufacture computer chips. Accompanied by a major six-part television series on PBS, How We Got to Now is the story of collaborative networks building the modern world, written in the provocative, informative, and engaging style that has earned Johnson fans around the globe.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/how-we-got-to-now-1-steven-johnson.json",
    "descriptionHtml": "<p>From the New York Times-bestselling author of Where Good Ideas Come From and Unexpected Life, a new look at the power and legacy of great ideas.\nIn this illustrated history, Steven Johnson explores the history of innovation over centuries, tracing facets of modern life (refrigeration, clocks, and eyeglass lenses, to name a few) from their creation by hobbyists, amateurs, and entrepreneurs to their unintended historical consequences. Filled with surprising stories of accidental genius and brilliant mistakesโ€”from the French publisher who invented the phonograph before Edison but forgot to include playback, to the Hollywood movie star who helped invent the technology behind Wi-Fi and Bluetoothโ€”How We Got to Now investigates the secret history behind the everyday objects of contemporary life.\nIn his trademark style, Johnson examines unexpected connections between seemingly unrelated fields: how the invention of air-conditioning enabled the largest migration of human beings in the history of the speciesโ€”to cities such as Dubai or Phoenix, which would otherwise be virtually uninhabitable; how pendulum clocks helped trigger the industrial revolution; and how clean water made it possible to manufacture computer chips. Accompanied by a major six-part television series on PBS, How We Got to Now is the story of collaborative networks building the modern world, written in the provocative, informative, and engaging style that has earned Johnson fans around the globe.</p>\n"
  },
  {
    "slug": "indistractable-1-nir-eyal",
    "title": "Indistractable",
    "edition": 1,
    "authors": [
      {
        "name": "Nir Eyal",
        "slug": "nir-eyal",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/nir-eyal.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/indistractable-1-nir-eyal.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1526610205",
      "amazon_uk": "https://www.amazon.co.uk/dp/1526610205"
    },
    "description": "You sit down at your desk to work on an important project, but a notification on your phone interrupts your morning. Later, as you're about to get back to work, a colleague taps you on the shoulder to chat. At home, screens get in the way of quality time with your family. Another day goes by, and once again, your most important personal and professional goals are put on hold.\nWhat would be possible if you followed through on your best intentions? What could you accomplish if you could stay focused and overcome distractions? What if you had the power to become \"indistractable\"?\nInternational best-selling author, former Stanford lecturer, and behavioral design expert, Nir Eyal, wrote Silicon Valley's handbook for making technology habit-forming. Five years after publishing Hooked, Eyal reveals distraction's Achilles' heel in his groundbreaking new book.\nIn Indistractable, Eyal reveals the hidden psychology driving us to distraction. He describes why solving the problem is not as simple as swearing off our devices: Abstinence is impractical and often makes us want more.\nEyal lays bare the secret of finally doing what you say you will do with a four-step, research-backed model. Indistractable reveals the key to getting the best out of technology, without letting it get the best of us.\nInside, Eyal overturns conventional wisdom and reveals:\nWhy distraction at work is a symptom of a dysfunctional company culture - and how to fix it\nWhat really drives human behavior and why \"time management is pain management\"\nWhy your relationships (and your sex life) depend on you becoming indistractable\nHow to raise indistractable children in an increasingly distracting world\nEmpowering and optimistic, Indistractable provides practical, novel techniques to control your time and attention - helping you live the life you really want.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/indistractable-1-nir-eyal.json",
    "descriptionHtml": "<p>You sit down at your desk to work on an important project, but a notification on your phone interrupts your morning. Later, as you&#39;re about to get back to work, a colleague taps you on the shoulder to chat. At home, screens get in the way of quality time with your family. Another day goes by, and once again, your most important personal and professional goals are put on hold.\nWhat would be possible if you followed through on your best intentions? What could you accomplish if you could stay focused and overcome distractions? What if you had the power to become &quot;indistractable&quot;?\nInternational best-selling author, former Stanford lecturer, and behavioral design expert, Nir Eyal, wrote Silicon Valley&#39;s handbook for making technology habit-forming. Five years after publishing Hooked, Eyal reveals distraction&#39;s Achilles&#39; heel in his groundbreaking new book.\nIn Indistractable, Eyal reveals the hidden psychology driving us to distraction. He describes why solving the problem is not as simple as swearing off our devices: Abstinence is impractical and often makes us want more.\nEyal lays bare the secret of finally doing what you say you will do with a four-step, research-backed model. Indistractable reveals the key to getting the best out of technology, without letting it get the best of us.\nInside, Eyal overturns conventional wisdom and reveals:\nWhy distraction at work is a symptom of a dysfunctional company culture - and how to fix it\nWhat really drives human behavior and why &quot;time management is pain management&quot;\nWhy your relationships (and your sex life) depend on you becoming indistractable\nHow to raise indistractable children in an increasingly distracting world\nEmpowering and optimistic, Indistractable provides practical, novel techniques to control your time and attention - helping you live the life you really want.</p>\n"
  },
  {
    "slug": "tragic-design-1-jonathan-shariat-cynthia-savard-saucier",
    "title": "Tragic Design",
    "subtitle": "The Impact of Bad Product Design and How to Fix It",
    "edition": 1,
    "authors": [
      {
        "name": "Jonathan Shariat",
        "slug": "jonathan-shariat",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jonathan-shariat.json"
      },
      {
        "name": "Cynthia Savard Saucier",
        "slug": "cynthia-savard-saucier",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/cynthia-savard-saucier.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/tragic-design-1-jonathan-shariat-cynthia-savard-saucier.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/149192361X",
      "amazon_uk": "https://www.amazon.co.uk/dp/149192361X"
    },
    "description": "Bad design is everywhere, and its cost is much higher than we think. In this thought-provoking book, authors Jonathan Shariat and Cynthia Savard Saucier explain how poorly designed products can anger, sadden, exclude, and even kill people who use them. The designers responsible certainly didn't intend harm, so what can you do to avoid making similar mistakes?\nTragic Design examines real case studies that show how certain design choices adversely affected users, and includes in-depth interviews with authorities in the design industry. Pick up this book and learn how you can be an agent of change in the design community and at your company.\nYou'll explore:\n- Designs that can kill, including the bad interface that doomed a young cancer patient\n- Designs that anger, through impolite technology and dark patterns\n- How design can inadvertently cause emotional pain\n- Designs that exclude people through lack of accessibility, diversity, and justice\n- How to advocate for ethical design when it isn't easy to do so\n- Tools and techniques that can help you avoid harmful design decisions\n- Inspiring professionals who use design to improve our world",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/tragic-design-1-jonathan-shariat-cynthia-savard-saucier.json",
    "descriptionHtml": "<p>Bad design is everywhere, and its cost is much higher than we think. In this thought-provoking book, authors Jonathan Shariat and Cynthia Savard Saucier explain how poorly designed products can anger, sadden, exclude, and even kill people who use them. The designers responsible certainly didn&#39;t intend harm, so what can you do to avoid making similar mistakes?\nTragic Design examines real case studies that show how certain design choices adversely affected users, and includes in-depth interviews with authorities in the design industry. Pick up this book and learn how you can be an agent of change in the design community and at your company.\nYou&#39;ll explore:</p>\n<ul>\n<li>Designs that can kill, including the bad interface that doomed a young cancer patient</li>\n<li>Designs that anger, through impolite technology and dark patterns</li>\n<li>How design can inadvertently cause emotional pain</li>\n<li>Designs that exclude people through lack of accessibility, diversity, and justice</li>\n<li>How to advocate for ethical design when it isn&#39;t easy to do so</li>\n<li>Tools and techniques that can help you avoid harmful design decisions</li>\n<li>Inspiring professionals who use design to improve our world</li>\n</ul>\n"
  },
  {
    "slug": "linchpin-1-seth-godin",
    "title": "Linchpin",
    "subtitle": "Are You Indispensable?",
    "edition": 1,
    "authors": [
      {
        "name": "Seth Godin",
        "slug": "seth-godin",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/seth-godin.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/linchpin-1-seth-godin.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1591844096",
      "amazon_uk": "https://www.amazon.co.uk/dp/1591844096"
    },
    "description": "This life-changing manifesto shows how you have the potential to make a huge difference wherever you are.  Few authors have had the kind of lasting impact and global reach that Seth Godin has had. In a series of now-classic books that have been translated into 36 languages and reached millions of readers around the world, he has taught generations of readers how to make remarkable products and spread powerful ideas. In Linchpin, he turns his attention to the individual, and explains how anyone can make a significant impact within their organization.\nThere used to be two teams in every workplace: management and labor. Now there's a third team, the linchpins. These people figure out what to do when there's no rule book. They delight and challenge their customers and peers. They love their work, pour their best selves into it, and turn each day into a kind of art.\nHave you ever found a shortcut that others missed? Seen a new way to resolve a conflict? Made a connection with someone others couldn't reach? Even once? Then you have what it takes to become indispensable, by overcoming the resistance that holds people back. Linchpin will show you how to join the likes of...\n- Keith Johnson, who scours flea markets across the country to fill Anthropologie stores with unique pieces.\n- Jason Zimdars, a graphic designer who got his dream job at 37signals without a rรฉsumรฉ.\n- David, who works at Dean and Deluca coffee shop in New York. He sees every customer interaction as a chance to give a gift and is cherished in return.\nAs Godin writes, \"Every day I meet people who have so much to give but have been bullied enough or frightened enough to hold it back. It's time to stop complying with the system and draw your own map. You have brilliance in you, your contribution is essential, and the art you create is precious. Only you can do it, and you must.\"",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/linchpin-1-seth-godin.json",
    "descriptionHtml": "<p>This life-changing manifesto shows how you have the potential to make a huge difference wherever you are.  Few authors have had the kind of lasting impact and global reach that Seth Godin has had. In a series of now-classic books that have been translated into 36 languages and reached millions of readers around the world, he has taught generations of readers how to make remarkable products and spread powerful ideas. In Linchpin, he turns his attention to the individual, and explains how anyone can make a significant impact within their organization.\nThere used to be two teams in every workplace: management and labor. Now there&#39;s a third team, the linchpins. These people figure out what to do when there&#39;s no rule book. They delight and challenge their customers and peers. They love their work, pour their best selves into it, and turn each day into a kind of art.\nHave you ever found a shortcut that others missed? Seen a new way to resolve a conflict? Made a connection with someone others couldn&#39;t reach? Even once? Then you have what it takes to become indispensable, by overcoming the resistance that holds people back. Linchpin will show you how to join the likes of...</p>\n<ul>\n<li>Keith Johnson, who scours flea markets across the country to fill Anthropologie stores with unique pieces.</li>\n<li>Jason Zimdars, a graphic designer who got his dream job at 37signals without a rรฉsumรฉ.</li>\n<li>David, who works at Dean and Deluca coffee shop in New York. He sees every customer interaction as a chance to give a gift and is cherished in return.\nAs Godin writes, &quot;Every day I meet people who have so much to give but have been bullied enough or frightened enough to hold it back. It&#39;s time to stop complying with the system and draw your own map. You have brilliance in you, your contribution is essential, and the art you create is precious. Only you can do it, and you must.&quot;</li>\n</ul>\n"
  },
  {
    "slug": "on-writing-1-stephen-king",
    "title": "On Writing",
    "subtitle": "A Memoir of the Craft (A Memoir of the Craft (Reissue))",
    "edition": 1,
    "authors": [
      {
        "name": "Stephen King",
        "slug": "stephen-king",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stephen-king.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/on-writing-1-stephen-king.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1982159375",
      "amazon_uk": "https://www.amazon.co.uk/dp/1982159375"
    },
    "description": "Twentieth Anniversary Edition with Contributions from Joe Hill and Owen KingONE OF TIME MAGAZINE'S TOP 100 NONFICTION BOOKS OF ALL TIME\nImmensely helpful and illuminating to any aspiring writer, this special edition of Stephen King's critically lauded, million-copy bestseller shares the experiences, habits, and convictions that have shaped him and his work.\nโ€œLong live the Kingโ€ hailed Entertainment Weekly upon publication of Stephen King's On Writing. Part memoir, part master class by one of the bestselling authors of all time, this superb volume is a revealing and practical view of the writer's craft, comprising the basic tools of the trade every writer must have. King's advice is grounded in his vivid memories from childhood through his emergence as a writer, from his struggling early career to his widely reported, near-fatal accident in 1999โ€”and how the inextricable link between writing and living spurred his recovery. Brilliantly structured, friendly and inspiring, On Writing will empower and entertain everyone who reads itโ€”fans, writers, and anyone who loves a great story well told.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/on-writing-1-stephen-king.json",
    "descriptionHtml": "<p>Twentieth Anniversary Edition with Contributions from Joe Hill and Owen KingONE OF TIME MAGAZINE&#39;S TOP 100 NONFICTION BOOKS OF ALL TIME\nImmensely helpful and illuminating to any aspiring writer, this special edition of Stephen King&#39;s critically lauded, million-copy bestseller shares the experiences, habits, and convictions that have shaped him and his work.\nโ€œLong live the Kingโ€ hailed Entertainment Weekly upon publication of Stephen King&#39;s On Writing. Part memoir, part master class by one of the bestselling authors of all time, this superb volume is a revealing and practical view of the writer&#39;s craft, comprising the basic tools of the trade every writer must have. King&#39;s advice is grounded in his vivid memories from childhood through his emergence as a writer, from his struggling early career to his widely reported, near-fatal accident in 1999โ€”and how the inextricable link between writing and living spurred his recovery. Brilliantly structured, friendly and inspiring, On Writing will empower and entertain everyone who reads itโ€”fans, writers, and anyone who loves a great story well told.</p>\n"
  },
  {
    "slug": "start-ugly-1-david-duchemin",
    "title": "Start Ugly",
    "subtitle": "The Unexpected Path to Everyday Creativity",
    "edition": 1,
    "authors": [
      {
        "name": "David Duchemin",
        "slug": "david-duchemin",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/david-duchemin.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/start-ugly-1-david-duchemin.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0991755790",
      "amazon_uk": "https://www.amazon.co.uk/dp/0991755790"
    },
    "description": "The poet Goethe is credited as saying, \"What you can do, or dream you can, begin it. Boldness has genius, power, and magic in it. Begin it, and the work will be completed!\"\nIf only it were that easy.\nIn any creative effort, the beginning is the hard part, filled with fears and procrastinations, and---often most of all-the paralyzing desire to get it right on the first try (which almost never happens). Creativity is evolutionary; it begins with bad ideas and crappy first efforts and the moment we embrace this idea, not eschewing the ugly beginnings but mining them for possibilities, our everyday creativity flourishes.\nStart Ugly is a celebration of the messy creative process and a call to face the obstacles of that process with mindfulness and humanity. This is a book for anyone who has ever wished they were \"more creative.\" It's a plea to stop looking for the muses and inspiration before you do your best work. Equal parts needed encouragement to dream big and practical advice for getting your hands dirty, START UGLY is a soulful, at times irreverent, reminder that creativity is more the stuff of hard work and courage than it is the stuff of magic. And if there is magic at all to be found, it's in starting.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/start-ugly-1-david-duchemin.json",
    "descriptionHtml": "<p>The poet Goethe is credited as saying, &quot;What you can do, or dream you can, begin it. Boldness has genius, power, and magic in it. Begin it, and the work will be completed!&quot;\nIf only it were that easy.\nIn any creative effort, the beginning is the hard part, filled with fears and procrastinations, and---often most of all-the paralyzing desire to get it right on the first try (which almost never happens). Creativity is evolutionary; it begins with bad ideas and crappy first efforts and the moment we embrace this idea, not eschewing the ugly beginnings but mining them for possibilities, our everyday creativity flourishes.\nStart Ugly is a celebration of the messy creative process and a call to face the obstacles of that process with mindfulness and humanity. This is a book for anyone who has ever wished they were &quot;more creative.&quot; It&#39;s a plea to stop looking for the muses and inspiration before you do your best work. Equal parts needed encouragement to dream big and practical advice for getting your hands dirty, START UGLY is a soulful, at times irreverent, reminder that creativity is more the stuff of hard work and courage than it is the stuff of magic. And if there is magic at all to be found, it&#39;s in starting.</p>\n"
  },
  {
    "slug": "the-subtle-art-of-not-giving-a-fck-1-mark-manson",
    "title": "The Subtle Art of Not Giving a F*ck",
    "subtitle": "A Counterintuitive Approach to Living a Good Life",
    "edition": 1,
    "authors": [
      {
        "name": "Mark Manson",
        "slug": "mark-manson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mark-manson.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-subtle-art-of-not-giving-a-fck-1-mark-manson.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0062457713",
      "amazon_uk": "https://www.amazon.co.uk/dp/0062457713"
    },
    "description": "#1 New York Times Bestseller โ€ข More than 10 million Copies Sold\nIn this generation-defining self-help guide, a superstar blogger cuts through the crap to show us how to stop trying to be \"positive\" all the time so that we can truly become better, happier people.\nFor decades, we've been told that positive thinking is the key to a happy, rich life. \"F\\*\\*k positivity,\" Mark Manson says. \"Let's be honest, shit is f\\*\\*ked and we have to live with it.\" In his wildly popular Internet blog, Manson doesn't sugarcoat or equivocate. He tells it like it isโ€”a dose of raw, refreshing, honest truth that is sorely lacking today. The Subtle Art of Not Giving a F\\*\\*k is his antidote to the coddling, let's-all-feel-good mindset that has infected modern society and spoiled a generation, rewarding them with gold medals just for showing up.\nManson makes the argument, backed both by academic research and well-timed poop jokes, that improving our lives hinges not on our ability to turn lemons into lemonade, but on learning to stomach lemons better. Human beings are flawed and limitedโ€”\"not everybody can be extraordinary, there are winners and losers in society, and some of it is not fair or your fault.\" Manson advises us to get to know our limitations and accept them. Once we embrace our fears, faults, and uncertainties, once we stop running and avoiding and start confronting painful truths, we can begin to find the courage, perseverance, honesty, responsibility, curiosity, and forgiveness we seek.\nThere are only so many things we can give a f\\*\\*k about so we need to figure out which ones really matter, Manson makes clear. While money is nice, caring about what you do with your life is better, because true wealth is about experience. A much-needed grab-you-by-the-shoulders-and-look-you-in-the-eye moment of real-talk, filled with entertaining stories and profane, ruthless humor, The Subtle Art of Not Giving a F\\*ck is a refreshing slap for a generation to help them lead contented, grounded lives.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-subtle-art-of-not-giving-a-fck-1-mark-manson.json",
    "descriptionHtml": "<p>#1 New York Times Bestseller โ€ข More than 10 million Copies Sold\nIn this generation-defining self-help guide, a superstar blogger cuts through the crap to show us how to stop trying to be &quot;positive&quot; all the time so that we can truly become better, happier people.\nFor decades, we&#39;ve been told that positive thinking is the key to a happy, rich life. &quot;F**k positivity,&quot; Mark Manson says. &quot;Let&#39;s be honest, shit is f**ked and we have to live with it.&quot; In his wildly popular Internet blog, Manson doesn&#39;t sugarcoat or equivocate. He tells it like it isโ€”a dose of raw, refreshing, honest truth that is sorely lacking today. The Subtle Art of Not Giving a F**k is his antidote to the coddling, let&#39;s-all-feel-good mindset that has infected modern society and spoiled a generation, rewarding them with gold medals just for showing up.\nManson makes the argument, backed both by academic research and well-timed poop jokes, that improving our lives hinges not on our ability to turn lemons into lemonade, but on learning to stomach lemons better. Human beings are flawed and limitedโ€”&quot;not everybody can be extraordinary, there are winners and losers in society, and some of it is not fair or your fault.&quot; Manson advises us to get to know our limitations and accept them. Once we embrace our fears, faults, and uncertainties, once we stop running and avoiding and start confronting painful truths, we can begin to find the courage, perseverance, honesty, responsibility, curiosity, and forgiveness we seek.\nThere are only so many things we can give a f**k about so we need to figure out which ones really matter, Manson makes clear. While money is nice, caring about what you do with your life is better, because true wealth is about experience. A much-needed grab-you-by-the-shoulders-and-look-you-in-the-eye moment of real-talk, filled with entertaining stories and profane, ruthless humor, The Subtle Art of Not Giving a F*ck is a refreshing slap for a generation to help them lead contented, grounded lives.</p>\n"
  },
  {
    "slug": "web-design-playground-1-paul-mcfedries",
    "title": "Web Design Playground",
    "subtitle": "HTML & CSS the Interactive Way",
    "edition": 1,
    "authors": [
      {
        "name": "Paul McFedries",
        "slug": "paul-mcfedries",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/paul-mcfedries.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/web-design-playground-1-paul-mcfedries.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617294403",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617294403"
    },
    "description": "Web Design Playground takes you step by step from writing your first line of HTML to creating interesting, attractive web pages. In this project-based book, you'll use a custom online workspace to design websites, product pages, photo galleries, and more. Don't worry about setting up your own servers and domain namesโ€”the book comes with a free \"playground\" which lets you experiment without any of that! You can concentrate on core skills like adding images and video and laying out the page, plus learning typography, responsive design, and the other tools of the web trade.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/web-design-playground-1-paul-mcfedries.json",
    "descriptionHtml": "<p>Web Design Playground takes you step by step from writing your first line of HTML to creating interesting, attractive web pages. In this project-based book, you&#39;ll use a custom online workspace to design websites, product pages, photo galleries, and more. Don&#39;t worry about setting up your own servers and domain namesโ€”the book comes with a free &quot;playground&quot; which lets you experiment without any of that! You can concentrate on core skills like adding images and video and laying out the page, plus learning typography, responsive design, and the other tools of the web trade.</p>\n"
  },
  {
    "slug": "the-principles-of-beautiful-web-design-1-jason-beaird-alex-walker-james-george",
    "title": "The Principles of Beautiful Web Design",
    "edition": 1,
    "authors": [
      {
        "name": "Jason Beaird",
        "slug": "jason-beaird",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jason-beaird.json"
      },
      {
        "name": "Alex Walker",
        "slug": "alex-walker",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/alex-walker.json"
      },
      {
        "name": "James George",
        "slug": "james-george",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/james-george.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-principles-of-beautiful-web-design-1-jason-beaird-alex-walker-james-george.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1925836363",
      "amazon_uk": "https://www.amazon.co.uk/dp/1925836363"
    },
    "description": "The Principles of Beautiful Web Design is the ideal book for anyone who wants to design stunning websites that provide a great user experience. Perhaps you're a developer who wants to understand how to make your applications more visually appealing, or you're a novice who wants to start on the path to becoming a designer.\nThis book will teach you how to:\n- Understand what makes \"good design,\" from discovery through to implementation\n- Use color effectively, develop color schemes, and create a palette\n- Create pleasing layouts using grids, the rule of thirds, and symmetry\n- Employ textures: lines, points, shapes, volumes, and depth\n- Apply typography to make ordinary designs look great\n- Choose, edit, and position effective imagery\nThis easy-to-follow guide is illustrated with beautiful, full-color examples, and will lead you through the process of creating great designs from start to finish.\nThe fourth edition of this bestselling book has been greatly revised and now features:\n- Updated and expanded coverage responsive web design techniques\n- A new sample project\n- New sections on pattern libraries and how design fits on modern app development workflows\n- Common user-interface patterns and resources",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-principles-of-beautiful-web-design-1-jason-beaird-alex-walker-james-george.json",
    "descriptionHtml": "<p>The Principles of Beautiful Web Design is the ideal book for anyone who wants to design stunning websites that provide a great user experience. Perhaps you&#39;re a developer who wants to understand how to make your applications more visually appealing, or you&#39;re a novice who wants to start on the path to becoming a designer.\nThis book will teach you how to:</p>\n<ul>\n<li>Understand what makes &quot;good design,&quot; from discovery through to implementation</li>\n<li>Use color effectively, develop color schemes, and create a palette</li>\n<li>Create pleasing layouts using grids, the rule of thirds, and symmetry</li>\n<li>Employ textures: lines, points, shapes, volumes, and depth</li>\n<li>Apply typography to make ordinary designs look great</li>\n<li>Choose, edit, and position effective imagery\nThis easy-to-follow guide is illustrated with beautiful, full-color examples, and will lead you through the process of creating great designs from start to finish.\nThe fourth edition of this bestselling book has been greatly revised and now features:</li>\n<li>Updated and expanded coverage responsive web design techniques</li>\n<li>A new sample project</li>\n<li>New sections on pattern libraries and how design fits on modern app development workflows</li>\n<li>Common user-interface patterns and resources</li>\n</ul>\n"
  },
  {
    "slug": "building-the-web-of-things-1-dominique-guinard-vlad-trifa",
    "title": "Building the Web of Things",
    "subtitle": "With examples in Node.js and Raspberry Pi",
    "edition": 1,
    "authors": [
      {
        "name": "Dominique Guinard",
        "slug": "dominique-guinard",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/dominique-guinard.json"
      },
      {
        "name": "Vlad Trifa",
        "slug": "vlad-trifa",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/vlad-trifa.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/building-the-web-of-things-1-dominique-guinard-vlad-trifa.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617292680",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617292680"
    },
    "description": "Building the Web of Things is a guide to using cutting-edge web technologies to build the IoT. This step-by-step book teaches you how to use web protocols to connect real-world devices to the web, including the Semantic and Social Webs. Along the way you'll gain vital concepts as you follow instructions for making Web of Things devices. By the end, you'll have the practical skills you need to implement your own web-connected products and services.What's Inside\n- Introduction to IoT protocols and devices\n- Connect electronic actuators and sensors (GPIO) to a Raspberry Pi\n- Implement standard REST and Pub/Sub APIs with Node.js on embedded systems\n- Learn about IoT protocols like MQTT and CoAP and integrate them to the Web of Things\n- Use the Semantic Web (JSON-LD, RDFa, etc.) to discover and find Web Things\n- Share Things via Social Networks to create the Social Web of Things\n- Build a web-based smart home with HTTP and WebSocket\n- Compose physical mashups with EVRYTHNG, Node-RED, and IFTTT",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/building-the-web-of-things-1-dominique-guinard-vlad-trifa.json",
    "descriptionHtml": "<p>Building the Web of Things is a guide to using cutting-edge web technologies to build the IoT. This step-by-step book teaches you how to use web protocols to connect real-world devices to the web, including the Semantic and Social Webs. Along the way you&#39;ll gain vital concepts as you follow instructions for making Web of Things devices. By the end, you&#39;ll have the practical skills you need to implement your own web-connected products and services.What&#39;s Inside</p>\n<ul>\n<li>Introduction to IoT protocols and devices</li>\n<li>Connect electronic actuators and sensors (GPIO) to a Raspberry Pi</li>\n<li>Implement standard REST and Pub/Sub APIs with Node.js on embedded systems</li>\n<li>Learn about IoT protocols like MQTT and CoAP and integrate them to the Web of Things</li>\n<li>Use the Semantic Web (JSON-LD, RDFa, etc.) to discover and find Web Things</li>\n<li>Share Things via Social Networks to create the Social Web of Things</li>\n<li>Build a web-based smart home with HTTP and WebSocket</li>\n<li>Compose physical mashups with EVRYTHNG, Node-RED, and IFTTT</li>\n</ul>\n"
  },
  {
    "slug": "mastering-api-architecture-1-james-gough-daniel-bryant-matthew-auburn",
    "title": "Mastering API Architecture",
    "subtitle": "Design, Operate, and Evolve API-Based Systems",
    "edition": 1,
    "authors": [
      {
        "name": "James Gough",
        "slug": "james-gough",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/james-gough.json"
      },
      {
        "name": "Daniel Bryant",
        "slug": "daniel-bryant",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/daniel-bryant.json"
      },
      {
        "name": "Matthew Auburn",
        "slug": "matthew-auburn",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/matthew-auburn.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/mastering-api-architecture-1-james-gough-daniel-bryant-matthew-auburn.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492090638",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492090638"
    },
    "description": "Most organizations with a web presence build and operate APIs; the doorway for customers to interact with the company's services. Designing, building, and managing these critical programs affect everyone in the organization, from engineers and product owners to C-suite executives. But the real challenge for developers and solution architects is creating an API platform from the ground up.\nWith this practical book, you'll learn strategies for building and testing REST APIs that use API gateways to combine offerings at the microservice level. Authors James Gough, Daniel Bryant, and Matthew Auburn demonstrate how simple additions to this infrastructure can help engineers and organizations migrate to the cloud; and open the opportunity to connect internal services using technologies like a service mesh.\n- Learn API fundamentals and architectural patterns for building an API platform\n- Use practical examples to understand how to design, build, and test API-based systems\n- Deploy, operate, and configure key components of an API platform\n- Use API gateways and service meshes appropriately, based on case studies\n- Understand core security and common vulnerabilities in API architecture\n- Secure data and APIs using threat modeling and technologies like OAuth2 and TLS\n- Learn how to evolve existing systems toward API- and cloud-based architectures",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/mastering-api-architecture-1-james-gough-daniel-bryant-matthew-auburn.json",
    "descriptionHtml": "<p>Most organizations with a web presence build and operate APIs; the doorway for customers to interact with the company&#39;s services. Designing, building, and managing these critical programs affect everyone in the organization, from engineers and product owners to C-suite executives. But the real challenge for developers and solution architects is creating an API platform from the ground up.\nWith this practical book, you&#39;ll learn strategies for building and testing REST APIs that use API gateways to combine offerings at the microservice level. Authors James Gough, Daniel Bryant, and Matthew Auburn demonstrate how simple additions to this infrastructure can help engineers and organizations migrate to the cloud; and open the opportunity to connect internal services using technologies like a service mesh.</p>\n<ul>\n<li>Learn API fundamentals and architectural patterns for building an API platform</li>\n<li>Use practical examples to understand how to design, build, and test API-based systems</li>\n<li>Deploy, operate, and configure key components of an API platform</li>\n<li>Use API gateways and service meshes appropriately, based on case studies</li>\n<li>Understand core security and common vulnerabilities in API architecture</li>\n<li>Secure data and APIs using threat modeling and technologies like OAuth2 and TLS</li>\n<li>Learn how to evolve existing systems toward API- and cloud-based architectures</li>\n</ul>\n"
  },
  {
    "slug": "nodejs-design-patterns-third-edition-3-mario-casciaro-luciano-mammino",
    "title": "Node.js Design Patterns - Third edition",
    "subtitle": "Design and implement production-grade Node.js applications using proven patterns and techniques",
    "edition": 3,
    "authors": [
      {
        "name": "Mario Casciaro",
        "slug": "mario-casciaro",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mario-casciaro.json"
      },
      {
        "name": "Luciano Mammino",
        "slug": "luciano-mammino",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/luciano-mammino.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/nodejs-design-patterns-third-edition-3-mario-casciaro-luciano-mammino.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1839214112",
      "amazon_uk": "https://www.amazon.co.uk/dp/1839214112"
    },
    "description": "Learn proven patterns, techniques, and tricks to take full advantage of the Node.js platform. Master well-known design principles to create applications that are readable, extensible, and that can grow big.\nWhat you will learn\n- Become comfortable with writing asynchronous code by leveraging callbacks, promises, and the async/await syntax\n- Leverage Node.js streams to create data-driven asynchronous processing pipelines\n- Implement well-known software design patterns to create production grade applications\n- Share code between Node.js and the browser and take advantage of full-stack JavaScript\n- Build and scale microservices and distributed systems powered by Node.js\n- Use Node.js in conjunction with other powerful technologies such as Redis, RabbitMQ, ZeroMQ, and LevelDB",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/nodejs-design-patterns-third-edition-3-mario-casciaro-luciano-mammino.json",
    "descriptionHtml": "<p>Learn proven patterns, techniques, and tricks to take full advantage of the Node.js platform. Master well-known design principles to create applications that are readable, extensible, and that can grow big.\nWhat you will learn</p>\n<ul>\n<li>Become comfortable with writing asynchronous code by leveraging callbacks, promises, and the async/await syntax</li>\n<li>Leverage Node.js streams to create data-driven asynchronous processing pipelines</li>\n<li>Implement well-known software design patterns to create production grade applications</li>\n<li>Share code between Node.js and the browser and take advantage of full-stack JavaScript</li>\n<li>Build and scale microservices and distributed systems powered by Node.js</li>\n<li>Use Node.js in conjunction with other powerful technologies such as Redis, RabbitMQ, ZeroMQ, and LevelDB</li>\n</ul>\n"
  },
  {
    "slug": "distributed-systems-with-nodejs-1-thomas-hunter-ii",
    "title": "Distributed Systems with Node.js",
    "subtitle": "Building Enterprise-Ready Backend Services",
    "edition": 1,
    "authors": [
      {
        "name": "Thomas Hunter II",
        "slug": "thomas-hunter-ii",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/thomas-hunter-ii.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/distributed-systems-with-nodejs-1-thomas-hunter-ii.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492077291",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492077291"
    },
    "description": "Many companies, from startups to Fortune 500 companies alike, use Node.js to build performant backend services. And engineers love Node.js for its approachable API and familiar syntax. Backed by the world's largest package repository, Node's enterprise foothold is only expected to grow.\nIn this hands-on guide, author Thomas Hunter II proves that Node.js is just as capable as traditional enterprise platforms for building services that are observable, scalable, and resilient. Intermediate to advanced Node.js developers will find themselves integrating application code with a breadth of tooling from each layer of a modern service stack.\n- Learn why running redundant copies of the same Node.js service is necessary\n- Know which protocol to choose, depending on the situation\n- Fine-tune your application containers for use in production\n- Track down errors in a distributed setting to determine which service is at fault\n- Simplify app code and increase performance by offloading work to a reverse proxy\n- Build dashboards to monitor service health and throughput\n- Find out why so many different tools are required when operating in an enterprise environment",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/distributed-systems-with-nodejs-1-thomas-hunter-ii.json",
    "descriptionHtml": "<p>Many companies, from startups to Fortune 500 companies alike, use Node.js to build performant backend services. And engineers love Node.js for its approachable API and familiar syntax. Backed by the world&#39;s largest package repository, Node&#39;s enterprise foothold is only expected to grow.\nIn this hands-on guide, author Thomas Hunter II proves that Node.js is just as capable as traditional enterprise platforms for building services that are observable, scalable, and resilient. Intermediate to advanced Node.js developers will find themselves integrating application code with a breadth of tooling from each layer of a modern service stack.</p>\n<ul>\n<li>Learn why running redundant copies of the same Node.js service is necessary</li>\n<li>Know which protocol to choose, depending on the situation</li>\n<li>Fine-tune your application containers for use in production</li>\n<li>Track down errors in a distributed setting to determine which service is at fault</li>\n<li>Simplify app code and increase performance by offloading work to a reverse proxy</li>\n<li>Build dashboards to monitor service health and throughput</li>\n<li>Find out why so many different tools are required when operating in an enterprise environment</li>\n</ul>\n"
  },
  {
    "slug": "node-cookbook-4-bethany-griggs",
    "title": "Node Cookbook",
    "subtitle": "Discover solutions, techniques, and best practices for server-side web development with Node.js 14",
    "edition": 4,
    "authors": [
      {
        "name": "Bethany Griggs",
        "slug": "bethany-griggs",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/bethany-griggs.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/node-cookbook-4-bethany-griggs.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1838558756",
      "amazon_uk": "https://www.amazon.co.uk/dp/1838558756"
    },
    "description": "A key technology for building web applications and tooling, Node.js brings JavaScript to the server enabling full-stack development in a common language. This fourth edition of the Node Cookbook is updated with the latest Node.js features and the evolution of the Node.js framework ecosystems.\nThis practical guide will help you to get started with creating, debugging, and deploying your Node.js applications and cover solutions to common problems, along with tips to avoid pitfalls. You'll become familiar with the Node.js development model by learning how to handle files and build simple web applications and then explore established and emerging Node.js web frameworks such as Express.js and Fastify. As you advance, you'll discover techniques for detecting problems in your applications, handling security concerns, and deploying your applications to the cloud. This recipe-based guide will help you to easily navigate through various core topics of server-side web application development with Node.js.\nBy the end of this Node book, you'll be well-versed with core Node.js concepts and have gained the knowledge to start building performant and scalable Node.js applications.\nWhat you will learn\n- Understand the Node.js asynchronous programming model\n- Create simple Node.js applications using modules and web frameworks\n- Develop simple web applications using web frameworks such as Fastify and Express\n- Discover tips for testing, optimizing, and securing your web applications\n- Create and deploy Node.js microservices\n- Debug and diagnose issues in your Node.js applications",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/node-cookbook-4-bethany-griggs.json",
    "descriptionHtml": "<p>A key technology for building web applications and tooling, Node.js brings JavaScript to the server enabling full-stack development in a common language. This fourth edition of the Node Cookbook is updated with the latest Node.js features and the evolution of the Node.js framework ecosystems.\nThis practical guide will help you to get started with creating, debugging, and deploying your Node.js applications and cover solutions to common problems, along with tips to avoid pitfalls. You&#39;ll become familiar with the Node.js development model by learning how to handle files and build simple web applications and then explore established and emerging Node.js web frameworks such as Express.js and Fastify. As you advance, you&#39;ll discover techniques for detecting problems in your applications, handling security concerns, and deploying your applications to the cloud. This recipe-based guide will help you to easily navigate through various core topics of server-side web application development with Node.js.\nBy the end of this Node book, you&#39;ll be well-versed with core Node.js concepts and have gained the knowledge to start building performant and scalable Node.js applications.\nWhat you will learn</p>\n<ul>\n<li>Understand the Node.js asynchronous programming model</li>\n<li>Create simple Node.js applications using modules and web frameworks</li>\n<li>Develop simple web applications using web frameworks such as Fastify and Express</li>\n<li>Discover tips for testing, optimizing, and securing your web applications</li>\n<li>Create and deploy Node.js microservices</li>\n<li>Debug and diagnose issues in your Node.js applications</li>\n</ul>\n"
  },
  {
    "slug": "ultimate-nodejs-for-cross-platform-app-development-1-ramesh-kumar",
    "title": "Ultimate Node.js for Cross-Platform App Development",
    "subtitle": "Learn to Build Robust, Scalable, and Performant Server-Side JavaScript Applications with Node.js (English Edition)",
    "edition": 1,
    "authors": [
      {
        "name": "Ramesh Kumar",
        "slug": "ramesh-kumar",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ramesh-kumar.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/ultimate-nodejs-for-cross-platform-app-development-1-ramesh-kumar.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/8196815158",
      "amazon_uk": "https://www.amazon.co.uk/dp/8196815158"
    },
    "description": "Unlock the full potential of Node.js for modern web development with this comprehensive handbook to developing applications and services.\nThe book will cover the fundamentals to advanced techniques, and explore the intricacies of building powerful applications. You will master Express server creation, develop RESTful APIs with efficient routing, and dive into MongoDB for seamless data persistence.\nIt will uncover the nuances of template engines, middleware, and robust authentication methods. Leverage Socket.IO for real-time capabilities and adeptly handle errors with effective logging. The projects will double as versatile boilerplates for kickstarting your own development endeavors.\nIn the later chapter, you will learn Test-Driven Development with Mocha, gain insights into debugging, and perfect the art of building and deploying Node.js applications.\nEach example in the book adheres to common best practices, providing valuable insights to help you avoid common pitfalls. Designed as both a learning resource and a reference guide, this book equips you with the knowledge to tackle challenging problems at any stage of development.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/ultimate-nodejs-for-cross-platform-app-development-1-ramesh-kumar.json",
    "descriptionHtml": "<p>Unlock the full potential of Node.js for modern web development with this comprehensive handbook to developing applications and services.\nThe book will cover the fundamentals to advanced techniques, and explore the intricacies of building powerful applications. You will master Express server creation, develop RESTful APIs with efficient routing, and dive into MongoDB for seamless data persistence.\nIt will uncover the nuances of template engines, middleware, and robust authentication methods. Leverage Socket.IO for real-time capabilities and adeptly handle errors with effective logging. The projects will double as versatile boilerplates for kickstarting your own development endeavors.\nIn the later chapter, you will learn Test-Driven Development with Mocha, gain insights into debugging, and perfect the art of building and deploying Node.js applications.\nEach example in the book adheres to common best practices, providing valuable insights to help you avoid common pitfalls. Designed as both a learning resource and a reference guide, this book equips you with the knowledge to tackle challenging problems at any stage of development.</p>\n"
  },
  {
    "slug": "event-driven-architecture-in-golang-1-michael-stack",
    "title": "Event-Driven Architecture in Golang",
    "subtitle": "Building complex systems with asynchronicity and eventual consistency",
    "edition": 1,
    "authors": [
      {
        "name": "Michael Stack",
        "slug": "michael-stack",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-stack.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/event-driven-architecture-in-golang-1-michael-stack.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1803238011",
      "amazon_uk": "https://www.amazon.co.uk/dp/1803238011"
    },
    "description": "Event-driven architecture in Golang is an approach used to develop applications that shares state changes asynchronously, internally, and externally using messages. EDA applications are better suited at handling situations that need to scale up quickly and the chances of individual component failures are less likely to bring your system crashing down. This is why EDA is a great thing to learn and this book is designed to get you started with the help of step-by-step explanations of essential concepts, practical examples, and more.\nYou'll begin building event-driven microservices, including patterns to handle data consistency and resiliency. Not only will you learn the patterns behind event-driven microservices but also how to communicate using asynchronous messaging with event streams. You'll then build an application made of several microservices that communicates using both choreographed and orchestrated messaging.\nBy the end of this book, you'll be able to build and deploy your own event-driven microservices using asynchronous communication.\nWhat You Will Learn:\n- Understand different event-driven patterns and best practices\n- Plan and design your software architecture with ease\n- Track changes and updates effectively using event sourcing\n- Test and deploy your sample software application with ease\n- Monitor and improve the performance of your software architecture",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/event-driven-architecture-in-golang-1-michael-stack.json",
    "descriptionHtml": "<p>Event-driven architecture in Golang is an approach used to develop applications that shares state changes asynchronously, internally, and externally using messages. EDA applications are better suited at handling situations that need to scale up quickly and the chances of individual component failures are less likely to bring your system crashing down. This is why EDA is a great thing to learn and this book is designed to get you started with the help of step-by-step explanations of essential concepts, practical examples, and more.\nYou&#39;ll begin building event-driven microservices, including patterns to handle data consistency and resiliency. Not only will you learn the patterns behind event-driven microservices but also how to communicate using asynchronous messaging with event streams. You&#39;ll then build an application made of several microservices that communicates using both choreographed and orchestrated messaging.\nBy the end of this book, you&#39;ll be able to build and deploy your own event-driven microservices using asynchronous communication.\nWhat You Will Learn:</p>\n<ul>\n<li>Understand different event-driven patterns and best practices</li>\n<li>Plan and design your software architecture with ease</li>\n<li>Track changes and updates effectively using event sourcing</li>\n<li>Test and deploy your sample software application with ease</li>\n<li>Monitor and improve the performance of your software architecture</li>\n</ul>\n"
  },
  {
    "slug": "javascript-7-david-flanagan",
    "title": "JavaScript",
    "subtitle": "The Definitive Guide",
    "edition": 7,
    "authors": [
      {
        "name": "David Flanagan",
        "slug": "david-flanagan",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/david-flanagan.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/javascript-7-david-flanagan.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1491952024",
      "amazon_uk": "https://www.amazon.co.uk/dp/1491952024"
    },
    "description": "JavaScript is the programming language of the web and is used by more software developers today than any other programming language. For nearly 25 years this best seller has been the go-to guide for JavaScript programmers. The seventh edition is fully updated to cover the 2020 version of JavaScript, and new chapters cover classes, modules, iterators, generators, Promises, async/await, and metaprogramming. You'll find illuminating and engaging example code throughout.\nThis book is for programmers who want to learn JavaScript and for web developers who want to take their understanding and mastery to the next level. It begins by explaining the JavaScript language itself, in detail, from the bottom up. It then builds on that foundation to cover the web platform and Node.js.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/javascript-7-david-flanagan.json",
    "descriptionHtml": "<p>JavaScript is the programming language of the web and is used by more software developers today than any other programming language. For nearly 25 years this best seller has been the go-to guide for JavaScript programmers. The seventh edition is fully updated to cover the 2020 version of JavaScript, and new chapters cover classes, modules, iterators, generators, Promises, async/await, and metaprogramming. You&#39;ll find illuminating and engaging example code throughout.\nThis book is for programmers who want to learn JavaScript and for web developers who want to take their understanding and mastery to the next level. It begins by explaining the JavaScript language itself, in detail, from the bottom up. It then builds on that foundation to cover the web platform and Node.js.</p>\n"
  },
  {
    "slug": "full-stack-graphql-applications-1-william-lyon",
    "title": "Full Stack GraphQL Applications",
    "subtitle": "With React, Node.js, and Neo4j",
    "edition": 1,
    "authors": [
      {
        "name": "William Lyon",
        "slug": "william-lyon",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/william-lyon.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/full-stack-graphql-applications-1-william-lyon.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617297038",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617297038"
    },
    "description": "Build hyper-fast and hyper-efficient web applications with GraphQL! This practical, comprehensive guide introduces the powerful GRANDStack for developing full stack web applications based in graph data structures.\nThe GraphQL query language radically reduces over-fetching or under-fetching of data by constructing precise graph-based data requests. In Full Stack GraphQL Applications you'll learn how to build graph-aware web applications that take full advantage of GraphQL's amazing efficiency. Neo4j's William Lyon teaches you everything you need to know to design, deploy, and maintain a GraphQL API from scratch. He reveals how you can build your web apps with GraphQL, React, Apollo, and Neo4j Database, aka โ€œthe GRANDstack,โ€ to get maximum performance out of GraphQL.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/full-stack-graphql-applications-1-william-lyon.json",
    "descriptionHtml": "<p>Build hyper-fast and hyper-efficient web applications with GraphQL! This practical, comprehensive guide introduces the powerful GRANDStack for developing full stack web applications based in graph data structures.\nThe GraphQL query language radically reduces over-fetching or under-fetching of data by constructing precise graph-based data requests. In Full Stack GraphQL Applications you&#39;ll learn how to build graph-aware web applications that take full advantage of GraphQL&#39;s amazing efficiency. Neo4j&#39;s William Lyon teaches you everything you need to know to design, deploy, and maintain a GraphQL API from scratch. He reveals how you can build your web apps with GraphQL, React, Apollo, and Neo4j Database, aka โ€œthe GRANDstack,โ€ to get maximum performance out of GraphQL.</p>\n"
  },
  {
    "slug": "modern-javascript-for-the-impatient-1-cay-horstmann",
    "title": "Modern JavaScript for the Impatient",
    "edition": 1,
    "authors": [
      {
        "name": "Cay Horstmann",
        "slug": "cay-horstmann",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/cay-horstmann.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/modern-javascript-for-the-impatient-1-cay-horstmann.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0136502148",
      "amazon_uk": "https://www.amazon.co.uk/dp/0136502148"
    },
    "description": "Exploit the Power of Modern JavaScript and Avoid the PitfallsJavaScript was originally designed for small-scale programming in web browsers, but modern JavaScript is radically different. Nowadays, JavaScript programmers actively embrace functional, object-oriented, and asynchronous programming, while deprecating error-prone concepts from the past. Modern JavaScript for the Impatient is a complete yet concise guide to JavaScript E6 and beyond. Rather than first requiring you to learn and transition from older versions, it helps you quickly get productive with today's far more powerful versions and rapidly move from languages such as Java, C#, C, or C++.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/modern-javascript-for-the-impatient-1-cay-horstmann.json",
    "descriptionHtml": "<p>Exploit the Power of Modern JavaScript and Avoid the PitfallsJavaScript was originally designed for small-scale programming in web browsers, but modern JavaScript is radically different. Nowadays, JavaScript programmers actively embrace functional, object-oriented, and asynchronous programming, while deprecating error-prone concepts from the past. Modern JavaScript for the Impatient is a complete yet concise guide to JavaScript E6 and beyond. Rather than first requiring you to learn and transition from older versions, it helps you quickly get productive with today&#39;s far more powerful versions and rapidly move from languages such as Java, C#, C, or C++.</p>\n"
  },
  {
    "slug": "the-complete-developer-1-martin-krause",
    "title": "The Complete Developer",
    "subtitle": "Master the Full Stack with TypeScript, React, Next.js, MongoDB, and Docker",
    "edition": 1,
    "authors": [
      {
        "name": "Martin Krause",
        "slug": "martin-krause",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/martin-krause.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-complete-developer-1-martin-krause.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1718503288",
      "amazon_uk": "https://www.amazon.co.uk/dp/1718503288"
    },
    "description": "A hands-on, beginner-friendly approach to developing complete web applications from the ground up, using JavaScript and its most popular frameworks, including Node.js and React.js.Whether you've been in the developer kitchen for decades or are just taking the plunge to do it yourself, The Complete Developer will show you how to build and implement every component of a modern stackโ€”from scratch.\nYou'll go from a React-driven frontend to a fully fleshed-out backend with Mongoose, MongoDB, and a complete set of REST and GraphQL APIs, and back again through the whole Next.js stack.\nThe book's easy-to-follow, step-by-step recipes will teach you how to build a web server with Express.js, create custom API routes, deploy applications via self-contained microservices, and add a reactive, component-based UI. You'll leverage command line tools and full-stack frameworks to build an application whose no-effort user management rides on GitHub logins.\nWhether you're an experienced software engineer or new to DIY web development, The Complete Developer will teach you to succeed with the modern full stack. After all, control matters.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-complete-developer-1-martin-krause.json",
    "descriptionHtml": "<p>A hands-on, beginner-friendly approach to developing complete web applications from the ground up, using JavaScript and its most popular frameworks, including Node.js and React.js.Whether you&#39;ve been in the developer kitchen for decades or are just taking the plunge to do it yourself, The Complete Developer will show you how to build and implement every component of a modern stackโ€”from scratch.\nYou&#39;ll go from a React-driven frontend to a fully fleshed-out backend with Mongoose, MongoDB, and a complete set of REST and GraphQL APIs, and back again through the whole Next.js stack.\nThe book&#39;s easy-to-follow, step-by-step recipes will teach you how to build a web server with Express.js, create custom API routes, deploy applications via self-contained microservices, and add a reactive, component-based UI. You&#39;ll leverage command line tools and full-stack frameworks to build an application whose no-effort user management rides on GitHub logins.\nWhether you&#39;re an experienced software engineer or new to DIY web development, The Complete Developer will teach you to succeed with the modern full stack. After all, control matters.</p>\n"
  },
  {
    "slug": "learn-react-with-typescript-second-edition-2-carl-rippon",
    "title": "Learn React with TypeScript - Second Edition",
    "subtitle": "A beginner's guide to reactive web development with React 18 and TypeScript",
    "edition": 2,
    "authors": [
      {
        "name": "Carl Rippon",
        "slug": "carl-rippon",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/carl-rippon.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/learn-react-with-typescript-second-edition-2-carl-rippon.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1804614203",
      "amazon_uk": "https://www.amazon.co.uk/dp/1804614203"
    },
    "description": "Reading, navigating, and debugging a large frontend codebase is a major issue faced by frontend developers. This book is designed to help web developers like you learn about ReactJS and TypeScript, both of which power large-scale apps for many organizations.\nThis second edition of Learn React with TypeScript is updated, enhanced, and improved to cover new features of React 18 including hooks, state management libraries, and features of TypeScript 4. The book will enable you to create well-structured and reusable React components that are easy to read and maintain, leveraging modern design patterns.\nYou'll be able to ensure that all your components are type-safe, making the most of TypeScript features, including some advanced types. You'll also learn how to manage complex states using Redux and how to interact with a GraphQL web API. Finally, you'll discover how to write robust unit tests for React components using Jest.\nThis book is for experienced frontend developers looking to build large scale web applications using React and TypeScript. Intermediate knowledge of JavaScript, HTML and CSS is a prerequisite.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/learn-react-with-typescript-second-edition-2-carl-rippon.json",
    "descriptionHtml": "<p>Reading, navigating, and debugging a large frontend codebase is a major issue faced by frontend developers. This book is designed to help web developers like you learn about ReactJS and TypeScript, both of which power large-scale apps for many organizations.\nThis second edition of Learn React with TypeScript is updated, enhanced, and improved to cover new features of React 18 including hooks, state management libraries, and features of TypeScript 4. The book will enable you to create well-structured and reusable React components that are easy to read and maintain, leveraging modern design patterns.\nYou&#39;ll be able to ensure that all your components are type-safe, making the most of TypeScript features, including some advanced types. You&#39;ll also learn how to manage complex states using Redux and how to interact with a GraphQL web API. Finally, you&#39;ll discover how to write robust unit tests for React components using Jest.\nThis book is for experienced frontend developers looking to build large scale web applications using React and TypeScript. Intermediate knowledge of JavaScript, HTML and CSS is a prerequisite.</p>\n"
  },
  {
    "slug": "hacking-the-system-design-interview-1-stanley-chiang",
    "title": "Hacking the System Design Interview",
    "subtitle": "Real Big Tech Interview Questions and In-depth Solutions",
    "edition": 1,
    "authors": [
      {
        "name": "Stanley Chiang",
        "slug": "stanley-chiang",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stanley-chiang.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/hacking-the-system-design-interview-1-stanley-chiang.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/B0B7QHRK5Q",
      "amazon_uk": "https://www.amazon.co.uk/dp/B0B7QHRK5Q"
    },
    "description": "Written by a software engineer at Google, this book will teach you how to ace the system design interview. This book includes real interview questions based on hundreds of interviews conducted at big tech companies, and their detailed solutions. Learn software and system fundamentals in clear and engaging lessons, distilled from 15+ years of experience.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/hacking-the-system-design-interview-1-stanley-chiang.json",
    "descriptionHtml": "<p>Written by a software engineer at Google, this book will teach you how to ace the system design interview. This book includes real interview questions based on hundreds of interviews conducted at big tech companies, and their detailed solutions. Learn software and system fundamentals in clear and engaging lessons, distilled from 15+ years of experience.</p>\n"
  },
  {
    "slug": "the-road-to-graphql-1-robin-wieruch",
    "title": "The Road to GraphQL",
    "subtitle": "Your journey to master pragmatic GraphQL in JavaScript with React.js and Node.js",
    "edition": 1,
    "authors": [
      {
        "name": "Robin Wieruch",
        "slug": "robin-wieruch",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/robin-wieruch.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-road-to-graphql-1-robin-wieruch.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1730853935",
      "amazon_uk": "https://www.amazon.co.uk/dp/1730853935"
    },
    "description": "The Road to GraphQL is your personal journey to master pragmatic GraphQL in JavaScript. The book is full with applications you are going to build along the way with React.js and Node.js. Afterward, you will be able to implement full-stack JavaScript applications.\nI wrote the The Road to GraphQL over the last year, while building several GraphQL applications for my clients and for myself. During this time, I came to understand the practical genius of GraphQL, and how it dramatically improves communication in client-server architectures. Not only does it improve the interface between the client and the server, it also enhances client-side state management by eliminating remote data management. Sophisticated GraphQL libraries like Apollo Client provide powerful features like caching, optimistic UI, and data prefetching for free. This book covers the fundamentals of GraphQL itself, as well as its ecosystem.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-road-to-graphql-1-robin-wieruch.json",
    "descriptionHtml": "<p>The Road to GraphQL is your personal journey to master pragmatic GraphQL in JavaScript. The book is full with applications you are going to build along the way with React.js and Node.js. Afterward, you will be able to implement full-stack JavaScript applications.\nI wrote the The Road to GraphQL over the last year, while building several GraphQL applications for my clients and for myself. During this time, I came to understand the practical genius of GraphQL, and how it dramatically improves communication in client-server architectures. Not only does it improve the interface between the client and the server, it also enhances client-side state management by eliminating remote data management. Sophisticated GraphQL libraries like Apollo Client provide powerful features like caching, optimistic UI, and data prefetching for free. This book covers the fundamentals of GraphQL itself, as well as its ecosystem.</p>\n"
  },
  {
    "slug": "python-crash-course-3rd-edition-3-eric-matthes",
    "title": "Python Crash Course, 3rd Edition",
    "subtitle": "A Hands-On, Project-Based Introduction to Programming",
    "edition": 3,
    "authors": [
      {
        "name": "Eric Matthes",
        "slug": "eric-matthes",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/eric-matthes.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/python-crash-course-3rd-edition-3-eric-matthes.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1718502702",
      "amazon_uk": "https://www.amazon.co.uk/dp/1718502702"
    },
    "description": "You'll start by learning basic programming concepts, such as variables, lists, classes, and loops, and practice writing clean code with exercises for each topic. You'll also learn how to make your programs interactive and test your code safely before adding it to a project. You'll put your new knowledge into practice by creating a Space Invaders-inspired arcade game, building a set of data visualizations with Python's handy libraries, and deploying a simple application online.\nAs you work through the book, you'll learn how to:\n- Use powerful Python libraries and tools, including pytest, Pygame, Matplotlib, Plotly, and Django\n- Make increasingly complex 2D games that respond to keypresses and mouse clicks\n- Generate interactive data visualizations using a variety of datasets\n- Build apps that allow users to create accounts and manage their own data, and deploy your apps online\n- Troubleshoot coding errors and solve common programming problems",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/python-crash-course-3rd-edition-3-eric-matthes.json",
    "descriptionHtml": "<p>You&#39;ll start by learning basic programming concepts, such as variables, lists, classes, and loops, and practice writing clean code with exercises for each topic. You&#39;ll also learn how to make your programs interactive and test your code safely before adding it to a project. You&#39;ll put your new knowledge into practice by creating a Space Invaders-inspired arcade game, building a set of data visualizations with Python&#39;s handy libraries, and deploying a simple application online.\nAs you work through the book, you&#39;ll learn how to:</p>\n<ul>\n<li>Use powerful Python libraries and tools, including pytest, Pygame, Matplotlib, Plotly, and Django</li>\n<li>Make increasingly complex 2D games that respond to keypresses and mouse clicks</li>\n<li>Generate interactive data visualizations using a variety of datasets</li>\n<li>Build apps that allow users to create accounts and manage their own data, and deploy your apps online</li>\n<li>Troubleshoot coding errors and solve common programming problems</li>\n</ul>\n"
  },
  {
    "slug": "fluent-python-2-luciano-ramalho",
    "title": "Fluent Python",
    "subtitle": "Clear, Concise, and Effective Programming",
    "edition": 2,
    "authors": [
      {
        "name": "Luciano Ramalho",
        "slug": "luciano-ramalho",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/luciano-ramalho.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/fluent-python-2-luciano-ramalho.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492056359",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492056359"
    },
    "description": "Don't waste time bending Python to fit patterns you've learned in other languages. Python's simplicity lets you become productive quickly, but often this means you aren't using everything the language has to offer. With the updated edition of this hands-on guide, you'll learn how to write effective, modern Python 3 code by leveraging its best ideas.\nDiscover and apply idiomatic Python 3 features beyond your past experience. Author Luciano Ramalho guides you through Python's core language features and libraries and teaches you how to make your code shorter, faster, and more readable.\nComplete with major updates throughout, this new edition features five parts that work as five short books within the book:\n- Data structures: Sequences, dicts, sets, Unicode, and data classes\n- Functions as objects: First-class functions, related design patterns, and type hints in function declarations\n- Object-oriented idioms: Composition, inheritance, mixins, interfaces, operator overloading, protocols, and more static types\n- Control flow: Context managers, generators, coroutines, async/await, and thread/process pools\n- Metaprogramming: Properties, attribute descriptors, class decorators, and new class metaprogramming hooks that replace or simplify metaclasses",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/fluent-python-2-luciano-ramalho.json",
    "descriptionHtml": "<p>Don&#39;t waste time bending Python to fit patterns you&#39;ve learned in other languages. Python&#39;s simplicity lets you become productive quickly, but often this means you aren&#39;t using everything the language has to offer. With the updated edition of this hands-on guide, you&#39;ll learn how to write effective, modern Python 3 code by leveraging its best ideas.\nDiscover and apply idiomatic Python 3 features beyond your past experience. Author Luciano Ramalho guides you through Python&#39;s core language features and libraries and teaches you how to make your code shorter, faster, and more readable.\nComplete with major updates throughout, this new edition features five parts that work as five short books within the book:</p>\n<ul>\n<li>Data structures: Sequences, dicts, sets, Unicode, and data classes</li>\n<li>Functions as objects: First-class functions, related design patterns, and type hints in function declarations</li>\n<li>Object-oriented idioms: Composition, inheritance, mixins, interfaces, operator overloading, protocols, and more static types</li>\n<li>Control flow: Context managers, generators, coroutines, async/await, and thread/process pools</li>\n<li>Metaprogramming: Properties, attribute descriptors, class decorators, and new class metaprogramming hooks that replace or simplify metaclasses</li>\n</ul>\n"
  },
  {
    "slug": "python-for-data-analysis-3-wes-mckinney",
    "title": "Python for Data Analysis",
    "subtitle": "Data Wrangling with pandas, NumPy, and Jupyter",
    "edition": 3,
    "authors": [
      {
        "name": "Wes McKinney",
        "slug": "wes-mckinney",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/wes-mckinney.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/python-for-data-analysis-3-wes-mckinney.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/109810403X",
      "amazon_uk": "https://www.amazon.co.uk/dp/109810403X"
    },
    "description": "Get the definitive handbook for manipulating, processing, cleaning, and crunching datasets in Python. Updated for Python 3.10 and pandas 1.4, the third edition of this hands-on guide is packed with practical case studies that show you how to solve a broad set of data analysis problems effectively. You'll learn the latest versions of pandas, NumPy, and Jupyter in the process.\nWritten by Wes McKinney, the creator of the Python pandas project, this book is a practical, modern introduction to data science tools in Python. It's ideal for analysts new to Python and for Python programmers new to data science and scientific computing. Data files and related material are available on GitHub.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/python-for-data-analysis-3-wes-mckinney.json",
    "descriptionHtml": "<p>Get the definitive handbook for manipulating, processing, cleaning, and crunching datasets in Python. Updated for Python 3.10 and pandas 1.4, the third edition of this hands-on guide is packed with practical case studies that show you how to solve a broad set of data analysis problems effectively. You&#39;ll learn the latest versions of pandas, NumPy, and Jupyter in the process.\nWritten by Wes McKinney, the creator of the Python pandas project, this book is a practical, modern introduction to data science tools in Python. It&#39;s ideal for analysts new to Python and for Python programmers new to data science and scientific computing. Data files and related material are available on GitHub.</p>\n"
  },
  {
    "slug": "introduction-to-algorithms-fourth-edition-4-thomas-h-cormen-charles-e-leiserson-ronald-l-rivest-clifford-stein",
    "title": "Introduction to Algorithms, fourth edition",
    "edition": 4,
    "authors": [
      {
        "name": "Thomas H. Cormen",
        "slug": "thomas-h-cormen",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/thomas-h-cormen.json"
      },
      {
        "name": "Charles E. Leiserson",
        "slug": "charles-e-leiserson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/charles-e-leiserson.json"
      },
      {
        "name": "Ronald L. Rivest",
        "slug": "ronald-l-rivest",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ronald-l-rivest.json"
      },
      {
        "name": "Clifford Stein",
        "slug": "clifford-stein",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/clifford-stein.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/introduction-to-algorithms-fourth-edition-4-thomas-h-cormen-charles-e-leiserson-ronald-l-rivest-clifford-stein.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/026204630X",
      "amazon_uk": "https://www.amazon.co.uk/dp/026204630X"
    },
    "description": "A comprehensive update of the leading algorithms text, with new material on matchings in bipartite graphs, online algorithms, machine learning, and other topics.Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers, with self-contained chapters and algorithms in pseudocode. Since the publication of the first edition, Introduction to Algorithms has become the leading algorithms text in universities worldwide as well as the standard reference for professionals. This fourth edition has been updated throughout.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/introduction-to-algorithms-fourth-edition-4-thomas-h-cormen-charles-e-leiserson-ronald-l-rivest-clifford-stein.json",
    "descriptionHtml": "<p>A comprehensive update of the leading algorithms text, with new material on matchings in bipartite graphs, online algorithms, machine learning, and other topics.Some books on algorithms are rigorous but incomplete; others cover masses of material but lack rigor. Introduction to Algorithms uniquely combines rigor and comprehensiveness. It covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers, with self-contained chapters and algorithms in pseudocode. Since the publication of the first edition, Introduction to Algorithms has become the leading algorithms text in universities worldwide as well as the standard reference for professionals. This fourth edition has been updated throughout.</p>\n"
  },
  {
    "slug": "grokking-algorithms-1-aditya-bhargava",
    "title": "Grokking Algorithms",
    "subtitle": "An Illustrated Guide for Programmers and Other Curious People",
    "edition": 1,
    "authors": [
      {
        "name": "Aditya Bhargava",
        "slug": "aditya-bhargava",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/aditya-bhargava.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/grokking-algorithms-1-aditya-bhargava.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617292230",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617292230"
    },
    "description": "Grokking Algorithms is a friendly take on this core computer science topic. In it, you'll learn how to apply common algorithms to the practical programming problems you face every day. You'll start with tasks like sorting and searching. As you build up your skills, you'll tackle more complex problems like data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/grokking-algorithms-1-aditya-bhargava.json",
    "descriptionHtml": "<p>Grokking Algorithms is a friendly take on this core computer science topic. In it, you&#39;ll learn how to apply common algorithms to the practical programming problems you face every day. You&#39;ll start with tasks like sorting and searching. As you build up your skills, you&#39;ll tackle more complex problems like data compression and artificial intelligence. Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them.</p>\n"
  },
  {
    "slug": "the-algorithm-design-manual-texts-in-computer-science-3-steven-s-skiena",
    "title": "The Algorithm Design Manual (Texts in Computer Science)",
    "edition": 3,
    "authors": [
      {
        "name": "Steven S. Skiena",
        "slug": "steven-s-skiena",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/steven-s-skiena.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-algorithm-design-manual-texts-in-computer-science-3-steven-s-skiena.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/3030542556",
      "amazon_uk": "https://www.amazon.co.uk/dp/3030542556"
    },
    "description": "\"My absolute favorite for this kind of interview preparation is Steven Skiena's The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace โ€ฆ graph problems are -- they should be part of every working programmer's toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. โ€ฆ every 1 - pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types.\" (Steve Yegge, Get that Job at Google)\n\"Steven Skiena's Algorithm Design Manual retains its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. โ€ฆ Every programmer should read this book, and anyone working in the field should keep it close to hand. โ€ฆ This is the best investment โ€ฆ a programmer or aspiring programmer can make.\" (Harold Thimbleby, Times Higher Education)\n\"It is wonderful to open to a random spot and discover an interesting algorithm. This is the only textbook I felt compelled to bring with me out of my student days.... The color really adds a lot of energy to the new edition of the book!\" (Cory Bart, University of Delaware)\n\"The is the most approachable book on algorithms I have.\" (Megan Squire, Elon University)",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-algorithm-design-manual-texts-in-computer-science-3-steven-s-skiena.json",
    "descriptionHtml": "<p>&quot;My absolute favorite for this kind of interview preparation is Steven Skiena&#39;s The Algorithm Design Manual. More than any other book it helped me understand just how astonishingly commonplace โ€ฆ graph problems are -- they should be part of every working programmer&#39;s toolkit. The book also covers basic data structures and sorting algorithms, which is a nice bonus. โ€ฆ every 1 - pager has a simple picture, making it easy to remember. This is a great way to learn how to identify hundreds of problem types.&quot; (Steve Yegge, Get that Job at Google)\n&quot;Steven Skiena&#39;s Algorithm Design Manual retains its title as the best and most comprehensive practical algorithm guide to help identify and solve problems. โ€ฆ Every programmer should read this book, and anyone working in the field should keep it close to hand. โ€ฆ This is the best investment โ€ฆ a programmer or aspiring programmer can make.&quot; (Harold Thimbleby, Times Higher Education)\n&quot;It is wonderful to open to a random spot and discover an interesting algorithm. This is the only textbook I felt compelled to bring with me out of my student days.... The color really adds a lot of energy to the new edition of the book!&quot; (Cory Bart, University of Delaware)\n&quot;The is the most approachable book on algorithms I have.&quot; (Megan Squire, Elon University)</p>\n"
  },
  {
    "slug": "algorithms-to-live-by-1-brian-christian-tom-griffiths",
    "title": "Algorithms to Live By",
    "subtitle": "The Computer Science of Human Decisions",
    "edition": 1,
    "authors": [
      {
        "name": "Brian Christian",
        "slug": "brian-christian",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/brian-christian.json"
      },
      {
        "name": "Tom Griffiths",
        "slug": "tom-griffiths",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tom-griffiths.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/algorithms-to-live-by-1-brian-christian-tom-griffiths.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0670068314",
      "amazon_uk": "https://www.amazon.co.uk/dp/0670068314"
    },
    "description": "A fascinating exploration of how computer algorithms can be applied to our everyday lives, helping to solve common decision-making problems and illuminate the workings of the human mind\nAll our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favourites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same constraints, so computer scientists have been grappling with their version of such problems for decades. And the solutions they've found have much to teach us.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/algorithms-to-live-by-1-brian-christian-tom-griffiths.json",
    "descriptionHtml": "<p>A fascinating exploration of how computer algorithms can be applied to our everyday lives, helping to solve common decision-making problems and illuminate the workings of the human mind\nAll our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favourites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same constraints, so computer scientists have been grappling with their version of such problems for decades. And the solutions they&#39;ve found have much to teach us.</p>\n"
  },
  {
    "slug": "the-self-taught-computer-scientist-1-cory-althoff",
    "title": "The Self-Taught Computer Scientist",
    "subtitle": "The Beginner's Guide to Data Structures & Algorithms",
    "edition": 1,
    "authors": [
      {
        "name": "Cory Althoff",
        "slug": "cory-althoff",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/cory-althoff.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-self-taught-computer-scientist-1-cory-althoff.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1119724414",
      "amazon_uk": "https://www.amazon.co.uk/dp/1119724414"
    },
    "description": "The follow-up to Cory Althoff's bestselling The Self-Taught Programmer, which inspired hundreds of thousands of professionals to learn to program outside of school!\nFresh out of college and with just a year of self-study behind him, Cory Althoff was offered a dream first job as a software engineer for a well-known tech company, but he quickly found himself overwhelmed by the amount of things he needed to know, but hadn't learned yet. This experience combined with his personal journey learning to program inspired his widely praised guide, The Self-Taught Programmer. Now Cory's back with another guide for the self-taught community of learners focusing on the foundations of computer science.\nThe Self-Taught Computer Scientist introduces beginner and self-taught programmers to computer science fundamentals that are essential for success in programming and software engineering fields. Computer science is a massive subject that could cover an entire lifetime of learning. This book does not aim to cover everything you would learn about if you went to school to get a computer science degree. Instead, Cory's goal is to give you an introduction to some of the most important concepts in computer science that apply to a programming career. With a focus on data structures and algorithms, The Self-Taught Computer Scientist helps you fill gaps in your knowledge, prepare for a technical interview, feel knowledgeable and confident on the job, and ultimately, become a better programmer.\n- Learn different algorithms including linear and binary search and test your knowledge with feedback loops\n- Understand what a data structure is and study arrays, linked lists, stacks, queues, hash tables, binary trees, binary heaps, and graphs\n- Prepare for technical interviews and feel comfortable working with more experienced colleagues\n- Discover additional resources and tools to expand your skillset and continue your learning journey\nIt's as simple as this: You have to study computer science if you want to become a successful programmer, and if you don't understand computer science, you won't get hired. Ready for a career in programming, coding, or software engineering and willing to embrace an \"always be learning\" mindset? The Self-Taught Computer Scientist is for you.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-self-taught-computer-scientist-1-cory-althoff.json",
    "descriptionHtml": "<p>The follow-up to Cory Althoff&#39;s bestselling The Self-Taught Programmer, which inspired hundreds of thousands of professionals to learn to program outside of school!\nFresh out of college and with just a year of self-study behind him, Cory Althoff was offered a dream first job as a software engineer for a well-known tech company, but he quickly found himself overwhelmed by the amount of things he needed to know, but hadn&#39;t learned yet. This experience combined with his personal journey learning to program inspired his widely praised guide, The Self-Taught Programmer. Now Cory&#39;s back with another guide for the self-taught community of learners focusing on the foundations of computer science.\nThe Self-Taught Computer Scientist introduces beginner and self-taught programmers to computer science fundamentals that are essential for success in programming and software engineering fields. Computer science is a massive subject that could cover an entire lifetime of learning. This book does not aim to cover everything you would learn about if you went to school to get a computer science degree. Instead, Cory&#39;s goal is to give you an introduction to some of the most important concepts in computer science that apply to a programming career. With a focus on data structures and algorithms, The Self-Taught Computer Scientist helps you fill gaps in your knowledge, prepare for a technical interview, feel knowledgeable and confident on the job, and ultimately, become a better programmer.</p>\n<ul>\n<li>Learn different algorithms including linear and binary search and test your knowledge with feedback loops</li>\n<li>Understand what a data structure is and study arrays, linked lists, stacks, queues, hash tables, binary trees, binary heaps, and graphs</li>\n<li>Prepare for technical interviews and feel comfortable working with more experienced colleagues</li>\n<li>Discover additional resources and tools to expand your skillset and continue your learning journey\nIt&#39;s as simple as this: You have to study computer science if you want to become a successful programmer, and if you don&#39;t understand computer science, you won&#39;t get hired. Ready for a career in programming, coding, or software engineering and willing to embrace an &quot;always be learning&quot; mindset? The Self-Taught Computer Scientist is for you.</li>\n</ul>\n"
  },
  {
    "slug": "the-rust-programming-language-2nd-edition-2-steve-klabnik-carol-nichols",
    "title": "The Rust Programming Language, 2nd Edition",
    "edition": 2,
    "authors": [
      {
        "name": "Steve Klabnik",
        "slug": "steve-klabnik",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/steve-klabnik.json"
      },
      {
        "name": "Carol Nichols",
        "slug": "carol-nichols",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/carol-nichols.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-rust-programming-language-2nd-edition-2-steve-klabnik-carol-nichols.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1718503105",
      "amazon_uk": "https://www.amazon.co.uk/dp/1718503105"
    },
    "description": "With over 50,000 copies sold, The Rust Programming Language is the quintessential guide to programming in Rust. Thoroughly updated to Rust's latest version, this edition is considered the language's official documentation.The Rust Programming Language \"covers everything you could want to know about the language.\"โ€”Stack Overflow\nRust has been repeatedly voted \"Most Loved Language\" on the StackOverflow Developer Survey.\nThe Rust Programming Language, 2nd Edition is the official guide to Rust 2021: an open source systems programming language that will help you write faster, more reliable software. Rust provides control of low-level details along with high-level ergonomics, allowing you to improve productivity and eliminate the hassle traditionally associated with low-level languages.\nKlabnik and Nichols, alumni of the Rust Core Team, share their knowledge to help you get the most out of Rust's features so that you can create robust and scalable programs. You'll begin with basics like creating functions, choosing data types, and binding variables, then move on to more advanced concepts, such as:\n- Ownership and borrowing, lifetimes, generics, traits, and trait objects to communicate your program's constraints to the compiler\n- Smart pointers and multithreading, and how ownership interacts with them to enable fearless concurrency\n- How to use Cargo, Rust's built-in package manager, to build, document your code, and manage dependencies\n- The best ways to test, handle errors, refactor, and take advantage of expressive pattern matching\nIn addition to the countless code examples, you'll find three chapters dedicated to building complete projects: a number-guessing game, a Rust implementation of a command line tool, and a multithreaded server.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-rust-programming-language-2nd-edition-2-steve-klabnik-carol-nichols.json",
    "descriptionHtml": "<p>With over 50,000 copies sold, The Rust Programming Language is the quintessential guide to programming in Rust. Thoroughly updated to Rust&#39;s latest version, this edition is considered the language&#39;s official documentation.The Rust Programming Language &quot;covers everything you could want to know about the language.&quot;โ€”Stack Overflow\nRust has been repeatedly voted &quot;Most Loved Language&quot; on the StackOverflow Developer Survey.\nThe Rust Programming Language, 2nd Edition is the official guide to Rust 2021: an open source systems programming language that will help you write faster, more reliable software. Rust provides control of low-level details along with high-level ergonomics, allowing you to improve productivity and eliminate the hassle traditionally associated with low-level languages.\nKlabnik and Nichols, alumni of the Rust Core Team, share their knowledge to help you get the most out of Rust&#39;s features so that you can create robust and scalable programs. You&#39;ll begin with basics like creating functions, choosing data types, and binding variables, then move on to more advanced concepts, such as:</p>\n<ul>\n<li>Ownership and borrowing, lifetimes, generics, traits, and trait objects to communicate your program&#39;s constraints to the compiler</li>\n<li>Smart pointers and multithreading, and how ownership interacts with them to enable fearless concurrency</li>\n<li>How to use Cargo, Rust&#39;s built-in package manager, to build, document your code, and manage dependencies</li>\n<li>The best ways to test, handle errors, refactor, and take advantage of expressive pattern matching\nIn addition to the countless code examples, you&#39;ll find three chapters dedicated to building complete projects: a number-guessing game, a Rust implementation of a command line tool, and a multithreaded server.</li>\n</ul>\n"
  },
  {
    "slug": "rust-for-rustaceans-1-jon-gjengset",
    "title": "Rust for Rustaceans",
    "subtitle": "Idiomatic Programming for Experienced Developers",
    "edition": 1,
    "authors": [
      {
        "name": "Jon Gjengset",
        "slug": "jon-gjengset",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jon-gjengset.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/rust-for-rustaceans-1-jon-gjengset.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1718501854",
      "amazon_uk": "https://www.amazon.co.uk/dp/1718501854"
    },
    "description": "Master professional-level coding in Rust.\nFor developers who've mastered the basics, this book is the next step on your way to professional-level programming in Rust. It covers everything you need to build and maintain larger code bases, write powerful and flexible applications and libraries, and confidently expand the scope and complexity of your projects.\nAuthor Jon Gjengset takes you deep into the Rust programming language, dissecting core topics like ownership, traits, concurrency, and unsafe code. You'll explore key concepts like type layout and trait coherence, delve into the inner workings of concurrent programming and asynchrony with async/await, and take a tour of the world of no\\_std programming. Gjengset also provides expert guidance on API design, testing strategies, and error handling, and will help develop your understanding of foreign function interfaces, object safety, procedural macros, and much more.\nYou'll Learn:\n- How to design reliable, idiomatic, and ergonomic Rust programs based on best principles\n- Effective use of declarative and procedural macros, and the difference between them\n- How asynchrony works in Rust - all the way from the Pin and Waker types used in manual implementations of Futures, to how async/await saves you from thinking about most of those words\n- What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits\n- How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem\n- How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments\nBrimming with practical, pragmatic insights that you can immediately apply, Rust for Rustaceans helps you do more with Rust, while also teaching you its underlying mechanisms.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/rust-for-rustaceans-1-jon-gjengset.json",
    "descriptionHtml": "<p>Master professional-level coding in Rust.\nFor developers who&#39;ve mastered the basics, this book is the next step on your way to professional-level programming in Rust. It covers everything you need to build and maintain larger code bases, write powerful and flexible applications and libraries, and confidently expand the scope and complexity of your projects.\nAuthor Jon Gjengset takes you deep into the Rust programming language, dissecting core topics like ownership, traits, concurrency, and unsafe code. You&#39;ll explore key concepts like type layout and trait coherence, delve into the inner workings of concurrent programming and asynchrony with async/await, and take a tour of the world of no_std programming. Gjengset also provides expert guidance on API design, testing strategies, and error handling, and will help develop your understanding of foreign function interfaces, object safety, procedural macros, and much more.\nYou&#39;ll Learn:</p>\n<ul>\n<li>How to design reliable, idiomatic, and ergonomic Rust programs based on best principles</li>\n<li>Effective use of declarative and procedural macros, and the difference between them</li>\n<li>How asynchrony works in Rust - all the way from the Pin and Waker types used in manual implementations of Futures, to how async/await saves you from thinking about most of those words</li>\n<li>What it means for code to be unsafe, and best practices for writing and interacting with unsafe functions and traits</li>\n<li>How to organize and configure more complex Rust projects so that they integrate nicely with the rest of the ecosystem</li>\n<li>How to write Rust code that can interoperate with non-Rust libraries and systems, or run in constrained and embedded environments\nBrimming with practical, pragmatic insights that you can immediately apply, Rust for Rustaceans helps you do more with Rust, while also teaching you its underlying mechanisms.</li>\n</ul>\n"
  },
  {
    "slug": "programming-rust-2-jim-blandy-jason-orendorff-leonora-tindall",
    "title": "Programming Rust",
    "subtitle": "Fast, Safe Systems Development",
    "edition": 2,
    "authors": [
      {
        "name": "Jim Blandy",
        "slug": "jim-blandy",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jim-blandy.json"
      },
      {
        "name": "Jason Orendorff",
        "slug": "jason-orendorff",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jason-orendorff.json"
      },
      {
        "name": "Leonora Tindall",
        "slug": "leonora-tindall",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/leonora-tindall.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/programming-rust-2-jim-blandy-jason-orendorff-leonora-tindall.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492052590",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492052590"
    },
    "description": "Systems programming provides the foundation for the world's computation. Writing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to data races between threads.\nWith this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust's features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency.\nYou'll learn:\n- Rust's fundamental data types and the core concepts of ownership and borrowing\n- How to write flexible, efficient code with traits and generics\n- How to write fast, multithreaded code without data races\n- Rust's key power tools: closures, iterators, and asynchronous programming\n- Collections, strings and text, input and output, macros, unsafe code, and foreign function interfaces",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/programming-rust-2-jim-blandy-jason-orendorff-leonora-tindall.json",
    "descriptionHtml": "<p>Systems programming provides the foundation for the world&#39;s computation. Writing performance-sensitive code requires a programming language that puts programmers in control of how memory, processor time, and other system resources are used. The Rust systems programming language combines that control with a modern type system that catches broad classes of common mistakes, from memory management errors to data races between threads.\nWith this practical guide, experienced systems programmers will learn how to successfully bridge the gap between performance and safety using Rust. Jim Blandy, Jason Orendorff, and Leonora Tindall demonstrate how Rust&#39;s features put programmers in control over memory consumption and processor use by combining predictable performance with memory safety and trustworthy concurrency.\nYou&#39;ll learn:</p>\n<ul>\n<li>Rust&#39;s fundamental data types and the core concepts of ownership and borrowing</li>\n<li>How to write flexible, efficient code with traits and generics</li>\n<li>How to write fast, multithreaded code without data races</li>\n<li>Rust&#39;s key power tools: closures, iterators, and asynchronous programming</li>\n<li>Collections, strings and text, input and output, macros, unsafe code, and foreign function interfaces</li>\n</ul>\n"
  },
  {
    "slug": "rust-in-action-1-tim-mcnamara",
    "title": "Rust in Action",
    "edition": 1,
    "authors": [
      {
        "name": "Tim McNamara",
        "slug": "tim-mcnamara",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tim-mcnamara.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/rust-in-action-1-tim-mcnamara.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617294551",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617294551"
    },
    "description": "Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You'll be learning Rust by delving into how computers work under the hood. You'll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You'll also discover parallel and concurrent programming. Filled to the brim with real-life use cases and scenarios, you'll go beyond the Rust syntax and see what Rust has to offer in real-world use cases.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/rust-in-action-1-tim-mcnamara.json",
    "descriptionHtml": "<p>Rust in Action introduces the Rust programming language by exploring numerous systems programming concepts and techniques. You&#39;ll be learning Rust by delving into how computers work under the hood. You&#39;ll find yourself playing with persistent storage, memory, networking and even tinkering with CPU instructions. The book takes you through using Rust to extend other applications and teaches you tricks to write blindingly fast code. You&#39;ll also discover parallel and concurrent programming. Filled to the brim with real-life use cases and scenarios, you&#39;ll go beyond the Rust syntax and see what Rust has to offer in real-world use cases.</p>\n"
  },
  {
    "slug": "zero-to-production-in-rust-1-luca-palmieri",
    "title": "Zero To Production In Rust",
    "subtitle": "An introduction to backend development",
    "edition": 1,
    "authors": [
      {
        "name": "Luca Palmieri",
        "slug": "luca-palmieri",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/luca-palmieri.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/zero-to-production-in-rust-1-luca-palmieri.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/B0BHLDMFDQ",
      "amazon_uk": "https://www.amazon.co.uk/dp/B0BHLDMFDQ"
    },
    "description": "Zero To Production is the ideal starting point for your journey as a Rust backend developer.\nYou will learn by doing: you will build a fully functional email newsletter API, starting from scratch.\nYou'll learn how to:\n- Navigate and leverage Rust's crates ecosystem\n- Structure your application to make it modular and extensible\n- Write tests, from single units to full-blown integration tests\n- Enforce your domain invariants using Rust's type system\n- Authenticate and authorize users of your API\n- Implement a robust error handling strategy\n- Observe the state of your application using structured logs\n- Set up an extensive continuous integration and continuous deployment pipeline for your Rust projects\nThe book is composed of 11 chapters, for a grand total of 600 pages. All supporting code (including tests!) is available on GitHub.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/zero-to-production-in-rust-1-luca-palmieri.json",
    "descriptionHtml": "<p>Zero To Production is the ideal starting point for your journey as a Rust backend developer.\nYou will learn by doing: you will build a fully functional email newsletter API, starting from scratch.\nYou&#39;ll learn how to:</p>\n<ul>\n<li>Navigate and leverage Rust&#39;s crates ecosystem</li>\n<li>Structure your application to make it modular and extensible</li>\n<li>Write tests, from single units to full-blown integration tests</li>\n<li>Enforce your domain invariants using Rust&#39;s type system</li>\n<li>Authenticate and authorize users of your API</li>\n<li>Implement a robust error handling strategy</li>\n<li>Observe the state of your application using structured logs</li>\n<li>Set up an extensive continuous integration and continuous deployment pipeline for your Rust projects\nThe book is composed of 11 chapters, for a grand total of 600 pages. All supporting code (including tests!) is available on GitHub.</li>\n</ul>\n"
  },
  {
    "slug": "hands-on-rust-1-herbert-wolverson",
    "title": "Hands-on Rust",
    "subtitle": "Effective Learning through 2D Game Development and Play",
    "edition": 1,
    "authors": [
      {
        "name": "Herbert Wolverson",
        "slug": "herbert-wolverson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/herbert-wolverson.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/hands-on-rust-1-herbert-wolverson.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1680508164",
      "amazon_uk": "https://www.amazon.co.uk/dp/1680508164"
    },
    "description": "Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters - and what better way to learn than by making games. Each chapter in this book presents hands-on, practical projects ranging from \"Hello, World\" to building a full dungeon crawler game. With this book, you'll learn game development skills applicable to other engines, including Unity and Unreal.\nRust is an exciting programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters. With Rust, you have a shiny new playground where your game ideas can flourish.\nEach chapter in this book presents hands-on, practical projects that take you on a journey from \"Hello, World\" to building a full dungeon crawler game. Start by setting up Rust and getting comfortable with your development environment. Learn the language basics with practical examples as you make your own version of Flappy Bird. Discover what it takes to randomly generate dungeons and populate them with monsters as you build a complete dungeon crawl game. Run game systems concurrently for high-performance and fast game-play, while retaining the ability to debug your program. Unleash your creativity with magical items, tougher monsters, and intricate dungeon design. Add layered graphics and polish your game with style.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/hands-on-rust-1-herbert-wolverson.json",
    "descriptionHtml": "<p>Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters - and what better way to learn than by making games. Each chapter in this book presents hands-on, practical projects ranging from &quot;Hello, World&quot; to building a full dungeon crawler game. With this book, you&#39;ll learn game development skills applicable to other engines, including Unity and Unreal.\nRust is an exciting programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters. With Rust, you have a shiny new playground where your game ideas can flourish.\nEach chapter in this book presents hands-on, practical projects that take you on a journey from &quot;Hello, World&quot; to building a full dungeon crawler game. Start by setting up Rust and getting comfortable with your development environment. Learn the language basics with practical examples as you make your own version of Flappy Bird. Discover what it takes to randomly generate dungeons and populate them with monsters as you build a complete dungeon crawl game. Run game systems concurrently for high-performance and fast game-play, while retaining the ability to debug your program. Unleash your creativity with magical items, tougher monsters, and intricate dungeon design. Add layered graphics and polish your game with style.</p>\n"
  },
  {
    "slug": "design-patterns-1-erich-gamma-richard-helm-ralph-johnson-john-vlissides",
    "title": "Design Patterns",
    "subtitle": "Elements of Reusable Object-Oriented Software",
    "edition": 1,
    "authors": [
      {
        "name": "Erich Gamma",
        "slug": "erich-gamma",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/erich-gamma.json"
      },
      {
        "name": "Richard Helm",
        "slug": "richard-helm",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/richard-helm.json"
      },
      {
        "name": "Ralph Johnson",
        "slug": "ralph-johnson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ralph-johnson.json"
      },
      {
        "name": "John Vlissides",
        "slug": "john-vlissides",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/john-vlissides.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/design-patterns-1-erich-gamma-richard-helm-ralph-johnson-john-vlissides.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0201633612",
      "amazon_uk": "https://www.amazon.co.uk/dp/0201633612"
    },
    "description": "Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.\nThe authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.\nEach pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/design-patterns-1-erich-gamma-richard-helm-ralph-johnson-john-vlissides.json",
    "descriptionHtml": "<p>Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.\nThe authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.\nEach pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk.</p>\n"
  },
  {
    "slug": "information-architecture-4-louis-rosenfeld-peter-morville-jorge-arango",
    "title": "Information Architecture",
    "subtitle": "For the Web and Beyond",
    "edition": 4,
    "authors": [
      {
        "name": "Louis Rosenfeld",
        "slug": "louis-rosenfeld",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/louis-rosenfeld.json"
      },
      {
        "name": "Peter Morville",
        "slug": "peter-morville",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/peter-morville.json"
      },
      {
        "name": "Jorge Arango",
        "slug": "jorge-arango",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jorge-arango.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/information-architecture-4-louis-rosenfeld-peter-morville-jorge-arango.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1491911689",
      "amazon_uk": "https://www.amazon.co.uk/dp/1491911689"
    },
    "description": "Information architecture (IA) is far more challengingโ€•and necessaryโ€•than ever. With the glut of information available today, anything your organization wants to share should be easy to find, navigate, and understand. But the experience you provide has to be familiar and coherent across multiple interaction channels, from the Web to smartphones, smartwatches, and beyond.\nTo guide you through this broad ecosystem, this popular guideโ€•now in its fourth editionโ€•provides essential concepts, methods, and techniques for digital design that have withstood the test of time. UX designers, product managers, developers, and anyone involved in digital design will learn how to create semantic structures that will help people engage with your message.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/information-architecture-4-louis-rosenfeld-peter-morville-jorge-arango.json",
    "descriptionHtml": "<p>Information architecture (IA) is far more challengingโ€•and necessaryโ€•than ever. With the glut of information available today, anything your organization wants to share should be easy to find, navigate, and understand. But the experience you provide has to be familiar and coherent across multiple interaction channels, from the Web to smartphones, smartwatches, and beyond.\nTo guide you through this broad ecosystem, this popular guideโ€•now in its fourth editionโ€•provides essential concepts, methods, and techniques for digital design that have withstood the test of time. UX designers, product managers, developers, and anyone involved in digital design will learn how to create semantic structures that will help people engage with your message.</p>\n"
  },
  {
    "slug": "designing-data-intensive-applications-1-martin-kleppmann",
    "title": "Designing Data-Intensive Applications",
    "subtitle": "The Big Ideas Behind Reliable, Scalable, and Maintainable Systems",
    "edition": 1,
    "authors": [
      {
        "name": "Martin Kleppmann",
        "slug": "martin-kleppmann",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/martin-kleppmann.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/designing-data-intensive-applications-1-martin-kleppmann.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1449373321",
      "amazon_uk": "https://www.amazon.co.uk/dp/1449373321"
    },
    "description": "Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?\nIn this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/designing-data-intensive-applications-1-martin-kleppmann.json",
    "descriptionHtml": "<p>Data is at the center of many challenges in system design today. Difficult issues need to be figured out, such as scalability, consistency, reliability, efficiency, and maintainability. In addition, we have an overwhelming variety of tools, including relational databases, NoSQL datastores, stream or batch processors, and message brokers. What are the right choices for your application? How do you make sense of all these buzzwords?\nIn this practical and comprehensive guide, author Martin Kleppmann helps you navigate this diverse landscape by examining the pros and cons of various technologies for processing and storing data. Software keeps changing, but the fundamental principles remain the same. With this book, software engineers and architects will learn how to apply those ideas in practice, and how to make full use of data in modern applications.</p>\n"
  },
  {
    "slug": "the-linux-command-line-2nd-edition-1-william-shotts",
    "title": "The Linux Command Line, 2nd Edition",
    "subtitle": "A Complete Introduction",
    "edition": 1,
    "authors": [
      {
        "name": "William Shotts",
        "slug": "william-shotts",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/william-shotts.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-linux-command-line-2nd-edition-1-william-shotts.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1593279523",
      "amazon_uk": "https://www.amazon.co.uk/dp/1593279523"
    },
    "description": "You've experienced the shiny, point-and-click surface of your Linux computerโ€”now dive below and explore its depths with the power of the command line.\nThe Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell (or command line). Along the way you'll learn the timeless skills handed down by generations of experienced, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more.\nIn addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-linux-command-line-2nd-edition-1-william-shotts.json",
    "descriptionHtml": "<p>You&#39;ve experienced the shiny, point-and-click surface of your Linux computerโ€”now dive below and explore its depths with the power of the command line.\nThe Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell (or command line). Along the way you&#39;ll learn the timeless skills handed down by generations of experienced, mouse-shunning gurus: file navigation, environment configuration, command chaining, pattern matching with regular expressions, and more.\nIn addition to that practical knowledge, author William Shotts reveals the philosophy behind these tools and the rich heritage that your desktop Linux machine has inherited from Unix supercomputers of yore.</p>\n"
  },
  {
    "slug": "the-pragmatic-programmer-1-andrew-hunt-david-thomas",
    "title": "The Pragmatic Programmer",
    "subtitle": "From Journeyman to Master",
    "edition": 1,
    "authors": [
      {
        "name": "Andrew Hunt",
        "slug": "andrew-hunt",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/andrew-hunt.json"
      },
      {
        "name": "David Thomas",
        "slug": "david-thomas",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/david-thomas.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-pragmatic-programmer-1-andrew-hunt-david-thomas.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/020161622X",
      "amazon_uk": "https://www.amazon.co.uk/dp/020161622X"
    },
    "description": "Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to Fight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced program.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-pragmatic-programmer-1-andrew-hunt-david-thomas.json",
    "descriptionHtml": "<p>Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and you&#39;ll learn how to Fight software rot; Avoid the trap of duplicating knowledge; Write flexible, dynamic, and adaptable code; Avoid programming by coincidence; Bullet-proof your code with contracts, assertions, and exceptions; Capture real requirements; Test ruthlessly and effectively; Delight your users; Build teams of pragmatic programmers; and Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you&#39;re a new coder, an experienced program.</p>\n"
  },
  {
    "slug": "css-secrets-1-lea-verou",
    "title": "CSS Secrets",
    "subtitle": "Better Solutions to Everyday Web Design Problems",
    "edition": 1,
    "authors": [
      {
        "name": "Lea Verou",
        "slug": "lea-verou",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/lea-verou.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/css-secrets-1-lea-verou.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1449372635",
      "amazon_uk": "https://www.amazon.co.uk/dp/1449372635"
    },
    "description": "In this practical guide, CSS expert Lea Verou provides 47 undocumented techniques and tips to help intermediate-to advanced CSS developers devise elegant solutions to a wide range of everyday web design problems.\nRather than focus on design, CSS Secrets shows you how to solve problems with code. You'll learn how to apply Lea's analytical approach to practically every CSS problem you face to attain DRY, maintainable, flexible, lightweight, and standards-compliant results.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/css-secrets-1-lea-verou.json",
    "descriptionHtml": "<p>In this practical guide, CSS expert Lea Verou provides 47 undocumented techniques and tips to help intermediate-to advanced CSS developers devise elegant solutions to a wide range of everyday web design problems.\nRather than focus on design, CSS Secrets shows you how to solve problems with code. You&#39;ll learn how to apply Lea&#39;s analytical approach to practically every CSS problem you face to attain DRY, maintainable, flexible, lightweight, and standards-compliant results.</p>\n"
  },
  {
    "slug": "javascript-1-douglas-crockford",
    "title": "JavaScript",
    "subtitle": "The Good Parts",
    "edition": 1,
    "authors": [
      {
        "name": "Douglas Crockford",
        "slug": "douglas-crockford",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/douglas-crockford.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/javascript-1-douglas-crockford.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0596517742",
      "amazon_uk": "https://www.amazon.co.uk/dp/0596517742"
    },
    "description": "Describes the reliable features of JavaScript, covering such topics as syntax, objects, functions, arrays, regular expressions, inheritance, and methods.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/javascript-1-douglas-crockford.json",
    "descriptionHtml": "<p>Describes the reliable features of JavaScript, covering such topics as syntax, objects, functions, arrays, regular expressions, inheritance, and methods.</p>\n"
  },
  {
    "slug": "how-javascript-works-1-douglas-crockford",
    "title": "How JavaScript Works",
    "edition": 1,
    "authors": [
      {
        "name": "Douglas Crockford",
        "slug": "douglas-crockford",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/douglas-crockford.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/how-javascript-works-1-douglas-crockford.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1949815005",
      "amazon_uk": "https://www.amazon.co.uk/dp/1949815005"
    },
    "description": "Douglas Crockford starts by looking at the fundamentals: names, numbers, booleans, characters, and bottom values. JavaScript's number type is shown to be faulty and limiting, but then Crockford shows how to repair those problems. He then moves on to data structures and functions, exploring the underlying mechanisms and then uses higher order functions to achieve class-free object oriented programming. The book also looks at eventual programming, testing, and purity, all the while looking at the requirements of The Next Language. Most of our languages are deeply rooted in the paradigm that produced FORTRAN.  Crockford attacks those roots, liberating us to consider the next paradigm. He also presents a strawman language and develops a complete transpiler to implement it. The book is deep, dense, full of code, and has moments when it is intentionally funny.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/how-javascript-works-1-douglas-crockford.json",
    "descriptionHtml": "<p>Douglas Crockford starts by looking at the fundamentals: names, numbers, booleans, characters, and bottom values. JavaScript&#39;s number type is shown to be faulty and limiting, but then Crockford shows how to repair those problems. He then moves on to data structures and functions, exploring the underlying mechanisms and then uses higher order functions to achieve class-free object oriented programming. The book also looks at eventual programming, testing, and purity, all the while looking at the requirements of The Next Language. Most of our languages are deeply rooted in the paradigm that produced FORTRAN.  Crockford attacks those roots, liberating us to consider the next paradigm. He also presents a strawman language and develops a complete transpiler to implement it. The book is deep, dense, full of code, and has moments when it is intentionally funny.</p>\n"
  },
  {
    "slug": "elasticsearch-1-clinton-gormley-zachary-tong",
    "title": "Elasticsearch",
    "subtitle": "The Definitive Guide",
    "edition": 1,
    "authors": [
      {
        "name": "Clinton Gormley",
        "slug": "clinton-gormley",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/clinton-gormley.json"
      },
      {
        "name": "Zachary Tong",
        "slug": "zachary-tong",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/zachary-tong.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/elasticsearch-1-clinton-gormley-zachary-tong.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1449358543",
      "amazon_uk": "https://www.amazon.co.uk/dp/1449358543"
    },
    "description": "Whether you need full-text search or real-time analytics of structured data or both the Elasticsearch distributed search engine is an ideal way to put your data to work. This practical guide not only shows you how to search, analyze, and explore data with Elasticsearch, but also helps you deal with the complexities of human language, geolocation, and relationships.\nIf you're a newcomer to both search and distributed systems, you'll quickly learn how to integrate Elasticsearch into your application. More experienced users will pick up lots of advanced techniques. Throughout the book, you'll follow a problem-based approach to learn why, when, and how to use Elasticsearch features.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/elasticsearch-1-clinton-gormley-zachary-tong.json",
    "descriptionHtml": "<p>Whether you need full-text search or real-time analytics of structured data or both the Elasticsearch distributed search engine is an ideal way to put your data to work. This practical guide not only shows you how to search, analyze, and explore data with Elasticsearch, but also helps you deal with the complexities of human language, geolocation, and relationships.\nIf you&#39;re a newcomer to both search and distributed systems, you&#39;ll quickly learn how to integrate Elasticsearch into your application. More experienced users will pick up lots of advanced techniques. Throughout the book, you&#39;ll follow a problem-based approach to learn why, when, and how to use Elasticsearch features.</p>\n"
  },
  {
    "slug": "cassandra-3-jeff-carpenter-eben-hewitt",
    "title": "Cassandra",
    "subtitle": "The Definitive Guide",
    "edition": 3,
    "authors": [
      {
        "name": "Jeff Carpenter",
        "slug": "jeff-carpenter",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jeff-carpenter.json"
      },
      {
        "name": "Eben Hewitt",
        "slug": "eben-hewitt",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/eben-hewitt.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/cassandra-3-jeff-carpenter-eben-hewitt.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492097144",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492097144"
    },
    "description": "Imagine what you could do if scalability wasn't a problem. With this hands-on guide, you'll learn how the Cassandra database management system handles hundreds of terabytes of data while remaining highly available across multiple data centers. This revised third edition--updated for Cassandra 4.0 and new developments in the Cassandra ecosystem, including deployments in Kubernetes with K8ssandra--provides technical details and practical examples to help you put this database to work in a production environment.\nAuthors Jeff Carpenter and Eben Hewitt demonstrate the advantages of Cassandra's nonrelational design, with special attention to data modeling. Developers, DBAs, and application architects looking to solve a database scaling issue or future-proof an application will learn how to harness Cassandra's speed and flexibility.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/cassandra-3-jeff-carpenter-eben-hewitt.json",
    "descriptionHtml": "<p>Imagine what you could do if scalability wasn&#39;t a problem. With this hands-on guide, you&#39;ll learn how the Cassandra database management system handles hundreds of terabytes of data while remaining highly available across multiple data centers. This revised third edition--updated for Cassandra 4.0 and new developments in the Cassandra ecosystem, including deployments in Kubernetes with K8ssandra--provides technical details and practical examples to help you put this database to work in a production environment.\nAuthors Jeff Carpenter and Eben Hewitt demonstrate the advantages of Cassandra&#39;s nonrelational design, with special attention to data modeling. Developers, DBAs, and application architects looking to solve a database scaling issue or future-proof an application will learn how to harness Cassandra&#39;s speed and flexibility.</p>\n"
  },
  {
    "slug": "art-of-scalability-the-2-martin-abbott-michael-fisher",
    "title": "Art of Scalability, The",
    "subtitle": "Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise",
    "edition": 2,
    "authors": [
      {
        "name": "Martin Abbott",
        "slug": "martin-abbott",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/martin-abbott.json"
      },
      {
        "name": "Michael Fisher",
        "slug": "michael-fisher",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-fisher.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/art-of-scalability-the-2-martin-abbott-michael-fisher.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0134032802",
      "amazon_uk": "https://www.amazon.co.uk/dp/0134032802"
    },
    "description": "The Comprehensive, Proven Approach to IT Scalability-Updated with New Strategies, Technologies, and Case Studies\nIn The Art of Scalability, Second Edition, leading scalability consultants Martin L. Abbott and Michael T. Fisher cover everything you need to know to smoothly scale products and services for any requirement. This extensively revised edition reflects new technologies, strategies, and lessons, as well as new case studies from the authors' pioneering consulting practice, AKF Partners.\nWriting for technical and nontechnical decision-makers, Abbott and Fisher cover everything that impacts scalability, including architecture, process, people, organization, and technology. Their insights and recommendations reflect more than thirty years of experience at companies ranging from eBay to Visa, and Salesforce.com to Apple.\nYou'll find updated strategies for structuring organizations to maximize agility and scalability, as well as new insights into the cloud (IaaS/PaaS) transition, NoSQL, DevOps, business metrics, and more. Using this guide's tools and advice, you can systematically clear away obstacles to scalability-and achieve unprecedented IT and business performance.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/art-of-scalability-the-2-martin-abbott-michael-fisher.json",
    "descriptionHtml": "<p>The Comprehensive, Proven Approach to IT Scalability-Updated with New Strategies, Technologies, and Case Studies\nIn The Art of Scalability, Second Edition, leading scalability consultants Martin L. Abbott and Michael T. Fisher cover everything you need to know to smoothly scale products and services for any requirement. This extensively revised edition reflects new technologies, strategies, and lessons, as well as new case studies from the authors&#39; pioneering consulting practice, AKF Partners.\nWriting for technical and nontechnical decision-makers, Abbott and Fisher cover everything that impacts scalability, including architecture, process, people, organization, and technology. Their insights and recommendations reflect more than thirty years of experience at companies ranging from eBay to Visa, and Salesforce.com to Apple.\nYou&#39;ll find updated strategies for structuring organizations to maximize agility and scalability, as well as new insights into the cloud (IaaS/PaaS) transition, NoSQL, DevOps, business metrics, and more. Using this guide&#39;s tools and advice, you can systematically clear away obstacles to scalability-and achieve unprecedented IT and business performance.</p>\n"
  },
  {
    "slug": "elixir-in-action-third-edition-3-sasa-juric",
    "title": "Elixir in Action, Third Edition",
    "edition": 3,
    "authors": [
      {
        "name": "Saลกa Juric",
        "slug": "sasa-juric",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/sasa-juric.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/elixir-in-action-third-edition-3-sasa-juric.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1633438511",
      "amazon_uk": "https://www.amazon.co.uk/dp/1633438511"
    },
    "description": "Fully updated to Elixir 1.15, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability.Thousands of developers have learned to build applications in Elixir by using Saลกa Juric's Elixir in Action. You'll skip the programming basics or 101 introductions; this book builds on your existing knowledge to get you quickly writing real Elixir code. Along the way, you'll develop an appreciation for, and considerable skill in, functional and concurrent programming.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/elixir-in-action-third-edition-3-sasa-juric.json",
    "descriptionHtml": "<p>Fully updated to Elixir 1.15, this authoritative bestseller reveals how Elixir tackles problems of scalability, fault tolerance, and high availability.Thousands of developers have learned to build applications in Elixir by using Saลกa Juric&#39;s Elixir in Action. You&#39;ll skip the programming basics or 101 introductions; this book builds on your existing knowledge to get you quickly writing real Elixir code. Along the way, you&#39;ll develop an appreciation for, and considerable skill in, functional and concurrent programming.</p>\n"
  },
  {
    "slug": "docker-in-action-second-edition-2-jeff-nickoloff-stephen-kuenzli",
    "title": "Docker in Action, Second Edition",
    "edition": 2,
    "authors": [
      {
        "name": "Jeff Nickoloff",
        "slug": "jeff-nickoloff",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jeff-nickoloff.json"
      },
      {
        "name": "Stephen Kuenzli",
        "slug": "stephen-kuenzli",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stephen-kuenzli.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/docker-in-action-second-edition-2-jeff-nickoloff-stephen-kuenzli.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617294764",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617294764"
    },
    "description": "Docker in Action, Second Edition teaches you the skills and knowledge you need to create, deploy, and manage applications hosted in Docker containers. This bestseller has been fully updated with new examples, best practices, and a number of entirely new chapters.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/docker-in-action-second-edition-2-jeff-nickoloff-stephen-kuenzli.json",
    "descriptionHtml": "<p>Docker in Action, Second Edition teaches you the skills and knowledge you need to create, deploy, and manage applications hosted in Docker containers. This bestseller has been fully updated with new examples, best practices, and a number of entirely new chapters.</p>\n"
  },
  {
    "slug": "sql-pocket-guide-4-alice-zhao",
    "title": "SQL Pocket Guide",
    "subtitle": "A Guide to SQL Usage",
    "edition": 4,
    "authors": [
      {
        "name": "Alice Zhao",
        "slug": "alice-zhao",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/alice-zhao.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/sql-pocket-guide-4-alice-zhao.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492090409",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492090409"
    },
    "description": "If you use SQL in your day-to-day work as a data analyst, data scientist, or data engineer, this popular pocket guide is your ideal on-the-job reference. You'll find many examples that address the language's complexities, along with key aspects of SQL used in Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL, and SQLite.\nIn this updated edition, author Alice Zhao describes how these database management systems implement SQL syntax for both querying and making changes to a database. You'll find details on data types and conversions, regular expression syntax, window functions, pivoting and unpivoting, and more.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/sql-pocket-guide-4-alice-zhao.json",
    "descriptionHtml": "<p>If you use SQL in your day-to-day work as a data analyst, data scientist, or data engineer, this popular pocket guide is your ideal on-the-job reference. You&#39;ll find many examples that address the language&#39;s complexities, along with key aspects of SQL used in Microsoft SQL Server, MySQL, Oracle Database, PostgreSQL, and SQLite.\nIn this updated edition, author Alice Zhao describes how these database management systems implement SQL syntax for both querying and making changes to a database. You&#39;ll find details on data types and conversions, regular expression syntax, window functions, pivoting and unpivoting, and more.</p>\n"
  },
  {
    "slug": "laravel-3-matt-stauffer",
    "title": "Laravel",
    "subtitle": "Up & Running; A Framework for Building Modern PHP Apps",
    "edition": 3,
    "authors": [
      {
        "name": "Matt Stauffer",
        "slug": "matt-stauffer",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/matt-stauffer.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/laravel-3-matt-stauffer.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/109815326X",
      "amazon_uk": "https://www.amazon.co.uk/dp/109815326X"
    },
    "description": "What sets Laravel apart from other PHP web frameworks? Speed and simplicity, for starters. This rapid application development framework and its ecosystem of tools let you quickly build new sites and applications with clean, readable code. Fully updated to include Laravel 10, the third edition of this practical guide provides the definitive introduction to one of today's most popular web frameworks.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/laravel-3-matt-stauffer.json",
    "descriptionHtml": "<p>What sets Laravel apart from other PHP web frameworks? Speed and simplicity, for starters. This rapid application development framework and its ecosystem of tools let you quickly build new sites and applications with clean, readable code. Fully updated to include Laravel 10, the third edition of this practical guide provides the definitive introduction to one of today&#39;s most popular web frameworks.</p>\n"
  },
  {
    "slug": "kafka-2-gwen-shapira-todd-palino-rajini-sivaram-krit-petty",
    "title": "Kafka",
    "subtitle": "The Definitive Guide",
    "edition": 2,
    "authors": [
      {
        "name": "Gwen Shapira",
        "slug": "gwen-shapira",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/gwen-shapira.json"
      },
      {
        "name": "Todd Palino",
        "slug": "todd-palino",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/todd-palino.json"
      },
      {
        "name": "Rajini Sivaram",
        "slug": "rajini-sivaram",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/rajini-sivaram.json"
      },
      {
        "name": "Krit Petty",
        "slug": "krit-petty",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/krit-petty.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/kafka-2-gwen-shapira-todd-palino-rajini-sivaram-krit-petty.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492043087",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492043087"
    },
    "description": "Every enterprise application creates data, whether it consists of log messages, metrics, user activity, or outgoing messages. Moving all this data is just as important as the data itself. With this updated edition, application architects, developers, and production engineers new to the Kafka streaming platform will learn how to handle data in motion. Additional chapters cover Kafka's AdminClient API, transactions, new security features, and tooling changes.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/kafka-2-gwen-shapira-todd-palino-rajini-sivaram-krit-petty.json",
    "descriptionHtml": "<p>Every enterprise application creates data, whether it consists of log messages, metrics, user activity, or outgoing messages. Moving all this data is just as important as the data itself. With this updated edition, application architects, developers, and production engineers new to the Kafka streaming platform will learn how to handle data in motion. Additional chapters cover Kafka&#39;s AdminClient API, transactions, new security features, and tooling changes.</p>\n"
  },
  {
    "slug": "learn-you-a-haskell-for-great-good-1-miran-lipovaca",
    "title": "Learn You a Haskell for Great Good!",
    "subtitle": "A Beginner's Guide",
    "edition": 1,
    "authors": [
      {
        "name": "Miran Lipovaca",
        "slug": "miran-lipovaca",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/miran-lipovaca.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/learn-you-a-haskell-for-great-good-1-miran-lipovaca.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1593272839",
      "amazon_uk": "https://www.amazon.co.uk/dp/1593272839",
      "free": "https://learnyouahaskell.com/chapters"
    },
    "description": "It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible.\nYou'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/learn-you-a-haskell-for-great-good-1-miran-lipovaca.json",
    "descriptionHtml": "<p>It&#39;s all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author&#39;s original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible.\nYou&#39;ll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you&#39;ve got the basics down, the real black belt master-class begins: you&#39;ll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you&#39;ve only read about in storybooks.</p>\n"
  },
  {
    "slug": "learn-python-the-hard-way-3-zed-shaw",
    "title": "Learn Python the Hard Way",
    "subtitle": "A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (Zed Shaw's Hard Way Series)",
    "edition": 3,
    "authors": [
      {
        "name": "Zed Shaw",
        "slug": "zed-shaw",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/zed-shaw.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/learn-python-the-hard-way-3-zed-shaw.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0321884914",
      "amazon_uk": "https://www.amazon.co.uk/dp/0321884914"
    },
    "description": "You Will Learn Python!\nZed Shaw has perfected the world's best system for learning Python. Follow it and you will succeed-just like the hundreds of thousands of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.\nIn Learn Python the Hard Way, Third Edition, you'll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you'll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/learn-python-the-hard-way-3-zed-shaw.json",
    "descriptionHtml": "<p>You Will Learn Python!\nZed Shaw has perfected the world&#39;s best system for learning Python. Follow it and you will succeed-just like the hundreds of thousands of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else.\nIn Learn Python the Hard Way, Third Edition, you&#39;ll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you&#39;ll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use.</p>\n"
  },
  {
    "slug": "think-python-3-allen-b-downey",
    "title": "Think Python",
    "subtitle": "How to Think Like a Computer Scientist",
    "edition": 3,
    "authors": [
      {
        "name": "Allen B. Downey",
        "slug": "allen-b-downey",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/allen-b-downey.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/think-python-3-allen-b-downey.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098155432",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098155432"
    },
    "description": "Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a timeโ€”beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the growing role of large language models (LLMs) in programming and includes exercises on effective LLM prompts, testing code, and debugging skills.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/think-python-3-allen-b-downey.json",
    "descriptionHtml": "<p>Python is an excellent way to get started in programming, and this clear, concise guide walks you through Python a step at a timeโ€”beginning with basic programming concepts before moving on to functions, data structures, and object-oriented design. This revised third edition reflects the growing role of large language models (LLMs) in programming and includes exercises on effective LLM prompts, testing code, and debugging skills.</p>\n"
  },
  {
    "slug": "introduction-to-networking-1-dr-charles-r-severance",
    "title": "Introduction to Networking",
    "subtitle": "How the Internet Works",
    "edition": 1,
    "authors": [
      {
        "name": "Dr. Charles R Severance",
        "slug": "dr-charles-r-severance",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/dr-charles-r-severance.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/introduction-to-networking-1-dr-charles-r-severance.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1511654945",
      "amazon_uk": "https://www.amazon.co.uk/dp/1511654945",
      "free": "https://github.com/csev/net-intro"
    },
    "description": "This book demystifies the amazing architecture and protocols of computers as they communicate over the Internet.  While very complex, the Internet operates on a few relatively simple concepts that anyone can understand. Networks and networked applications are embedded in our lives. Understanding how these technologies work is invaluable.  This book was written for everyone - no technical knowledge is required! While this book is not specifically about the Network+ or CCNA certifications, it as a way to give students interested in these certifications a starting point.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/introduction-to-networking-1-dr-charles-r-severance.json",
    "descriptionHtml": "<p>This book demystifies the amazing architecture and protocols of computers as they communicate over the Internet.  While very complex, the Internet operates on a few relatively simple concepts that anyone can understand. Networks and networked applications are embedded in our lives. Understanding how these technologies work is invaluable.  This book was written for everyone - no technical knowledge is required! While this book is not specifically about the Network+ or CCNA certifications, it as a way to give students interested in these certifications a starting point.</p>\n"
  },
  {
    "slug": "architecture-patterns-with-python-1-harry-percival-bob-gregory",
    "title": "Architecture Patterns with Python",
    "subtitle": "Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices",
    "edition": 1,
    "authors": [
      {
        "name": "Harry Percival",
        "slug": "harry-percival",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/harry-percival.json"
      },
      {
        "name": "Bob Gregory",
        "slug": "bob-gregory",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/bob-gregory.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/architecture-patterns-with-python-1-harry-percival-bob-gregory.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492052205",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492052205",
      "free": "https://www.cosmicpython.com/book/preface.html"
    },
    "description": "As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn't always straightforward.\nWith this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexityโ€•and get the most value out of their test suites.\nEach pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/architecture-patterns-with-python-1-harry-percival-bob-gregory.json",
    "descriptionHtml": "<p>As Python continues to grow in popularity, projects are becoming larger and more complex. Many Python developers are taking an interest in high-level software design patterns such as hexagonal/clean architecture, event-driven architecture, and the strategic patterns prescribed by domain-driven design (DDD). But translating those patterns into Python isn&#39;t always straightforward.\nWith this hands-on guide, Harry Percival and Bob Gregory from MADE.com introduce proven architectural design patterns to help Python developers manage application complexityโ€•and get the most value out of their test suites.\nEach pattern is illustrated with concrete examples in beautiful, idiomatic Python, avoiding some of the verbosity of Java and C# syntax</p>\n"
  },
  {
    "slug": "fundamentals-of-software-architecture-1-mark-richards-neal-ford",
    "title": "Fundamentals of Software Architecture",
    "subtitle": "An Engineering Approach",
    "edition": 1,
    "authors": [
      {
        "name": "Mark Richards",
        "slug": "mark-richards",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mark-richards.json"
      },
      {
        "name": "Neal Ford",
        "slug": "neal-ford",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/neal-ford.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/fundamentals-of-software-architecture-1-mark-richards-neal-ford.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492043451",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492043451"
    },
    "description": "Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture's many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.\nMark Richards and Neal Fordโ€”hands-on practitioners who have taught software architecture classes professionally for yearsโ€”focus on architecture principles that apply across all technology stacks. You'll explore software architecture in a modern light, taking into account all the innovations of the past decade.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/fundamentals-of-software-architecture-1-mark-richards-neal-ford.json",
    "descriptionHtml": "<p>Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real guide exists to help developers become architects. Until now. This book provides the first comprehensive overview of software architecture&#39;s many aspects. Aspiring and existing architects alike will examine architectural characteristics, architectural patterns, component determination, diagramming and presenting architecture, evolutionary architecture, and many other topics.\nMark Richards and Neal Fordโ€”hands-on practitioners who have taught software architecture classes professionally for yearsโ€”focus on architecture principles that apply across all technology stacks. You&#39;ll explore software architecture in a modern light, taking into account all the innovations of the past decade.</p>\n"
  },
  {
    "slug": "fullstack-vue-1-hassan-djirdeh-nate-murray-ari-lerner",
    "title": "Fullstack Vue",
    "subtitle": "The Complete Guide to Vue.js",
    "edition": 1,
    "authors": [
      {
        "name": "Hassan Djirdeh",
        "slug": "hassan-djirdeh",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/hassan-djirdeh.json"
      },
      {
        "name": "Nate Murray",
        "slug": "nate-murray",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/nate-murray.json"
      },
      {
        "name": "Ari Lerner",
        "slug": "ari-lerner",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ari-lerner.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/fullstack-vue-1-hassan-djirdeh-nate-murray-ari-lerner.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1987595297",
      "amazon_uk": "https://www.amazon.co.uk/dp/1987595297"
    },
    "description": "Ready to Master Vue.js?\nWhat if you could master the entire framework - with solid foundations - in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and the best tools?\nStop wasting your time searching and have everything you need to be productive in one, well-organized place, with complete examples to get your project up without needing to resort to endless hours of research.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/fullstack-vue-1-hassan-djirdeh-nate-murray-ari-lerner.json",
    "descriptionHtml": "<p>Ready to Master Vue.js?\nWhat if you could master the entire framework - with solid foundations - in less time without beating your head against a wall? Imagine how quickly you could work if you knew the best practices and the best tools?\nStop wasting your time searching and have everything you need to be productive in one, well-organized place, with complete examples to get your project up without needing to resort to endless hours of research.</p>\n"
  },
  {
    "slug": "learning-vue-1-maya-shavin",
    "title": "Learning Vue",
    "edition": 1,
    "authors": [
      {
        "name": "Maya Shavin",
        "slug": "maya-shavin",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/maya-shavin.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/learning-vue-1-maya-shavin.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/B0CPB9KRCG",
      "amazon_uk": "https://www.amazon.co.uk/dp/B0CPB9KRCG"
    },
    "description": "Learn the core concepts of Vue.js, the modern JavaScript framework for building frontend applications and interfaces from scratch. With concise, practical, and clear examples, this book takes web developers step-by-step through the tools and libraries in the Vue.js ecosystem and shows them how to create complete applications for real-world web projects.\nYou'll learn how to handle data communication between components with Pinia architecture, develop a manageable routing system for a frontend project to control the application flow, and produce basic animation effects to create a better user experience.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/learning-vue-1-maya-shavin.json",
    "descriptionHtml": "<p>Learn the core concepts of Vue.js, the modern JavaScript framework for building frontend applications and interfaces from scratch. With concise, practical, and clear examples, this book takes web developers step-by-step through the tools and libraries in the Vue.js ecosystem and shows them how to create complete applications for real-world web projects.\nYou&#39;ll learn how to handle data communication between components with Pinia architecture, develop a manageable routing system for a frontend project to control the application flow, and produce basic animation effects to create a better user experience.</p>\n"
  },
  {
    "slug": "building-micro-frontends-1-luca-mezzalira",
    "title": "Building Micro-Frontends",
    "subtitle": "Scaling Teams and Projects, Empowering Developers",
    "edition": 1,
    "authors": [
      {
        "name": "Luca Mezzalira",
        "slug": "luca-mezzalira",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/luca-mezzalira.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/building-micro-frontends-1-luca-mezzalira.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492082996",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492082996"
    },
    "description": "What's the answer to today's increasingly complex web applications? Micro-frontends. Inspired by the microservices model, this approach lets you break interfaces into separate features managed by different teams of developers. With this practical guide, Luca Mezzalira shows software architects, tech leads, and software developers how to build and deliver artifacts atomically rather than use a big bang deployment.\nYou'll learn how micro-frontends enable your team to choose any library or framework. This gives your organization technical flexibility and allows you to hire and retain a broad spectrum of talent. Micro-frontends also support distributed or colocated teams more efficiently. Pick up this book and learn how to get started with this technological breakthrough right away.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/building-micro-frontends-1-luca-mezzalira.json",
    "descriptionHtml": "<p>What&#39;s the answer to today&#39;s increasingly complex web applications? Micro-frontends. Inspired by the microservices model, this approach lets you break interfaces into separate features managed by different teams of developers. With this practical guide, Luca Mezzalira shows software architects, tech leads, and software developers how to build and deliver artifacts atomically rather than use a big bang deployment.\nYou&#39;ll learn how micro-frontends enable your team to choose any library or framework. This gives your organization technical flexibility and allows you to hire and retain a broad spectrum of talent. Micro-frontends also support distributed or colocated teams more efficiently. Pick up this book and learn how to get started with this technological breakthrough right away.</p>\n"
  },
  {
    "slug": "serverless-development-on-aws-1-sheen-brisals-luke-hedger",
    "title": "Serverless Development on AWS",
    "subtitle": "Building Enterprise-Scale Serverless Solutions",
    "edition": 1,
    "authors": [
      {
        "name": "Sheen Brisals",
        "slug": "sheen-brisals",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/sheen-brisals.json"
      },
      {
        "name": "Luke Hedger",
        "slug": "luke-hedger",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/luke-hedger.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/serverless-development-on-aws-1-sheen-brisals-luke-hedger.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098141938",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098141938"
    },
    "description": "The adoption of serverless is on the rise, but until now, little guidance has been available for development teams that want to apply this technology on AWS. This definitive guide is packed with architectural, security, and data best practices and patterns for architects and engineers who want to build reliable enterprise-scale serverless solutions.\nSheen Brisals, an AWS Serverless Hero, and Luke Hedger, an AWS Community Builder, outline the serverless adoption requirements for an enterprise, examine the development tools your team needs, and explain in depth the nuances of testing event-driven and distributed serverless services. You'll gain practical guidance for keeping up with change and learn how to build serverless solutions with sustainability in mind.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/serverless-development-on-aws-1-sheen-brisals-luke-hedger.json",
    "descriptionHtml": "<p>The adoption of serverless is on the rise, but until now, little guidance has been available for development teams that want to apply this technology on AWS. This definitive guide is packed with architectural, security, and data best practices and patterns for architects and engineers who want to build reliable enterprise-scale serverless solutions.\nSheen Brisals, an AWS Serverless Hero, and Luke Hedger, an AWS Community Builder, outline the serverless adoption requirements for an enterprise, examine the development tools your team needs, and explain in depth the nuances of testing event-driven and distributed serverless services. You&#39;ll gain practical guidance for keeping up with change and learn how to build serverless solutions with sustainability in mind.</p>\n"
  },
  {
    "slug": "full-stack-serverless-1-nader-dabit",
    "title": "Full Stack Serverless",
    "subtitle": "Modern Application Development with React, AWS, and GraphQL",
    "edition": 1,
    "authors": [
      {
        "name": "Nader Dabit",
        "slug": "nader-dabit",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/nader-dabit.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/full-stack-serverless-1-nader-dabit.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492059897",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492059897"
    },
    "description": "Cloud computing is typically associated with backend development and DevOps. But with the rise of serverless technologies and a new generation of services and frameworks, frontend and mobile developers can build robust applications with production-ready features such as authentication and authorization, API gateways, chatbots, augmented reality scenes, and more. This hands-on guide shows you how.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/full-stack-serverless-1-nader-dabit.json",
    "descriptionHtml": "<p>Cloud computing is typically associated with backend development and DevOps. But with the rise of serverless technologies and a new generation of services and frameworks, frontend and mobile developers can build robust applications with production-ready features such as authentication and authorization, API gateways, chatbots, augmented reality scenes, and more. This hands-on guide shows you how.</p>\n"
  },
  {
    "slug": "javascript-for-impatient-programmers-1-dr-axel-rauschmayer",
    "title": "JavaScript for impatient programmers",
    "edition": 1,
    "authors": [
      {
        "name": "Dr. Axel Rauschmayer",
        "slug": "dr-axel-rauschmayer",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/dr-axel-rauschmayer.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/javascript-for-impatient-programmers-1-dr-axel-rauschmayer.jpg",
    "links": {
      "free": "https://exploringjs.com/impatient-js/toc.html"
    },
    "description": "This book makes JavaScript less challenging to learn for newcomers, by offering a modern view that is as consistent as possible.\nHighlights:\n-  Get started quickly, by initially focusing on modern features.\n-  Test-driven exercises and quizzes available for most chapters.\n-  Covers all essential features of JavaScript, up to and including ES2022.\n-  Optional advanced sections let you dig deeper.\n-  No prior knowledge of JavaScript is required, but you should know how to program.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/javascript-for-impatient-programmers-1-dr-axel-rauschmayer.json",
    "descriptionHtml": "<p>This book makes JavaScript less challenging to learn for newcomers, by offering a modern view that is as consistent as possible.\nHighlights:</p>\n<ul>\n<li>Get started quickly, by initially focusing on modern features.</li>\n<li>Test-driven exercises and quizzes available for most chapters.</li>\n<li>Covers all essential features of JavaScript, up to and including ES2022.</li>\n<li>Optional advanced sections let you dig deeper.</li>\n<li>No prior knowledge of JavaScript is required, but you should know how to program.</li>\n</ul>\n"
  },
  {
    "slug": "web-application-security-2-andrew-hoffman",
    "title": "Web Application Security",
    "subtitle": "Exploitation and Countermeasures for Modern Web Applications",
    "edition": 2,
    "authors": [
      {
        "name": "Andrew Hoffman",
        "slug": "andrew-hoffman",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/andrew-hoffman.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/web-application-security-2-andrew-hoffman.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098143930",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098143930"
    },
    "description": "In the first edition of this critically acclaimed book, Andrew Hoffman defined the three pillars of application security: reconnaissance, offense, and defense. In this revised and updated second edition, he examines dozens of related topics, from the latest types of attacks and mitigations to threat modeling, the secure software development lifecycle (SSDL/SDLC), and more.\nHoffman, senior staff security engineer at Ripple, also provides information regarding exploits and mitigations for several additional web application technologies such as GraphQL, cloud-based deployments, content delivery networks (CDN) and server-side rendering (SSR). Following the curriculum from the first book, this second edition is split into three distinct pillars comprising three separate skill sets:\n- Pillar 1: Reconโ€”Learn techniques for mapping and documenting web applications remotely, including procedures for working with web applications\n- Pillar 2: Offenseโ€”Explore methods for attacking web applications using a number of highly effective exploits that have been proven by the best hackers in the world. These skills are valuable when used alongside the skills from Pillar 3.\n- Pillar 3: Defenseโ€”Build on skills acquired in the first two parts to construct effective and long-lived mitigations for each of the attacks described in Pillar 2.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/web-application-security-2-andrew-hoffman.json",
    "descriptionHtml": "<p>In the first edition of this critically acclaimed book, Andrew Hoffman defined the three pillars of application security: reconnaissance, offense, and defense. In this revised and updated second edition, he examines dozens of related topics, from the latest types of attacks and mitigations to threat modeling, the secure software development lifecycle (SSDL/SDLC), and more.\nHoffman, senior staff security engineer at Ripple, also provides information regarding exploits and mitigations for several additional web application technologies such as GraphQL, cloud-based deployments, content delivery networks (CDN) and server-side rendering (SSR). Following the curriculum from the first book, this second edition is split into three distinct pillars comprising three separate skill sets:</p>\n<ul>\n<li>Pillar 1: Reconโ€”Learn techniques for mapping and documenting web applications remotely, including procedures for working with web applications</li>\n<li>Pillar 2: Offenseโ€”Explore methods for attacking web applications using a number of highly effective exploits that have been proven by the best hackers in the world. These skills are valuable when used alongside the skills from Pillar 3.</li>\n<li>Pillar 3: Defenseโ€”Build on skills acquired in the first two parts to construct effective and long-lived mitigations for each of the attacks described in Pillar 2.</li>\n</ul>\n"
  },
  {
    "slug": "grokking-web-application-security-1-malcolm-mcdonald",
    "title": "Grokking Web Application Security",
    "edition": 1,
    "authors": [
      {
        "name": "Malcolm McDonald",
        "slug": "malcolm-mcdonald",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/malcolm-mcdonald.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/grokking-web-application-security-1-malcolm-mcdonald.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1633438260",
      "amazon_uk": "https://www.amazon.co.uk/dp/1633438260"
    },
    "description": "When you launch an application on the web, every hacker in the world has access to it. Are you sure your web apps can stand up to the most sophisticated attacks?\nGrokking Web Application Security is a brilliantly illustrated and clearly written guide that delivers detailed coverage on:\n- How the browser security model works, including sandboxing, the same-origin policy, and methods of securing cookies\n- Securing web servers with input validation, escaping of output, and defense in depth\n- A development process that prevents security bugs\n- Protecting yourself from browser vulnerabilities such as cross-site scripting, cross-site request forgery, and clickjacking\n- Network vulnerabilities like man-in-the-middle attacks, SSL-stripping, and DNS poisoning\n- Preventing authentication vulnerabilities that allow brute forcing of credentials by using single sign-on or multi-factor authentication\n- Authorization vulnerabilities like broken access control and session jacking\n- How to use encryption in web applications\n- Injection attacks, command execution attacks, and remote code execution attacks\n- Malicious payloads that can be used to attack XML parsers, and file upload functions",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/grokking-web-application-security-1-malcolm-mcdonald.json",
    "descriptionHtml": "<p>When you launch an application on the web, every hacker in the world has access to it. Are you sure your web apps can stand up to the most sophisticated attacks?\nGrokking Web Application Security is a brilliantly illustrated and clearly written guide that delivers detailed coverage on:</p>\n<ul>\n<li>How the browser security model works, including sandboxing, the same-origin policy, and methods of securing cookies</li>\n<li>Securing web servers with input validation, escaping of output, and defense in depth</li>\n<li>A development process that prevents security bugs</li>\n<li>Protecting yourself from browser vulnerabilities such as cross-site scripting, cross-site request forgery, and clickjacking</li>\n<li>Network vulnerabilities like man-in-the-middle attacks, SSL-stripping, and DNS poisoning</li>\n<li>Preventing authentication vulnerabilities that allow brute forcing of credentials by using single sign-on or multi-factor authentication</li>\n<li>Authorization vulnerabilities like broken access control and session jacking</li>\n<li>How to use encryption in web applications</li>\n<li>Injection attacks, command execution attacks, and remote code execution attacks</li>\n<li>Malicious payloads that can be used to attack XML parsers, and file upload functions</li>\n</ul>\n"
  },
  {
    "slug": "the-tangled-web-1-michal-zalewski",
    "title": "The Tangled Web",
    "subtitle": "A Guide to Securing Modern Web Applications",
    "edition": 1,
    "authors": [
      {
        "name": "Michal Zalewski",
        "slug": "michal-zalewski",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michal-zalewski.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-tangled-web-1-michal-zalewski.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1593273886",
      "amazon_uk": "https://www.amazon.co.uk/dp/1593273886"
    },
    "description": "Modern web applications are built on a tangle of technologies that have been developed over time and then haphazardly pieced together. Every piece of the web application stack, from HTTP requests to browser-side scripts, comes with important yet subtle security consequences. To keep users safe, it is essential for developers to confidently navigate this landscape.\nIn The Tangled Web, Michal Zalewski, one of the world's top browser security experts, offers a compelling narrative that explains exactly how browsers work and why they're fundamentally insecure. Rather than dispense simplistic advice on vulnerabilities, Zalewski examines the entire browser security model, revealing weak points and providing crucial information for shoring up web application security.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-tangled-web-1-michal-zalewski.json",
    "descriptionHtml": "<p>Modern web applications are built on a tangle of technologies that have been developed over time and then haphazardly pieced together. Every piece of the web application stack, from HTTP requests to browser-side scripts, comes with important yet subtle security consequences. To keep users safe, it is essential for developers to confidently navigate this landscape.\nIn The Tangled Web, Michal Zalewski, one of the world&#39;s top browser security experts, offers a compelling narrative that explains exactly how browsers work and why they&#39;re fundamentally insecure. Rather than dispense simplistic advice on vulnerabilities, Zalewski examines the entire browser security model, revealing weak points and providing crucial information for shoring up web application security.</p>\n"
  },
  {
    "slug": "react-2-stoyan-stefanov",
    "title": "React",
    "subtitle": "Up & Running",
    "edition": 2,
    "authors": [
      {
        "name": "Stoyan Stefanov",
        "slug": "stoyan-stefanov",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stoyan-stefanov.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/react-2-stoyan-stefanov.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492051462",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492051462"
    },
    "description": "Hit the ground running with React, the open source technology from Facebook for building rich web applications fast. Updated for the latest React release, the second edition of this hands-on guide shows you how to build React components and organize them into maintainable large-scale apps. If you're familiar with JavaScript syntax, you're ready to get started.\nThrough the course of this book, author Stoyan Stefanov helps web developers and programmers build a complete single-page application. You'll quickly learn why some developers consider React the key to the web app development puzzle.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/react-2-stoyan-stefanov.json",
    "descriptionHtml": "<p>Hit the ground running with React, the open source technology from Facebook for building rich web applications fast. Updated for the latest React release, the second edition of this hands-on guide shows you how to build React components and organize them into maintainable large-scale apps. If you&#39;re familiar with JavaScript syntax, you&#39;re ready to get started.\nThrough the course of this book, author Stoyan Stefanov helps web developers and programmers build a complete single-page application. You&#39;ll quickly learn why some developers consider React the key to the web app development puzzle.</p>\n"
  },
  {
    "slug": "hacking-apis-1-corey-j-ball",
    "title": "Hacking APIs",
    "subtitle": "Breaking Web Application Programming Interfaces",
    "edition": 1,
    "authors": [
      {
        "name": "Corey J. Ball",
        "slug": "corey-j-ball",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/corey-j-ball.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/hacking-apis-1-corey-j-ball.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1718502443",
      "amazon_uk": "https://www.amazon.co.uk/dp/1718502443"
    },
    "description": "Hacking APIs is a crash course in web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.\nYou'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/hacking-apis-1-corey-j-ball.json",
    "descriptionHtml": "<p>Hacking APIs is a crash course in web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure.\nYou&#39;ll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you&#39;ll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you&#39;ll learn to perform common attacks, like those targeting an API&#39;s authentication mechanisms and the injection vulnerabilities commonly found in web applications. You&#39;ll also learn techniques for bypassing protections against these attacks.</p>\n"
  },
  {
    "slug": "programming-phoenix-14-1-chris-mccord-bruce-tate-jose-valim",
    "title": "Programming Phoenix 1.4",
    "subtitle": "Productive |> Reliable |> Fast",
    "edition": 1,
    "authors": [
      {
        "name": "Chris McCord",
        "slug": "chris-mccord",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/chris-mccord.json"
      },
      {
        "name": "Bruce Tate",
        "slug": "bruce-tate",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/bruce-tate.json"
      },
      {
        "name": "Jose Valim",
        "slug": "jose-valim",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jose-valim.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/programming-phoenix-14-1-chris-mccord-bruce-tate-jose-valim.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1680502263",
      "amazon_uk": "https://www.amazon.co.uk/dp/1680502263"
    },
    "description": "Don't accept the compromise between fast and beautiful: you can have it all. Phoenix creator Chris McCord, Elixir creator Jose Valim, and award-winning author Bruce Tate walk you through building an application that's fast and reliable. At every step, you'll learn from the Phoenix creators not just what to do, but why. Packed with insider insights and completely updated for Phoenix 1.3, this definitive guide will be your constant companion in your journey from Phoenix novice to expert, as you build the next generation of web applications.\nPhoenix is the long-awaited web framework based on Elixir, the highly concurrent language that combines a beautiful syntax with rich metaprogramming. The best way to learn Phoenix is to code, and you'll get to attack some interesting problems. Start working with controllers, views, and templates within the first few pages. Build an in-memory context, and then back it with an Ecto database layer, complete with changesets and constraints that keep readers informed and your database integrity intact. Craft your own interactive application based on the channels API for the real-time applications that this ecosystem made famous. Write your own authentication plugs, and use the OTP layer for supervised services. Organize code with modular umbrella projects.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/programming-phoenix-14-1-chris-mccord-bruce-tate-jose-valim.json",
    "descriptionHtml": "<p>Don&#39;t accept the compromise between fast and beautiful: you can have it all. Phoenix creator Chris McCord, Elixir creator Jose Valim, and award-winning author Bruce Tate walk you through building an application that&#39;s fast and reliable. At every step, you&#39;ll learn from the Phoenix creators not just what to do, but why. Packed with insider insights and completely updated for Phoenix 1.3, this definitive guide will be your constant companion in your journey from Phoenix novice to expert, as you build the next generation of web applications.\nPhoenix is the long-awaited web framework based on Elixir, the highly concurrent language that combines a beautiful syntax with rich metaprogramming. The best way to learn Phoenix is to code, and you&#39;ll get to attack some interesting problems. Start working with controllers, views, and templates within the first few pages. Build an in-memory context, and then back it with an Ecto database layer, complete with changesets and constraints that keep readers informed and your database integrity intact. Craft your own interactive application based on the channels API for the real-time applications that this ecosystem made famous. Write your own authentication plugs, and use the OTP layer for supervised services. Organize code with modular umbrella projects.</p>\n"
  },
  {
    "slug": "webassembly-1-brian-sletten",
    "title": "WebAssembly",
    "subtitle": "The Definitive Guide",
    "edition": 1,
    "authors": [
      {
        "name": "Brian Sletten",
        "slug": "brian-sletten",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/brian-sletten.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/webassembly-1-brian-sletten.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492089842",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492089842"
    },
    "description": "WebAssembly: The Definitive Guide is a thorough and accessible introduction to one of the most transformative technologies hitting our industry. What started as a way to use languages other than JavaScript in the browser has evolved into a comprehensive path toward portability, performance, increased security, and greater code reuse across an impressive collection of deployment targets.\nAuthor Brian Sletten introduces elements of this technology incrementally while building to several concrete, code-driven examples of practical, cutting-edge WebAssembly uses. Whether you work with enterprise software or embedded systems, or in entertainment, scientific computing, or startup environments, you'll learn how WebAssembly can have a positive impact on the way you develop software.\n- Use WebAssembly to increase code portability across platforms\n- Reuse more of your software assets in a wider number of deployment targets\n- Learn how WebAssembly increases protection against prominent security attacks\n- Use WebAssembly to deploy legacy code in web environments\n- Increase your user base across languages and development environments\n- Integrate JavaScript code with other languages and environments to improve performance, security, and productivity\n- Learn how WebAssembly will affect your career as software developer",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/webassembly-1-brian-sletten.json",
    "descriptionHtml": "<p>WebAssembly: The Definitive Guide is a thorough and accessible introduction to one of the most transformative technologies hitting our industry. What started as a way to use languages other than JavaScript in the browser has evolved into a comprehensive path toward portability, performance, increased security, and greater code reuse across an impressive collection of deployment targets.\nAuthor Brian Sletten introduces elements of this technology incrementally while building to several concrete, code-driven examples of practical, cutting-edge WebAssembly uses. Whether you work with enterprise software or embedded systems, or in entertainment, scientific computing, or startup environments, you&#39;ll learn how WebAssembly can have a positive impact on the way you develop software.</p>\n<ul>\n<li>Use WebAssembly to increase code portability across platforms</li>\n<li>Reuse more of your software assets in a wider number of deployment targets</li>\n<li>Learn how WebAssembly increases protection against prominent security attacks</li>\n<li>Use WebAssembly to deploy legacy code in web environments</li>\n<li>Increase your user base across languages and development environments</li>\n<li>Integrate JavaScript code with other languages and environments to improve performance, security, and productivity</li>\n<li>Learn how WebAssembly will affect your career as software developer</li>\n</ul>\n"
  },
  {
    "slug": "web-scraping-with-python-3-ryan-mitchell",
    "title": "Web Scraping with Python",
    "edition": 3,
    "authors": [
      {
        "name": "Ryan Mitchell",
        "slug": "ryan-mitchell",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ryan-mitchell.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/web-scraping-with-python-3-ryan-mitchell.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/B0CVP964KM",
      "amazon_uk": "https://www.amazon.co.uk/dp/B0CVP964KM"
    },
    "description": "If programming is magic, then web scraping is surely a form of wizardry. By writing a simple automated program, you can query web servers, request data, and parse it to extract the information you need. This thoroughly updated third edition not only introduces you to web scraping but also serves as a comprehensive guide to scraping almost every type of data from the modern web.\nPart I focuses on web scraping mechanics: using Python to request information from a web server, performing basic handling of the server's response, and interacting with sites in an automated fashion. Part II explores a variety of more specific tools and applications to fit any web scraping scenario you're likely to encounter.\n- Parse complicated HTML pages\n- Develop crawlers with the Scrapy framework\n- Learn methods to store the data you scrape\n- Read and extract data from documents\n- Clean and normalize badly formatted data\n- Read and write natural languages\n- Crawl through forms and logins\n- Scrape JavaScript and crawl through APIs\n- Use and write image-to-text software\n- Avoid scraping traps and bot blockers\n- Use scrapers to test your website",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/web-scraping-with-python-3-ryan-mitchell.json",
    "descriptionHtml": "<p>If programming is magic, then web scraping is surely a form of wizardry. By writing a simple automated program, you can query web servers, request data, and parse it to extract the information you need. This thoroughly updated third edition not only introduces you to web scraping but also serves as a comprehensive guide to scraping almost every type of data from the modern web.\nPart I focuses on web scraping mechanics: using Python to request information from a web server, performing basic handling of the server&#39;s response, and interacting with sites in an automated fashion. Part II explores a variety of more specific tools and applications to fit any web scraping scenario you&#39;re likely to encounter.</p>\n<ul>\n<li>Parse complicated HTML pages</li>\n<li>Develop crawlers with the Scrapy framework</li>\n<li>Learn methods to store the data you scrape</li>\n<li>Read and extract data from documents</li>\n<li>Clean and normalize badly formatted data</li>\n<li>Read and write natural languages</li>\n<li>Crawl through forms and logins</li>\n<li>Scrape JavaScript and crawl through APIs</li>\n<li>Use and write image-to-text software</li>\n<li>Avoid scraping traps and bot blockers</li>\n<li>Use scrapers to test your website</li>\n</ul>\n"
  },
  {
    "slug": "acing-the-system-design-interview-1-zhiyong-tan",
    "title": "Acing the System Design Interview",
    "edition": 1,
    "authors": [
      {
        "name": "Zhiyong Tan",
        "slug": "zhiyong-tan",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/zhiyong-tan.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/acing-the-system-design-interview-1-zhiyong-tan.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1633439100",
      "amazon_uk": "https://www.amazon.co.uk/dp/1633439100"
    },
    "description": "The system design interview is one of the hardest challenges you'll face in the software engineering hiring process. This practical book gives you the insights, the skills, and the hands-on practice you need to ace the toughest system design interview questions and land the job and salary you want.In Acing the System Design Interview you will master a structured and organized approach to present system design ideas like:\n- Scaling applications to support heavy traffic\n- Distributed transactions techniques to ensure data consistency\n- Services for functional partitioning such as API gateway and service mesh\n- Common API paradigms including REST, RPC, and GraphQL\n- Caching strategies, including their tradeoffs\n- Logging, monitoring, and alerting concepts that are critical in any system design\n- Communication skills that demonstrate your engineering maturity\nDon't be daunted by the complex, open-ended nature of system design interviews! In this in-depth guide, author Zhiyong Tan shares what he's learned on both sides of the interview table. You'll dive deep into the common technical topics that arise during interviews and learn how to apply them to mentally perfect different kinds of systems.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/acing-the-system-design-interview-1-zhiyong-tan.json",
    "descriptionHtml": "<p>The system design interview is one of the hardest challenges you&#39;ll face in the software engineering hiring process. This practical book gives you the insights, the skills, and the hands-on practice you need to ace the toughest system design interview questions and land the job and salary you want.In Acing the System Design Interview you will master a structured and organized approach to present system design ideas like:</p>\n<ul>\n<li>Scaling applications to support heavy traffic</li>\n<li>Distributed transactions techniques to ensure data consistency</li>\n<li>Services for functional partitioning such as API gateway and service mesh</li>\n<li>Common API paradigms including REST, RPC, and GraphQL</li>\n<li>Caching strategies, including their tradeoffs</li>\n<li>Logging, monitoring, and alerting concepts that are critical in any system design</li>\n<li>Communication skills that demonstrate your engineering maturity\nDon&#39;t be daunted by the complex, open-ended nature of system design interviews! In this in-depth guide, author Zhiyong Tan shares what he&#39;s learned on both sides of the interview table. You&#39;ll dive deep into the common technical topics that arise during interviews and learn how to apply them to mentally perfect different kinds of systems.</li>\n</ul>\n"
  },
  {
    "slug": "secrets-of-the-javascript-ninja-2-john-resig-bear-bibeault-josip-maras",
    "title": "Secrets of the JavaScript Ninja",
    "edition": 2,
    "authors": [
      {
        "name": "John Resig",
        "slug": "john-resig",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/john-resig.json"
      },
      {
        "name": "Bear Bibeault",
        "slug": "bear-bibeault",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/bear-bibeault.json"
      },
      {
        "name": "Josip Maras",
        "slug": "josip-maras",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/josip-maras.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/secrets-of-the-javascript-ninja-2-john-resig-bear-bibeault-josip-maras.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617292850",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617292850"
    },
    "description": "More than ever, the web is a universal platform for all types of applications, and JavaScript is the language of the web. If you're serious about web development, it's not enough to be a decent JavaScript coder. You need to be ninja-stealthy, efficient, and ready for anything. This book shows you how.\nSecrets of the JavaScript Ninja, Second Edition uses practical examples to clearly illustrate each core concept and technique. This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You'll discover best practice techniques such as testing, and cross-browser development, all taught from the perspective of skilled JavaScript practitioners.What's Inside\n- Writing more effective code with functions, objects, and closures\n- Learning to avoid JavaScript application pitfalls\n- Using regular expressions to write succinct text-processing code\n- Managing asynchronous code with promises\n- Fully revised to cover concepts from ES6 and ES7",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/secrets-of-the-javascript-ninja-2-john-resig-bear-bibeault-josip-maras.json",
    "descriptionHtml": "<p>More than ever, the web is a universal platform for all types of applications, and JavaScript is the language of the web. If you&#39;re serious about web development, it&#39;s not enough to be a decent JavaScript coder. You need to be ninja-stealthy, efficient, and ready for anything. This book shows you how.\nSecrets of the JavaScript Ninja, Second Edition uses practical examples to clearly illustrate each core concept and technique. This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You&#39;ll discover best practice techniques such as testing, and cross-browser development, all taught from the perspective of skilled JavaScript practitioners.What&#39;s Inside</p>\n<ul>\n<li>Writing more effective code with functions, objects, and closures</li>\n<li>Learning to avoid JavaScript application pitfalls</li>\n<li>Using regular expressions to write succinct text-processing code</li>\n<li>Managing asynchronous code with promises</li>\n<li>Fully revised to cover concepts from ES6 and ES7</li>\n</ul>\n"
  },
  {
    "slug": "the-devops-handbook-1-gene-kim-jez-humble-patrick-debois-john-willis-nicole-forsgren",
    "title": "The DevOps Handbook",
    "subtitle": "How to Create World-Class Agility, Reliability, & Security in Technology Organizations",
    "edition": 1,
    "authors": [
      {
        "name": "Gene Kim",
        "slug": "gene-kim",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/gene-kim.json"
      },
      {
        "name": "Jez Humble",
        "slug": "jez-humble",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jez-humble.json"
      },
      {
        "name": "Patrick Debois",
        "slug": "patrick-debois",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/patrick-debois.json"
      },
      {
        "name": "John Willis",
        "slug": "john-willis",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/john-willis.json"
      },
      {
        "name": "Nicole Forsgren",
        "slug": "nicole-forsgren",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/nicole-forsgren.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-devops-handbook-1-gene-kim-jez-humble-patrick-debois-john-willis-nicole-forsgren.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1950508404",
      "amazon_uk": "https://www.amazon.co.uk/dp/1950508404"
    },
    "description": "This award-winning and bestselling business handbook for digital transformation is now fully updated and expanded with the latest research and new case studies!\nโ€œ\\[The DevOps Handbook\\] remains a must-read for any organization seeking to scale up its IT capability and expand DevOps practices across multiple departments or lines of business.โ€ โ€•Mike Perrow, TechBeacon\nFor years, The DevOps Handbook has been the definitive guide for taking the successes laid out in the bestselling The Phoenix Project and applying them in any organization. Now, with this fully updated and expanded edition, it's time to take DevOps out of the IT department and apply it across the full business.\nTechnology is now at the core of every company, no matter the business model or product. The theories and practices laid out in The DevOps Handbook are tools to be used by anyone from across the organization to create joy and succeed in the marketplace.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-devops-handbook-1-gene-kim-jez-humble-patrick-debois-john-willis-nicole-forsgren.json",
    "descriptionHtml": "<p>This award-winning and bestselling business handbook for digital transformation is now fully updated and expanded with the latest research and new case studies!\nโ€œ[The DevOps Handbook] remains a must-read for any organization seeking to scale up its IT capability and expand DevOps practices across multiple departments or lines of business.โ€ โ€•Mike Perrow, TechBeacon\nFor years, The DevOps Handbook has been the definitive guide for taking the successes laid out in the bestselling The Phoenix Project and applying them in any organization. Now, with this fully updated and expanded edition, it&#39;s time to take DevOps out of the IT department and apply it across the full business.\nTechnology is now at the core of every company, no matter the business model or product. The theories and practices laid out in The DevOps Handbook are tools to be used by anyone from across the organization to create joy and succeed in the marketplace.</p>\n"
  },
  {
    "slug": "accelerating-server-side-development-with-fastify-1-manuel-spigolon-maksim-sinik-matteo-collina",
    "title": "Accelerating Server-Side Development with Fastify",
    "subtitle": "A comprehensive guide to API development for building a scalable backend for your web apps",
    "edition": 1,
    "authors": [
      {
        "name": "Manuel Spigolon",
        "slug": "manuel-spigolon",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/manuel-spigolon.json"
      },
      {
        "name": "Maksim Sinik",
        "slug": "maksim-sinik",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/maksim-sinik.json"
      },
      {
        "name": "Matteo Collina",
        "slug": "matteo-collina",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/matteo-collina.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/accelerating-server-side-development-with-fastify-1-manuel-spigolon-maksim-sinik-matteo-collina.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1800563582",
      "amazon_uk": "https://www.amazon.co.uk/dp/1800563582"
    },
    "description": "Learn to build faster web applications by implementing maintainable and pluggable APIs with Fastify.\nKey Features:\n- Written by Fastify's core contributors to help you adopt the Fastify mindset for API development\n- Gain an architectural overview of Fastify's microservices development capabilities and features\n- Build complete apps in Fastify, from application design to production",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/accelerating-server-side-development-with-fastify-1-manuel-spigolon-maksim-sinik-matteo-collina.json",
    "descriptionHtml": "<p>Learn to build faster web applications by implementing maintainable and pluggable APIs with Fastify.\nKey Features:</p>\n<ul>\n<li>Written by Fastify&#39;s core contributors to help you adopt the Fastify mindset for API development</li>\n<li>Gain an architectural overview of Fastify&#39;s microservices development capabilities and features</li>\n<li>Build complete apps in Fastify, from application design to production</li>\n</ul>\n"
  },
  {
    "slug": "building-microservices-2-sam-newman",
    "title": "Building Microservices",
    "subtitle": "Designing Fine-Grained Systems",
    "edition": 2,
    "authors": [
      {
        "name": "Sam Newman",
        "slug": "sam-newman",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/sam-newman.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/building-microservices-2-sam-newman.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492034029",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492034029"
    },
    "description": "As organizations shift from monolithic applications to smaller, self-contained microservices, distributed systems have become more fine-grained. But developing these new systems brings its own host of problems. This expanded second edition takes a holistic view of topics that you need to consider when building, managing, and scaling microservices architectures.\nThrough clear examples and practical advice, author Sam Newman gives everyone from architects and developers to testers and IT operators a firm grounding in the concepts. You'll dive into the latest solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. Real-world cases reveal how organizations today manage to get the most out of these architectures.\nMicroservices technologies continue to move quickly. This book brings you up to speed.\n- Get new information on user interfaces, container orchestration, and serverless\n- Align system design with your organization's goals\n- Explore options for integrating a service with your system\n- Understand how to independently deploy microservices\n- Examine the complexities of testing and monitoring distributed services\n- Manage security with expanded content around user-to-service and service-to-service models",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/building-microservices-2-sam-newman.json",
    "descriptionHtml": "<p>As organizations shift from monolithic applications to smaller, self-contained microservices, distributed systems have become more fine-grained. But developing these new systems brings its own host of problems. This expanded second edition takes a holistic view of topics that you need to consider when building, managing, and scaling microservices architectures.\nThrough clear examples and practical advice, author Sam Newman gives everyone from architects and developers to testers and IT operators a firm grounding in the concepts. You&#39;ll dive into the latest solutions for modeling, integrating, testing, deploying, and monitoring your own autonomous services. Real-world cases reveal how organizations today manage to get the most out of these architectures.\nMicroservices technologies continue to move quickly. This book brings you up to speed.</p>\n<ul>\n<li>Get new information on user interfaces, container orchestration, and serverless</li>\n<li>Align system design with your organization&#39;s goals</li>\n<li>Explore options for integrating a service with your system</li>\n<li>Understand how to independently deploy microservices</li>\n<li>Examine the complexities of testing and monitoring distributed services</li>\n<li>Manage security with expanded content around user-to-service and service-to-service models</li>\n</ul>\n"
  },
  {
    "slug": "the-tao-of-microservices-1-richard-rodger",
    "title": "The Tao of Microservices",
    "edition": 1,
    "authors": [
      {
        "name": "Richard Rodger",
        "slug": "richard-rodger",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/richard-rodger.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-tao-of-microservices-1-richard-rodger.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617293148",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617293148"
    },
    "description": "The Tao of Microservices guides you on the path to understanding how to apply microservice architectures to your own real-world projects. This high-level book offers a conceptual view of microservice design, along with core concepts and their application.\nAn application, even a complex one, can be designed as a system of independent components, each of which handles a single responsibility. Individual microservices are easy for small teams without extensive knowledge of the entire system design to build and maintain. Microservice applications rely on modern patterns like asynchronous, message-based communication, and they can be optimized to work well in cloud and container-centric environments.\nWhat's Inside:\n- Principles of the microservice architecture\n- Breaking down real-world case studies\n- Implementing large-scale systems\n- When not to use microservices",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-tao-of-microservices-1-richard-rodger.json",
    "descriptionHtml": "<p>The Tao of Microservices guides you on the path to understanding how to apply microservice architectures to your own real-world projects. This high-level book offers a conceptual view of microservice design, along with core concepts and their application.\nAn application, even a complex one, can be designed as a system of independent components, each of which handles a single responsibility. Individual microservices are easy for small teams without extensive knowledge of the entire system design to build and maintain. Microservice applications rely on modern patterns like asynchronous, message-based communication, and they can be optimized to work well in cloud and container-centric environments.\nWhat&#39;s Inside:</p>\n<ul>\n<li>Principles of the microservice architecture</li>\n<li>Breaking down real-world case studies</li>\n<li>Implementing large-scale systems</li>\n<li>When not to use microservices</li>\n</ul>\n"
  },
  {
    "slug": "ai-as-a-service-1-peter-elger-eoin-shanaghy",
    "title": "AI as a Service",
    "subtitle": "Serverless machine learning with AWS",
    "edition": 1,
    "authors": [
      {
        "name": "Peter Elger",
        "slug": "peter-elger",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/peter-elger.json"
      },
      {
        "name": "Eoin Shanaghy",
        "slug": "eoin-shanaghy",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/eoin-shanaghy.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/ai-as-a-service-1-peter-elger-eoin-shanaghy.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1617296155",
      "amazon_uk": "https://www.amazon.co.uk/dp/1617296155"
    },
    "description": "AI as a Service is a practical handbook to building and implementing serverless AI applications, without bogging you down with a lot of theory. Instead, you'll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide!\nCompanies everywhere are moving everyday business processes over to the cloud, and AI is increasingly being given the reins in these tasks. As this massive digital transformation continues, the combination of serverless computing and AI promises to become the de facto standard for business-to-consumer platform developmentโ€”and developers who can design, develop, implement, and maintain these systems will be in high demand! AI as a Service is a practical handbook to building and implementing serverless AI applications, without bogging you down with a lot of theory. Instead, you'll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide!",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/ai-as-a-service-1-peter-elger-eoin-shanaghy.json",
    "descriptionHtml": "<p>AI as a Service is a practical handbook to building and implementing serverless AI applications, without bogging you down with a lot of theory. Instead, you&#39;ll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide!\nCompanies everywhere are moving everyday business processes over to the cloud, and AI is increasingly being given the reins in these tasks. As this massive digital transformation continues, the combination of serverless computing and AI promises to become the de facto standard for business-to-consumer platform developmentโ€”and developers who can design, develop, implement, and maintain these systems will be in high demand! AI as a Service is a practical handbook to building and implementing serverless AI applications, without bogging you down with a lot of theory. Instead, you&#39;ll find easy-to-digest instruction and two complete hands-on serverless AI builds in this must-have guide!</p>\n"
  },
  {
    "slug": "rust-atomics-and-locks-1-mara-bos",
    "title": "Rust Atomics and Locks",
    "subtitle": "Low-Level Concurrency in Practice",
    "edition": 1,
    "authors": [
      {
        "name": "Mara Bos",
        "slug": "mara-bos",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mara-bos.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/rust-atomics-and-locks-1-mara-bos.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098119444",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098119444",
      "free": "https://marabos.nl/atomics/foreword.html"
    },
    "description": "The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be very difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon.\nIn this practical book, Mara Bos, leader of the Rust library team, helps Rust programmers of all levels gain a clear understanding of low-level concurrency. You'll learn everything about atomics and memory ordering and how they're combined with basic operating system APIs to build common primitives like mutexes and condition variables. Once you're done, you'll have a firm grasp of how Rust's memory model, the processor, and the role of the operating system all fit together.\nWith this guide, you'll learn:\n- How Rust's type system works exceptionally well for programming concurrency correctly\n- All about mutexes, condition variables, atomics, and memory ordering\n- What happens in practice with atomic operations on Intel and ARM processors\n- How locks are implemented with support from the operating system\n- How to write correct code that includes concurrency, atomics, and locks\n- How to build your own locking and synchronization primitives correctly",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/rust-atomics-and-locks-1-mara-bos.json",
    "descriptionHtml": "<p>The Rust programming language is extremely well suited for concurrency, and its ecosystem has many libraries that include lots of concurrent data structures, locks, and more. But implementing those structures correctly can be very difficult. Even in the most well-used libraries, memory ordering bugs are not uncommon.\nIn this practical book, Mara Bos, leader of the Rust library team, helps Rust programmers of all levels gain a clear understanding of low-level concurrency. You&#39;ll learn everything about atomics and memory ordering and how they&#39;re combined with basic operating system APIs to build common primitives like mutexes and condition variables. Once you&#39;re done, you&#39;ll have a firm grasp of how Rust&#39;s memory model, the processor, and the role of the operating system all fit together.\nWith this guide, you&#39;ll learn:</p>\n<ul>\n<li>How Rust&#39;s type system works exceptionally well for programming concurrency correctly</li>\n<li>All about mutexes, condition variables, atomics, and memory ordering</li>\n<li>What happens in practice with atomic operations on Intel and ARM processors</li>\n<li>How locks are implemented with support from the operating system</li>\n<li>How to write correct code that includes concurrency, atomics, and locks</li>\n<li>How to build your own locking and synchronization primitives correctly</li>\n</ul>\n"
  },
  {
    "slug": "accelerate-1-nicole-forsgren-phd-jez-humble-gene-kim",
    "title": "Accelerate",
    "subtitle": "The Science of Lean Software and DevOps",
    "edition": 1,
    "authors": [
      {
        "name": "Nicole Forsgren  PhD",
        "slug": "nicole-forsgren-phd",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/nicole-forsgren-phd.json"
      },
      {
        "name": "Jez Humble",
        "slug": "jez-humble",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jez-humble.json"
      },
      {
        "name": "Gene Kim",
        "slug": "gene-kim",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/gene-kim.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/accelerate-1-nicole-forsgren-phd-jez-humble-gene-kim.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1942788339",
      "amazon_uk": "https://www.amazon.co.uk/dp/1942788339"
    },
    "description": "\"We strongly recommend this book to anyone involved in a digital transformation for solid guidance about what works, what doesn't work, and what doesn't matter.\" โ€•Tom and Mary Poppendieck, authors of the Lean Software Development Series\n\"A must-read! In a sea of books about technology approaches, Accelerate stands out in its clarity and practicality.\" โ€•Karen Martin, author of Clarity First and The Outstanding Organization\nWinner of the Shingo Publication Award\nAccelerate your organization to win in the marketplace.\nHow can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matterโ€•that it can't provide a competitive advantage to our companies. Through four years of groundbreaking research to include data collected from the State of DevOps reports conducted with Puppet, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performanceโ€•and what drives itโ€•using rigorous statistical methods. This book presents both the findings and the science behind that research, making the information accessible for readers to apply in their own organizations.\nReaders will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance. This book is ideal for management at every level.\n\"This is the kind of foresight that CEOs, CFOs, and CIOs desperately need if their company is going to survive in this new software-centric world. Anyone that doesn't read this book will be replaced by someone that has.\" โ€•Thomas A. Limoncelli, coauthor of The Practice of Cloud System Administration",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/accelerate-1-nicole-forsgren-phd-jez-humble-gene-kim.json",
    "descriptionHtml": "<p>&quot;We strongly recommend this book to anyone involved in a digital transformation for solid guidance about what works, what doesn&#39;t work, and what doesn&#39;t matter.&quot; โ€•Tom and Mary Poppendieck, authors of the Lean Software Development Series\n&quot;A must-read! In a sea of books about technology approaches, Accelerate stands out in its clarity and practicality.&quot; โ€•Karen Martin, author of Clarity First and The Outstanding Organization\nWinner of the Shingo Publication Award\nAccelerate your organization to win in the marketplace.\nHow can we apply technology to drive business value? For years, we&#39;ve been told that the performance of software delivery teams doesn&#39;t matterโ€•that it can&#39;t provide a competitive advantage to our companies. Through four years of groundbreaking research to include data collected from the State of DevOps reports conducted with Puppet, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performanceโ€•and what drives itโ€•using rigorous statistical methods. This book presents both the findings and the science behind that research, making the information accessible for readers to apply in their own organizations.\nReaders will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance. This book is ideal for management at every level.\n&quot;This is the kind of foresight that CEOs, CFOs, and CIOs desperately need if their company is going to survive in this new software-centric world. Anyone that doesn&#39;t read this book will be replaced by someone that has.&quot; โ€•Thomas A. Limoncelli, coauthor of The Practice of Cloud System Administration</p>\n"
  },
  {
    "slug": "nodejs-secure-coding-1-liran-tal",
    "title": "Node.js Secure Coding",
    "subtitle": "Defending Against Command Injection Vulnerabilities",
    "edition": 1,
    "authors": [
      {
        "name": "Liran Tal",
        "slug": "liran-tal",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/liran-tal.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/nodejs-secure-coding-1-liran-tal.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1446725057",
      "amazon_uk": "https://www.amazon.co.uk/dp/1446725057"
    },
    "description": "Master Node.js security through hands-on learning and best practices. Learn secure coding conventions in Node.js by executing command injection attacks on real-world npm packages and analyzing vulnerable code. The book features 33 self-assessment yes-no, fill-the-blank, and multiple answer questions to help you evaluate and test your knowledge of Node.js secure coding.  You'll analyze the code of 6 vulnerable npm packages found vulnerable via CVE reports to learn best practices on command injection vulnerabilities. With 6 additional references to vulnerable npm packages, you'll strengthen your skills in secure coding. This book takes an adventure-based approach to application security learning, where you will be playing detective who unravels the mysteries of common security vulnerabilities. Through these exercises you will learn about secure coding practices, and how to avoid security pitfalls that software developers and open-source maintainers get caught with. Senior software engineers often recite how one of the most critical skills you should have as an engineer is the ability to read code. The more you read, the easier it becomes for you to understand code and the more context you gain. This book focuses exactly on that - reading vulnerable code, so we can learn from it. This activity creates patterns that our brain learns to identify and that later quickly turn into red flags that we detect and apply in our day-to-day programming and code review routines. Through insecure coding practices found in vulnerable open-source npm packages, this book examines the security aspects affecting JavaScript and Node.js applications. Developers of other languages such as Python will find references to insecure code and best practices relatively easy to transfer to other server-side languages and software ecosystems. By completing this book, you gain:\n- Security expertise in mitigating command injection vulnerabilities.\n- Proficiency in performing secure code reviews through first-hand analysis of real-world npm libraries found vulnerable and their approach to fixing security issues.\n- A security-first mindset to recognize patterns of insecure code.\n- Expertise in secure coding best practices to avoid command injection security vulnerabilities.\n- Knowledge of application security jargon and conventions associated with vulnerability management and severity classification.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/nodejs-secure-coding-1-liran-tal.json",
    "descriptionHtml": "<p>Master Node.js security through hands-on learning and best practices. Learn secure coding conventions in Node.js by executing command injection attacks on real-world npm packages and analyzing vulnerable code. The book features 33 self-assessment yes-no, fill-the-blank, and multiple answer questions to help you evaluate and test your knowledge of Node.js secure coding.  You&#39;ll analyze the code of 6 vulnerable npm packages found vulnerable via CVE reports to learn best practices on command injection vulnerabilities. With 6 additional references to vulnerable npm packages, you&#39;ll strengthen your skills in secure coding. This book takes an adventure-based approach to application security learning, where you will be playing detective who unravels the mysteries of common security vulnerabilities. Through these exercises you will learn about secure coding practices, and how to avoid security pitfalls that software developers and open-source maintainers get caught with. Senior software engineers often recite how one of the most critical skills you should have as an engineer is the ability to read code. The more you read, the easier it becomes for you to understand code and the more context you gain. This book focuses exactly on that - reading vulnerable code, so we can learn from it. This activity creates patterns that our brain learns to identify and that later quickly turn into red flags that we detect and apply in our day-to-day programming and code review routines. Through insecure coding practices found in vulnerable open-source npm packages, this book examines the security aspects affecting JavaScript and Node.js applications. Developers of other languages such as Python will find references to insecure code and best practices relatively easy to transfer to other server-side languages and software ecosystems. By completing this book, you gain:</p>\n<ul>\n<li>Security expertise in mitigating command injection vulnerabilities.</li>\n<li>Proficiency in performing secure code reviews through first-hand analysis of real-world npm libraries found vulnerable and their approach to fixing security issues.</li>\n<li>A security-first mindset to recognize patterns of insecure code.</li>\n<li>Expertise in secure coding best practices to avoid command injection security vulnerabilities.</li>\n<li>Knowledge of application security jargon and conventions associated with vulnerability management and severity classification.</li>\n</ul>\n"
  },
  {
    "slug": "software-engineering-at-google-1-titus-winters-tom-manshreck-hyrum-wright",
    "title": "Software Engineering at Google",
    "subtitle": "Lessons Learned from Programming Over Time",
    "edition": 1,
    "authors": [
      {
        "name": "Titus Winters",
        "slug": "titus-winters",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/titus-winters.json"
      },
      {
        "name": "Tom Manshreck",
        "slug": "tom-manshreck",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tom-manshreck.json"
      },
      {
        "name": "Hyrum Wright",
        "slug": "hyrum-wright",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/hyrum-wright.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/software-engineering-at-google-1-titus-winters-tom-manshreck-hyrum-wright.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492082791",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492082791"
    },
    "description": "Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering.\nHow can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world's leading practitioners construct and maintain software. This book covers Google's unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization.\nYou'll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code:\n- How time affects the sustainability of software and how to make your code resilient over time\n- How scale affects the viability of software practices within an engineering organization\n- What trade-offs a typical engineer needs to make when evaluating design and development decisions.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/software-engineering-at-google-1-titus-winters-tom-manshreck-hyrum-wright.json",
    "descriptionHtml": "<p>Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering.\nHow can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world&#39;s leading practitioners construct and maintain software. This book covers Google&#39;s unique engineering culture, processes, and tools and how these aspects contribute to the effectiveness of an engineering organization.\nYou&#39;ll explore three fundamental principles that software organizations should keep in mind when designing, architecting, writing, and maintaining code:</p>\n<ul>\n<li>How time affects the sustainability of software and how to make your code resilient over time</li>\n<li>How scale affects the viability of software practices within an engineering organization</li>\n<li>What trade-offs a typical engineer needs to make when evaluating design and development decisions.</li>\n</ul>\n"
  },
  {
    "slug": "observability-engineering-1-charity-majors-liz-fong-jones-george-miranda",
    "title": "Observability Engineering",
    "subtitle": "Achieving Production Excellence",
    "edition": 1,
    "authors": [
      {
        "name": "Charity Majors",
        "slug": "charity-majors",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/charity-majors.json"
      },
      {
        "name": "Liz Fong-Jones",
        "slug": "liz-fong-jones",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/liz-fong-jones.json"
      },
      {
        "name": "George Miranda",
        "slug": "george-miranda",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/george-miranda.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/observability-engineering-1-charity-majors-liz-fong-jones-george-miranda.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492076449",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492076449"
    },
    "description": "Observability is critical for building, changing, and understanding the software that powers complex modern systems. Teams that adopt observability are much better equipped to ship code swiftly and confidently, identify outliers and aberrant behaviors, and understand the experience of each and every user. This practical book explains the value of observable systems and shows you how to practice observability-driven development.\nAuthors Charity Majors, Liz Fong-Jones, and George Miranda from Honeycomb explain what constitutes good observability, show you how to improve upon what you're doing today, and provide practical dos and don'ts for migrating from legacy tooling, such as metrics, monitoring, and log management. You'll also learn the impact observability has on organizational culture (and vice versa).\nYou'll explore:\n- How the concept of observability applies to managing software at scale\n- The value of practicing observability when delivering complex cloud native applications and systems\n- The impact observability has across the entire software development lifecycle\n- How and why different functional teams use observability with service-level objectives\n- How to instrument your code to help future engineers understand the code you wrote today\n- How to produce quality code for context-aware system debugging and maintenance\n- How data-rich analytics can help you debug elusive issues",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/observability-engineering-1-charity-majors-liz-fong-jones-george-miranda.json",
    "descriptionHtml": "<p>Observability is critical for building, changing, and understanding the software that powers complex modern systems. Teams that adopt observability are much better equipped to ship code swiftly and confidently, identify outliers and aberrant behaviors, and understand the experience of each and every user. This practical book explains the value of observable systems and shows you how to practice observability-driven development.\nAuthors Charity Majors, Liz Fong-Jones, and George Miranda from Honeycomb explain what constitutes good observability, show you how to improve upon what you&#39;re doing today, and provide practical dos and don&#39;ts for migrating from legacy tooling, such as metrics, monitoring, and log management. You&#39;ll also learn the impact observability has on organizational culture (and vice versa).\nYou&#39;ll explore:</p>\n<ul>\n<li>How the concept of observability applies to managing software at scale</li>\n<li>The value of practicing observability when delivering complex cloud native applications and systems</li>\n<li>The impact observability has across the entire software development lifecycle</li>\n<li>How and why different functional teams use observability with service-level objectives</li>\n<li>How to instrument your code to help future engineers understand the code you wrote today</li>\n<li>How to produce quality code for context-aware system debugging and maintenance</li>\n<li>How data-rich analytics can help you debug elusive issues</li>\n</ul>\n"
  },
  {
    "slug": "the-rational-software-engineer-1-mykyta-chernenko",
    "title": "The Rational Software Engineer",
    "subtitle": "Strategies for a Fulfilling Career in Tech",
    "edition": 1,
    "authors": [
      {
        "name": "Mykyta Chernenko",
        "slug": "mykyta-chernenko",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mykyta-chernenko.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-rational-software-engineer-1-mykyta-chernenko.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1484297946",
      "amazon_uk": "https://www.amazon.co.uk/dp/1484297946"
    },
    "description": "This book will serve as a framework for you as a software engineer seeking a fulfilling career and wishing to stay passionate and maintain a healthy mental state. It is filled with protocols to achieve effective life-long learning, navigate career development, adapt to changes, maintain work-life balance, and have a healthy lifestyle.\nAs a successful software engineer you tend to focus on improving your technical skills: learning a new programming language, mastering another tool, or using a library. But you also need to build a solid mental framework that will help you navigate your professional development. You need to develop the skills that will help you be a happy software engineer.\nThis book will help you if you feel frustrated, unmotivated, or unhappy; lost in your career path; or uncertain if you want to be a software engineer. It can help you deal with burnout, high levels of stress, or depression; or if you struggle to be productive while working from home.\nWhat You Will Learn\n- Efficiently organize your work day\n- Know when and how to seek a new project, company, or career\n- Take care of your body and mind in a software engineering context\n- Understand what contributes to job satisfaction and how to integrate it into your career\n- Use non-coding activities for your and your company's benefit\n- Build healthy relationships with managers and colleagues",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-rational-software-engineer-1-mykyta-chernenko.json",
    "descriptionHtml": "<p>This book will serve as a framework for you as a software engineer seeking a fulfilling career and wishing to stay passionate and maintain a healthy mental state. It is filled with protocols to achieve effective life-long learning, navigate career development, adapt to changes, maintain work-life balance, and have a healthy lifestyle.\nAs a successful software engineer you tend to focus on improving your technical skills: learning a new programming language, mastering another tool, or using a library. But you also need to build a solid mental framework that will help you navigate your professional development. You need to develop the skills that will help you be a happy software engineer.\nThis book will help you if you feel frustrated, unmotivated, or unhappy; lost in your career path; or uncertain if you want to be a software engineer. It can help you deal with burnout, high levels of stress, or depression; or if you struggle to be productive while working from home.\nWhat You Will Learn</p>\n<ul>\n<li>Efficiently organize your work day</li>\n<li>Know when and how to seek a new project, company, or career</li>\n<li>Take care of your body and mind in a software engineering context</li>\n<li>Understand what contributes to job satisfaction and how to integrate it into your career</li>\n<li>Use non-coding activities for your and your company&#39;s benefit</li>\n<li>Build healthy relationships with managers and colleagues</li>\n</ul>\n"
  },
  {
    "slug": "building-evolutionary-architectures-2-neal-ford-rebecca-parsons-patrick-kua-pramod-sadalage",
    "title": "Building Evolutionary Architectures",
    "subtitle": "Automated Software Governance",
    "edition": 2,
    "authors": [
      {
        "name": "Neal Ford",
        "slug": "neal-ford",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/neal-ford.json"
      },
      {
        "name": "Rebecca Parsons",
        "slug": "rebecca-parsons",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/rebecca-parsons.json"
      },
      {
        "name": "Patrick Kua",
        "slug": "patrick-kua",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/patrick-kua.json"
      },
      {
        "name": "Pramod Sadalage",
        "slug": "pramod-sadalage",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/pramod-sadalage.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/building-evolutionary-architectures-2-neal-ford-rebecca-parsons-patrick-kua-pramod-sadalage.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492097543",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492097543"
    },
    "description": "The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/building-evolutionary-architectures-2-neal-ford-rebecca-parsons-patrick-kua-pramod-sadalage.json",
    "descriptionHtml": "<p>The software development ecosystem is constantly changing, providing a constant stream of new tools, frameworks, techniques, and paradigms. Over the past few years, incremental developments in core engineering practices for software development have created the foundations for rethinking how architecture changes over time, along with ways to protect important architectural characteristics as it evolves. This practical guide ties those parts together with a new way to think about architecture and time.</p>\n"
  },
  {
    "slug": "software-architecture-metrics-1-christian-ciceri-dave-farley-neal-ford-andrew-harmel-law-michael-keeling-carola-lilienthal-joao-rosa-alexander-von-zitzewitz-rene-weiss-eoin-woods",
    "title": "Software Architecture Metrics",
    "subtitle": "Case Studies to Improve the Quality of Your Architecture",
    "edition": 1,
    "authors": [
      {
        "name": "Christian Ciceri",
        "slug": "christian-ciceri",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/christian-ciceri.json"
      },
      {
        "name": "Dave Farley",
        "slug": "dave-farley",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/dave-farley.json"
      },
      {
        "name": "Neal Ford",
        "slug": "neal-ford",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/neal-ford.json"
      },
      {
        "name": "Andrew Harmel-Law",
        "slug": "andrew-harmel-law",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/andrew-harmel-law.json"
      },
      {
        "name": "Michael Keeling",
        "slug": "michael-keeling",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-keeling.json"
      },
      {
        "name": "Carola Lilienthal",
        "slug": "carola-lilienthal",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/carola-lilienthal.json"
      },
      {
        "name": "Joรฃo Rosa",
        "slug": "joao-rosa",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/joao-rosa.json"
      },
      {
        "name": "Alexander von Zitzewitz",
        "slug": "alexander-von-zitzewitz",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/alexander-von-zitzewitz.json"
      },
      {
        "name": "Rene Weiss",
        "slug": "rene-weiss",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/rene-weiss.json"
      },
      {
        "name": "Eoin Woods",
        "slug": "eoin-woods",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/eoin-woods.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/software-architecture-metrics-1-christian-ciceri-dave-farley-neal-ford-andrew-harmel-law-michael-keeling-carola-lilienthal-joao-rosa-alexander-von-zitzewitz-rene-weiss-eoin-woods.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098112237",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098112237"
    },
    "description": "Software architecture metrics are key to the maintainability and architectural quality of a software project and they can warn you about dangerous accumulations of architectural and technical debt early in the process. In this practical book, leading hands-on software architects share case studies to introduce metrics that every software architect should know.\nThis isn't a book about theory. It's more about practice and implementation, about what has already been tried and worked. Detecting software architectural issues early is crucial for the success of your software: it helps mitigate the risk of poor performance and lowers the cost of repairing those issues. Written by practitioners for software architects and software developers eager to explore successful case studies, this guide will help you learn more about decision and measurement effectiveness.\nThrough contributions from 10 prominent practitioners, this book shares key software architecture metrics to help you set the right KPIs and measure the results. You'll learn how to:\n- Measure how well your software architecture is meeting your goals\n- Choose the right metrics to track (and skip the ones you don't need)\n- Improve observability, testability, and deployability\n- Prioritize software architecture projects\n- Build insightful and relevant dashboards",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/software-architecture-metrics-1-christian-ciceri-dave-farley-neal-ford-andrew-harmel-law-michael-keeling-carola-lilienthal-joao-rosa-alexander-von-zitzewitz-rene-weiss-eoin-woods.json",
    "descriptionHtml": "<p>Software architecture metrics are key to the maintainability and architectural quality of a software project and they can warn you about dangerous accumulations of architectural and technical debt early in the process. In this practical book, leading hands-on software architects share case studies to introduce metrics that every software architect should know.\nThis isn&#39;t a book about theory. It&#39;s more about practice and implementation, about what has already been tried and worked. Detecting software architectural issues early is crucial for the success of your software: it helps mitigate the risk of poor performance and lowers the cost of repairing those issues. Written by practitioners for software architects and software developers eager to explore successful case studies, this guide will help you learn more about decision and measurement effectiveness.\nThrough contributions from 10 prominent practitioners, this book shares key software architecture metrics to help you set the right KPIs and measure the results. You&#39;ll learn how to:</p>\n<ul>\n<li>Measure how well your software architecture is meeting your goals</li>\n<li>Choose the right metrics to track (and skip the ones you don&#39;t need)</li>\n<li>Improve observability, testability, and deployability</li>\n<li>Prioritize software architecture projects</li>\n<li>Build insightful and relevant dashboards</li>\n</ul>\n"
  },
  {
    "slug": "communication-patterns-1-jacqueline-read",
    "title": "Communication Patterns",
    "subtitle": "A Guide for Developers and Architects",
    "edition": 1,
    "authors": [
      {
        "name": "Jacqueline Read",
        "slug": "jacqueline-read",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jacqueline-read.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/communication-patterns-1-jacqueline-read.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098140540",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098140540"
    },
    "description": "Having a great idea or design is not enough to make your software project succeed. If you want stakeholders to buy into your design and teams to collaborate and contribute to the vision, you also need to communicate effectively. In this practical book, author Jacqui Read shows you how to successfully present your architecture and get stakeholders to jump on board.\nMisunderstanding and lack of buy-in leads to increasing costs, unmet requirements, and an architecture that is not what you intended. Through constructive examples and patterns, this book shows you how to create documentation and diagrams that actually get the message across to the different audiences you'll face.\nThis book shows you how to:\n- Design diagrams and documentation appropriate to your expected audience, intended message, and project stage\n- Create documentation and diagrams that are accessible to those with varying roles, needs, or disabilities\n- Master written, verbal, and nonverbal communication to succeed in technical settings\n- Apply the communication patterns presented in this book in real-world projects and software designs\n- Communicate and collaborate with distributed teams to successfully design and document software and technical projects",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/communication-patterns-1-jacqueline-read.json",
    "descriptionHtml": "<p>Having a great idea or design is not enough to make your software project succeed. If you want stakeholders to buy into your design and teams to collaborate and contribute to the vision, you also need to communicate effectively. In this practical book, author Jacqui Read shows you how to successfully present your architecture and get stakeholders to jump on board.\nMisunderstanding and lack of buy-in leads to increasing costs, unmet requirements, and an architecture that is not what you intended. Through constructive examples and patterns, this book shows you how to create documentation and diagrams that actually get the message across to the different audiences you&#39;ll face.\nThis book shows you how to:</p>\n<ul>\n<li>Design diagrams and documentation appropriate to your expected audience, intended message, and project stage</li>\n<li>Create documentation and diagrams that are accessible to those with varying roles, needs, or disabilities</li>\n<li>Master written, verbal, and nonverbal communication to succeed in technical settings</li>\n<li>Apply the communication patterns presented in this book in real-world projects and software designs</li>\n<li>Communicate and collaborate with distributed teams to successfully design and document software and technical projects</li>\n</ul>\n"
  },
  {
    "slug": "fullstack-d3-and-data-visualization-1-amelia-wattenberger",
    "title": "Fullstack D3 and Data Visualization",
    "subtitle": "Build beautiful data visualizations with D3",
    "edition": 1,
    "authors": [
      {
        "name": "Amelia Wattenberger",
        "slug": "amelia-wattenberger",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/amelia-wattenberger.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/fullstack-d3-and-data-visualization-1-amelia-wattenberger.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0991344650",
      "amazon_uk": "https://www.amazon.co.uk/dp/0991344650"
    },
    "description": "Build beautiful data visualizations with D3\nThe Fullstack D3 book is the complete guide to D3. With dozens of code examples showing each step, you can gain new insights into your data by creating visualizations.\nLearn how to quickly turn data into insights with D3\nWe have the data. But it needs to be understood by humans. The best way to convert this data into an understandable format is to mold it into a data visualization.\nAnd D3 is the best tool for job if you need to create custom data visualizations.\nWith Fullstack D3 and Data Visualization you and your team will be able to share key insights, uncover problems before they start, and impress your boss by creating gorgeous visualizations.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/fullstack-d3-and-data-visualization-1-amelia-wattenberger.json",
    "descriptionHtml": "<p>Build beautiful data visualizations with D3\nThe Fullstack D3 book is the complete guide to D3. With dozens of code examples showing each step, you can gain new insights into your data by creating visualizations.\nLearn how to quickly turn data into insights with D3\nWe have the data. But it needs to be understood by humans. The best way to convert this data into an understandable format is to mold it into a data visualization.\nAnd D3 is the best tool for job if you need to create custom data visualizations.\nWith Fullstack D3 and Data Visualization you and your team will be able to share key insights, uncover problems before they start, and impress your boss by creating gorgeous visualizations.</p>\n"
  },
  {
    "slug": "real-world-svelte-1-tan-li-hau",
    "title": "Real-World Svelte",
    "subtitle": "Supercharge your apps with Svelte 4 by mastering advanced web development concepts",
    "edition": 1,
    "authors": [
      {
        "name": "Tan Li Hau",
        "slug": "tan-li-hau",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tan-li-hau.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/real-world-svelte-1-tan-li-hau.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1804616036",
      "amazon_uk": "https://www.amazon.co.uk/dp/1804616036"
    },
    "description": "Harness the power of Svelte, the cutting-edge JavaScript framework used for building high-performance web applications, with this definitive guide\nSvelte has quickly become a popular choice among developers seeking to build fast, responsive, and efficient web applications that are high-performing, scalable, and visually stunning. This book goes beyond the basics to help you thoroughly explore the core concepts that make Svelte stand out among other frameworks.\nYou'll begin by gaining a clear understanding of lifecycle functions, reusable hooks, and various styling options such as Tailwind CSS and CSS variables. Next, you'll find out how to effectively manage the state, props, and bindings and explore component patterns for better organization. You'll also discover how to create patterns using actions, demonstrate custom events, integrate vanilla JS UI libraries, and progressively enhance UI elements. As you advance, you'll delve into state management with context and stores, implement custom stores, handle complex data, and manage states effectively, along with creating renderless components for specialized functionalities and learning animations with tweened and spring stores. The concluding chapters will help you focus on enhancing UI elements with transitions while covering accessibility considerations.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/real-world-svelte-1-tan-li-hau.json",
    "descriptionHtml": "<p>Harness the power of Svelte, the cutting-edge JavaScript framework used for building high-performance web applications, with this definitive guide\nSvelte has quickly become a popular choice among developers seeking to build fast, responsive, and efficient web applications that are high-performing, scalable, and visually stunning. This book goes beyond the basics to help you thoroughly explore the core concepts that make Svelte stand out among other frameworks.\nYou&#39;ll begin by gaining a clear understanding of lifecycle functions, reusable hooks, and various styling options such as Tailwind CSS and CSS variables. Next, you&#39;ll find out how to effectively manage the state, props, and bindings and explore component patterns for better organization. You&#39;ll also discover how to create patterns using actions, demonstrate custom events, integrate vanilla JS UI libraries, and progressively enhance UI elements. As you advance, you&#39;ll delve into state management with context and stores, implement custom stores, handle complex data, and manage states effectively, along with creating renderless components for specialized functionalities and learning animations with tweened and spring stores. The concluding chapters will help you focus on enhancing UI elements with transitions while covering accessibility considerations.</p>\n"
  },
  {
    "slug": "multithreaded-javascript-1-thomas-hunter-ii-bryan-english",
    "title": "Multithreaded Javascript",
    "subtitle": "Concurrency Beyond the Event Loop",
    "edition": 1,
    "authors": [
      {
        "name": "Thomas Hunter II",
        "slug": "thomas-hunter-ii",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/thomas-hunter-ii.json"
      },
      {
        "name": "Bryan English",
        "slug": "bryan-english",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/bryan-english.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/multithreaded-javascript-1-thomas-hunter-ii-bryan-english.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098104439",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098104439"
    },
    "description": "The nature of JavaScript is to be single threaded. This is reflected not only in libraries and applications, but also in online forum posts, books, and online documentation. Thanks to recent advancements in the platformโ€”such as with web workers in the browser, worker\\_threads in Node.js, and the Atomics and SharedArrayBuffer objectsโ€”JavaScript engineers are able to build multi-threaded applications. These features will go down as being the biggest paradigm shift for the world's most popular programming language.\nMultithreaded JavaScript explores the various features that JavaScript runtimes have at their disposal for implementing multithreaded programming, using a spectrum of API reference material and high level programming patterns.\n- Learn what multithreaded programming is and how you can benefit from it\n- Understand the differences between a dedicated worker, a shared worker, and a service worker\n- Identify when and when not to use threads in an application\n- Orchestrate communication between threads by leveraging the Atomics object\n- Understand both the gains and pitfalls of using shared memory\n- Benchmark performance to learn when you'll benefit from multiple threads",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/multithreaded-javascript-1-thomas-hunter-ii-bryan-english.json",
    "descriptionHtml": "<p>The nature of JavaScript is to be single threaded. This is reflected not only in libraries and applications, but also in online forum posts, books, and online documentation. Thanks to recent advancements in the platformโ€”such as with web workers in the browser, worker_threads in Node.js, and the Atomics and SharedArrayBuffer objectsโ€”JavaScript engineers are able to build multi-threaded applications. These features will go down as being the biggest paradigm shift for the world&#39;s most popular programming language.\nMultithreaded JavaScript explores the various features that JavaScript runtimes have at their disposal for implementing multithreaded programming, using a spectrum of API reference material and high level programming patterns.</p>\n<ul>\n<li>Learn what multithreaded programming is and how you can benefit from it</li>\n<li>Understand the differences between a dedicated worker, a shared worker, and a service worker</li>\n<li>Identify when and when not to use threads in an application</li>\n<li>Orchestrate communication between threads by leveraging the Atomics object</li>\n<li>Understand both the gains and pitfalls of using shared memory</li>\n<li>Benchmark performance to learn when you&#39;ll benefit from multiple threads</li>\n</ul>\n"
  },
  {
    "slug": "fluent-react-1-tejas-kumar",
    "title": "Fluent React",
    "subtitle": "Build Fast, Performant, and Intuitive Web Applications",
    "edition": 1,
    "authors": [
      {
        "name": "Tejas Kumar",
        "slug": "tejas-kumar",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/tejas-kumar.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/fluent-react-1-tejas-kumar.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098138716",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098138716"
    },
    "description": "When it comes to building user interfaces on the web, React enables web developers to unlock a new world of possibilities. This practical book helps you take a deep dive into fundamental concepts of this JavaScript library, including JSX syntax and advanced patterns, the virtual DOM, React reconciliation, and advanced optimization techniques. By becoming fluent in React, you'll quickly learn how to build better web applications.\nAuthor Tejas Kumar helps you explore the depths of React in plain English, without the typical software engineering jargon, so you can more easily understand how this JavaScript library works. You'll learn how to write intuitive React code that fully understands the nuances and layers of React, unlocking a whole new level of fluency.\nYou will:\n- Understand how React works at a deeper level\n- Write React apps while optimizing them along the way\n- Build resilient React applications that work well at arbitrary scale\n- Create React applications for other platforms adjacent to the web and mobile devices\n- Know when to reach for different mechanisms exposed by React, such as reducers versus state versus refs",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/fluent-react-1-tejas-kumar.json",
    "descriptionHtml": "<p>When it comes to building user interfaces on the web, React enables web developers to unlock a new world of possibilities. This practical book helps you take a deep dive into fundamental concepts of this JavaScript library, including JSX syntax and advanced patterns, the virtual DOM, React reconciliation, and advanced optimization techniques. By becoming fluent in React, you&#39;ll quickly learn how to build better web applications.\nAuthor Tejas Kumar helps you explore the depths of React in plain English, without the typical software engineering jargon, so you can more easily understand how this JavaScript library works. You&#39;ll learn how to write intuitive React code that fully understands the nuances and layers of React, unlocking a whole new level of fluency.\nYou will:</p>\n<ul>\n<li>Understand how React works at a deeper level</li>\n<li>Write React apps while optimizing them along the way</li>\n<li>Build resilient React applications that work well at arbitrary scale</li>\n<li>Create React applications for other platforms adjacent to the web and mobile devices</li>\n<li>Know when to reach for different mechanisms exposed by React, such as reducers versus state versus refs</li>\n</ul>\n"
  },
  {
    "slug": "aws-cookbook-1-john-culkin-mike-zazon",
    "title": "AWS Cookbook",
    "subtitle": "Recipes for Success on AWS",
    "edition": 1,
    "authors": [
      {
        "name": "John Culkin",
        "slug": "john-culkin",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/john-culkin.json"
      },
      {
        "name": "Mike Zazon",
        "slug": "mike-zazon",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mike-zazon.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/aws-cookbook-1-john-culkin-mike-zazon.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492092606",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492092606"
    },
    "description": "This practical guide provides over 70 self-contained recipes to help you creatively solve common AWS challenges you'll encounter on your cloud journey. If you're comfortable with rudimentary scripting and general cloud concepts, this cookbook provides what you need to address foundational tasks and create high-level capabilities.\nAuthors John Culkin and Mike Zazon share real-world examples that incorporate best practices. Each recipe includes a diagram to visualize the components. Code is provided so that you can safely execute in an AWS account to ensure solutions work as described. From there, you can customize the code to help construct an application or fix an existing problem. Each recipe also includes a discussion to provide context, explain the approach, and challenge you to explore the possibilities further.\nGo beyond theory and learn the details you need to successfully build on AWS. The recipes help you:\n- Redact personal identifiable information (PII) from text using Amazon Comprehend\n- Automate password rotation for Amazon RDS databases\n- Use VPC Reachability Analyzer to verify and troubleshoot network paths\n- Lock down Amazon Simple Storage Service (S3) buckets\n- Analyze AWS Identity and Access Management policies\n- Autoscale a containerized service",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/aws-cookbook-1-john-culkin-mike-zazon.json",
    "descriptionHtml": "<p>This practical guide provides over 70 self-contained recipes to help you creatively solve common AWS challenges you&#39;ll encounter on your cloud journey. If you&#39;re comfortable with rudimentary scripting and general cloud concepts, this cookbook provides what you need to address foundational tasks and create high-level capabilities.\nAuthors John Culkin and Mike Zazon share real-world examples that incorporate best practices. Each recipe includes a diagram to visualize the components. Code is provided so that you can safely execute in an AWS account to ensure solutions work as described. From there, you can customize the code to help construct an application or fix an existing problem. Each recipe also includes a discussion to provide context, explain the approach, and challenge you to explore the possibilities further.\nGo beyond theory and learn the details you need to successfully build on AWS. The recipes help you:</p>\n<ul>\n<li>Redact personal identifiable information (PII) from text using Amazon Comprehend</li>\n<li>Automate password rotation for Amazon RDS databases</li>\n<li>Use VPC Reachability Analyzer to verify and troubleshoot network paths</li>\n<li>Lock down Amazon Simple Storage Service (S3) buckets</li>\n<li>Analyze AWS Identity and Access Management policies</li>\n<li>Autoscale a containerized service</li>\n</ul>\n"
  },
  {
    "slug": "essential-typescript-5-third-edition-3-adam-freeman",
    "title": "Essential TypeScript 5, Third Edition",
    "edition": 3,
    "authors": [
      {
        "name": "Adam Freeman",
        "slug": "adam-freeman",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/adam-freeman.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/essential-typescript-5-third-edition-3-adam-freeman.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1633437310",
      "amazon_uk": "https://www.amazon.co.uk/dp/1633437310"
    },
    "description": "Now in its third edition, this bestselling guide to TypeScript takes you through the nuts and bolts of the language. No frills, no fussโ€”just TypeScript essentials!TypeScript enhances JavaScript with static typing, while keeping all the JS flexibility you know and love! It's the perfect choice for any developer looking to improve the predictability and reliability of their code. Essential TypeScript 5, Third Edition teaches you how to get the most out of TypeScript 5 for a consistent, dependable development experience.\nInside Essential TypeScript 5, Third Edition you'll learn how to:\n- Configure the TypeScript development tools\n- Use type annotations\n- Create strongly typed functions and classes\n- Use generic types\n- Use type guards to determine types\n- Create and consume type declaration files\n- Use TypeScript to create web applications with Angular and React\nThe book starts you off with a proper understanding of the JavaScript type system that will make using TypeScript so much easier. On that solid foundation, you'll build your understanding of TypeScript development, following a hands-on learning path all the way to TypeScript's advanced features.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/essential-typescript-5-third-edition-3-adam-freeman.json",
    "descriptionHtml": "<p>Now in its third edition, this bestselling guide to TypeScript takes you through the nuts and bolts of the language. No frills, no fussโ€”just TypeScript essentials!TypeScript enhances JavaScript with static typing, while keeping all the JS flexibility you know and love! It&#39;s the perfect choice for any developer looking to improve the predictability and reliability of their code. Essential TypeScript 5, Third Edition teaches you how to get the most out of TypeScript 5 for a consistent, dependable development experience.\nInside Essential TypeScript 5, Third Edition you&#39;ll learn how to:</p>\n<ul>\n<li>Configure the TypeScript development tools</li>\n<li>Use type annotations</li>\n<li>Create strongly typed functions and classes</li>\n<li>Use generic types</li>\n<li>Use type guards to determine types</li>\n<li>Create and consume type declaration files</li>\n<li>Use TypeScript to create web applications with Angular and React\nThe book starts you off with a proper understanding of the JavaScript type system that will make using TypeScript so much easier. On that solid foundation, you&#39;ll build your understanding of TypeScript development, following a hands-on learning path all the way to TypeScript&#39;s advanced features.</li>\n</ul>\n"
  },
  {
    "slug": "typescript-cookbook-1-stefan-baumgartner",
    "title": "TypeScript Cookbook",
    "subtitle": "Real World Type-Level Programming",
    "edition": 1,
    "authors": [
      {
        "name": "Stefan Baumgartner",
        "slug": "stefan-baumgartner",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/stefan-baumgartner.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/typescript-cookbook-1-stefan-baumgartner.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098136659",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098136659"
    },
    "description": "TypeScript is one of the most important tools for JavaScript developers. Still, even experienced developers wonder why the TypeScript compiler is throwing squiggly red lines at them. Enter TypeScript Cookbook. With this practical guide, author Stefan Baumgartner provides senior engineers with solutions for everyday TypeScript problems.\nIf you're conversant with TypeScript as well as JavaScript basics, this book provides actionable recipes to help you tackle a wide array of issues. From setting up complex project structures to developing advanced helper types, each self-contained recipe guides you through the problem and discusses why and how a solution works.\nThe ideal companion for your ongoing TypeScript journey, this cookbook helps you:\n- Dive into the inner workings of the TypeScript type system\n- Integrate TypeScript into a variety of projects\n- Craft advanced type definitions that allow for flexible scenarios\n- Create useful helper types that function across projects\n- Ensure readability along with type safety\n- Create robust APIs for helper types and their coworkers\n- Strongly type function signatures that rely on string types\n- Work around limitations of the standard library\n- Integrate TypeScript into advanced React projects",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/typescript-cookbook-1-stefan-baumgartner.json",
    "descriptionHtml": "<p>TypeScript is one of the most important tools for JavaScript developers. Still, even experienced developers wonder why the TypeScript compiler is throwing squiggly red lines at them. Enter TypeScript Cookbook. With this practical guide, author Stefan Baumgartner provides senior engineers with solutions for everyday TypeScript problems.\nIf you&#39;re conversant with TypeScript as well as JavaScript basics, this book provides actionable recipes to help you tackle a wide array of issues. From setting up complex project structures to developing advanced helper types, each self-contained recipe guides you through the problem and discusses why and how a solution works.\nThe ideal companion for your ongoing TypeScript journey, this cookbook helps you:</p>\n<ul>\n<li>Dive into the inner workings of the TypeScript type system</li>\n<li>Integrate TypeScript into a variety of projects</li>\n<li>Craft advanced type definitions that allow for flexible scenarios</li>\n<li>Create useful helper types that function across projects</li>\n<li>Ensure readability along with type safety</li>\n<li>Create robust APIs for helper types and their coworkers</li>\n<li>Strongly type function signatures that rely on string types</li>\n<li>Work around limitations of the standard library</li>\n<li>Integrate TypeScript into advanced React projects</li>\n</ul>\n"
  },
  {
    "slug": "learning-typescript-1-josh-goldberg",
    "title": "Learning TypeScript",
    "subtitle": "Enhance Your Web Development Skills Using Type-Safe JavaScript",
    "edition": 1,
    "authors": [
      {
        "name": "Josh Goldberg",
        "slug": "josh-goldberg",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/josh-goldberg.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/learning-typescript-1-josh-goldberg.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098110331",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098110331"
    },
    "description": "TypeScript has conquered the world of JavaScript: it's one of the world's fastest growing and most popular languages across developer surveys, widely used in consumer and business companies alike, and frequently credited for helping massive web applications scale. But what is TypeScript? How does it work, why does it work, and how can we use it?\nLearning TypeScript takes beginner to intermediate JavaScript programmers from knowing nothing about \"types\" or a \"type system\" to full mastery of the fundamentals of TypeScript. It's more than a means to find bugs and typos--it's a useful system for declaring the way our JavaScript should work and helping us stick to it. You'll learn how TypeScript:\n- interacts with JavaScript\n- analyzes and understands code\n- augments your existing development pattern\n- helps you document your code\n- works with IDEs to provide refactoring tools\n- assists local development in refactoring code\n- helps you develop more quickly with fewer bugs",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/learning-typescript-1-josh-goldberg.json",
    "descriptionHtml": "<p>TypeScript has conquered the world of JavaScript: it&#39;s one of the world&#39;s fastest growing and most popular languages across developer surveys, widely used in consumer and business companies alike, and frequently credited for helping massive web applications scale. But what is TypeScript? How does it work, why does it work, and how can we use it?\nLearning TypeScript takes beginner to intermediate JavaScript programmers from knowing nothing about &quot;types&quot; or a &quot;type system&quot; to full mastery of the fundamentals of TypeScript. It&#39;s more than a means to find bugs and typos--it&#39;s a useful system for declaring the way our JavaScript should work and helping us stick to it. You&#39;ll learn how TypeScript:</p>\n<ul>\n<li>interacts with JavaScript</li>\n<li>analyzes and understands code</li>\n<li>augments your existing development pattern</li>\n<li>helps you document your code</li>\n<li>works with IDEs to provide refactoring tools</li>\n<li>assists local development in refactoring code</li>\n<li>helps you develop more quickly with fewer bugs</li>\n</ul>\n"
  },
  {
    "slug": "designing-interfaces-3-jenifer-tidwell-charles-brewer-aynne-valencia",
    "title": "Designing Interfaces",
    "subtitle": "Patterns for Effective Interaction Design",
    "edition": 3,
    "authors": [
      {
        "name": "Jenifer Tidwell",
        "slug": "jenifer-tidwell",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jenifer-tidwell.json"
      },
      {
        "name": "Charles Brewer",
        "slug": "charles-brewer",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/charles-brewer.json"
      },
      {
        "name": "Aynne Valencia",
        "slug": "aynne-valencia",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/aynne-valencia.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/designing-interfaces-3-jenifer-tidwell-charles-brewer-aynne-valencia.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1492051969",
      "amazon_uk": "https://www.amazon.co.uk/dp/1492051969"
    },
    "description": "Designing good application interfaces isn't easy now that companies need to create compelling, seamless user experiences across an exploding number of channels, screens, and contexts. In this updated third edition, youรข??ll learn how to navigate through the maze of design options. By capturing UI best practices as design patterns, this best-selling book provides solutions to common design problems.\nYouรข??ll learn patterns for mobile apps, web applications, and desktop software. Each pattern contains full-color examples and practical design advice you can apply immediately. Experienced designers can use this guide as an idea sourcebook, and novices will find a road map to the world of interface and interaction design.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/designing-interfaces-3-jenifer-tidwell-charles-brewer-aynne-valencia.json",
    "descriptionHtml": "<p>Designing good application interfaces isn&#39;t easy now that companies need to create compelling, seamless user experiences across an exploding number of channels, screens, and contexts. In this updated third edition, youรข??ll learn how to navigate through the maze of design options. By capturing UI best practices as design patterns, this best-selling book provides solutions to common design problems.\nYouรข??ll learn patterns for mobile apps, web applications, and desktop software. Each pattern contains full-color examples and practical design advice you can apply immediately. Experienced designers can use this guide as an idea sourcebook, and novices will find a road map to the world of interface and interaction design.</p>\n"
  },
  {
    "slug": "laws-of-ux-1-jon-yablonski",
    "title": "Laws of UX",
    "subtitle": "Using Psychology to Design Better Products & Services",
    "edition": 1,
    "authors": [
      {
        "name": "Jon Yablonski",
        "slug": "jon-yablonski",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/jon-yablonski.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/laws-of-ux-1-jon-yablonski.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/149205531X",
      "amazon_uk": "https://www.amazon.co.uk/dp/149205531X"
    },
    "description": "An understanding of psychologyโ€”specifically the psychology behind how users behave and interact with digital interfacesโ€”is perhaps the single most valuable nondesign skill a designer can have. The most elegant design can fail if it forces users to conform to the design rather than working within the \"blueprint\" of how humans perceive and process the world around them.\nThis practical guide explains how you can apply key principles in psychology to build products and experiences that are more intuitive and human-centered. Author Jon Yablonski deconstructs familiar apps and experiences to provide clear examples of how UX designers can build experiences that adapt to how users perceive and process digital interfaces.\nYou'll learn:\n- How aesthetically pleasing design creates positive responses\n- The principles from psychology most useful for designers\n- How these psychology principles relate to UX heuristics\n- Predictive models including Fitts's law, Jakob's law, and Hick's law\n- Ethical implications of using psychology in design\n- A framework for applying these principles",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/laws-of-ux-1-jon-yablonski.json",
    "descriptionHtml": "<p>An understanding of psychologyโ€”specifically the psychology behind how users behave and interact with digital interfacesโ€”is perhaps the single most valuable nondesign skill a designer can have. The most elegant design can fail if it forces users to conform to the design rather than working within the &quot;blueprint&quot; of how humans perceive and process the world around them.\nThis practical guide explains how you can apply key principles in psychology to build products and experiences that are more intuitive and human-centered. Author Jon Yablonski deconstructs familiar apps and experiences to provide clear examples of how UX designers can build experiences that adapt to how users perceive and process digital interfaces.\nYou&#39;ll learn:</p>\n<ul>\n<li>How aesthetically pleasing design creates positive responses</li>\n<li>The principles from psychology most useful for designers</li>\n<li>How these psychology principles relate to UX heuristics</li>\n<li>Predictive models including Fitts&#39;s law, Jakob&#39;s law, and Hick&#39;s law</li>\n<li>Ethical implications of using psychology in design</li>\n<li>A framework for applying these principles</li>\n</ul>\n"
  },
  {
    "slug": "introduction-to-the-theory-of-computation-3-michael-sipser",
    "title": "Introduction to the Theory of Computation",
    "edition": 3,
    "authors": [
      {
        "name": "Michael Sipser",
        "slug": "michael-sipser",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/michael-sipser.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/introduction-to-the-theory-of-computation-3-michael-sipser.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0357670582",
      "amazon_uk": "https://www.amazon.co.uk/dp/0357670582"
    },
    "description": "Gain a clear understanding of even the most complex, highly theoretical computational theory topics in the approachable presentation found only in the market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E.\nThe number one choice for today's computational theory course, this revision continues the book's well-know, approachable style with timely revisions, additional practice, and more memorable examples in key areas.\nA new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. You gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and applications with a blend of practical and philosophical coverage and mathematical treatments, including advanced theorems and proofs. \nINTRODUCTION TO THE THEORY OF COMPUTATION,  3E's comprehensive coverage makes this a valuable reference for your continued studies in theoretical computing.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/introduction-to-the-theory-of-computation-3-michael-sipser.json",
    "descriptionHtml": "<p>Gain a clear understanding of even the most complex, highly theoretical computational theory topics in the approachable presentation found only in the market-leading INTRODUCTION TO THE THEORY OF COMPUTATION, 3E.\nThe number one choice for today&#39;s computational theory course, this revision continues the book&#39;s well-know, approachable style with timely revisions, additional practice, and more memorable examples in key areas.\nA new first-of-its-kind theoretical treatment of deterministic context-free languages is ideal for a better understanding of parsing and LR(k) grammars. You gain a solid understanding of the fundamental mathematical properties of computer hardware, software, and applications with a blend of practical and philosophical coverage and mathematical treatments, including advanced theorems and proofs. \nINTRODUCTION TO THE THEORY OF COMPUTATION,  3E&#39;s comprehensive coverage makes this a valuable reference for your continued studies in theoretical computing.</p>\n"
  },
  {
    "slug": "the-art-of-computer-programming-vol-1-3-donald-knuth",
    "title": "The Art of Computer Programming, Vol. 1",
    "subtitle": "Fundamental Algorithms, 3rd Edition",
    "edition": 3,
    "authors": [
      {
        "name": "Donald Knuth",
        "slug": "donald-knuth",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/donald-knuth.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/the-art-of-computer-programming-vol-1-3-donald-knuth.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/0201896834",
      "amazon_uk": "https://www.amazon.co.uk/dp/0201896834"
    },
    "description": "This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/the-art-of-computer-programming-vol-1-3-donald-knuth.json",
    "descriptionHtml": "<p>This first volume in the series begins with basic programming concepts and techniques, then focuses more particularly on information structures-the representation of information inside a computer, the structural relationships between data elements and how to deal with them efficiently. Elementary applications are given to simulation, numerical methods, symbolic computing, software and system design. Dozens of simple and important algorithms and techniques have been added to those of the previous edition. The section on mathematical preliminaries has been extensively revised to match present trends in research.</p>\n"
  },
  {
    "slug": "functional-light-javascript-1-kyle-simpson",
    "title": "Functional-Light JavaScript",
    "subtitle": "Balanced, Pragmatic FP in JavaScript",
    "edition": 1,
    "authors": [
      {
        "name": "Kyle Simpson",
        "slug": "kyle-simpson",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/kyle-simpson.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/functional-light-javascript-1-kyle-simpson.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1981672346",
      "amazon_uk": "https://www.amazon.co.uk/dp/1981672346"
    },
    "description": "Functional-Light JavaScript is a balanced, pragmatic exploration of Functional Programming in JavaScript.Functional Programming (FP) is an incredibly powerful paradigm for structuring code that yields more robust, verifiable, and readable programs.\nIf you've ever tried to learn FP but struggled with terms like \"monad\", mathematical concepts like category theory, or symbols like (lambda), you're not alone.\nFunctional-Light programming distills the most vital aspects of FPโ€”function purity, value immutability, composition, and more!โ€”down to approachable JavaScript patterns. Rather than the all-or-nothing dogmatism often encountered in FP, this book teaches you how to improve your programs line by line.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/functional-light-javascript-1-kyle-simpson.json",
    "descriptionHtml": "<p>Functional-Light JavaScript is a balanced, pragmatic exploration of Functional Programming in JavaScript.Functional Programming (FP) is an incredibly powerful paradigm for structuring code that yields more robust, verifiable, and readable programs.\nIf you&#39;ve ever tried to learn FP but struggled with terms like &quot;monad&quot;, mathematical concepts like category theory, or symbols like (lambda), you&#39;re not alone.\nFunctional-Light programming distills the most vital aspects of FPโ€”function purity, value immutability, composition, and more!โ€”down to approachable JavaScript patterns. Rather than the all-or-nothing dogmatism often encountered in FP, this book teaches you how to improve your programs line by line.</p>\n"
  },
  {
    "slug": "restful-web-api-patterns-and-practices-cookbook-1-mike-amundsen",
    "title": "RESTful Web API Patterns and Practices Cookbook",
    "subtitle": "Connecting and Orchestrating Microservices and Distributed Data",
    "edition": 1,
    "authors": [
      {
        "name": "Mike Amundsen",
        "slug": "mike-amundsen",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/mike-amundsen.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/restful-web-api-patterns-and-practices-cookbook-1-mike-amundsen.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098106741",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098106741"
    },
    "description": "Many organizations today orchestrate and maintain apps that rely on other people's services. Software designers, developers, and architects in those companies often work to coordinate and maintain apps based on existing microservices, including third-party services that run outside their ecosystem. This cookbook provides proven recipes to help you get those many disparate parts to work together in your network.\nAuthor Mike Amundsen provides step-by-step solutions for finding, connecting, and maintaining applications designed and built by people outside the organization. Whether you're working on human-centric mobile apps or creating high-powered machine-to-machine solutions, this guide shows you the rules, routines, commands, and protocolsโ€”the glueโ€”that integrates individual microservices so they can function together in a safe, scalable, and reliable way.\n- Design and build individual microservices that can successfully interact on the open web\n- Increase interoperability by designing services that share a common understanding\n- Build client applications that can adapt to evolving services without breaking\n- Create resilient and reliable microservices that support peer-to-peer interactions on the web\n- Use web-based service registries to support runtime \"find-and-bind\" operations that manage external dependencies in real time\n- Implement stable workflows to accomplish complex, multiservice tasks consistently",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/restful-web-api-patterns-and-practices-cookbook-1-mike-amundsen.json",
    "descriptionHtml": "<p>Many organizations today orchestrate and maintain apps that rely on other people&#39;s services. Software designers, developers, and architects in those companies often work to coordinate and maintain apps based on existing microservices, including third-party services that run outside their ecosystem. This cookbook provides proven recipes to help you get those many disparate parts to work together in your network.\nAuthor Mike Amundsen provides step-by-step solutions for finding, connecting, and maintaining applications designed and built by people outside the organization. Whether you&#39;re working on human-centric mobile apps or creating high-powered machine-to-machine solutions, this guide shows you the rules, routines, commands, and protocolsโ€”the glueโ€”that integrates individual microservices so they can function together in a safe, scalable, and reliable way.</p>\n<ul>\n<li>Design and build individual microservices that can successfully interact on the open web</li>\n<li>Increase interoperability by designing services that share a common understanding</li>\n<li>Build client applications that can adapt to evolving services without breaking</li>\n<li>Create resilient and reliable microservices that support peer-to-peer interactions on the web</li>\n<li>Use web-based service registries to support runtime &quot;find-and-bind&quot; operations that manage external dependencies in real time</li>\n<li>Implement stable workflows to accomplish complex, multiservice tasks consistently</li>\n</ul>\n"
  },
  {
    "slug": "continuous-delivery-pipelines-1-dave-farley",
    "title": "Continuous Delivery Pipelines",
    "subtitle": "How To Build Better Software Faster",
    "edition": 1,
    "authors": [
      {
        "name": "Dave Farley",
        "slug": "dave-farley",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/dave-farley.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/continuous-delivery-pipelines-1-dave-farley.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/B096TTQHYM",
      "amazon_uk": "https://www.amazon.co.uk/dp/B096TTQHYM"
    },
    "description": "This practical handbook provides a step-by-step guide for you to get the best Continuous Delivery Pipeline for your software.\nWritten by Dave Farley - the inventor of the Continuous Delivery Deployment Pipeline and author of the award-winning book \"Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automationโ€.\nDave Farley shares his advice and experience in this essential handbook on how to build, use and improve your Continuous Delivery Pipeline. This books explains what a Continuous Delivery Deployment Pipeline is, the key components and stages, including: Technical Testing, Acceptance Testing, Automation, Version Control and Infrastructure as Code. It also includes examples of world-class pipeline practice, and tips for improving your Deployment Pipelines.\nIf you want to create Better Software Faster, then you need Continuous Delivery, and at the heart of Continuous Delivery is the Deployment Pipeline.\nYou may already have a Deployment Pipeline, or be thinking about building your first! Either way, this practical handbook offers a step-by-step guide to get the best Deployment Pipeline for your software.",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/continuous-delivery-pipelines-1-dave-farley.json",
    "descriptionHtml": "<p>This practical handbook provides a step-by-step guide for you to get the best Continuous Delivery Pipeline for your software.\nWritten by Dave Farley - the inventor of the Continuous Delivery Deployment Pipeline and author of the award-winning book &quot;Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automationโ€.\nDave Farley shares his advice and experience in this essential handbook on how to build, use and improve your Continuous Delivery Pipeline. This books explains what a Continuous Delivery Deployment Pipeline is, the key components and stages, including: Technical Testing, Acceptance Testing, Automation, Version Control and Infrastructure as Code. It also includes examples of world-class pipeline practice, and tips for improving your Deployment Pipelines.\nIf you want to create Better Software Faster, then you need Continuous Delivery, and at the heart of Continuous Delivery is the Deployment Pipeline.\nYou may already have a Deployment Pipeline, or be thinking about building your first! Either way, this practical handbook offers a step-by-step guide to get the best Deployment Pipeline for your software.</p>\n"
  },
  {
    "slug": "foundations-of-scalable-systems-1-ian-gorton",
    "title": "Foundations of Scalable Systems",
    "subtitle": "Designing Distributed Architectures",
    "edition": 1,
    "authors": [
      {
        "name": "Ian Gorton",
        "slug": "ian-gorton",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ian-gorton.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/foundations-of-scalable-systems-1-ian-gorton.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1098106067",
      "amazon_uk": "https://www.amazon.co.uk/dp/1098106067"
    },
    "description": "In many systems, scalability becomes the primary driver as the user base grows. Attractive features and high utility breed success, which brings more requests to handle and more data to manage. But organizations reach a tipping point when design decisions that made sense under light loads suddenly become technical debt. This practical book covers design approaches and technologies that make it possible to scale an application quickly and cost-effectively.\nAuthor Ian Gorton takes software architects and developers through the foundational principles of distributed systems. You'll explore the essential ingredients of scalable solutions, including replication, state management, load balancing, and caching. Specific chapters focus on the implications of scalability for databases, microservices, and event-based streaming systems.\nYou will focus on:\n- Foundations of scalable systems: Learn basic design principles of scalability, its costs, and architectural tradeoffs\n- Designing scalable services: Dive into service design, caching, asynchronous messaging, serverless processing, and microservices\n- Designing scalable data systems: Learn data system fundamentals, NoSQL databases, and eventual consistency versus strong consistency\n- Designing scalable streaming systems: Explore stream processing systems and scalable event-driven processing",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/foundations-of-scalable-systems-1-ian-gorton.json",
    "descriptionHtml": "<p>In many systems, scalability becomes the primary driver as the user base grows. Attractive features and high utility breed success, which brings more requests to handle and more data to manage. But organizations reach a tipping point when design decisions that made sense under light loads suddenly become technical debt. This practical book covers design approaches and technologies that make it possible to scale an application quickly and cost-effectively.\nAuthor Ian Gorton takes software architects and developers through the foundational principles of distributed systems. You&#39;ll explore the essential ingredients of scalable solutions, including replication, state management, load balancing, and caching. Specific chapters focus on the implications of scalability for databases, microservices, and event-based streaming systems.\nYou will focus on:</p>\n<ul>\n<li>Foundations of scalable systems: Learn basic design principles of scalability, its costs, and architectural tradeoffs</li>\n<li>Designing scalable services: Dive into service design, caching, asynchronous messaging, serverless processing, and microservices</li>\n<li>Designing scalable data systems: Learn data system fundamentals, NoSQL databases, and eventual consistency versus strong consistency</li>\n<li>Designing scalable streaming systems: Explore stream processing systems and scalable event-driven processing</li>\n</ul>\n"
  },
  {
    "slug": "high-performance-browser-networking-1-ilya-grigorik",
    "title": "High Performance Browser Networking",
    "subtitle": "What every web developer should know about networking and web performance",
    "edition": 1,
    "authors": [
      {
        "name": "Ilya Grigorik",
        "slug": "ilya-grigorik",
        "url": "https://fullStackbulletin.github.io/fullstack-books/authors/ilya-grigorik.json"
      }
    ],
    "cover": "https://fullStackbulletin.github.io/fullstack-books/covers/high-performance-browser-networking-1-ilya-grigorik.jpg",
    "links": {
      "amazon_us": "https://www.amazon.com/dp/1449344763",
      "amazon_uk": "https://www.amazon.co.uk/dp/1449344763",
      "free": "https://hpbn.co/"
    },
    "description": "How prepared are you to build fast and efficient web applications? This eloquent book provides what every web developer should know about the network, from fundamental limitations that affect performance to major innovations for building even more powerful browser applications--including HTTP 2.0 and XHR improvements, Server-Sent Events (SSE), WebSocket, and WebRTC.\nAuthor Ilya Grigorik, a web performance engineer at Google, demonstrates performance optimization best practices for TCP, UDP, and TLS protocols, and explains unique wireless and mobile network optimization requirements. You'll then dive into performance characteristics of technologies such as HTTP 2.0, client-side network scripting with XHR, real-time streaming with SSE and WebSocket, and P2P communication with WebRTC.\n- Deliver optimal TCP, UDP, and TLS performance\n- Optimize network delivery over 3G/4G mobile networks\n- Develop fast and energy-efficient mobile applications\n- Address bottlenecks in HTTP 1.x and other browser protocols\n- Plan for and deliver the best HTTP 2.0 performance\n- Enable efficient real-time streaming in the browser\n- Create efficient peer-to-peer videoconferencing and low-latency applications with real-time WebRTC transports",
    "url": "https://fullStackbulletin.github.io/fullstack-books/books/high-performance-browser-networking-1-ilya-grigorik.json",
    "descriptionHtml": "<p>How prepared are you to build fast and efficient web applications? This eloquent book provides what every web developer should know about the network, from fundamental limitations that affect performance to major innovations for building even more powerful browser applications--including HTTP 2.0 and XHR improvements, Server-Sent Events (SSE), WebSocket, and WebRTC.\nAuthor Ilya Grigorik, a web performance engineer at Google, demonstrates performance optimization best practices for TCP, UDP, and TLS protocols, and explains unique wireless and mobile network optimization requirements. You&#39;ll then dive into performance characteristics of technologies such as HTTP 2.0, client-side network scripting with XHR, real-time streaming with SSE and WebSocket, and P2P communication with WebRTC.</p>\n<ul>\n<li>Deliver optimal TCP, UDP, and TLS performance</li>\n<li>Optimize network delivery over 3G/4G mobile networks</li>\n<li>Develop fast and energy-efficient mobile applications</li>\n<li>Address bottlenecks in HTTP 1.x and other browser protocols</li>\n<li>Plan for and deliver the best HTTP 2.0 performance</li>\n<li>Enable efficient real-time streaming in the browser</li>\n<li>Create efficient peer-to-peer videoconferencing and low-latency applications with real-time WebRTC transports</li>\n</ul>\n"
  }
]

Access Patterns โ›•

Filtering, Sorting, Pagination, Versioning ๐Ÿคจ

You can't use query stringย parameters or headers...

... but you can be creative with the path!

/api/v1/cars/by_price_desc/all.json
/api/v1/cars/by_price_desc/y2024.json
/api/v1/cars/by_price_desc/page_1.json

Not very RESTful and not very flexible, but it might be good enough for simple cases...

What about CORS?

Cross-Origin Resource Sharing

An HTTP-header based [security] mechanism that allows a server to indicate any origins (domain, scheme, or port) other than its own from which a browser should permit loading resources (MDN)

What about CORS?


evil-site.com ๐Ÿ˜ˆ
ย 


cool-bank.com ๐Ÿ’ฐ
ย 

evilscript.js

What about CORS?


evil-site.com ๐Ÿ˜ˆ
ย 


cool-bank.com ๐Ÿ’ฐ
ย 

POST ย  /transfer?amt=100000000&to=hacker

ย 

๐Ÿช cookies for cool-bank.com

What about CORS?


evil-site.com ๐Ÿ˜ˆ
ย 


cool-bank.com ๐Ÿ’ฐ
ย 

POST ย  /transfer?amt=100000000&to=hacker

ย 

๐Ÿช cookies for cool-bank.com

CORS protects your browser from this kind of attacks!

X

What about CORS?


evil-site.com ๐Ÿ˜ˆ
ย 


cool-bank.com ๐Ÿ’ฐ
ย 

CORS forces the browser to make a Preflightย request

?

OPTIONย  ย /transfer?amt=100000000&to=hacker

What about CORS?


evil-site.com ๐Ÿ˜ˆ
ย 


cool-bank.com ๐Ÿ’ฐ
ย 

CORS forces the browser to make a Preflightย request

โœ…

Access-Control-Allow-Origin: https://evil-site.com

๐Ÿ’โ€โ™‚๏ธ The target server needs to explicitly tell the browser (through a header) that it can accepts requests from evil-site.com, otherwise the browser will block the original request generated by the script!

?

What about CORS?

  • CORS might block frontend apps from using your static APIs
  • Your Static APIs are read-only and public, there should be no risk in enabling very permissive CORS headers
  • You can do that by returning Allow-Control-Origin: *ย on every response
  • Check out how to do this in your web server or CDN
  • GitHub pages enables this by default!

One final
(hopefully cool ๐Ÿ˜Ž)
Example...

Can search for stations

Station data is loaded through a static API

How is the static API generated?

  • Station raw data is made available (as a JSON blob)
  • The raw data is processed and split into multiple JSON files (one per station, e.g. /api/st_a2vsw9.json)
  • If you know the ID of a station, you can access all the details
import { readFile, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { mkdirp } from 'mkdirp'

const source = join(import.meta.dirname, 'data.json')
const data = JSON.parse(await readFile(source, 'utf8'))

const target = join(import.meta.dirname, '..', 'public', 'api')
await mkdirp(target)

for (const r of data) {
  const filename = join(target, `${r.id}.json`)
  await writeFile(filename, JSON.stringify(r, null, 2))
  console.log(filename)
}

... Cool story, but surely you need a serverย or a dynamic API for that full-text search feature!

NOPE! ๐Ÿ™‚โ€โ†”๏ธ

We can do client-side full-text search!

  • Generate a search indexย at build time
  • Expose it together with our APIs
  • Fetch it from the app at runtime
  • Perform in-memory full-text search queries
  • Let's do it with Orama!
// build.js
import { create, insert } from '@orama/orama'
import { persist } from '@orama/plugin-data-persistence'

const searchIndex = create({
  schema: {
    id: 'string',
    name: 'string',
    city: 'string',
    country: 'string',
    postalCode: 'string',
    province: 'string',
    iata: 'string',
  },
})
// ...
for (const r of data) {
  insert(searchIndex, {
    id: r.id,
    name: r.name,
    city: r.city,
    country: r.country,
    postalCode: r.postalCode,
    province: r.province,
    iata: r.iata,
  })
}
const JSONIndex = await persist(searchIndex, 'json')
const filename = join(target, '_search.json')
await writeFile(filename, JSONIndex)
// client-side
import {
  type Orama,
  search,
} from '@orama/orama'
import { restore } from '@orama/plugin-data-persistence'
import { Schema } from './types'

// load the index from a public URL
const resp = await fetch('https://.../_search.json', {
  headers: {
    accept: 'application/json; charset=utf-8',
  },
})
const data = await resp.text()
const db = await restore<Orama<Schema>>('json', data)

// perform full text search
const results = await search(db, {
  term: 'Catania'
})

Check out the full demo codebase at:


github.com/lmammino/rental-station-static-api-demo

How much do static APIs scale?

A few things to consider:

  • What are we optimizing for? Cost? Global Latency?
  • What is the frequency of updates?
  • Cost of generation vs cost of access (wide generation vs shallow access)
  • Do you need to support many different access patterns?
  • Client-side search: the more the data the bigger the index!

Summary

  • Static APIs are a development approach that is currently underutilized.

  • They are not a perfect solution (NO "silver bullet").

  • They have constraints that need to be carefully considered.

  • However, when those constraints are manageable, the benefits can be substantial.

  • Go on and see if you can take advantage of them! ๐Ÿ’ช

Additional resources

Thanks to @gbinsideย  & Michael di Priscoย for kindly reviewing this talk!

loige.link/static-a

GRAZIE! ๐Ÿฅฐ

Static APIs, the Unsung Heroes - Coderful Backend 2025

By Luciano Mammino

Static APIs, the Unsung Heroes - Coderful Backend 2025

Are you familiar with static websites, often referred to as the "Jamstack"? The concept is straightforward: generate HTML, CSS, JavaScript, fonts, images, and other assets at build time and publish them on a CDN. The result? Incredibly fast websites with no servers to manage and extremely low costs! Now, imagine being able to apply the same approach to your APIs, using only pre-generated JSON files hosted on platforms like GitHub Pages or Netlify. No servers, no databases: just instant responses accelerated by a global CDN. And the best part is that even for features like full-text search, there are entirely client-side static solutions available, making them virtually free! In this talk, we will delve into how static APIs work, exploring their advantages, limitations, and practical use cases. I will show you concrete examples and provide reusable templates to immediately put these techniques into practice.

  • 154