Nicholas C. Zakas

Nicholas C. Zakas

Web developer

Mountain View, California

Areas of Expertise:

  • JavaScript
  • HTML
  • CSS
  • Ajax
  • Comet
  • consulting
  • speaking
  • programming
  • writing
Nicholas C. Zakas is a Web Software Engineer who specializes in user interface design and implementation for Web applications using JavaScript, Dynamic HTML, CSS, XML, and XSLT. He is currently principal front end engineer for the Yahoo! homepage and is a contributor to the Yahoo! User Interface (YUI) library, having written the Cookie Utility, Profiler, and YUI Test.

Nicholas is the author of Professional JavaScript for Web Developers and a co-author on Professional Ajax, and has contributed to other books. He has also written several online articles for WebReference, Sitepoint, and the YUI Blog.

Nicholas regularly gives talks about Web development, JavaScript, and best practices. He has given talks at companies such as Yahoo!, LinkedIn, Google, and NASA, and conferences such as the Ajax Experience, the Rich Web Experience, and Velocity.

Through his writing and speaking, Nicholas seeks to teach others the valuable lessons he's learned while working on some of the most popular and demanding Web applications in the world.

For more information on Nicholas: http://www.nczonline.net/about/

The Principles of Object-Oriented JavaScript The Principles of Object-Oriented JavaScript (No Starch)
by Nicholas C. Zakas
February 2014
Print: $24.95
Ebook: $19.95

The Problem with Native JavaScript APIs The Problem with Native JavaScript APIs
by Nicholas C. Zakas
July 2012
Ebook: $0.00

Maintainable JavaScript Maintainable JavaScript
by Nicholas C. Zakas
May 2012
Print: $39.99
Ebook: $33.99

High Performance JavaScript High Performance JavaScript
by Nicholas C. Zakas
March 2010
Print: $34.99
Ebook: $27.99

Nicholas C. blogs at:

My ECMAScript 7 wishlist

June 03 2014

With ECMAScript 6 now feature complete, any further changes to the core of JavaScript will happen in ECMAScript 7. I’m pretty excited about the changes coming in ECMAScript 6 and there are already some great ECMAScript 7 features such as Object.observe() and asynchronous functions. While the development of ECMAScript 7… read more

An open letter to the FCC regarding net neutrality

May 27 2014

Dear Chairman Wheeler, I’m writing to you as a citizen who is deeply concerned about the direction the FCC may take with regards to ISPs. As both a consumer and a technology worker, I rely on the Internet not only as a source of entertainment and information, but also a… read more

URLs are already dead

May 06 2014

Last week, there was a fair bit of furor when Jake Archibald wrote an article[1] describing an experimental feature in Chrome that hides all but the domain name of the URL you’re on. The idea is very similar to what already happens in the iOS 7 version of Safari: once… read more

Creating type-safe properties with ECMAScript 6 proxies

April 29 2014

In my last post, I explained how to use ECMAScript 6 proxies to throw an error when a non-existent property is read (rather than returning undefined). I came to realize that proxies allow a transparent way to augment objects with validation capabilities in an almost limitless fashion. After some experimentation,… read more

Creating defensive objects with ES6 proxies

April 22 2014

This past week I spent an hour debugging an issue that I ultimately tracked down to a silly problem: the property I was referencing didn’t exist on the given object. I had typed request.code and it should have been request.query.code. After sternly lecturing myself for not noticing earlier, a pit… read more

A framework for thinking about work

April 15 2014

Your product owner comes to you with a request, and suddenly your stomach is tied in knots. There’s something about the request that doesn’t sit right. You blurt out, “well, that’s a lot of work,” because it’s the only thing that comes to mind. “Well, it’s really important,” comes the… read more

I have Lyme disease

April 02 2014

As best I can recall, it all started around 15 years ago. I was finishing up my sophomore year at college and had just taken my last final exam. The following Monday I would be heading into the hospital for some diagnostic tests related to persistent and as-yet-undiagnosed digestive issues.… read more

Announcing Understanding ECMAScript 6

March 26 2014

For almost two years, I’ve been keeping notes on the side about ECMAScript 6 features. Some of those notes have made it into blog posts while others have languished on my hard drive waiting to be used for something. My intent was to compile all of these notes into a… read more

Leanpub: One year later

March 18 2014

At the beginning of last year, I released my first self-published ebook, The Principles of Object-Oriented Programming in JavaScript. I decided to go this route for a few reasons, not the least of which being I didn’t really know how much time I’ve have to commit to its writing, so… read more

Accessing Google Spreadsheets from Node.js

March 04 2014

I’ve recently been working on a project involving Google Spreadsheets. My goal was to store data in the spreadsheet using a form and then read the data from that spreadsheet using a Node.js application. Having no experience with Google web services, I ended up digging through a lot of documentation… read more

Webcast: The Best of Fluent: Maintainable JavaScript
April 24, 2013
This session shows the best practices used by teams to ensure their JavaScript is as maintainable as possible.

Webcast: The Best of Velocity - JS Timers, Power Consumption, and Performance
September 07, 2012
This talk explores the browser UI thread and how timers influence it. You'll learn how timers actually work, why they behave the way they do, and whether you're using them in the most efficient manner possible. Learn how timers affect power consumption...

"If you know Zakas, then you know this is a quality pick-up even before reading it."
--Louis Lazaris, Impressive Webs

"After just the first chapter, I was amazed at all the things I had learned, and I think many other developers would feel the same after reading this book. Very highly recommended."
--Brandon Ching, Usenix ;login:

"In short words this book is a must read..."
--Mostafa Farghaly, Amazon.com

"Overall, High Performance Javascript is a great little 200 page book. If you have been programming JavaScript and/or Ajax and want to learn more about speeding up your code and also learning the best way to program then this book would make a great read."
--Daniel Coe, OracleHome.co.uk

"...a guide recommended for any programmer's collection."
--Diane Donovan, The Bookwatch: The Computer Shelf

"...a bloody brilliant book, and not owning it should be reason enough for ostracication from the frontend community."
--Jacob Waller, krwaller