Researchers have discovered that overtrained neural networks can develop unexpected and innovative solutions to problems, a phenomenon they have termed “grokking". These grokked networks solve problems like modular arithmetic using mathematical manipulations that mimic trigonometric functions.
This author attempted to solve the One Billion Row Challenge using CUDA to much success. While a pure C++ solution took 16.5 minutes, the CUDA solution achieved a 60X speedup, completing in 16.8 seconds.
Regardless of where you live, working remotely or in person for a US company will increase your salary.
A cat woke up a developer in the middle of the night just as a DDoS attack was overwhelming their company's website, allowing them to handle it successfully.
Redka is Redis re-implemented in SQLite.
Supabase is officially out of beta.
In 1990, half of AT&T's phone network went down as a result of one line of C code that contained a buggy implementation of call handling. The outage affected over a hundred thousand Americans and the company lost $60 million. This article goes over the buggy piece of code that was deployed by AT&T and how engineers fixed it.
A new official React doc that explains how to animate a progress element using the new useTransition hook, which lets you update state without blocking UI.
Cumulative Layout Shift (CLS) measures webpage instability caused by unexpected movements of elements. Background images can make CLS worse, since CLS calculations consider all page elements. To make sure that CLS isn't affected negatively by background images, developers should include width and height attributes on images and iframes.
Selling developer tools is challenging because developers typically lack the authority to make purchasing decisions. Successful tech companies often bypass IT and target revenue-generating business units. Simply making a tool popular doesn't guarantee profitability, especially with open-source software.
Allegro, a major e-commerce platform, successfully transformed its monolithic application into a microservices architecture. Along the way, it shifted away from physical servers to a cloud-based infrastructure, which led to a much better developer experience. It also made large investments in tooling and infrastructure to reduce manual work for its engineers. Allegro made sure to allow room for experimentation, but also kept teams accountable for their architectural decisions.
Paid search engine Kagi has spread itself too thin with multiple niche projects. The product is also starting to become over-reliant on AI, which leads to inaccuracy and bias that goes against what Kagi was in the beginning.
Sponsored
Sentry's new Autofix [13] feature understands what your users are doing when an error occurs, analyzes the error, generates a fix and even opens a pull request for your review. It's like having a junior developer ready to help on-demand. Learn more [13] or request to join
Next.js 14.2 offers faster local development with Turbopack improvements, along with clearer error messages and improved overlay design. It also has less memory usage during builds.
Turn Google Sheets into a database. Developers can perform CRUD operations on spreadsheets using APIs.
Supabase's Index Advisor is a PostgreSQL extension that recommends indexes to improve query performance.
Employees at startups should learn to understand their stock options as they are not an intuitive thing to understand. This article goes over the basics of stock options and how employees should gauge potential upside (or downside). Engineering managers should make sure that employees get additional stock option grants as they grow within the company.
This author decided to learn deep learning after running an education company for 8 years. They focused on the fundamentals with resources like "The Deep Learning Book", taught as they learned, and implemented foundational papers. They eventually developed their own tools in the data extraction space, which led to a job offer from a research lab.
This author, who works at a startup with several LLM-powered features, shares useful insights from using GPT. For text analysis and extraction, vague prompts often outperform overly specific instructions. The chat API itself is usually enough for most needs and most people won't need to use more complex tech like vector databases or Langchain. For a better user experience, it was useful to mimic the variable typing speed of chatbots.
Devin AI, the “first AI Software Engineer,” was misrepresented - for example, in one of its demos, Devin is shown fixing errors in the source of a GitHub repository, but the errors it's fixing are bugs that Devin itself created.
The author's best manager was amazing because of their transparent communication (especially about career growth), technical competency, high but fair performance bar, credibility, and focus on impactful work instead of internal politics.
The FCC's proposed net neutrality rules would allow mobile internet providers to create "5G fast lanes" where certain apps get preferential treatment.
The potential to embed JavaScript in PDFs is often thought of as a security vulnerability, but in reality, it's intended by PDF rendering software.
The problems startups solve are either hair-on-fire problems, “unchangeable” pain points, or non-problems that are solved by unbelievable visions (like the iPhone).
Sponsored
Today, even smaller startups are demanding auth features like SSO that used to be the purview of the Fortune 500.
Italian bank Sella has been offline for days after a weekend system update caused a database problem. It is working with Oracle to resolve the unexpected issue. The extended downtime shows the importance of having a good backup strategy. While "blackout" windows for maintenance are common in banking, they might inadvertently lead to weaker engineering practices compared to industries that require zero-downtime migrations.
Unique identifiers (UUIDs) in their standard form can be unfriendly to users. To improve their UX for users, developers can remove hyphens to allow for easy double-click copying. They can also add prefixes (e.g., "prod_" or "test_") to distinguish between environments and resources. Developers should consider encoding UUIDs in base58 for shorter IDs.
This guide goes over Git, from key terms to important commands and workflows. It covers branches, commits, and HEAD, along with workflows like forking, feature branches, and more.
Quality improvement programs often yield initial success as obvious flaws ("special causes") are fixed. However, teams will eventually reach a plateau because systemic issues aren't addressed. This means not just fixing bugs, but also tackling architectural problems like geographic distribution, resource allocation, data efficiency, and problematic access patterns.
Developers are burning out for various reasons, including layoffs, decisions made by non-technical executives, and a tough hiring market. The hiring market is now an “employer's market”, which means that companies have more power over employees and so can dictate working hours, promotions (or lack thereof), and other parts of work to their own benefit.
To land a data engineering job in 2024, you'll need a skillset that includes SQL knowledge, development skills in Python or Scala, and ideally expertise in distributed compute frameworks like Spark, Snowflake, or BigQuery. Aspiring data engineers should make sure they know how to model data properly and have at least one compelling portfolio project that showcases all of these skills.
Flow, a type checker for JavaScript, now offers dedicated syntax for React components and hooks to improve the developer experience. It now replaces traditional React function syntax with component syntax and enforces React best practices, like making props read-only. It also supports hooks and their corresponding rules.
Madge is a development tool that helps visualize and manage module dependencies for JavaScript and CSS projects. It supports several module types and CSS preprocessors. Madge can detect circular dependencies and create visual graphs of project structures. The tool is useful for developers looking to optimize their codebase and maintain clear dependencies.
Large companies (like FAANG) have the resources to offer new hires extended onboarding periods (3-6 months), allowing flexibility in the languages that a new hire knows. In contrast, startups need immediate productivity from new hires since they run lean.
Over the last few decades, software testing has evolved from slow manual reviews to automated testing of every code change. Initially focused on finding errors, testing now emphasizes speed and efficiency through vertical scaling (faster machines), parallelization (running tests simultaneously), and caching (avoiding rework). Teams are able to optimize testing further by batching changes in merge queues, testing stacked PRs together, and using AI code review to detect potential errors.
While working on a project, this developer accidentally discovered a serious security flaw in the ZeroMQ library. The flaw was serious and reminded them of the recent infamous xz backdoor incident. Both flaws could've been prevented. Open-source contributors and maintainers should prioritize focused features and utilize tools like Valgrind to prevent similar security risks.
HashiCorp claims OpenTofu's "removed" block infringes its copyright, but OpenTofu refutes this, citing evidence that the code originated from an MPL-2.0 licensed project and that Hashicorp's own implementation appears to be derived from the same source.
The Shadow DOM is a hidden portion of the regular DOM and is ideal for browser extensions, widgets, and component libraries.
A guide for developers who are moving from React to Svelte that covers differences in reactivity, component lifecycle, and state management, providing code examples along the way.
An overview of various AI/ML tools, including general frameworks like TensorFlow, tools optimized for local use such as GPT4ALL, and AI development kits like the Unity ML Agents Toolkit.
Sponsored
There are many genAI tools that can help you write code. But do they have the contextual data to help you fix errors in production? Sentry’s Autofix [3] understands what your users are doing when an error occurs, analyzes the error, generates a fix and even opens a PR. It’s like having an extra junior developer.
Code search is a hard problem to solve compared to normal search. Search tools often optimize for natural language, but these techniques make code search worse. Most big companies have custom code search tools, which is a sign of how difficult the problem is. Postgres has functions that can make code search easier, like its full text search options.
Golang comes with its own testing library, which is not common among popular programming languages. Unit tests in Go should be written to run in parallel by default so that concurrency issues are surfaced early on. The testing package has a comprehensive set of flags and can provide code coverage reports, race condition detection, static analysis, shuffled test execution, and more.
2024.04.11·blog.verygoodsoftwarenotvirus.ru·14 min read·TLDR Web Dev This blog demonstrates how customizing ZSH shell history configurations can be a boon for your productivity. These tips make it easier to find and reuse past commands quickly. You can efficiently access a personalized command library by tuning history storage and implementing advanced search techniques such as ‘fzf’ and ‘ag’.
Programs should avoid requiring users to modify source code files (like Makefiles or header files) for configuration purposes. This is because it can often lead to merge conflicts during updates later on, which can be difficult to debug. Configurations should be handled through other methods instead.
CodeGemma, a collaborative effort between Google and Hugging Face, is a family of open-access, code-specialized LLMs. The models are available in 2B and 7B configurations. They have been fine-tuned with a lot of data to bring better performance in logical reasoning and programming suggestions.
Aider is a command-line tool that lets you directly edit code in your files while pair-programming with GPT. It will git commit changes with AI-generated commit messages.
Deco is a real-time TypeScript web editor. You can code directly on the web or on your machine and get instant feedback.