This article discusses the process of writing a code generator for a systems programming language with a focus on translating a high-level language into x86-64 assembly code. It explains how to represent integer literals, variables, negation, and addition in the compiler and provides code examples for each.
The activity feed team at Postman investigated their DocumentDB usage and was able to reduce the monthly cost from $6k to $3k with 50% performance gains. They optimized their feed collation query, refined their indexing strategy, shifted from TTL-based deletes to direct deletes, and updated their collation strategy to use updates instead of inserts and deletes. These changes led to significant reductions in both read and write I/O operations and a 35% reduction in CPU utilization.
This article explores React Server Components and React Server Actions, clarifying key terms and concepts related to these features and highlighting the experimental and under-documented nature of these APIs. It shows how both can be used to address various challenges in web development, such as data fetching, routing, latency, and more. The article uses an example of migrating a React Notes App to React Server Components without using a framework, showcasing the use of React Canary, React Server & React Flight APIs, and other dependencies.
In large organizations, there is a tendency to focus on technical minutiae and overcomplicate solutions rather than addressing core business problems. There are two types of companies: the ones that prioritize measurable business outcomes but accumulate technical debt, and those that obsess over technical details and tools without considering the business impact. Finding a middle ground where developers can focus on core business logic without unnecessary complexity is essential.
It's crucial to be aware of survivorship bias when seeking advice in the tech industry as individuals tend to believe their path is the only path to success. The job market is constantly changing and what worked in the past may not work today. Your experience will also vary depending on factors like location and educational background.
Sponsored
Google Search Console is great in some ways, but limited in others. [11] Ahrefs is now offering a free tool [11] that lets you identify 140+ SEO issues, get an accurate picture of ALL backlinks [11], see every keyword [11] that’s driving traffic to your site — and how you stack up against competitors.
inshellisense, made by Microsoft, provides IDE-style autocomplete for shells. It's a terminal native runtime for autocomplete which has support for 600+ command line tools. inshellisense supports Windows, Linux, & macOS.
Hotkey allows the triggering of actions on target elements when specific keys or key combinations are pressed on the keyboard. These hotkeys can be scoped to form fields and are extracted from a target element's data-hotkey attribute by default. GitHub uses hotkeys extensively to declare shortcuts on its platform.
A recent experiment showed that GPT-4 is not well-calibrated in predicting the probability of various events and questions, often overestimating or underestimating probabilities. It also shows variations in prediction quality across different categories, with better performance in some areas like sports, and poorer performance in others like personal questions. This suggests that GPT-4's performance variations are not solely due to question difficulty but also reflect differences in its ability to provide confident and well-calibrated predictions across categories.
Web Components that work in any framework consist of three key technologies: Custom Elements, Shadow DOM, and HTML Templates. Custom Elements allow you to define your own custom HTML elements that can be reused across your site and even published for use by other developers. Shadow DOM provides encapsulation, ensuring that the styles and behavior of your custom elements are not affected by global styles. HTML Templates allow you to create reusable templates for rendering content within your web components. While building web components can involve some boilerplate code, there are tools like Lit that simplify the process, making it more streamlined and ergonomic.
Chrome introduced Core Web Vitals (CWV) in 2020 to measure web performance. Today, over 40% of sites pass all of the CWV metrics, resulting in pages that load and respond to interactions more quickly.
API latency refers to the time it takes for a request to travel from the client to the server, get processed on the server, and then return a response back to the client. API response time encompasses the entire time it takes for a client to send a request to an API, the server to process that request, and for the server to send a complete response back to the client.
This article explains how the new CSS math functions work and shows how they can be implemented with example code examples.
A great README needs to explain what the project does, how to use it, and how people can help out.
Discord handles millions of users on its servers by optimizing its system using technologies like BEAM (Erlang Virtual Machine) and Elixir. BEAM's lightweight processes and message-passing capabilities enable high concurrency, while Elixir simplifies Erlang's syntax. Discord optimized its fanout system for updates by using Elixir processes to help manage servers and user clients.
Tailwind CSS is popular due to its low bundle size, high performance, built-in code splitting, and improved readability due to classes being embedded in markup. This article particularly focuses on the color management system in Tailwind CSS and the need for dynamic themes, allowing users to choose interface colors. It explains the challenges of implementing dynamic themes, especially regarding color perception, and introduces the OKLCH color space as a solution. It also outlines steps for integrating dynamic colors with Tailwind CSS, creating semantic classes, and managing user color choices through methods like local storage.
DoorDash streamlined microservices caching by developing a Kotlin library that standardizes caching across multiple microservices. The library enhances performance and resolves caching issues like cache staleness and heavy dependency on Redis. This standardized caching allows teams to focus more on their own business logic and less on the overall performance of the caching.
We tend to think about our careers as being straightforward, following a laid-out path of milestones and achievements. But in reality, a person’s career can take a nonlinear route which might include changing titles or even industries. This article lays out a new way to look at a nonlinear career that can empower people with this background.
Refactoring code in a development team can be explained in economic terms to non-technical managers. To encourage management to allow developers time to refactor a codebase, the article suggests providing answers to questions such as how much longer future projects will take without refactoring, the potential cost savings from refactoring, and what features may become impossible without it. The article also recommends presenting multiple options for refactoring, including "Monster refactoring," "Refactor as you go," and "Slice and dice."
Sponsored
QA Wolf [10] offers a new, cost-effective approach to getting 80% test coverage in just 4 months. They will build and maintain your test suite in Playwright (no more false positives or flaky tests) and provide unlimited parallel test runs [10] on their infrastructure. QA Wolf has case studies of customers saving $200k+/year in QA engineering and infrastructure costs, so it's worth checking them out [10] if you're looking to improve your test coverage.
With the release of Angular v17 approaching, Angular has launched Angular.dev as the new home for Angular development, offering updated tutorials, documentation, and guidance for developers. The site introduces embedded tutorials that enable learning Angular concepts directly in the browser with side-by-side code examples. It has been open-sourced, allowing developers to contribute and learn from the repository.
OpenAI has announced several updates and improvements to its platform, including the launch of GPT-4 Turbo, a more capable and cost-effective model with a 128K context window. They have also introduced the Assistants API, allowing developers to create AI apps with specific goals and capabilities. Other enhancements include better function calling, improved instruction following, JSON mode, and reproducible outputs.
Reactime is a Chrome developer tool available as open-source, designed for time travel debugging and performance monitoring in React applications. With Reactime, developers can capture snapshots of their application's state, navigate between and examine these snapshots, and track performance metrics, including component render time and frequency.
This article delves into the technical challenges and issues faced by the game "Cities: Skylines 2." The game's heavy GPU usage is due to the excessive rendering of unnecessary geometry, which is caused by a lack of simplified LOD variants for many of the game's meshes and an apparently untuned culling implementation. The developers likely initially adopted Unity's new technologies like DOTS but had to implement custom solutions for various aspects of the game due to limitations in Unity's integration and technical challenges.
This article discusses the use of React for building game UIs using Unity. It presents two approaches to using React in Unity: embedding a browser or WebView and a browser-less approach that interprets JavaScript into native game engine UI code. It also outlines a workflow for coordinating interactions between the browser and Unity using state machines.
Each Bluesky user now has their own SQLite file that stores their repo and private account state.
This article goes through popular React UI component libraries, such as Material UI, Ant Design, Chakra UI, Mantine, and more.
A deep dive into using Kubernetes practically.
A comprehensive style guide for naming CSS variables.
A developer attempted to rebuild Tailwind CSS with performance in mind in an effort to improve the performance of Tailwind CSS projects. They optimized the extraction of potential Tailwind class names using regex, reducing extraction time significantly. They also improved the parsing of class names and generated CSS rules efficiently. The new build time improved from 1.4 seconds to just 192ms, an almost 10x improvement.
Stateless services are easier to scale in distributed systems as more and more services can be added as load increases. However, for stateful services, certain techniques must be used for scaling, such as replication to external storage and distributed caching. In both cases, techniques like load balancers and sticky sessions are used to route traffic to the appropriate nodes.
The monorepo architecture is successfully implemented by tech giants like Google and Meta. The approach helps developers to share code, tools, and resources across teams and projects. This article outlines steps to architect a simple monorepo, including organizing the code and adopting a branching strategy like trunk-based development. It suggests minimal requirements for implementing a monorepo and goes through the steps of maintaining one.
A Meta staff engineer shares their career journey, highlighting key experiences and lessons learned along the way. Starting with their Microsoft internship, they emphasize the importance of feedback and learning from code reviews. They then discuss their growth at Meta, from mid-level to senior engineer, focusing on the significance of impact and tackling challenges. The author also talks about their transition to a distributed systems team and dealing with imposter syndrome. Finally, they describe their journey to the Staff Engineer level, which involved mentorship, building empathy, and consistent performance.
Public speaking skills are useful for software engineers in the context of tech presentations and meetings. This author covers key aspects of good public speakers, emphasizing the importance of open body language, avoiding common eye contact mistakes, improving posture, and keeping hands open. They also provide tips for boosting confidence through warm-up techniques, maintaining a dynamic speech rhythm, matching the volume of top speakers, and practicing.
2023.11.06·careercutler.substack.com·10 min read·TLDR Web Dev Sponsored
Calling all developers! Sentry Launch Week [10] is coming. Tune in daily on YouTube for new product announcements and demos, and win credit for our new SWAG store. Got opinions? Share them on Discord to directly to Sentry’s engineering and tech teams. Too busy? Enter your email to get all the demos, blogs, & videos sent directly to you. Go here for details on it all. [10] Sentry Launch Week: Nov 13 to Nov 18, daily 9 am PT.
Nightwind is a Tailwind CSS plugin designed to provide a readily customizable and replaceable dark mode feature. It harnesses the established Tailwind color palette alongside your personalized color choices to instantly produce dark mode variations of the Tailwind color classes you employ. For example, when you apply a class like bg-red-600, Nightwind seamlessly transforms it into bg-red-300 within the dark mode setting.
The "ts-chan" module provides concurrency primitives for TypeScript/JavaScript inspired by Go's channels. It offers installation for Node.js, Deno, and browsers. The module addresses the issue of microtask cycles in JavaScript programs involving concurrent operations. It defines a protocol for implementing channels and includes reference implementations of channels and a Select class.
Vueform is an open-source framework for building forms in Vue.js. It standardizes the entire form-building process and gives you the power to customize styling, layout, and functionality while also taking important things like rendering, validation, and processing. Vueform comes with many form elements, like multi-file uploads and a date picker, along with a complete theming and templating system.
This is a case study of building a high performance JSON parser using Go. The parser supports streaming operations to reduce latency. Furthermore, the parser is compatible with the JSON API provided in the Go language. The parser also offers its own API, which is more efficient than the default JSON API.
Good documentation is clear, reproducible, and doesn't assume the reader's knowledge level. Documenting as you go along, rather than waiting until the end, is recommended because it allows for capturing details and maintaining clarity. Documentation should be modular so that parts can be expanded or skipped as needed. It should be reviewed by peers and ideally by potential users to ensure its comprehensiveness and usability.
Emails and details of Apple’s meeting with Google CEO Sundar Pichai have been released as part of Google’s antitrust case. The two companies have differing views on privacy.
An engineer pushed Next.js to its limits and tested the framework’s performance locally and in production by building a website with 5,000 SSR pages.
Cloudflare had an incident that impacted its network and security services. It goes into detail on why this happened, describing its control plane architecture.
* Ways to improve your engineering team’s performance on each metric * Using tools like Pluralsight Flow [5] to create more frequent and consistent releases, reduce mistakes and testing time, and get updates to end users faster.
Sponsored
The DevOps Research and Assessment Program [5] (DORA) has become a widely accepted benchmark to measure the effectiveness of software development. This new guide by Pluralsight [5] covers:
The Headless Component pattern separates UI presentation from logic and state management. This article demonstrates how to implement a dropdown component using this pattern. It uses a custom hook called useDropdown that centralizes state and logic management, resulting in a cleaner and more maintainable component. This pattern allows developers to better handle a multitude of requirements, such as accessibility, keyboard navigation, async data loading, UI variations, and feature extensions.
This article is a comprehensive deep dive into Next.js and Remix, both React frameworks. It explores and compares many topics, such as how both approach nested layouts, data fetching, and more. For example, Remix utilizes loaders for parallel data retrieval, while Next.js introduces React Server Components (RSCs) to handle server-side rendering and data fetching.
Passkeys are a new method of authentication that replaces traditional passwords. With passkeys, a third-party service provider generates and stores a cryptographic key pair (public and private keys) associated with a website domain. Users can access these keys through the service provider for authentication, eliminating the need to remember passwords. Passkeys rely on signatures generated using private keys to authenticate messages, protecting against threats like database leaks and phishing attacks.