When managing long-term projects with large teams, engineers should prioritize hard problems and continually reassess them. They need to anticipate hidden work that may arise during the project, address attrition through redundancy, stage the value by setting intermediate milestones, adapt to changing constraints, maintain project confidence and perception, and avoid making exact completion time commitments.
2023.12.15·newsletter.techleadmentor.com·6 min read·TLDR Web Dev How can you tell when you’re ready for the next level as a software engineer? What can you do when you feel stuck at your current level? This post covers the responsibilities of junior-level to staff-level engineers in tech companies and gives 3 tips on how to advance to the next level. The tips include operating at the next level ahead of time, managing up, and spending more time with higher-level engineers.
2023.12.15·levelupsoftwareengineering.substack.com·8 min read·TLDR Web Dev AutoAnimate is an animation tool that seamlessly enhances transitions within your web application without requiring any configuration. It can be integrated into various JavaScript applications, such as Vue, React, Solid, and more.
React Responsive Pagination is a React pagination component designed for accessibility and responsiveness. It includes built-in support for Bootstrap 4 and 5, as well as ready-styled themes or the option to use custom CSS. Additionally, it's optimized for tree-shaking to minimize its impact on the bundle size.
This article discusses an IBM Mainframe COBOL programmer who has worked for one of the largest banks in the EU since 1991. This role is crucial for the bank's operations, and the author highlights the challenges faced by programmers dealing with legacy systems like COBOL and the vast amounts of data that banks must manage. The programmer found her work to be both challenging and rewarding, but she sees the need for modernization in the banking industry.
A developer recently deleted over 50,000 lines of code, approximately 70% of their frontend codebase, and surprisingly, this massive code removal didn't break the application and led to a significant simplification, making the platform feel lighter and more user-friendly. By carefully removing rarely used modules, screens, buttons, and features, they simplified the application, improved performance, and streamlined development.
Commenters share tips for building AI/ML skills, such as building small projects like a baby neural network.
Latin script is based on upper case and designed around that, so it’s the default. Lower case was added on later to support cursive.
2023.12.15·retrocomputing.stackexchange.com·4 min read·TLDR Web Dev An interactive visualization showing GitHub language stats. Python is the most used language in pull requests, with Java and Golang coming in second and third.
Slack’s CPO shares his hot take on two popular pieces of product strategy: experimentation and quality decision-making. In this article, he walks through the three-step process he uses to operationalize quality decision-making, which boils down to sharing context, building trust, and factoring in risk.
Sponsored
API development just got a power boost with the latest features added to the Postman VS Code extension: 🏃 Collection Runner [7]: Test API functionality by running a collection’s requests in a specified sequence and logging the results. Use scripts to pass data between requests and alter the workflow.
This article discusses multiple types of databases, such as relational (SQL), NoSQL, NewSQL, and vector databases. It explains the key features, use cases, and downsides of each type. Relational databases store structured data, ensuring data integrity but can be complex and expensive. NoSQL databases handle unstructured data and offer flexibility but may lack data consistency. NewSQL databases combine scalability and ACID compliance for high-transaction systems. Vector databases are specialized for usage in machine learning.
Shadcn/ui is a JavaScript UI library that provides components through a CLI that inserts their source code directly into your project instead of relying on npm packages. Shadcn/ui's architecture separates components into two layers: structure and behavior, and style. It follows principles like the Single Responsibility Principle and Dependency Inversion Principle and offers utility functions for managing class names to ensure consistent and reusable components. It empowers web developers to build their own design systems with customizable defaults.
This post offers 3 full chapters and some details on the background of the book “Tidy First?” by Kent Beck, the creator of test-driven development. The three chapters are focused on three parts: Tidyings (focused on what to do), Managing (focused on how to do it), and Theory (focused on why to do it). The article also mentions the importance of deleting dead code, managing the tangled relationship between tidying and changing code behavior, and explores the trade-off between coupling and decoupling in software design.
Writing is an extremely valuable skill to master for software engineers, even beyond writing code. Writing emails, documentation, code reviews, and more are all part of our daily jobs. This article highlights 7 questions that can help you write anything well. It includes questions like “What am I trying to achieve?” and “Who am I writing for?”.
Sponsored
Stay in the loop with the latest innovations as we unravel the cloud transformation journeys of companies across various industries 🚀 From Generative AI Applications, to Mapping 3D Spaces via AWS Digital Twin, Low-Latency Infrared Video Streaming, and many more 💡
Million was a landmark release in the web dev world with a fast, lightweight virtual DOM that makes React up to 70x faster. Version 3 now has a faster build and run time.
PageSpy is a remote debugging tool for web projects that lets you filter and transform the parameters of native methods when called and convert the results into messages. These messages are displayed with a specific format and UI that is easy to read and consume, making debugging easier and less tedious.
LobeChat is an open-source, high-performance chatbot framework that supports speech synthesis, multimodality, and the extensible Function Call plugin system. It also supports one-click free deployment of your private ChatGPT web application(s).
This article covers what goes on behind the scenes in the Python runtime when simple “a + b” functions are implemented. It discusses the implementation details behind types operators and dynamic dispatch in Python, with useful diagrams that provide visual explanations.
2023.12.14·codeconfessions.substack.com·10 min read·TLDR Web Dev Git reflog is a Git command made specifically for navigating the entire history of your Git repo. It’s useful for identifying and fixing any errors in your codebase. This article describes exactly how git reflog works and how you can use it to keep your Git history tidy.
10 important truths about software engineering, such as the fact that meetings are to be expected, estimates are always asked for, and bugs can never be completely cleared.
In 2007, Google and Apple negotiated their terms for Google Search to be the default search engine on Safari.
Learn Performance is a new, free course that covers the vital components of web performance.
Sponsored
API development just got a power boost with the latest features added to the Postman VS Code extension: 🏃 Collection Runner [7]: Test API functionality by running a collection’s requests in a specified sequence and logging the results. Use scripts to pass data between requests and alter the workflow.
Knock’s team successfully upgraded from PostgreSQL 11.9 to 15.3 with zero downtime using logical replication and various tools. They were able to de-risk the upgrade process by monitoring it closely and having carefully planned processes in place. This article explains different options for upgrading PostgreSQL, including in-place upgrades (not suitable for zero downtime), and replication-based upgrades, which is what they chose. A replication-based upgrade involves setting up publications and subscriptions, adding tables incrementally, and carefully configuring source and destination databases.
GitHub gives you the capability to build a profile README, a Markdown file that lives on your profile that can be used as a quick portfolio to highlight achievements. This article covers how you can take your profile README to the next level with scripting and CI/CR automation. It shows you how to do this using a custom script built with Node.js, the markdown-it library, the GitHub API, RSS Feeds, and GitHub Actions.
Creating and maintaining a design system is challenging but necessary for a great user experience. This article discusses considerations for responsive design within component libraries and suggests structuring components based on the design and development team's specific needs and platforms. The author provides practical insights and recommendations for structuring design systems within design tools like Figma.
Good technical debt, as opposed to bad technical debt, is intentional, provides initial benefits, and is controlled through tripwires to prevent excessive interest. Teams often struggle to articulate the business value of repaying technical debt, leading to the misconception that a total system rewrite is the only solution. A simpler approach is proposed: identify hindrances to progress, capture them on sticky notes with dates, and add dots each time they recur.
With the results of a survey taken by 10,000 desk workers, Slack’s Workforce Index uncovers some interesting key learnings about workday productivity. The survey found that employees who step away from their computers at the end of the workday register a 20% increase in productivity compared to those who work after hours. Only 25% of workers feel productive in the afternoon and workers who regularly take breaks have 13% higher productivity.
macOSpilot is an AI assistant that can answer your questions about anything, in any application without having to reach for a new window. A keyboard shortcut activates the assistant, to which you say your question aloud. The assistant will give the answer in text and audio as a response.
An online tool that checks package registries to see if a name is used by another project in various package managers.
DoorDash built a personalized shopping experience for its new business vertical stores using machine learning. Its recommendation framework has three main categories of collections: operator-generated, rules-based personalized, and ML-based personalized. The framework includes components like collection generation, collection retrieval, horizontal item ranking, item post-processing, collection ranking, and collection post-processing to offer personalized recommendations effectively.
GitHub is used by 85% of developers and serves nearly 400 million repositories with a guaranteed uptime of 99.9%. GitHub supports 30 billion messages per day and therefore, increasing productivity within the company increases overall productivity for a vast majority of software developers. This article takes a look at the work done by Akshaya Aradhya, senior director of engineering at GitHub, and how she helps her team increase their productivity across the company.
pnpm is faster than other package managers and offers great features like workspace support, patching dependencies, and much more.
Challenges to test your distributed systems knowledge.
An older but excellent read on why clean code is not always ideal.
A dive into Stripe’s engineering culture.
2023.12.13·newsletter.pragmaticengineer.com·11 min read·TLDR Web Dev Sponsored
2023.12.12·marketplace.visualstudio.com·Sponsor·TLDR Web Dev This article discusses the need to capture tablet screen gestures and transmit them to a browser for local actions. To do these actions, the author initially considered using WebSockets for message exchange due to their suitability for handling streams of messages. However, WebSockets were hard to test and debug, so the author eventually moved towards developing with HTTP streaming. HTTP streaming is a method that Airbnb uses to improve its web performance too.
The HTML input element can be assigned 1 of 22 attributes, all of which have different behaviors and purposes. This article covers some of the lesser-known input attributes like inputmode, capture, and more. It describes when and why you should use each of them for the best user experience.
While AI can generate code, it often produces mediocre results and its reliability varies. For no-code entrepreneurs, AI can be enticing but may hide underlying issues. Junior developers may benefit from AI tools by learning and improving their skills. Senior engineers can use AI to speed up coding tasks but should not sacrifice code quality for velocity. Each type of programmer is given tips throughout the article to utilize AI effectively as a tool.
This article proposes the idea of using custom attributes, such as "message," to extend the behavior of HTML elements like buttons. By adding custom attributes to HTML elements, you can define their behavior and functionality directly in the HTML markup, making the code more readable and maintainable.
2023.12.12·unplannedobsolescence.com·11 min read·TLDR Web Dev Templ is a way to convert Go into HTML UI.
BricksLLM is a cloud-native AI gateway written in Go. It lets developers create OpenAI API keys that have rate limits, cost limits, and TTLs. These API keys can be used in both production and development since they have fine-grained access control.
This article introduces a three-part framework for understanding and explaining generative LLMs. The first part covers decoder-only transformer architecture, a deep neural network architecture used for language tasks. The second part covers language model pretraining, where these models are pretrained on large textual datasets using self-supervised learning. The last part is the alignment process, which makes LLMs more useful and aligned with human intent through supervised finetuning (SFT) and reinforcement learning from human feedback (RLHF).
The concept of undo and redo operations in text editors needs innovation in how they work. Using a graph-based data structure to store undo/redo information allows for a more flexible and intuitive way to navigate and visualize the editing history. Incorporating diffing will show the changes between different editing states, making it easier for users to understand the impact of undo/redo actions.