InfoQ Homepage Articles
-
Prompt Injection for Large Language Models
This article will cover two common attack vectors against large language models and tools based on them, prompt injection and prompt stealing. We will additionally introduce three approaches to make your LLM-based systems and tools less vulnerable to this kind of attacks and review their benefits and limitations, including fine-tuning, adversarial detectors, and system prompt hardening.
-
The End of the Bronze Age: Rethinking the Medallion Architecture
A shift left approach to data processing relies on data products that form the basis of data communication across the business. This addresses many flaws in traditional data processing and makes data more relevant, complete, and trustworthy.
-
Elevate Developer Experience with Generative AI Capabilities on AWS
This is a summary of a talk I gave at InfoQ Dev Summit Munich 2024. I discussed the transformative potential of generative AI in enhancing developer experiences, particularly through AWS. I’ll introduce key tools like Amazon Bedrock, Code Review Assistant, Agentic Code Generation, and Code Summarization in this article.
-
Modeling Complex Data Structure in Golang Using Pointers, References, and Reverse Indices
Understanding pointers and references in Go can be challenging for many developers, especially those new to low-level programming languages. In this article, I’ll walk you through a program that leverages Go pointers and references to solve a real-world use case: a graph-based permission system.
-
A Framework for Building Micro Metrics for LLM System Evaluation
LLM accuracy is a challenging topic to address and is much more multi-dimensional than a simple accuracy score. Denys Linkov introduces a framework for creating micro metrics to evaluate LLM systems, focusing on goal-aligned metrics that improve performance and reliability. By adopting an iterative "crawl, walk, run" methodology, teams can incrementally develop observability.
-
Spring Security Configuration with Flow Diagrams
In modern Java systems, Spring Security is widely used, offering numerous settings for various scenarios. This diversity can be confusing when more specific configurations beyond the default formLogin(withDefaults()) are needed. This article demonstrates basic configurations with detailed component analysis through diagrams and code examples, providing a starting point for further customization.
-
Being Functionless: How to Develop a Serverless Mindset to Write Less Code!
Dynamic cloud services like AWS Lambda have revolutionized computing, leading to rapid deployment and innovation in serverless technology. However, over-reliance on Functions as a Service (FaaS) can create complex architectures and increase costs. Adopting a functionless mindset and leveraging native service integrations fosters simplicity, enhances sustainability, and optimizes efficiency.
-
InfoQ Java Trends Report - December 2024
This report summarizes how the InfoQ Java editorial team and several Java Champions currently see the adoption of technology and emerging trends within the Java and JVM space in 2024. We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.
-
Software Architecture and the Art of Experimentation
Run experiments using a Minimum Viable Architecture approach to determine if your architecture decisions are on the right track. MVAs also test the viability of an MVP, allowing stakeholders to validate the business value.
-
Virtual Panel: How to Become a Principal Engineer
As a software engineer or individual contributor, the next step in your career can be to become a principal engineer. The path to becoming a principal engineer at companies can feel unclear, which can inhibit individual engineering careers. But that also provides opportunities for engineers to invent and shape the role of principal engineers.
-
Beat the Plan: Probabilistic Strategies for Successful Software Delivery at Scale
Large-scale software delivery demands managing complexity across teams and organizations. Similarly to betting strategies in Vegas, embracing probabilistic thinking helps tackle uncertainty, shifting from rigid plans to adaptive systems. By making informed bets and designing for change, leaders can control volatility, respond to evolving conditions, and drive success in dynamic environments.
-
Reaching Your Automatic Testing Goals by Enhancing Your Test Architecture
If you have automatic end-to-end tests, you have test architecture, even if you’ve never given it a thought. Test architecture encompasses everything from code to more theoretical concerns like enterprise architecture, but with concrete, immediate consequences. Let's explore how you can achieve the goals you have for your automatic testing effort.