Cover photo
Matt Idell
Worked at Advisors Asset Managemenet
Attended UC Berkeley College of Engineering
Lives in San Diego, CA


Matt Idell

Shared publicly  - 
This is a very cool web development tool which will tell you what event handlers are attached to what DOM elements. Very handy.
Introduction. Visual Event is an open source Javascript bookmarklet which provides debugging information about events that have been attached to DOM elements. Visual Event shows: Which elements have e...
Add a comment...

Matt Idell

Shared publicly  - 
After considuring git-flow recently, and seeing issues with working in release branches and lack of a good integration point, this post really spoke to me.
Jörn Zaefferer originally shared:
Another Git branching model. Posted on 2 January , 2012 by Aurélien Pelletier. We've switched to git at work a few month ago. Not an easy task but the rewards are worth the trouble. Our branching ...
Add a comment...

Matt Idell

Shared publicly  - 
Amazing demonstration of scale.
Permanent link to this comic: Image URL (for hotlinking/embedding): Search comic titles and transcripts: RSS Feed - Atom Feed. Comics I enj...
Add a comment...

Matt Idell

Shared publicly  - 
Red meat is bad for you? "Scientists" said so, so it must be true, right?
Add a comment...

Matt Idell

Shared publicly  - 
I am amazed at the number of times I see people presenting graphs of historical data, arguing that what they observe should be more like the past, in the name of progressive ideas or politics. I am not making a judgment of these ideas or politics, but it is hard to get around the logical dissonance. Can you just tell me what you think it should be?
Add a comment...

Matt Idell

Shared publicly  - 
Mark Knichel originally shared:
Hi everyone! I’m an engineer on the Google+ infrastructure team. When +Joseph Smarr made an appearance on Ask Me Anything back in July (, many of you wanted to hear more about Google+'s technology stack. A few of us engineers decided to write a few posts about this topic and share them with you.

This first one has to do with something we take very seriously on the Google+ team: page render speed. We care a lot about performance at Google, and below you'll find 5 techniques we use to speed things up.

1. We <3 Closure

We like Closure. A lot. We use the Closure library, templates, and compiler to render every element on every page in Google+ -- including the JavaScript that powers these pages. But what really helps us go fast is the following:

- Closure templates can be used in both Java and JavaScript to render pages server-side and in the browser. This way, content always appears right away, and we can load JavaScript in the background ("decorating" the page, and hooking up event listeners to elements along the way)

- Closure lets us write JavaScript while still utilizing strict type and error checking, dead code elimination, cross module motion, and many other optimizations

(Visit for more information on Closure)

2. The right JavaScript, at the right time

To help manage the Javascript that powers Google+, we split our code into modules that can be loaded asynchronously from each other. You will only download the minimum amount of Javascript necessary. This is powered by 2 concepts:

- The client contains code to map the history token (the text in the URL that represents what page you are currently on) to the correct Javascript module.

- If the Javascript isn’t loaded yet, any action in the page will block until the necessary Javascript is loaded.

This framework is also the basis for our support for making client side navigates work in Google+ work without reloading the page.

3. Navigating between pages, without refreshing the page

Once the Javascript is loaded, we render all content without going back to the server since it will be much faster. We install a global event listener that listens for clicks on anchor tags. If possible, we convert that click to an in page navigate. However, if we can’t client side render the page, or if you use a middle-click or control-click on the link, we let the browser open the link as normal.

The anchor tags on the page always point to the canonical version of the URL (i.e. if you used HTML5 history for the URL), so you can easily copy/share links from the page.

4. Flushing chunks (of HTML)

We also flush HTML chunks to the client to make the page become visible as soon as the data comes back, without waiting for the whole page to load.

We do this by
- Kicking off all data fetches asynchronously at the start of the request
- Only blocking on the data when we need to render that part of the page

This system also allows us to start loading the CSS, Javascript, images, and other resources as early as possible, making the site faster and feel more responsive.

5. iFrame is our friend

To load our Javascript in parallel and avoid browser blocking behavior (, we load our Javascript in an iframe at the top of the body tag. Loading it in an iframe adds some complexity to our code (nicely handled through Closure), but the speed boost is worth it.

On a side note, you may have noticed that we load our CSS via a XHR instead of a style tag - that is not for optimization reasons, that’s because we hit Internet Explorer’s max CSS selector limit per stylesheet!

Final Comments

This is just a small glimpse of how stuff works under the covers for Google+ and we hope to write more posts like this in the future. Leave your ideas for us in the comments!
Add a comment...
Software Developer
  • Advisors Asset Managemenet
    Software Developer
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
San Diego, CA
I am a proud husband and father of two. I develop software for a living with a focus on providing value to the business. I enjoy music, baseball, reading and homebrewing. 
  • UC Berkeley College of Engineering
Basic Information
Apps with Google+ Sign-in
  • Minecraft Story Mode
  • Sudoku
  • Brain It On!
  • TwoDots