GitHub revamped its code push handling system by transitioning from a single monolithic job to a decoupled architecture using Apache Kafka. This change involved breaking down the original large job into smaller, independent tasks based on dependencies and ownership. They improved reliability by enabling targeted retries and reduced latency by allowing parallel processing.
Good code should prioritize ease of use over readability. It should be intuitive and self-explanatory and shouldn't require much reading to understand its purpose and functionality.
This author believes that generative AI will increase demand for software engineers. He compares it to autopilot systems on airplanes which made piloting more accessible and grew the aviation industry, leading to increased demand and higher salaries for pilots. While the specific skillset required for software engineers might change due to generative AI, general skills like communication, problem-solving, and creativity will remain and be even more important.
The textbook, Structure and Interpretation of Computer Programs (SICP), revolutionized introductory computer science education by focusing on big-picture ideas like abstraction and functions as data, rather than just programming language details. It chose Scheme as the teaching language, which allowed students to grasp concepts without getting bogged down in syntax. SICP set a high bar for student expectations, challenging them with complex tasks like building interpreters. The SICP course has been very popular at UC Berkeley and has served well in educating computer science students that do well in industry and graduate school.
HTMD is an HTML to Markdown converter for Rust. It is fast and has minimal dependencies and a range of options.
JsonTree.js is a lightweight JavaScript library that generates customizable tree views to better visualize JSON data.
DGM.js is an infinite canvas with smart shapes. It supports smart shapes, headless components (React), multi-page support, hand-drawn styles, real-time collaboration, and various import options.
Perplexity AI claims to use a user agent called PerplexityBot, but it actually uses a generic Chrome user agent. It is likely doing this to scrape content from websites that disallow scraping in their robots.txt files.
PostgreSQL with the pgvector extension offers an efficient way to store and query embeddings. It offers simplified querying, data consistency, and better performance compared to using separate databases for relational and vector data.
This post breaks down the setup for a one-person SaaS tech startup, from load balancing to cron job monitoring to payments and subscriptions. The author uses a Kubernetes cluster on AWS, Cloudflare for load balancing and caching, ingress-nginx for routing traffic within the cluster, Flux for automatic deployments, and RDS for database management.
This developer reverse engineered a restaurant pager system by analyzing the radio signals and packet structure and was able to successfully ring pagers with a quick modulator.
A single binary, single command SQLite database explorer.
A CTO could sabotage a company through technology, product, leadership, hiring, and project management decisions, resulting in decreased productivity and ultimately harming the company.
Vue Founder Evan You talks about Vue.js's history, what's new in Vue.js 3, and what's next for it.
Sponsored
Frontend issues that affect your users are often triggered by slow database queries, the dreaded server-side request waterfall, or other backend problems.
P.S. Submit your questions early [4] to have them answered live during the session!
Stripe's internal database as a service, DocDB, is built on MongoDB and designed for scalability and reliability. DocDB uses a proxy server to handle read/write requests, a central Chunk Metadata Service to track data chunk locations, and a Data Movement Platform for easy data migration between shards.
Async programming can make Ruby on Rails apps faster by delaying non-essential tasks and parallelizing I/O-bound operations. This can be achieved using methods like `deliver_later` for emails, `load_async` for database queries, and `dependent: :destroy_async` for dependent associations. However, while async can speed up apps, it can also add complexity, so it's better to address basic performance issues first and use async judiciously.
Python Notebooks promote bad coding habits like neglecting testing and linting due to their ease of use and impermanence. They also worsen personal productivity by causing distractions and creating inconsistencies between the notebook environment and production. While they seem fast to iterate on, they slow down team collaboration by making it difficult to track changes, maintain awareness of ongoing work, and share useful code snippets.
The Pragmatic Engineer's survey of GenZ software engineers revealed that despite generational labels, young software engineers share common traits with older ones, particularly in valuing supportive and accommodating work environments. GenZ respondents are described as energetic, ambitious, and adept communicators who are ready to make a significant impact in the tech industry.
Microsoft's Python in Excel is designed as an alternative to Excel's formula language, not VBA, and integrates Jupyter Notebook cells into the grid. It is not ideal for beginners due to its non-interactive data analysis and challenging diagnostics pane. However, it's still pretty useful for computationally intensive tasks, AI applications, advanced visualizations, and time-series analysis.
Sponsored
In this online talk by Confluent and SAP, you'll learn how to keep every system that relies on SAP data in sync with the latest and greatest real-time data. The session includes a demo of using SAP Datasphere and Confluent's Kora Engine [11] to build real-time
A simple checklist of the essential items to include in your bug reports. This includes a title, steps to reproduce, visual proof, expected vs actual results, log statements if applicable, and environment details.
Quartz is a set of tools that helps you publish your digital garden and notes as a website for free.
Codemod provides tools to migrate code quickly. It is partnering with the React team to build and maintain the `react-codemod` repo, which offers open-source codemods to make React-related migrations fast.
Provable software systems guarantee the correct functioning of software by using mathematical logic and proofs. This approach can help to catch bugs and vulnerabilities early on, making systems more reliable and secure. Simple systems that are more provable include an IoT light bulb and a Lego garage with a cryptographic library.
Private group chats have become the hub for interesting tech discussions due to the cultural shifts and the rise of online communities. The success of these group chats depends on a strong leader, active members who inject new ideas, and the existence of smaller side chats for private conversations. Groups should be diverse and sizes should be limited, while inactive members should be pruned to maintain the quality of discussions.
Unstructured data like README files, code comments, and issue descriptions are hard to analyze but hold valuable insights. Retrieval-augmented generation (RAG) uses additional data sources like vector databases or search engines to improve the quality and relevance of outputs from large language models. RAG can help surface organizational best practices and uncover user pain points from unstructured data by providing contextually relevant responses to developers' questions to improve their productivity.
Development on Firefox is now moving to Git for version control.
Swift's type checker can be slow due to the way it infers types, especially in complex expressions with multiple possible combinations, leading to exponentially increasing compilation times.
Google Chrome's engine has adopted SIMD parsing of HTML to quickly jump to specific characters.
JetBrains has released security updates for all IntelliJ-based IDEs and the GitHub plugin to fix a vulnerability that potentially exposed access tokens to third-party sites.
Sponsored
Developers want to automate as much busywork as possible, but Jira doesn't always make it easy.
Meta is facing challenges in training large language models due to the amount of computational power required. This has led to the company rethinking its infrastructure in terms of hardware reliability, failure recovery, efficient training state preservation, and optimal GPU connectivity. Meta is innovating across the infrastructure stack by developing new training software and scheduling algorithms, modifying hardware like the Grand Teton platform, optimizing data center deployments, and exploring new fabrics for network infra.
Perfect Lighthouse scores do not guarantee flawless website performance as the tool can be manipulated to yield artificially high results. For example, you can show the smallest amount of LCP-qualifying content on load to boost the FCP and LCP scores until the Lighthouse test has likely finished. Figuring out what the user experience is actually like needs a holistic overview of real-world performance, user field data, and more.
Memoization in JavaScript involves storing the results of expensive function calls to improve efficiency. You can use global variables or granular factory functions for basic frontend caching. Advanced techniques include using `WeakMap` and cascading structures inspired by React's `cache` function, which allows for storing multiple results and has automatic garbage collection. WeakMaps can also be used to establish relations between objects, as seen in React's experimental API.
One of the refactoring examples in the book "Clean Code" is overly complex and less understandable than the original piece of code. There are issues like unnecessary class creation, unclear naming, and excessive function separation. Developers should prioritize code readability over just strictly adhering to arbitrary rules.
Obsidian, an open-source note taking app, can be used for productivity with its scratchpad, task lists, daily notes, and weekly reviews. Canvas can be used for creating graphs to visualize goals and dependencies. Practice spaced repetition for knowledge retention.
Engineering metrics should be used narrowly at first, with just one metric being the focus for a team's productivity. Over time, more metrics can be tracked and added, as long as they are aligned with the team's broader goals.
Sponsored
Engineering Leaders! Looking to improve your dev team's efficiency with faster release cycles?
Lambda API is a streamlined web framework designed for AWS Lambda using AWS API Gateway Lambda Proxy Integration or ALB Lambda Target Support. It draws inspiration from frameworks like Express.js and Fastify, but has been optimized for performance within Lambda's stateless, single-execution model.
Restate allows you to build workflows, event-driven applications, and distributed services in a fault-tolerant manner with durable async/await. It can be used to build Lambda workflows as code, transactional RPC handlers, event processing with Kafka, and more.
Graphql-query-complexity is a tool that analyzes GraphQL query complexity to safeguard servers against resource exhaustion and DoS attacks. It allows setting maximum complexity thresholds and provides customizable estimators for calculating field complexities based on schema and query structure.
Alexa had the potential to be the leader in conversational AI due to its resources and talent, but it faced technical and organizational challenges. The internal infrastructure was difficult for developers to work with, and the fragmented organizational structure stopped effective collaboration. Additionally, there was a misalignment between product goals and scientific research timelines.
pgvectorscale is a new open-source PostgreSQL extension that improves the performance and scalability of vector operations. It achieves this through StreamingDiskANN, a disk-based vector search index that is more cost-efficient than in-memory indexes, and Statistical Binary Quantization, a novel compression method that improves accuracy. Benchmarks show that PostgreSQL with pgvector and pgvectorscale outperforms other commercial vector databases.
Postgres uses shared buffers, the largest segment of RAM, to cache frequently accessed data pages. shared_buffers should typically be set to 25% of available RAM to optimize memory usage, but can be adjusted based on buffer cache utilization. Work memory, controlled by work_mem, is allocated per query node and should be set carefully to avoid excessive memory usage or disk spillage. This article goes into detail tips to reduce memory consumption.
Lexbor is an open source HTML Renderer library.
Overwatch is a platform that automates OSINT and threat intel into actionable insights.
Apple announced WebKit for Safari 18 beta, which adds 48 web platform features.