SlideShare a Scribd company logo
1 of 201
Download to read offline
Professional Frontend
     Engineering
               Nate Koechley
          Senior Frontend Engineer
                   Yahoo!

natek@yahoo-inc.com | developer.yahoo.com/yui
    nate.koechley.com/blog | “natekoechley”
Why this topic?
• Put a stake in the
  ground.
• Reiterate our
  values.
• Advocate the
  discipline.
• Nurture a healthy
  Web.
Historical
Perspective
Historical   Our Beliefs
Perspective   & Principles
Historical    Our Beliefs
Perspective    & Principles


 Knowledge
Areas & Best
  Practices
Historical    Our Beliefs
Perspective    & Principles


 Knowledge
               Why It All
Areas & Best
               Matters
  Practices
Historical
Perspective
Year = 2001
Age = 7 years
Employees = 3000
Frontend
Engineers = 0
So?
2001
First frontend engineering
      specialists hired.
2008
~700 professional frontend
 engineers spread across
  Y! offices worldwide.

     And hiring!!!
2001
Font tags & nested tables.

     Static interface.
2008
Semantic & accessible markup.

Rich DHTML & Ajax behavior.

More content. Same fast speed.
2001
Available and accessible to
         everyone.
2008
Available and accessible to
         everyone.
2001
Plain but predictable.
2008
Highly visual and adaptive, but
       still dependable.
2001
Modest user expectations.
2008
  Sophisticated, broad, and
non-trivial user expectations.
2001
Intersection of design and
 development still vague.
Now
    Professional Frontend
   Engineers focused at the
  intersection of design and
development is a best practice.
—Irene Au, SVP of UED at Yahoo!
“In 2001, with developments in advanced
   JavaScript and DHTML, we knew the web
  experience would evolve beyond the static
pages we were producing. We brought in web
developers to help us pioneer Yahoo’s offerings
     to include a more dynamic, interactive
           experience for our users.”
              —Irene Au, SVP of UED at Yahoo!
—Irene Au, SVP of UED at Yahoo!
“... Another motivation was to bring in a
     disciplined frontend programming
     practice to Yahoo. Before then, the
presentation, behavior, and structure of
our pages were not separate, which led
 to many challenges and inefficiencies in
designing and developing our products.”
           —Irene Au, SVP of UED at Yahoo!
“The Framers of the Web
 saw browser differences
as beneficial and believed
   that visitors should
choose how their browser
   displays the page...”
“...I wanted more control
   so I threw my HTML
  book in the trash and
  started from scratch.”
The Web is
 still sick.
Frontend Engineers are
the Web’s Radiologists
Question:

What is Frontend
Engineering?
Answer:

We write software
in JavaScript, CSS,
and HTML & more...
Answer:

We tell browsers
what to do.
Answer:

We’re responsible
for “view source”
The Yahoo! Stack
      Pages & modules
          95% HTML, 5% PHP


     Display logic & APIs
         50% HTML, 50% PHP


    Specific PHP biz logic
          90% PHP, 10% Text


 Generic PHP functions & libs
             100% PHP


      C/C++ Libraries.
         90% C/C++, 10% PHP
The Yahoo! Stack
     Pages & modules
                               Frontend
         95% HTML, 5% PHP


    Display logic & APIs
        50% HTML, 50% PHP


   Specific PHP biz logic
         90% PHP, 10% Text


Generic PHP functions & libs
            100% PHP           Backend
     C/C++ Libraries.
        90% C/C++, 10% PHP
The Yahoo! Stack
     Pages & modules
                               Frontend
         95% HTML, 5% PHP


    Display logic & APIs
        50% HTML, 50% PHP


   Specific PHP biz logic
         90% PHP, 10% Text


Generic PHP functions & libs
            100% PHP           Backend
     C/C++ Libraries.
        90% C/C++, 10% PHP
SIMPLE?
no.
server
(X)HTML




 server
(X)HTML

          Specification




 server
(X)HTML

           Specification
          Implementation




 server
(X)HTML

           Specification
          Implementation
               Bugs




 server
(X)HTML

              Specification
             Implementation
                  Bugs
          [ Theory / Practice ]




 server
CSS

                          BOM API
(X)HTML    DOM                      JavaScript
                          DOM API

              Specification




                                    Data Transport
                                                     data: custom, xml,


                                                     mixed: new xhtml
             Implementation




                                                              json
                                                     behavior: js
                  Bugs
          [ Theory / Practice ]




 server
Safari    Firefox    Opera   IE5, 6, 7    Firefox   Opera       10,000+ UAs
         Macintosh                       Windows              Linux, Unix, Mobile


                                CSS

                                                    BOM API
     (X)HTML                  DOM                                JavaScript
                                                    DOM API

                                 Specification




                                                                 Data Transport
                                                                                  data: custom, xml,


                                                                                  mixed: new xhtml
                                Implementation




                                                                                           json
                                                                                  behavior: js
                                     Bugs
                             [ Theory / Practice ]




         server
Safari    Firefox    Opera   IE5, 6, 7   Firefox   Opera        10,000+ UAs
         Macintosh                       Windows             Linux, Unix, Mobile


                                CSS

                                                   BOM API
     (X)HTML                   DOM                               JavaScript
                                                   DOM API




                                 Specification




                                                                                   data: custom, xml,


                                                                                   mixed: new xhtml,
                                                                  Data Transport
                                Implementation




                                                                                   behavior: js
                                                                                          json
                                    Defects
                             [ Theory / Practice ]




           server
Safari    Firefox    Opera   IE5, 6, 7   Firefox   Opera        10,000+ UAs
         Macintosh                       Windows             Linux, Unix, Mobile


             knowledge areas: 7
                    CSS


     (X)HTML
                     dimensions: xJavaScript
                    DOM
                                      4            BOM API


                                                   DOM API


                        platforms: x 3
                     Specification




                                                                                   data: custom, xml,


                                                                                   mixed: new xhtml,
     browsers perDefects platform: x 4




                                                                  Data Transport
                   Implementation




                                                                                   behavior: js
                                                                                          json
             rendering modes: x 2
                [ Theory / Practice ]




           server
               =672
usability, internationalization,
    localization, visual design,
  accessibility, information
   architecture, security, build
   processes, performance,
benchmarking, devices, portability
from Lifted
©2007 Pixar Animation Studios
Different from Backend
      because we:

• Can’t compile.
• Can’t trust.
• Can’t predict.
• Can’t install or store.
• Can’t hide anything!
Douglas Crockford on browsers:

       “The most hostile
    software development
   environment imaginable.”
If your business is online...
   your value depends on
   Frontend Engineering.
Elegant algorithms benefit users
   through interfaces built by
      Frontend Engineers.
Every gorgeous design is
brought to life by Frontend
        Engineers.
Frontend engineers give sites
    strength & resilience,
   appearance & form, and
 functionality & interactivity.
...which is why professional
   frontend engineering is
    critical for success.
Historical   Our Beliefs
Perspective   & Principles
Four Guiding Principles
1) Availability
Availability:
Maximize availability, accessibility
and utility of content and services
for all users worldwide.
2) Openness
Openness:
Share. Learn. Support. Advocate.
We benefit from a healthy Internet.
3) Richness
Richness:
Provide, but not too much.
Layer endlessly.
Remember we are not average.
4) Stability
Stability:
The Web is young.
Invest in quality.
Prepare for the future.
Four Guiding Principles

• Availability
• Openness
• Richness
• Stability
Three Core Techniques
1) Graded Browser
     Support
http://developer.yahoo.com/yui/articles/gbs/
“Support” does not
  mean identical.
“Support” is not a
  binary choice.
Three Support Grades
Three Support Grades
C-Grade
  •   Blacklist (of incapable browsers)
  •   Withhold CSS & JavaScript
Three Support Grades
C-Grade
  •   Blacklist (of incapable browsers)
  •   Withhold CSS & JavaScript
A-Grade
  •   Whitelist (of capable browsers tested)
  •   Serve CSS & JavaScript
Three Support Grades
C-Grade
  •   Blacklist (of incapable browsers)
  •   Withhold CSS & JavaScript
A-Grade
  •   Whitelist (of capable browsers tested)
  •   Serve CSS & JavaScript
X-Grade
  •   Everybody else. 
  •   Serve CSS & JavaScript
A-Grade Support
http://developer.yahoo.com/yui/articles/gbs
C-Grade Experience
A-Grade Experience
C-Grade Experience
A-Grade Experience
2) Progressive
Enhancement
Rules of Progressive
   Enhancement
Rules of Progressive
       Enhancement
•   Enrich content with thorough, explicit markup.
Rules of Progressive
       Enhancement
•   Enrich content with thorough, explicit markup.

•   Test core functionality with HTML only.
Rules of Progressive
       Enhancement
•   Enrich content with thorough, explicit markup.

•   Test core functionality with HTML only.

•   Enhance layout via externally linked CSS.
Rules of Progressive
       Enhancement
•   Enrich content with thorough, explicit markup.

•   Test core functionality with HTML only.

•   Enhance layout via externally linked CSS.

•   Enhance behavior via externally linked
    unobtrusive JavaScript.
Rules of Progressive
       Enhancement
•   Enrich content with thorough, explicit markup.

•   Test core functionality with HTML only.

•   Enhance layout via externally linked CSS.

•   Enhance behavior via externally linked
    unobtrusive JavaScript.

•   Respect end-user browser preferences.
Flipped definition of
“graceful degradation”
3) Unobtrusive JavaScript
http://onlinetools.org/articles/unobtrusivejavascript/
Rules of Unobtrusive
      JavaScript
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.

•   Don’t depend on or trust JavaScript.
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.

•   Don’t depend on or trust JavaScript.

•   Poke objects before using them.
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.

•   Don’t depend on or trust JavaScript.

•   Poke objects before using them.

•   Write JavaScript, not dialects.
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.

•   Don’t depend on or trust JavaScript.

•   Poke objects before using them.

•   Write JavaScript, not dialects.

•   Mind your manners with vars & scope.
Rules of Unobtrusive
          JavaScript
•   No JavaScript in HTML documents.

•   Don’t depend on or trust JavaScript.

•   Poke objects before using them.

•   Write JavaScript, not dialects.

•   Mind your manners with vars & scope.

•   Support multiple event triggers.
Don’t Break the Web!

href=“#”
href=“javascript:foo()”
onclick=“foo()”
Three Core Techniques
• Graded Browser
 Support

• Progressive
 Enhancement

• Unobtrusive
 JavaScript
Making Decisions
Making Decisions (1)
1. Do what is standard.
  if impossible, then:

2. Do what is common.
  if impossible, then:

3. Do what it takes.
Making Decisions (2)
1. Do what is simple.
  ✚
2. Do what is flexible & progressive.
  ✚
3. Do what is open.
Making Decisions (3)

•   Remember you have multiples
    audiences to satisfy:
    •   Users
    •   Developers
    •   Machines
Historical    Our Beliefs
Perspective    & Principles


 Knowledge
Areas & Best
  Practices
8 Areas of Focus
1. HTML                   6. Performance

2. CSS                    7. Infrastructure &
                             Process
3. JavaScript
                          8. Tooling
4. Accessibility

5. Internationalization
oc us
F
  #1



         HTML
Focus: Be thorough.
<label>
<fieldset>
<cite>
<caption>
<thead>
<th scope=”row” abbr=”ManU”>
<ins datetime=”2008-05-30”>
Aim for permanence.
Switching costs
  are rising.
oc us
F
  #2



         CSS
Focus on the left side.
selector: declaration;
selector: declaration;
Focus: Specificity
   great selectors are an
expression of professionalism
h1: declaration;
#mod h1: declaration;
div#mod h1: declaration;
body.cart #mod h1.class a:
       declaration;
#mod ul li li: declaration;
Focus: Maintenance
  think about how sites age
oc us
F
  #3



         JavaScript
JavaScript


• Quality
• Security
1) Quality
Linting

• Use programs like JSLint (jslint.org) to
  confirm the quality of your code.
• Adopt the idioms it promotes to improve
  your code quality.
Unit Testing w/ YUI Test
•   Rapid creation of test cases via simple syntax.

•   Advanced failure detection for methods that
    throw errors.

•   Grouping of related test cases using test suites.

•   Asynchronous tests for testing events and Ajax
    communication.

•   DOM Event simulation in all A-grade browsers.
Profiling

• Learn where to improve your code.
• Programmatically retrieve profiling
  information as the application is running.
• Determine unit-testing success based on
  profiling results.
JavaScript Pollution

• Do not mutate JavaScript itself.
• Do protect yourself from browsers.
• Minimize touchpoints between authors and
  vendors so vendors can iterate faster.
2) Security
JavaScript Security

• Beware of XSS
• Never Trust Data from the Client
• Monitor AdSafe/Caja Developments
oc us
F
  #4



         Accessibility
ARIA
Decoupled Events
oc us
F
  #5



   Internationalization
Begin serving all .css
  and .js at UTF-8
@charset quot;
oc us
F
  #6



         Performance
14 then. 8 more today.
<link> not @import


•   Because @import
    overrides the browsers’
    native performance
    sequencing.
Avoid Redirects

• 3xx status codes – mostly 301 and 302
  HTTP/1.1 301 Moved Permanently
  Location: http://yahoo.com/newuri

• Cache redirects via Expires headers
• Redirects are worst
  form of blocking
Use Cookie-Free
 Domains For Assets.
• Serving static cacheable assets from a
  distinct domains keeps cookies from riding
  along with all requests.
  yimg.com
  images-amazon.com
  fbcdn.net
Preload Assets
Preload Assets

1. Unconditional preload - always w/ onload
  Example: google.com’s sprite
Preload Assets

1. Unconditional preload - always w/ onload
  Example: google.com’s sprite

2. Conditional preload - based on user action
  Ex: search.yahoo.com’s Search Assist
Preload Assets

1. Unconditional preload - always w/ onload
  Example: google.com’s sprite

2. Conditional preload - based on user action
  Ex: search.yahoo.com’s Search Assist

3. Anticipated preload - give redesigns a boost
Optimize CSS Sprites
Optimize CSS Sprites
1. Horizontal alignment is usually smaller than
   vertical.
Optimize CSS Sprites
1. Horizontal alignment is usually smaller than
   vertical.
2. Combine similar colors in a sprite to
   minimize color count.
  Only 256 colors can fit in a PNG8.
Optimize CSS Sprites
1. Horizontal alignment is usually smaller than
   vertical.
2. Combine similar colors in a sprite to
   minimize color count.
  Only 256 colors can fit in a PNG8.

3. Avoid unnecessarily large gaps between
   parts of the sprite.
GET for Ajax Requests

• POST is a two-step process.
• GET can send in one packet.
• Use if possible, but max payload is 2K in IE.
Keep Focusing on Events

1. Event Delegation to reduce total number
2. Don’t always wait for onLoad
 • YUI Event has onAvailable,
    onContentReady, & onDomReady
iPhone Tip

• iPhone will not cache assets larger than 25K
  • That’s 25K uncompressed.
  • Only 19 total items in cache.
• http://yuiblog.com/blog/2008/02/06/iphone-
  cacheability/
oc us
F
  #7


         Infrastructure &
              Process
Build Process
Documentation
three versions of each member
*.js
*-debug.js
*-min.js
What Is YUI?
oc us
F
  #8



         Tooling
Need More Progress.
But there’s been some:

• JSLint, JScript Debugger, Firebug, Debug Bar,
  Fiddler, Charles, HTTP Live Headers,
  DragonFly, Visual Studio 2008
• YUI Logger, YUI Test, and YUI Profiler
Historical    Our Beliefs
Perspective    & Principles


 Knowledge
               Why It All
Areas & Best
               Matters
  Practices
There’s a lot of
work to be done.
We need more
people doing it.
The health of the
internet depends on it.
The health of our
businesses and passions
     depends on it.
We must stay vigilant.
We must defend users.
Go forth with this in
       mind:
Be Tireless
Trendsetters of Quality
                   Be active.
             Find the way forward.
                    Educate.
Be Belligerent
Gatekeepers of Quality
             Do not accept less.
             Do not cut corners.
Exhibit Stubborn
Empathy for Users
          We’re the last line of
               defense!
Let’s keep talking...
       nate@koechley.com
http://nate.koechley.com/blog
      “natekoechley”
CC Images Used
•   http://www.flickr.com/photos/dideo/407360526/sizes/l/

•   http://www.flickr.com/photos/jenniferbuehrer/113554568/sizes/l/

•   http://www.flickr.com/photos/peteashton/290691658/sizes/l/

•   http://www.flickr.com/photos/pedjap/101230548/sizes/o/

•   http://www.flickr.com/photos/songtuyuri/2200100451/sizes/o/

•   http://www.flickr.com/photos/dominik99/1403329318/sizes/o/

•   http://www.flickr.com/photos/cuellar/482993472/sizes/o/
nate@koechley.com
http://nate.koechley.com/blog

          natekoechley         = twitter,
delicious, flickr, tripit, last.fm, linkedin,
fireeagle, friendfeed, ... everywhere.

More Related Content

What's hot

Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev TricksGabriel Walt
 
JAX 2012: Moderne Architektur mit Spring und JavaScript
JAX 2012: Moderne Architektur mit Spring und JavaScriptJAX 2012: Moderne Architektur mit Spring und JavaScript
JAX 2012: Moderne Architektur mit Spring und JavaScriptmartinlippert
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M usersJongyoon Choi
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1James Pearce
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Railscodeinmotion
 
Software architectures for the cloud
Software architectures for the cloudSoftware architectures for the cloud
Software architectures for the cloudGeorgios Gousios
 
Technology stack behind Airbnb
Technology stack behind Airbnb Technology stack behind Airbnb
Technology stack behind Airbnb Rohan Khude
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt AEM HUB
 
Engineering the New LinkedIn Profile
Engineering the New LinkedIn ProfileEngineering the New LinkedIn Profile
Engineering the New LinkedIn ProfileJosh Clemm
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Halesrajivmordani
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An IntroductionThorsten Kamann
 
Project Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SProject Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SThoughtWorks
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postvamsi krishna
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DayTechMaster Vietnam
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)Saltlux zinyus
 

What's hot (20)

Three WEM Dev Tricks
Three WEM Dev TricksThree WEM Dev Tricks
Three WEM Dev Tricks
 
JAX 2012: Moderne Architektur mit Spring und JavaScript
JAX 2012: Moderne Architektur mit Spring und JavaScriptJAX 2012: Moderne Architektur mit Spring und JavaScript
JAX 2012: Moderne Architektur mit Spring und JavaScript
 
facebook architecture for 600M users
facebook architecture for 600M usersfacebook architecture for 600M users
facebook architecture for 600M users
 
HTML5 Refresher
HTML5 RefresherHTML5 Refresher
HTML5 Refresher
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
 
HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1HTML5 and the dawn of rich mobile web applications pt 1
HTML5 and the dawn of rich mobile web applications pt 1
 
MVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on RailsMVC Demystified: Essence of Ruby on Rails
MVC Demystified: Essence of Ruby on Rails
 
Software architectures for the cloud
Software architectures for the cloudSoftware architectures for the cloud
Software architectures for the cloud
 
Web servicesoverview
Web servicesoverviewWeb servicesoverview
Web servicesoverview
 
Technology stack behind Airbnb
Technology stack behind Airbnb Technology stack behind Airbnb
Technology stack behind Airbnb
 
Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt Responsive Websites and Grid-Based Layouts by Gabriel Walt
Responsive Websites and Grid-Based Layouts by Gabriel Walt
 
Engineering the New LinkedIn Profile
Engineering the New LinkedIn ProfileEngineering the New LinkedIn Profile
Engineering the New LinkedIn Profile
 
Ajax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley HalesAjax In Enterprise Portals Wesley Hales
Ajax In Enterprise Portals Wesley Hales
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Offline Html5 3days
Offline Html5 3daysOffline Html5 3days
Offline Html5 3days
 
Project Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SProject Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G S
 
Servletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,postServletarchitecture,lifecycle,get,post
Servletarchitecture,lifecycle,get,post
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech Day
 
Wt unit 1 ppts web development process
Wt unit 1 ppts web development processWt unit 1 ppts web development process
Wt unit 1 ppts web development process
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 

Viewers also liked

Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)
Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)
Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)MaRS Discovery District
 
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...Probir Bidhan
 
Web Trends to Watch in 2014
Web Trends to Watch in 2014Web Trends to Watch in 2014
Web Trends to Watch in 2014David King
 
10 Digital Hacks Every Marketer Should Know
10 Digital Hacks Every Marketer Should Know10 Digital Hacks Every Marketer Should Know
10 Digital Hacks Every Marketer Should KnowMark Fidelman
 
Understanding text-structure-powerpoint
Understanding text-structure-powerpointUnderstanding text-structure-powerpoint
Understanding text-structure-powerpointaelowans
 
Size exclusion chromatography
Size exclusion chromatographySize exclusion chromatography
Size exclusion chromatographyMandvi Shandilya
 
4. heredity and evolution
4. heredity and evolution4. heredity and evolution
4. heredity and evolutionAbhay Goyal
 
Listing presentation Dawn Bahr
Listing presentation Dawn BahrListing presentation Dawn Bahr
Listing presentation Dawn BahrDawn Bahr
 
Fintech and Transformation of the Financial Services Industry
Fintech and Transformation of the Financial Services IndustryFintech and Transformation of the Financial Services Industry
Fintech and Transformation of the Financial Services IndustryRobin Teigland
 
Deep Learning through Examples
Deep Learning through ExamplesDeep Learning through Examples
Deep Learning through ExamplesSri Ambati
 
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)Jodie Harper
 
Introduction to Building Wireframes (with OmniGraffle)
Introduction to Building Wireframes (with OmniGraffle)Introduction to Building Wireframes (with OmniGraffle)
Introduction to Building Wireframes (with OmniGraffle)Erin 'Folletto' Casali
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorialSDN Hub
 
Correlation and regression
Correlation and regressionCorrelation and regression
Correlation and regressionKhalid Aziz
 
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...Jared Ram Juezan
 
Digital Brief 003 - Market Report Q2 2015
Digital Brief 003 - Market Report Q2 2015Digital Brief 003 - Market Report Q2 2015
Digital Brief 003 - Market Report Q2 2015LUMA Partners
 

Viewers also liked (20)

Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)
Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)
Go-To-Market Strategy - Entrepreneurship 101 (2012/2013)
 
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...
Environmental Impact Assessment (EIA) report on Rampal 1320MW coal-based powe...
 
Web Trends to Watch in 2014
Web Trends to Watch in 2014Web Trends to Watch in 2014
Web Trends to Watch in 2014
 
Schedule Review
Schedule ReviewSchedule Review
Schedule Review
 
BUSINESS QUIZ -Round 1
 BUSINESS QUIZ -Round 1 BUSINESS QUIZ -Round 1
BUSINESS QUIZ -Round 1
 
10 Digital Hacks Every Marketer Should Know
10 Digital Hacks Every Marketer Should Know10 Digital Hacks Every Marketer Should Know
10 Digital Hacks Every Marketer Should Know
 
Understanding text-structure-powerpoint
Understanding text-structure-powerpointUnderstanding text-structure-powerpoint
Understanding text-structure-powerpoint
 
Size exclusion chromatography
Size exclusion chromatographySize exclusion chromatography
Size exclusion chromatography
 
5000 Sat Words With Definitions
5000 Sat Words With Definitions5000 Sat Words With Definitions
5000 Sat Words With Definitions
 
4. heredity and evolution
4. heredity and evolution4. heredity and evolution
4. heredity and evolution
 
Listing presentation Dawn Bahr
Listing presentation Dawn BahrListing presentation Dawn Bahr
Listing presentation Dawn Bahr
 
WCM (World Class Manufacturing)
WCM (World Class Manufacturing)WCM (World Class Manufacturing)
WCM (World Class Manufacturing)
 
Fintech and Transformation of the Financial Services Industry
Fintech and Transformation of the Financial Services IndustryFintech and Transformation of the Financial Services Industry
Fintech and Transformation of the Financial Services Industry
 
Deep Learning through Examples
Deep Learning through ExamplesDeep Learning through Examples
Deep Learning through Examples
 
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)
Stress At Work (Tips to Reduce and Manage Job and Workplace Stress)
 
Introduction to Building Wireframes (with OmniGraffle)
Introduction to Building Wireframes (with OmniGraffle)Introduction to Building Wireframes (with OmniGraffle)
Introduction to Building Wireframes (with OmniGraffle)
 
OpenDaylight app development tutorial
OpenDaylight app development tutorialOpenDaylight app development tutorial
OpenDaylight app development tutorial
 
Correlation and regression
Correlation and regressionCorrelation and regression
Correlation and regression
 
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...
DepEd Order No. 47 s. 2014: CONSTITUTION AND BY - LAWS OF THE SUPREME PUPIL G...
 
Digital Brief 003 - Market Report Q2 2015
Digital Brief 003 - Market Report Q2 2015Digital Brief 003 - Market Report Q2 2015
Digital Brief 003 - Market Report Q2 2015
 

Similar to Professional Frontend Engineering

Professional Frontend Engineering
Professional Frontend EngineeringProfessional Frontend Engineering
Professional Frontend EngineeringCheton Wu
 
Front end engineering, YUI Gallery, and your future
Front end engineering, YUI Gallery, and your futureFront end engineering, YUI Gallery, and your future
Front end engineering, YUI Gallery, and your futureLuke Smith
 
YUI Introduction @ NCTU
YUI Introduction @ NCTUYUI Introduction @ NCTU
YUI Introduction @ NCTUJoseph Chiang
 
The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)Joseph Chiang
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityMarkku Laine
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsJames Pearce
 
Polysource It Profile
Polysource It ProfilePolysource It Profile
Polysource It Profileelenarys
 
Poly Source It Profile
Poly Source It ProfilePoly Source It Profile
Poly Source It Profilemoseskhedi
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT ProfileHelen
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT ProfileHelen
 
Beyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 AppsBeyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 AppsMarcos Caceres
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web appsJames Pearce
 
Mozilla In Malaysia
Mozilla In MalaysiaMozilla In Malaysia
Mozilla In MalaysiaGen Kanai
 
Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web appsJames Pearce
 
Java Framework for Database-Centric Web Engineering
Java Framework for Database-Centric Web EngineeringJava Framework for Database-Centric Web Engineering
Java Framework for Database-Centric Web EngineeringBeat Signer
 
CharlesSweetResume06155122015
CharlesSweetResume06155122015CharlesSweetResume06155122015
CharlesSweetResume06155122015Charlie Sweet
 

Similar to Professional Frontend Engineering (20)

Professional Frontend Engineering
Professional Frontend EngineeringProfessional Frontend Engineering
Professional Frontend Engineering
 
YUI
YUIYUI
YUI
 
Front end engineering, YUI Gallery, and your future
Front end engineering, YUI Gallery, and your futureFront end engineering, YUI Gallery, and your future
Front end engineering, YUI Gallery, and your future
 
Yui3
Yui3Yui3
Yui3
 
YUI Introduction @ NCTU
YUI Introduction @ NCTUYUI Introduction @ NCTU
YUI Introduction @ NCTU
 
The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)The YUI Library (Yahoo! Course @NCU)
The YUI Library (Yahoo! Course @NCU)
 
Extending XForms with Server-Side Functionality
Extending XForms with Server-Side FunctionalityExtending XForms with Server-Side Functionality
Extending XForms with Server-Side Functionality
 
Building Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web AppsBuilding Cross Platform Mobile Web Apps
Building Cross Platform Mobile Web Apps
 
Polysource It Profile
Polysource It ProfilePolysource It Profile
Polysource It Profile
 
Poly Source It Profile
Poly Source It ProfilePoly Source It Profile
Poly Source It Profile
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT Profile
 
Polysource-IT Profile
Polysource-IT ProfilePolysource-IT Profile
Polysource-IT Profile
 
Beyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 AppsBeyond HTML: Tools for Building Web 2.0 Apps
Beyond HTML: Tools for Building Web 2.0 Apps
 
Building cross platform mobile web apps
Building cross platform mobile web appsBuilding cross platform mobile web apps
Building cross platform mobile web apps
 
Silver Light1.0
Silver Light1.0Silver Light1.0
Silver Light1.0
 
Mozilla In Malaysia
Mozilla In MalaysiaMozilla In Malaysia
Mozilla In Malaysia
 
Cross platform mobile web apps
Cross platform mobile web appsCross platform mobile web apps
Cross platform mobile web apps
 
My view on XPages
My view on XPagesMy view on XPages
My view on XPages
 
Java Framework for Database-Centric Web Engineering
Java Framework for Database-Centric Web EngineeringJava Framework for Database-Centric Web Engineering
Java Framework for Database-Centric Web Engineering
 
CharlesSweetResume06155122015
CharlesSweetResume06155122015CharlesSweetResume06155122015
CharlesSweetResume06155122015
 

Recently uploaded

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneUiPathCommunity
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 

Recently uploaded (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
WomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyoneWomenInAutomation2024: AI and Automation for eveyone
WomenInAutomation2024: AI and Automation for eveyone
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 

Professional Frontend Engineering