Addy Osmani | |
---|---|
Born | March 1986 |
Nationality | Irish |
Alma mater | Sheffield Hallam University, University of Warwick |
Occupation | Software Engineer |
Known for | Head of Google Chrome’s Web Developer Insights division |
Notable work | Google Lighthouse, Google PageSpeed Tools, Yeoman |
Website | addyosmani |
Addy Osmani (born March 1986) is an Irish web performance expert, author and speaker who works for Google as an Engineering Manager. [1] He is currently leading developer tooling for Google Chrome, Google's web browser. [2] [3] [4]
Osmani has written books on Image Compression and JavaScript Design Patterns for O'Reilly [5] and Smashing Magazine, [6] released several open source projects and given over 110 talks around the world, including keynotes at Google I/O. [7] [8] [9] He has written articles for several magazines in the web development industry, including Net [10] and Smashing Magazine. [11]
Before joining Google, Addy was at AOL (America Online), driving UI engineering on advertising systems and web developer tools. Prior to AOL, he worked at image and video search company Pixsta. His earliest contributions to open-source were to projects like jQuery. [12] [13] [14]
Addy joined Google in 2012, and is currently the head of Google Chrome's Web Developer Insights division, overseeing web development tools such as Google Lighthouse, Google PageSpeed Tools and the Chrome Headless browser. While at Google, he led a number of web performance initiatives to improve how quickly the web browser loads. Addy designed and implemented several of the company's open-source web developer tooling projects. At various times, [15] he has also worked on search initiatives, such as user-experience signals for ranking (Core Web Vitals, [16] page experience), [17] and various software development tools aimed at improving user-experience on the web. [18] [19] [20]
He has contributed to a large range of efforts to improve how well Google Chrome loads web pages, including native [21] [22] [23] [24] and automatic lazy-loading, [25] and recently celebrated 10 years of speed efforts in the Google Chrome browser. [26] Addy led Google's developer tooling efforts to support measuring signals that are part of search's page experience criteria. [27] [28] [29]
In 2019, Osmani announced that Chrome had collaborated with Google Fonts to give developers more control over how web typography loads, to improve performance. [30] [31] [32] [33]
Osmani has a history of working with websites to help improve their User experience, such as Pinterest, [34] Tinder, [35] Netflix [36] and eBay. [37]
Osmani created TodoMVC [38] in 2011, which went on to popularize Todo applications being a canonical learning example in computer science. [39] [40] [41] As of January 2021 the project has over 27,000 stars on GitHub. [42] [43]
TodoMVC went on to form the basis of the WebKit browser speed test Speedometer in 2013, [44] used by Google Chrome, Safari, Edge and Firefox. Addy consulted on Speedometer 1.0 and led the rewrite for Speedometer 2.0 in collaboration with WebKit and other Google Chrome engineers in 2018. [45]
Osmani was one of the Google engineers that created Yeoman (software) - a scaffolding tool for modern web applications written with Node.js. It offered web developers a Command-line interface for generating templates and configuration for websites and web applications. At the high of its popularity, Yeoman had over 9,400 [46] template generators for libraries like React.js and AngularJS.
He has been involved in creating a number of follow-up scaffolding tools for JavaScript developers over the years, including Google's Web Starter Kit [47] and Polymer Starter Kit. [48] In 2016, Osmani worked with webpack to add support for web performance budgets. [49] In 2017, Osmani worked [50] with the teams in React.js, Vue.js and AngularJS to add support for Progressive Web Apps to their respective Command-line interface tools.
In 2015, Osmani announced the Material Design Lite (MDL) CSS and JavaScript library. [51] [52] [53] [54] The library aimed to enable adding Material Design styling to websites in a framework-agnostic way. It was a compliment to the Polymer (library), also by Google, which offered a Material Design component system focused on web applications. At the height of its popularity, Material Design Lite had 31,700 GitHub stars. It was superseded by the Material Components for the Web (MDC) project. [55]
In 2018, Osmani created the Quicklink [56] JavaScript library for automatically prefetching links a user may need on a web page for subsequent navigations. The library used a number of heuristics to detect if the links were visible within the screen viewport and only prefetched links if the user was on a fast internet connection. The library went on to be used by sites such as Syfy.
He has a history of contributions to JavaScript tooling, including co-creating the Universal Module Definition pattern, a variant of AMD.
Addy has authored a number of software engineering books during his career. These include,
He has been a contributing author to a number of Smashing Magazine books including "The Smashing Book, No. 4: New Perspectives on Web Design". From 2010 to 2020, Addy authored a number of primary features on web development for web.dev [63] and .net magazine. In 2020, he was interviewed for the book "14 Habits Of Highly Productive Developers". [64]
In 2014, Osmani received the O’Reilly Web Platform Award [65] [66]
In 2020, Osmani's React.js Adaptive Hooks [67] project won an Open Source Award as part of the Most Exciting Use of Technology category. [67]
Google Web Toolkit, or GWT Web Toolkit, is an open-source set of tools that allows web developers to create and maintain JavaScript front-end applications in Java. Other than a few native libraries, everything is Java source that can be built on any supported platform with the included GWT Ant build files. It is licensed under the Apache License 2.0.
Web development tools allow web developers to test and debug their code. They are different from website builders and integrated development environments (IDEs) in that they do not assist in the direct creation of a webpage, rather they are tools used for testing the user interface of a website or web application.
V8 is an open-source JavaScript engine developed by The Chromium Project for Google Chrome and Chromium web browsers. The project’s creator is Lars Bak. The first version of the V8 engine was released at the same time as the first version of Chrome: 2 September 2008. It has also been used on the server side, for example in Couchbase, and Node.js.
Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser. Node.js lets developers use JavaScript to write command line tools and for server-side scripting—running scripts server-side to produce dynamic web page content before the page is sent to the user's web browser. Consequently, Node.js represents a "JavaScript everywhere" paradigm, unifying web-application development around a single programming language, rather than different languages for server-side and client-side scripts.
A browser speed test is a computer benchmark that scores the performance of a web browser, by measuring the browser's efficiency in completing a predefined list of tasks. In general the testing software is available online, located on a website, where different algorithms are loaded and performed in the browser client. Typical test tasks are rendering and animation, DOM transformations, string operations, mathematical calculations, sorting algorithms, graphic performance tests and memory instructions. Browser speed tests have been used during browser wars to prove superiority of specific web browsers. The popular Acid3 test is no particular speed test but checks browser conformity to web standards.
Dart is a programming language designed for client development, such as for the web and mobile apps. It is developed by Google and can also be used to build server and desktop applications.
Content Security Policy (CSP) is a computer security standard introduced to prevent cross-site scripting (XSS), clickjacking and other code injection attacks resulting from execution of malicious content in the trusted web page context. It is a Candidate Recommendation of the W3C working group on Web Application Security, widely supported by modern web browsers. CSP provides a standard method for website owners to declare approved origins of content that browsers should be allowed to load on that website—covered types are JavaScript, CSS, HTML frames, web workers, fonts, images, embeddable objects such as Java applets, ActiveX, audio and video files, and other HTML5 features.
Three.js is a cross-browser JavaScript library and application programming interface (API) used to create and display animated 3D computer graphics in a web browser using WebGL. The source code is hosted in a repository on GitHub.
PDF.js or pdf.js is a JavaScript library that renders Portable Document Format (PDF) files using the web standards-compliant HTML5 Canvas. The project is led by the Mozilla Foundation after Andreas Gal launched it in 2011.
Yeoman is an open source client-side scaffolding tool for web applications. Yeoman runs as a command-line interface written for Node.js and combines several functions into one place, such as generating a starter template, managing dependencies, running unit tests, providing a local development server, and optimizing production code for deployment.
Asynchronous module definition (AMD) is a specification for the programming language JavaScript. It defines an application programming interface (API) that defines code modules and their dependencies, and loads them asynchronously if desired. Implementations of AMD provide the following benefits:
asm.js is a subset of JavaScript designed to allow computer software written in languages such as C to be run as web applications while maintaining performance characteristics considerably better than standard JavaScript, which is the typical language used for such applications.
Ember.js is an open-source JavaScript web framework, utilizing a component-service pattern. It allows developers to create scalable single-page web applications by incorporating common idioms, best practices, and patterns from other single-page-app ecosystem patterns into the framework.
A headless browser is a web browser without a graphical user interface.
PhantomJS is a discontinued headless browser used for automating web page interaction. PhantomJS provides a JavaScript API enabling automated navigation, screenshots, user behavior and assertions making it a common tool used to run browser-based unit tests in a headless system like a continuous integration environment. PhantomJS is based on WebKit making it a similar browsing environment to Safari and Google Chrome. It is open-source software released under the BSD License.
WebAssembly is an open standard that defines a portable binary-code format for executable programs, and a corresponding textual assembly language, as well as interfaces for facilitating interactions between such programs and their host environment. The main goal of WebAssembly is to enable high-performance applications on web pages, but the format is designed to be executed and integrated in other environments as well, including standalone ones.
ContentTools is an open-source WYSIWYG editor for HTML content written in JavaScript/CoffeeScript by Anthony Blackshaw of Getme Limited.
A progressive web application (PWA) is a type of application software delivered through the web, built using common web technologies including HTML, CSS and JavaScript. It is intended to work on any platform that uses a standards-compliant browser, including both desktop and mobile devices.
Angular is a TypeScript-based open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS.
Next.js is an open-source React front-end development web framework created by Vercel that enables functionality such as server-side rendering and generating static websites for React based web applications. It is a production-ready framework that allows developers to quickly create static and dynamic JAMstack websites and is used widely by many large companies. Next.js is one of several recommended "toolchains" available when starting a new React app, all of which provide a layer of abstraction to aid in common tasks. Traditional React apps render all their content in the client-side browser, Next.js is used to extend this functionality to include applications rendered on the server side. The copyright and trademarks for Next.js are owned by Vercel. On July 27, 2020 Next.js version 9.5 was announced, adding new capabilities including incremental static regeneration, rewrites, and redirect support.