ASK HN: WHAT IS THE MOST USELESS PROJECT YOU HAVE WORKED ON? (HACKER NEWS THREAD)
Many engineers have worked on internal systems and tools that have cost years of time and millions of dollars, just for those systems to never be used.
Full-text search across article titles and summaries. Refine with sector, year, content type, and reading-time filters.
Many engineers have worked on internal systems and tools that have cost years of time and millions of dollars, just for those systems to never be used.
A list of books covering team building, management styles, and career growth.
Faces.js is a JavaScript library for generating and displaying customizable cartoon faces using SVGs.
The JavaScript Signals proposal is about creating a standard way for JavaScript programs to automatically update when data changes, making it easier for different tools and frameworks to work together.
HiveKit, a company focused on tracking vehicles and people, faced a scaling problem where storing billions of location updates per month became prohibitively expensive with conventional databases. To overcome this, the company built a custom database specialized for its write-heavy load. It also optimized storage by storing delta updates instead of full state for each update. These changes, combined with moving from AWS Aurora to EBS, reduced the company's cloud storage costs by 98%.
GitHub Copilot analyzes code in your editor to understand what you’re working on and then sends gathered context to a backend service that sanitizes the input by removing harmful content and irrelevant prompts. The cleaned prompt is run through OpenAI’s ChatGPT API and then a final suggestion is presented in your editor.
Netflix's Graph Search has improved to include reverse search functionality, enabling precise notifications and dynamic updates for users. By using Elasticsearch and CockroachDB, Netflix efficiently handles SavedSearches, improving performance. The system's flexibility also allows for expanding reverse search to other teams and exploring responsive UIs through subscriptions.
This essay from a software engineer gives a wide range of advice on life topics, covering personal growth, choosing the right things, and happiness. Generally, the author believes that effort matters more than inherent talent and confidence stems from action. Engineers should try to “be the plumber” by being someone who is trusted to solve tough, crappy problems.
After transitioning from an Individual Contributor to an Engineering Manager role at LeanIX, this author found that management didn't align with their passion for coding. Despite their tough journey, they want to encourage everyone who is willing to try out management to do the step and not feel bad if they figure out it is not how they intend to work.
Adopting a storytelling approach to code reviews has greatly improved the process for the company Doppler. By focusing on clear commit narratives (using comments, commit messages, and PR comments), it has made reviews easier to understand and better organized.
Describe UI components in natural language and then see them rendered live as AI codes them to your specifications.
Plandex automates complex tasks by breaking them into smaller subtasks and executing them sequentially using AI. It’s useful for developers who want to get through boring coding tasks.
Babylon.js 7.0 has new features like procedural geometry and support for global illumination and Gaussian splat rendering, alongside enhanced WebXR features and Apple Vision Pro support. The new version also brings advanced animation system upgrades.
Experts Exchange came before Stack Overflow and had a paywall model. Jeff Atwood and Joel Spolsky created Stack Overflow as a free, open-source Q&A platform for developers that was a big improvement over Experts Exchange. Stack Overflow has its own share of challenges with the rise of ChatGPT and the battle with ever-changing technologies.
European and UK competition authorities are investigating in-app browsers, driven by claims they bypass user-selected default browsers, compromising privacy and user choice. These internal browsers are under scrutiny for potentially collecting data without clear user consent. The issue emphasizes the challenge of balancing tech innovation with safeguarding user preferences and security.
FizzBee is a formal specification language and model checker for distributed systems.
A fun quiz designed to explore the capabilities of GPT-4 and other LLMs.
The best early hires are identified through their passion, existing work, and willingness to learn.
A directory of self-hosted software.
The MMO Palia has a complex architecture, using Unreal Engine for its game engine and a microservice approach with services for specific player features. The game uses ScyllaDB (column store) for its main database along with PostgreSQL for specific use cases where a relational model is necessary. This article goes into deep detail about the architecture of the MMO and the reasoning behind each decision.
Netflix heavily uses Java for its backend apps. It started with a microservice architecture that evolved over time to incorporate new technologies. Initially, the company employed Groovy scripts and reactive programming for tailored API responses. It has since migrated to GraphQL Federation for a unified API, removing the need for custom backend layers. Netflix uses recent Java versions for performance gains and actively uses Spring Boot.
When we build layouts in CSS, we always wanted a way to change a specific UI based on the width of its container, not the viewport. CSS container queries help us to write truly fluid components that change based on their container size. This is a deep-dive tutorial into container queries.
GitHub Copilot is more effective if you provide it with more context. This means giving Copilot full visibility into projects, adding top-level comments, having meaningful names, and providing example code. Devs should also take advantage of Copilot’s built-in features, such as its inline chat.
Text expanders are a smarter alternative to learning to type faster. You define short abbreviations for frequently used text and the tool automatically expands them as you type. This saves time and lets you “type faster” without actually increasing your typing speed.
Developers shouldn’t let ego get in the way of asking for help. Asking for help shows a commitment to success, both for themselves and the product. Furthermore, getting stuck shows that there’s something to learn. Experienced teammates can offer valuable insights and techniques beyond just solving the immediate problem.
LLocalSearch is a locally-running meta search engine that uses LLM Agents. Users can ask it questions and the system will use a chain of LLMs to find the answer. Users can see the progress of the agents and the final answer.
Fx is a terminal JSON viewer and processor.
Borp is a test runner optimized for Node.js with built-in TypeScript support and code coverage capabilities via c8.
This article discusses how and why pair programming is so effective, how you can treat your AI assistant as a paired programmer, and the best ways to make this pairing work (as well as the methods that don’t). A good working paradigm is for the AI to focus on the syntax and implementation, while the human focuses on the big picture and provides instant code review. This can reduce the feedback window between code and code review to minutes, allowing you to iterate and elaborate on ideas without futzing about with semicolons and type definitions.
The Generative AI bubble might be unsustainable. Despite significant advancements in the space, there are still core issues like hallucinations and security risks, and revenue generation remains disproportionately low. If no groundbreaking solution emerges to address these problems and justify the high costs by the end of 2024, the bubble may begin to burst.
Jpegli is a new JPEG coding library by Google that can compress high-quality images 35% more than traditional JPEG codecs.
A research report by Microsoft about what makes a great software engineer.
A funny classification of programming languages as P-languages (scripting), C-languages (prone to undefined behavior), J-languages (object-oriented focus), and others.
Intl.Segmenter, a native way to split strings into words, sentences, and even graphemes, will reach cross-browser support with Firefox 125 (out on April 16).
This blog post shows how to use promises in JavaScript to enable non-blocking async tasks. It breaks down the process from start to finish. Promises can trigger an asynchronous action if a handler is attached by either then or catch. Since the handlers are pushed to the Microtask Queue, you can handle the eventual result in a non-blocking way. This makes it easier to handle errors, chain multiple operations together, and keep your code more readable.
The debate between using threads and async/await in Rust revolves around simplicity, performance, and composability. While threads may offer familiarity and straightforwardness, async/await is better in I/O-bound scenarios due to its composable code.
Fear leads to overly cautious behavior and can hinder important code or system changes. Tools and team processes like version control, testing, and blameless postmortems can help mitigate fear. Programmers should feel comfortable making changes without the fear of breaking things or facing punishment. While some fears may be irrational, overcoming them through positive experiences can build confidence and improve software development.
Syntax highlighting today uses color to distinguish code elements, but this doesn’t fully utilize the power of color to convey information. We could use dynamic color highlighting overlays to communicate things like scope, imports, argument flow, types, or even metadata about test failures.
a16z blog posts are subtle marketing for its portfolio companies rather than offering impartial overviews of technology landscapes. This author notes how an a16z post on LLM architectures omitted competing open-source vector database solutions in favor of one it funded. This pattern extends to other a16z publications and even its voting practices with crypto companies.
Bun 1.1 is a major update that brings Windows Support, better Node.js compatibility, more APIs, faster performance, and more.
Creo helps developers to rapidly build internal tools by providing an AI-powered solution. Developers describe what they want and it handles the UI, authorization, approvals, auditing, and deployment, generating React code that is customizable.
Princeton has released a SWE agent that uses LLMs to fix bugs and issues in real GitHub repositories.
Researchers found that AI bots often invent fake software packages when asked for coding help. This is a security risk as a bad actor could create malware with the same invented package name, then trick developers relying on the AI's generated code into downloading and installing it.
This article shares a tech co-founder's struggle with anxiety and burnout, which stemmed from the intense work environment in the startup world. Neglecting mental health can take a heavy toll. To manage his anxiety better, the author set boundaries and prioritized self-care.
Duolingo's VP of Engineering Sean Colombo shares five crucial growth lessons learned over five years that resulted in 6x growth in DAU. Colombo provides a handful of insights into Duolingo's sustained growth in product development and user engagement by highlighting the importance of urgency, strategic advantage identification, and prudent notification management. Duolingo continues to thrive in the competitive market by experimenting smartly and focusing on users.
PostgreSQL would be easier to develop with if it had versioned schema, better online schema migrations, and declarative state-based migrations.
This case study explains the impact of inlining CSS on a website's loading times and traffic.
A detailed timeline of the xz open source attack from October 2021 to March 2024.
Floro is a visual version control system for managing static assets and i18n strings.
A comprehensive guide to SSDs, inside and out.