The opinions stated here are my own, not necessarily those of my employer. Over the past few weeks I’ve been thinking about how we can make a framework easier for AI. In particular I’ve been only focused on building user interface. When we add a backend, database, and communication protocol across the backend and the frontend, we get another set of problems that could be a good fit for another post and exploration.
- One of my current projects is converging Angular and Wiz into the same framework. This is a complex projects that involves a lot of work and many people. It also got me thinking about different client-side rendering models. In this blog post I’ll show a very simple library that enables you to develop components with fine-grained reactivity. To make it easier to talk about this library, I called it “revolt.”
- Over the past couple of years, I’ve been the product lead for Angular. In this article, I’d like to share how we’ve been managing the framework. Keep in mind this content lives on my personal blog for a reason - it represents my point of view and doesn’t share a complete picture of all the processes within the team, such as people management, program management, etc. Also, that’s the second time I’m writing this article.
- Over the past few years, I have published most of my posts on blog.angular.dev and my blog has received little attention. Today, I decided to share something that has been on the mind lately. It’s inspired by a mixture of one of the most memorable moments from my university classes and the recent boom of AI. Through the lens of the theory of computation I’ll attempt to answer the question, “Are we going to be replaced by AI?
- In this post, we’re going to focus on web performance. In particular, we’ll be discussing optimizing user experiences preemptively. When it comes down to speeding future actions up in Web UI development, we usually apply prefetching. With prefetching, we download and cache resources relying on assumptions for the user’s behavior. This way, we proactively perform a slow operation that the user would eventually have to execute while interacting with the app.
- This blog post introduces another design pattern into the context of ngrev. If you’re not yet familiar with the project, I’d strongly recommend taking 2 minutes to the introduction and “Project Overview” sections in the first part of the series. If you did not take the time, ngrev is an Electron app that visualizes the structure of an Angular app, showing the relationships between components, modules, and providers. The UI retrieves the data for each view using an instance of a state object.
- I see two common frustrations around design patterns: It’s easy to memorize patterns but hard to figure out where and how to use them OOP is lame, and design patterns suck If the second bullet point resonates with you, this blog post is probably not a good use of your time. Now let’s focus on the first point. It’s not easy to understand design patterns just by reading the gang of four book or dummy examples on Wikipedia.
- Over the past 7 years, I gave over 125+ talks for 20 countries in front of over 50,000+ people. By any means, this doesn’t make me an expert in public speaking, but I had the opportunity to learn a few things that I’d love to share. I’ll spread the content between a couple of different posts covering everything from planning, preparing the talk, rehearsals, and presentation at the event. I’d not discuss research, but this phase will naturally produce artifacts for the planning process.
- Since Angular version 8, we support dynamic imports in loadChildren in the route declaration. In this article, I want to give more information about why dynamic imports could be tricky to handle from tooling perspective and why you should be careful with them. As engineers, we often have the perception that dynamic == good. With statically typed languages, such as TypeScript, this has shifted over the years. Because of compile-time checking, more folks started appreciating what tooling can give us if we provide statically analyzable information at build time.
- I’ve been using Angular for years, not only the framework itself but the entire development platform, including the CLI. Since I joined the Angular team and started digging into the source code, however, I started noticing features in the CLI that I’ve never used before. In this blog post I want to share some of them, which will make your work life easier and more productive! Conditional Polyfill Serving In the development of Angular we’re using TypeScript with a lot of modern JavaScript features.