software development

WebAssembly

WebAssembly (Wasm) is a binary instruction format for a stack-based virtual machine, designed for fast, portable web applications. It enables programming language compilation for client and server, focusing on efficiency, safety in a sandboxed environment, and open debuggability. Wasm supports seamless integration with JavaScript and adheres to web standards, allowing access to browser functionalities.

https://webassembly.org/

Building Software on Top of Large Language Models

Workshop on building software with Large Language Models (LLMs) at PyCon US by Simon Willison on May 15, 2025. Covering setup, prompting, a text-to-SQL tool, structured data extraction, semantic search, and tool usage techniques. Emphasis on practical exercises, material accessibility, and the diverse LLM landscape, including OpenAI, Gemini, and Anthropic models. Discussion on LLMs' cost-effectiveness, prompt injection security challenges, and evaluation methods for LLM applications. Concluding demos of local models with an invitation for private workshops.

https://simonwillison.net/2025/May/15/building-on-llms/#atom-everything

MAKING SOFTWARE

“Making Software” is a manual by Dan Hollick that explains how everyday software works, covering topics like touch screens, Gaussian blur, bezier curves, rasterization, and more. It aims to enhance curiosity, not to teach software development or design. The book includes diagrams for clarity and is accessible to non-technical readers. It contains chapters on pixels, fonts, 3D, AI, data, networking, compilers, and miscellaneous topics. Currently a digital project, it may include pre-orders for early access.

https://www.makingsoftware.com/

Fifty Years of Open Source Software Supply Chain Security

50 Years of Open Source Software Security: Explores the historical challenges in software supply chain security, illustrating via incidents like the 1974 Multics report and the recent xz attack on Debian. It defines open source software supply chain attacks and vulnerabilities, emphasizing the necessity for improved defenses. Key solutions include understanding supply chains, authenticating software with cryptographic signatures, making builds reproducible, quickly identifying and fixing vulnerabilities, and funding open-source projects. The essay stresses the ongoing evolution in software reuse practices and highlights that without proper investments and security measures, risks persist in the open-source ecosystem.

https://queue.acm.org/detail.cfm?id=3722542

The Best Programmers I Know

Summary: The best programmers possess traits such as deep knowledge of their tools, the ability to read and understand error messages, problem breakdown skills, a willingness to learn, and a commitment to helping others. They emphasize continual learning, maintain patience, avoid guessing, prefer simplicity in code, and value reputation-building. Great developers communicate effectively, manage relationships across all levels, remain curious, and respect the learning process for themselves and others. Overall, excellence in programming is about dedication, humility, and a desire to understand and help.

https://endler.dev/2025/best-programmers/

How Complex Systems Fail

TLDR: Complex systems (e.g., healthcare, transport) are inherently hazardous and protected by multiple layers of defenses against failure. Catastrophic failure requires multiple small failures to align, with latent issues always present. Human operators adapt to maintain safety, but assessments post-accident are often biased and incorrectly attribute failures to single causes. Safety is a dynamic characteristic of systems, shaped by human activities and experience with failure. Adaptations by practitioners are critical, but changing technologies can introduce new failure pathways.

https://how.complexsystems.fail/

Senior Developer Skills in the AI Age: Leveraging Experience for Better Results • Manuel Kießling

Senior Developer Skills in AI: Leverage experience for productivity. Embrace AI tools for coding; they can elevate results. Senior developers hold the advantage due to their expertise in project management and architecture, aiding effective AI use. Successful AI coding requires well-structured requirements, tool-based guard rails, and file-based keyframing. Real-world examples show AI can handle coding tasks efficiently, transforming project execution. Essential practices like documentation and quality checks ensure high standards. Human experience remains crucial for optimal AI implementation in software development.

https://manuel.kiessling.net/2025/03/31/how-seasoned-developers-can-achieve-great-results-with-ai-coding-agents/

There Is No Vibe Engineering

Vibe Coding, coined by Andrej Karpathy, emphasizes coding without direct code interaction, relying on AI outputs. While AI changes coding, it doesn't replace the essential role of software engineering, which involves system design over time. Vibe coding focuses only on immediate coding tasks, neglecting vital long-term considerations. Thus, there's no unique “Vibe Engineering”; it's still traditional engineering, albeit with less coding. The future may integrate AI-generated components, but the need for careful system design remains unchanged. Vibe Coding is effective for prototypes but not suitable for robust production software.

https://serce.me/posts/2025-31-03-there-is-no-vibe-engineering

How to Write Blog Posts That Developers Read

Summary:
To write engaging blog posts for developers, focus on clarity and brevity. Address your audience's interests quickly, using familiar language. Consider expanding your audience by simplifying technical jargon and addressing broader themes. Ensure your content is easily discoverable by evaluating its potential reach on platforms like Google, Hacker News, and relevant subreddits. Use visuals to enhance understanding and attract skimmers, breaking up text with images and headings. Adjust content based on past success to maximize reader engagement.

https://refactoringenglish.com/chapters/write-blog-posts-developers-read/

The Software Engineering Identity Crisis

Software engineers face an identity crisis as AI tools shift their role from builders to overseers, raising questions about their essence and purpose. While coding has defined many as creators, AI's rise is challenging this by automating tasks traditionally tied to engineering, leading to a focus on management-like skills such as clear communication and systems thinking. This transition evokes fear of losing the joys of coding and craftsmanship, as many engineers express concern over code quality and job security. To navigate this, engineers might consider embracing a balance between hands-on coding and orchestrating AI systems, reclaiming their identity through adaptability and a return to comprehensive problem-solving that transcends mere coding. Ultimately, the challenge lies in evolving with AI without losing the core values of engineering.

https://annievella.com/posts/the-software-engineering-identity-crisis/

The Little Book About OS Development

“Little Book About OS Development” by Erik Helin and Adam Renberg is a practical guide for creating an x86 operating system. It emphasizes hands-on coding with minimal theory, making it ideal for readers with some programming experience. The book includes setup instructions, boot process details, OS kernel initialization, and practical examples throughout, covering topics like user mode, virtual memory, and file systems. It encourages iterative development, provides links for further reading, and uses C as the primary programming language with NASM for assembly. The authors stress the importance of community resources and collaborative development practices.

https://littleosbook.github.io/

The Product Engineer

Product Engineers can replace Product Managers in consumer software roles by fostering equal participation among Engineering, Design, and Product teams. Current structures often create dysfunction, with Product Managers overstepping by acting as decision-makers, Designers becoming entrenched in their own processes, and Engineers feeling disconnected due to unclear directives. A Product Engineer possesses in-depth product knowledge, drives accountability, and promotes clear communication across teams. Successful product outcomes stem from empowering those who build to share product responsibilities, minimizing reliance on conventional Product Managers.

https://randsinrepose.com/archives/the-product-engineer/

Why I’m No Longer Talking to Architects About Microservices

No longer discussing microservices due to: 1) ambiguous definitions causing miscommunication. 2) abstract conversations disconnected from real business goals. 3) organizational changes often ignored, making microservices adoption ineffective. Focus should shift to tangible outcomes rather than microservices debates.

https://blog.container-solutions.com/why-im-no-longer-talking-to-architects-about-microservices

Scroll to Top