BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage Articles

  • AI for Software Developers: a Future or a New Reality?

    In this article, author Nikita Povarov discusses the role AI/ML plays in software development and how tasks like code completion, code search, and bug detection can be powered by machine learning. But he also explains why a complete replacement of programmers by algorithms isn't going happen any time soon.

  • Adaptability by Agreement: Valuing Outcomes over Imposed Solutions

    In the pursuit of agile at scale, the landscape is dominated by process-driven approaches which are broken. This article explores a solution-driven rollout approach, one that puts authentic agreement on outcomes before solutions. The principles on which it is based are also effective as leadership strategies, where frameworks are resources to draw upon as people find fitting solutions.

  • Go Native with Spring Boot and GraalVM

    Spring Boot 3 & Spring Framework 6, due in late 2022, will have built-in support for native Java. For Spring Framework 5.x & Spring Boot 2.x, Spring Native is the way to go. Spring Native provides integrations for Spring's vast ecosystem of libraries. It also has a component model that allows you to extend native compilation support for other libraries.

  • The What and Why of Programmable Proxies

    A question which gets often asked is “What is a programmable proxy, and why do I need one?” This article tries to answer this question from different perspectives. We will start with a brief definition of what a proxy is, then discuss how proxies evolved, explaining what needs they responded to and what benefits they offered at each stage. Finally, we discuss several aspects of programmability.

  • Why You Should Care about Software Architecture

    Software development teams have resisted "big upfront designs" in favor of architectural designs emerging from self-organizing teams, which can lead to a mindset that software architecture is not really that important. Greater awareness of the implicit decisions they are making, and forcing these decisions to be made explicitly, can help development teams make better, more informed decisions.

  • Connecting Goals to Daily Teamwork

    While we all believe that goal setting is important, it’s work that often doesn’t feel quite urgent enough to be included in our daily routine. It is critical to team success for managers to implement a regular cadence that connects daily work more directly to high-level goals, removing administrative roadblocks while helping teammates focus on what matters most.

  • A Recipe to Migrate and Scale Monoliths in the Cloud

    In this article, I want to present a simple cloud architecture that can allow an organization to take monolithic applications to the cloud incrementally without a dramatic change in the architecture. We will discuss the minimal requirements and basic components to take advantage of the scalability of the cloud.

  • Raft Engine: a Log-Structured Embedded Storage Engine for Multi-Raft Logs in TiKV

    In this article, authors discuss the design and implementation of Raft Engine, a log-structured embedded storage engine introduced in TiDB distributed, NewSQL database version 5.4. They also discuss the performance benefits of the engine compared to the previous implementation based on RocksDB.

  • Reducing Cognitive Load in Agile DevOps Teams Using Team Topologies

    In this article we will be sharing our experience from 12 months of adopting certain management and organisational insights from the book Team Topologies. It explores how we identified areas of responsibility and assigned those into mostly customer-facing domains which could be given to our teams. It shows how an inverse Conway manoeuvre can be used to improve the architecture.

  • Ballerina: a Data-Oriented Programming Language

    Ballerina’s flexible type system brings the best of statically typed and dynamically typed languages in terms of safety, clarity, and speed of development. Ballerina treats data as a first-class citizen that can be created without extra ceremony, just like strings and numbers.

  • How to Fight Climate Change as a Software Engineer

    We need to reduce and eliminate greenhouse gas emissions to stop climate change. But what role does software play, and what can software engineers do? Let’s take a look under the hood to uncover the relationship between greenhouse gas emissions and software, learn about the impact that we can have, and identify concrete ways to reduce emissions when creating and running software.

  • Article Series: Native Compilation Boosts Java

    Java dominates enterprise applications. But in the cloud, Java is more expensive than some competitors. Native compilation makes Java in the cloud cheaper. It raises many questions for all Java users: How does native Java change development? When should we switch to native Java? When should we not? And what framework should we use for native Java? This series provides answers to these questions.

BT