Tech Tips

My Tips on Java, AI and technology.

Commentary, tutorials, opinions and practical development insights from TheServerSide.

Related Resources

The newest articles matching the selected resource filters. Showing up to 1000 resources.

Types tip
How Developers Can Thrive as AI Agents Write Code

How Developers Can Thrive as AI Agents Write Code

Vibe coding will automate more code production, making technology choices, creative thinking, architectural vision, and analysis increasingly important.

AI

Understanding Product and Sprint Backlogs in Scrum

Understanding Product and Sprint Backlogs in Scrum

Compare the purpose, ownership, scope, and timing of the two backlogs that guide incremental Scrum development.

Agile

Acceptance Criteria and the Definition of Done Explained

Acceptance Criteria and the Definition of Done Explained

See how feature-specific requirements differ from universal completion standards in Agile and Scrum development.

Agile

Choosing Between Spring, Quarkus and Jakarta EE

Choosing Between Spring, Quarkus and Jakarta EE

Explore the strengths, limitations and operational tradeoffs of popular Java frameworks and modularity options for new projects.

Spring

Why Vibe Coding Fails at Enterprise Scale

Why Vibe Coding Fails at Enterprise Scale

AI-generated code may accelerate prototypes, but the article examines how weak architecture, difficult debugging, and hidden maintenance costs undermine larger systems.

AI

Understanding the Difference Between Agile and Scrum

Understanding the Difference Between Agile and Scrum

Compare Agile philosophy with Scrum practices, values, roles, and processes to see how the two approaches work together in software development.

Agile

Where Java Desktop Applications Are Headed

Where Java Desktop Applications Are Headed

A look at AWT, Swing, JavaFX, and SWT, with practical guidance for choosing a Java UI toolkit for modern desktop software.

Spring

Agile and Waterfall: How the Development Models Differ

Agile and Waterfall: How the Development Models Differ

Explore how Agile iteration and customer feedback contrast with Waterfall planning, fixed phases, and upfront requirements.

Agile

Using AI to Stand Out in a Developer Job Search

Using AI to Stand Out in a Developer Job Search

Explore how recruiters use AI and what software developers can do to present their skills clearly, improve their resumes, and navigate hiring assessments.

Skills

Five Ways Scrum Teams Can Estimate Agile Work

Five Ways Scrum Teams Can Estimate Agile Work

Compare calendar days, ideal days, story points, T-shirt sizing, and no-estimate approaches for sizing user stories and planning releases.

Agile

JavaFX in 2025: A Modern Alternative to Swing

JavaFX in 2025: A Modern Alternative to Swing

See how JavaFX supports contemporary desktop and cross-platform Java applications through active releases, visual design tools, community projects, and libraries.

Spring

Planning Effective Iterations in Agile Development

Planning Effective Iterations in Agile Development

Discover practical ways to keep Agile iterations focused, validate assumptions early, deliver value quickly, and adapt plans using customer feedback.

Agile

Using Binary Logic to Optimize Java Code

Using Binary Logic to Optimize Java Code

Explore bit arrays, bitwise operations, and carry propagation techniques for improving efficiency in targeted Java algorithms.

Spring

How to Use 11 Agile Metrics Without Misleading Your Team

How to Use 11 Agile Metrics Without Misleading Your Team

Understand what each Agile metric reveals, where it falls short, and how combining complementary measures supports better decisions.

Agile

Choosing Between Swing and JavaFX for Java Desktop Apps

Choosing Between Swing and JavaFX for Java Desktop Apps

Explore the history, capabilities, and tradeoffs of Java GUI frameworks to decide whether Swing or JavaFX fits your next desktop project.

Spring

A Practical Introduction to Functional Programming in JavaScript

A Practical Introduction to Functional Programming in JavaScript

Explore how deterministic, side-effect-free functions, composition, immutability, and monads shape functional JavaScript code.

Spring

A Better Approach to Agile Planning Without Estimates

A Better Approach to Agile Planning Without Estimates

Explore how #NoEstimates practices use smaller work items, flow metrics, and probability-based forecasts to handle uncertainty in software delivery.

Agile

A Practical Guide to Functional Programming Principles

A Practical Guide to Functional Programming Principles

Explore how deterministic functions, immutable data, function composition, and recursion shape a functional programming approach.

Spring

Why Agile Teams Struggle to Estimate Unpredictable Work

Why Agile Teams Struggle to Estimate Unpredictable Work

Understand how estimation can distract from customer value, create deadline pressure, and limit adaptability in software development.

Agile

Five Common Scrum Antipatterns and How to Avoid Them

Five Common Scrum Antipatterns and How to Avoid Them

Learn how project-based sprints, weak customer feedback, unclear goals, story point misuse, and siloed teams can undermine Scrum.

Agile

Explore CI/CD Tools Beyond Jenkins

Explore CI/CD Tools Beyond Jenkins

See how leading CI/CD platforms and build tools compare for Java teams seeking alternatives to Jenkins.

DevOps

Choosing Between MySQL and PostgreSQL

Choosing Between MySQL and PostgreSQL

Explore how these open source relational databases differ in performance, complex queries, replication, scalability, security, and workload fit.

Spring

How OKRs and KPIs Work Together to Drive Results

How OKRs and KPIs Work Together to Drive Results

Understand the difference between ambitious outcome-based goals and ongoing performance metrics, with examples for aligning both approaches.

Agile

Detecting and preventing pinning with Java virtual threads

Detecting and preventing pinning with Java virtual threads

Explore carrier-thread pinning, diagnostic tools, Spring configuration, and practical ways to protect virtual thread scalability.

Spring

How the Interface Segregation Principle Simplifies Code

How the Interface Segregation Principle Simplifies Code

Learn how focused, task-specific interfaces reduce complexity and improve flexibility and maintainability in object-oriented software.

Spring

Simplifying Native Code Access with Java 22

Simplifying Native Code Access with Java 22

See how JEP 454 uses the Foreign Function and Memory API to call C functions, access native memory, and reduce JNI complexity.

Spring

When Java Is Not the Best Language for the Job

When Java Is Not the Best Language for the Job

Explore Java's tradeoffs in speed, complexity, runtime fragmentation, and package management, and learn when another language may be a better fit.

Spring

Building a Software Development Career in Climate Tech

Building a Software Development Career in Climate Tech

Explore climate tech career paths, key software engineering skills, industry terminology, and the rewards and risks of mission-driven development work.

Skills

A Practical Guide to Onboarding Remote Developers

A Practical Guide to Onboarding Remote Developers

Help new remote engineers connect with their teams, understand the technology stack, contribute early, and share feedback throughout their first days.

Skills

Why Developers Are Exploring the Zig Language

Why Developers Are Exploring the Zig Language

Learn how Zig combines compiled performance with flexible language features, simple build and test commands, integrated test blocks, and practical debugging tools.

Spring

Combining Java Streams and Virtual Threads for Concurrent Work

Combining Java Streams and Virtual Threads for Concurrent Work

See how JDK 22's mapConcurrent gatherer uses virtual threads to improve concurrent processing for I/O-bound tasks such as image resizing.

Spring

Understanding the Three Layers of DBMS Architecture

Understanding the Three Layers of DBMS Architecture

Learn how internal, conceptual and external database schemas organize storage, logical design, security and client access.

Other

How Five Agile Principles Improve Project Management

How Five Agile Principles Improve Project Management

Explore how continuous delivery, empowered teams, incremental work, self-organization, and iterative cycles support effective project management.

Agile

Navigating a New Promotion With Confidence

Navigating a New Promotion With Confidence

Practical advice for developers facing unfamiliar responsibilities, leadership expectations, and the transition into a larger role.

Skills

Go Beyond the Basics of Java Pattern Matching

Go Beyond the Basics of Java Pattern Matching

Explore guarded patterns, null handling, nested records, type inference, unnamed variables, and generic record patterns through practical Java examples.

Spring

How to Address Key Risks in Distributed Ledger Technology

How to Address Key Risks in Distributed Ledger Technology

Understand how blockchain networks work and learn strategies for improving DLT security, performance, cost management and smart contract upgrades.

Other

Understanding Java Pattern Matching

Understanding Java Pattern Matching

Learn how Java pattern matching simplifies type checks, casting, record patterns, and switch expressions for clearer code.

Spring

How Developers Can Build a Career in AI

How Developers Can Build a Career in AI

Explore AI career paths, essential skills, workplace challenges, and ways to evaluate organizations that use AI.

AI

Understanding the Back-Ends-for-Front-Ends Microservices Pattern

Understanding the Back-Ends-for-Front-Ends Microservices Pattern

Learn how BFF APIs aggregate backend calls, tailor responses for different clients, and simplify front-end development.

Spring

Control Java Inheritance with Sealed Classes

Control Java Inheritance with Sealed Classes

Explore Java 17 sealed classes, permitted subclasses, and inheritance rules for building safer, clearer, closed type hierarchies.

Spring

Understanding Blockchain and Distributed Ledger Technology

Understanding Blockchain and Distributed Ledger Technology

Explore the relationship between blockchain and DLT, including smart contracts, consensus, peer-to-peer storage, and alternative databases.

Other

Should You Leave Your Tech Job? Six Questions to Ask

Should You Leave Your Tech Job? Six Questions to Ask

Use practical guidance on workplace problems, career goals, financial preparation and job search readiness to make a thoughtful career change.

Skills

How NumPy Arrays Reduce Python Performance Overhead

How NumPy Arrays Reduce Python Performance Overhead

Explore the invisible boundary between Python and native code, and see why NumPy arrays outperform Python lists for cumulative sums.

Spring

Practical Patterns for Cleaner, More Maintainable Code

Practical Patterns for Cleaner, More Maintainable Code

Explore examples of simplifying logic, removing duplication, organizing data, managing objects, and using abstraction without overengineering.

Spring

Five Technology Trends Expected to Shape 2024

Five Technology Trends Expected to Shape 2024

A look at how AI coding tools, the Mojo language, blockchain, browser-based IDEs and antitrust action may influence technology in 2024.

AI

The Truth Behind Five Common Blockchain Myths

The Truth Behind Five Common Blockchain Myths

A fact-based look at blockchain security, privacy, use cases, public-sector adoption, and the learning curve for developers.

Other

Understanding Event Sourcing Through a Working Example

Understanding Event Sourcing Through a Working Example

Explore event capture, persistence, message-driven workflows, and replay in a simplified TypeScript order-processing application.

Other

A Practical Approach to Writing Better Scrum Sprint Goals

A Practical Approach to Writing Better Scrum Sprint Goals

Discover how customer needs, testable hypotheses, and feedback can help Scrum teams create focused, adaptable sprint goals.

Agile

A Practical Way to Master Complex Technical Ideas

A Practical Way to Master Complex Technical Ideas

Discover how learning through explanation, review, simplification, and analogy can deepen your understanding and make communication more effective.

Skills

How Compiled Regular Expressions Improve Python and Java Performance

How Compiled Regular Expressions Improve Python and Java Performance

Explore the tradeoffs between string primitives, regular expressions, and precompiled patterns when removing URL parameters in Python and Java.

Spring

Why Python's Concise Syntax Can Mean Fewer Bugs

Why Python's Concise Syntax Can Mean Fewer Bugs

Python may sacrifice performance and multithreading efficiency, but its compact, readable syntax can reduce boilerplate and cognitive load for developers.

Spring

How Developers Can Handle Performance Reviews Professionally

How Developers Can Handle Performance Reviews Professionally

Prepare throughout the year, respond constructively to feedback, navigate performance improvement plans, and guide your own professional development.

Skills

Understanding Java 21 Virtual Threads Through Code

Understanding Java 21 Virtual Threads Through Code

Explore the limits of operating system threads and see how Java 21 virtual threads simplify high-concurrency applications.

Spring

Understanding Python's Main Entry-Point Check

Understanding Python's Main Entry-Point Check

See how the __name__ variable changes between direct execution and module imports, with examples of reusable and standalone Python code.

Spring

Five Practical Steps for Recovering From a Layoff

Five Practical Steps for Recovering From a Layoff

Learn how to manage immediate financial and career tasks, reconnect with your network, and use a layoff as an opportunity to rethink your next move.

Skills

How SAFe Scrum Masters Differ From Traditional Scrum Masters

How SAFe Scrum Masters Differ From Traditional Scrum Masters

Explore the added release train responsibilities, planning activities, and team coaching expected in a scaled Agile environment.

Agile

Practical Ways to Make Python Code Faster

Practical Ways to Make Python Code Faster

Learn how data types, comprehensions, generators, libraries, profiling, and alternative Python implementations can improve performance where it matters.

Spring

Understanding Idempotence in RESTful HTTP

Understanding Idempotence in RESTful HTTP

Explore safe and non-idempotent HTTP methods, practical REST examples, and API design considerations for consistent server-side state.

Spring

Understanding Python Import Risks in Enterprise Code

Understanding Python Import Risks in Enterprise Code

Explore how top-level execution creates security and software supply chain exposure, and how static analysis and careful library oversight can reduce the risk.

Spring

Choosing Between Scrum and SAFe for Agile Delivery

Choosing Between Scrum and SAFe for Agile Delivery

Understand how Scrum and SAFe differ in complexity, team structure, planning, and scaling so you can select the right approach for your organization.

Agile

Applying Java’s Open-Closed Principle with Interfaces

Applying Java’s Open-Closed Principle with Interfaces

See how a Java interface lets shape comparisons support new implementations without requiring changes to the existing component.

Spring

Is Startup Life Right for You as a Developer?

Is Startup Life Right for You as a Developer?

Learn how to evaluate startup culture, assess compensation and equity, and decide whether a fast-moving, less structured workplace fits your goals.

Skills

Learn Solidity by Building a Simple Ethereum Smart Contract

Learn Solidity by Building a Simple Ethereum Smart Contract

Explore Solidity fundamentals, including contract structure, compilation, read-only functions, string manipulation, deployment, and blockchain gas fees.

Other

How Scrum Masters Put Servant Leadership Into Practice

How Scrum Masters Put Servant Leadership Into Practice

See how Scrum masters remove blockers, support team autonomy, clarify expectations, foster psychological safety, and lead through Scrum values.

Agile

Practical Ways to Improve Python Performance

Practical Ways to Improve Python Performance

Learn how Python developers can address runtime costs, the GIL, and data-processing bottlenecks with multiprocessing and optimized libraries.

Other

How Scrum and Waterfall Differ in Product Development

How Scrum and Waterfall Differ in Product Development

Explore the contrasting approaches to planning, delivery, stakeholder feedback, team structure, and changing requirements in Scrum and Waterfall.

Agile

Understanding Blockchain, Smart Contracts and Decentralization

Understanding Blockchain, Smart Contracts and Decentralization

An introduction to centralized and decentralized networks, blockchain data integrity, cryptocurrency, smart contracts and decentralized identity.

Other

Preventing Burnout as a Remote Software Developer

Preventing Burnout as a Remote Software Developer

Practical strategies for managing workload, setting healthier boundaries, building skills, and discussing mental health at work.

Skills

Comparing JavaScript and TypeScript

Comparing JavaScript and TypeScript

Learn how TypeScript's type system, compilation process, and development tooling differ from JavaScript for larger applications.

Spring

Applying Java's Single Responsibility Principle

Applying Java's Single Responsibility Principle

See how focused classes improve maintainability, then refactor a Java example that mixes game results with history management.

Spring

Rethinking the Three Questions in Daily Scrum

Rethinking the Three Questions in Daily Scrum

Learn why repeating the standard daily Scrum questions can discourage collaboration, consume valuable meeting time, and shift focus away from the sprint goal.

Agile

11 Reasons WebAssembly Is Gaining Momentum

11 Reasons WebAssembly Is Gaining Momentum

Learn how WebAssembly improves application performance, portability, security, and deployment across browsers and containerized environments.

Other

11 Reasons Java Remains a Strong Choice in 2023

11 Reasons Java Remains a Strong Choice in 2023

From new JDK, Spring, and Jakarta EE releases to modern IDEs, simpler syntax, and active communities, Java offers plenty for developers in 2023.

Spring

Protect Yourself From Fake Remote Programming Jobs

Protect Yourself From Fake Remote Programming Jobs

Use practical checks to identify suspicious recruitment, safeguard your personal data, and verify remote employers before accepting an offer.

Skills

Choosing the Right Product Owner for a Scrum Team

Choosing the Right Product Owner for a Scrum Team

Explore the product owner’s responsibilities and the qualities organizations and self-managing teams should consider when assigning the role.

Agile

Practical Ways to Stay Motivated as a Remote Developer

Practical Ways to Stay Motivated as a Remote Developer

Use focused work sessions, daily rituals, peer connections, professional development, and time away from work to stay productive remotely.

Skills

Scrum and Kanban Compared: Choosing the Right Agile Approach

Scrum and Kanban Compared: Choosing the Right Agile Approach

Understand the differences between sprint-based Scrum and flow-based Kanban, including how teams can combine both frameworks.

Agile

What Java Developers Should Know About TypeScript

What Java Developers Should Know About TypeScript

Compare object-oriented features, syntax, compilation, NPM packages, and IDE support when moving from Java to TypeScript.

Spring

Understanding Product Owners and Product Managers

Understanding Product Owners and Product Managers

Compare the responsibilities, authority, and Scrum-specific accountabilities of product owners and product managers.

Agile

Why Pattern Recognition Matters in Code and Music

Why Pattern Recognition Matters in Code and Music

Learn how experience helps developers and musicians recognize abstract structures, reduce redundancy, and develop more efficient, reusable ideas.

Skills

How Developers Can Move Into Engineering Management

How Developers Can Move Into Engineering Management

Learn how to test the management role, build people skills, prioritize effectively, communicate clearly, and work across an organization.

Skills

Eight Technology Careers Beyond Programming

Eight Technology Careers Beyond Programming

Learn about in-demand IT roles that rely on leadership, analysis, communication, organization, and technical knowledge rather than coding.

Skills

Avoid Duplicate Java Exception Logging

Avoid Duplicate Java Exception Logging

See why layered applications should rethrow exceptions without logging them at every level, then log only where the error is handled.

Spring

How to Select the Best Java Library for Your Project

How to Select the Best Java Library for Your Project

Use seven practical evaluation criteria to compare Java libraries, from documentation and licensing to support, dependencies, and deployment impact.

Spring

A Guide to Java's 10 Most Common RuntimeExceptions

A Guide to Java's 10 Most Common RuntimeExceptions

Explore practical examples and fixes for frequent Java runtime errors, from ArithmeticException and NullPointerException to collection and array issues.

Spring

How to Prevent Common Java Runtime Failures

How to Prevent Common Java Runtime Failures

Explore practical strategies for handling input problems, resource constraints, unchecked exceptions, external system changes, and vulnerable dependencies.

Spring

Four Key Considerations for Aspiring Freelance Developers

Four Key Considerations for Aspiring Freelance Developers

Explore the skills and decisions that can help developers build successful freelance careers, including specialization, communication, confidence, and pricing.

Skills

ScrumBut Is Not Scrum: Why Agile Teams Should Avoid It

ScrumBut Is Not Scrum: Why Agile Teams Should Avoid It

Learn how partial Scrum adoption undermines transparency, inspection, and adaptation, and how Scrum Masters can address common objections.

Agile

A Developer's Guide to Binary and Hexadecimal

A Developer's Guide to Binary and Hexadecimal

Understand base 2 and base 16 notation, convert values from decimal, and see how bits, bytes, and hexadecimal relate in software development.

Spring

The Ongoing Challenges of Java’s Module System

The Ongoing Challenges of Java’s Module System

JPMS improves on earlier modularity approaches, but developers still face tooling gaps, inconsistent library support, and a return to non-modular Java.

Spring

Choosing Between Java Iterator and ListIterator

Choosing Between Java Iterator and ListIterator

Understand the differences between these collection interfaces and learn when ListIterator's extra capabilities make it the better choice.

Spring

Choosing Between REST and gRPC for API Development

Choosing Between REST and gRPC for API Development

Understand how REST and gRPC differ in performance, serialization, streaming, usability, and suitability for microservices communication.

Spring

Five Java 17 Enhancements for Modern Java Development

Five Java 17 Enhancements for Modern Java Development

See how records, text blocks, clearer null errors, switch expressions, and sealed classes improve everyday Java programming.

Spring

Three Ways to Write a Java Hello World Program

Three Ways to Write a Java Hello World Program

Learn how to create Java Hello World examples with console output, a Swing dialog, and a static initialization block.

Spring

Understanding the Difference Between Libraries and Frameworks

Understanding the Difference Between Libraries and Frameworks

Compare libraries and frameworks through Java examples, inversion of control, developer responsibility, and practical project selection guidance.

Spring

How Asking for Favors Can Help New Developers Join a Team

How Asking for Favors Can Help New Developers Join a Team

Discover career advice for using small favors and reciprocal support to build trust, relationships, and community in a new software development role.

Skills

Five Steps to Break Up a Java God Object

Five Steps to Break Up a Java God Object

Use testing, client analysis, and object-oriented design principles to replace an overloaded class with focused, maintainable components.

Spring

How to Build Faster, Lighter Landing Pages

How to Build Faster, Lighter Landing Pages

These strategies help reduce unnecessary HTML, CSS, JavaScript, images, and below-the-fold content so landing pages load more quickly.

DevOps

Five Ways to Improve CSS and Webpage Performance

Five Ways to Improve CSS and Webpage Performance

These practical techniques help reduce selector evaluations, stylesheet overhead, and unnecessary DOM elements for faster rendering.

Spring

A Practical Path to Adopting Serverless Platforms

A Practical Path to Adopting Serverless Platforms

Learn how to evaluate serverless architecture, manage its tradeoffs, and introduce functions gradually while limiting enterprise risk.

DevOps

JPA vs. Hibernate: Choosing a Java Persistence Approach

JPA vs. Hibernate: Choosing a Java Persistence Approach

Learn why JPA is a specification, Hibernate is an implementation, and how both compare with other Java ORM options.

Spring

Choosing Between MongoDB and Cassandra Databases

Choosing Between MongoDB and Cassandra Databases

Explore how these open source NoSQL databases differ in high availability, scalability, data modeling, querying, and workload fit.

Other

Rod Johnson Introduces Java-Based DevOps Automation with Atomist

Rod Johnson Introduces Java-Based DevOps Automation with Atomist

The Atomist project brings opinionated SDLC practices, code analysis, and deployment automation into developers' familiar Java and IDE workflows.

DevOps

How to Optimize Images Across Web and Mobile Apps

How to Optimize Images Across Web and Mobile Apps

Learn how image formats, responsive dimensions, browser support, and CDN cache behavior shape performance, quality, and delivery costs.

Other

Building Stronger Security Through DevOps Practices

Building Stronger Security Through DevOps Practices

Explore practical guidance for embedding security earlier, balancing risk and cost, and helping development and operations teams respond to threats.

DevOps

Technology’s Role in Advancing Agricultural Productivity

Technology’s Role in Advancing Agricultural Productivity

Agricultural researchers and businesses are using robotics, crop data, sensors, and machine learning to improve plant care and farming decisions.

Other

Can Binary Messaging Improve REST Performance?

Can Binary Messaging Improve REST Performance?

Learn why parsing JSON and XML can consume substantial CPU, and how binary formats may improve throughput while increasing development complexity.

Spring

How to Get Better Results From an Offshore Team

How to Get Better Results From an Offshore Team

Practical advice for planning, communicating with, reviewing, and motivating distributed offshore development teams.

Other

The Business Cost of Software Failure and Poor Performance

The Business Cost of Software Failure and Poor Performance

Explore how outages damage revenue, customer trust, brand reputation, market share, and confidence in IT, plus ways to prevent performance problems.

DevOps

Five Common Mistakes in Automated Acceptance Testing

Five Common Mistakes in Automated Acceptance Testing

Improve test automation reliability and maintainability by addressing unstable tests, excessive browser coverage, mocking strategies, framework dependencies, and unnecessary complexity.

DevOps

Plan for Better Mobile UI Development

Plan for Better Mobile UI Development

Learn how product specifications, design, architecture, quality assurance, and development planning can improve mobile app delivery and user value.

Spring

How to Select the Right UI Development Framework

How to Select the Right UI Development Framework

Evaluate learning difficulty, complexity, interoperability, problem-solving capabilities, and adaptability before adopting a UI framework.

Spring

Why Continuous Documentation Matters in DevOps

Why Continuous Documentation Matters in DevOps

Learn how code, configuration, logs, alerts, and monitoring create actionable documentation without relying on manual processes.

DevOps

Eclipse Che’s Plan for Cloud-Based Java DevOps

Eclipse Che’s Plan for Cloud-Based Java DevOps

The Eclipse Foundation is connecting a browser-based IDE with OpenShift and Docker to streamline Java development, testing, and deployment workflows.

DevOps

Moving Vinli’s Microservices Platform Beyond AWS

Moving Vinli’s Microservices Platform Beyond AWS

See how Vinli used Docker, Kubernetes, and disposable services to lower infrastructure costs and simplify operations across its connected-car platform.

DevOps

Best Practices for Automating Kubernetes Clusters

Best Practices for Automating Kubernetes Clusters

Learn how PXE boot, immutable operating systems, Cloud-Init, and Terraform can streamline consistent Kubernetes cluster deployment on premises or in the cloud.

DevOps

Building a Configurable Security Model for IoT Gateways

Building a Configurable Security Model for IoT Gateways

Learn how public key cryptography, secure software updates, Eclipse Kura, and the Everyware Software Framework can protect connected devices.

Other

Understanding the Proposed Java EE Security API

Understanding the Proposed Java EE Security API

See how JSR 375 was designed to bring portable, application-level security configuration to Java EE, from identity stores and passwords to roles and authorization.

Spring

Three Common Causes of Production Performance Problems

Three Common Causes of Production Performance Problems

Jevgeni Kabanov explains how excessive database queries, bloated sessions, and service latency can affect applications in production.

Spring

Why State-Based Streaming May Outgrow REST for High-Volume Systems

Why State-Based Streaming May Outgrow REST for High-Volume Systems

Explore how streaming, event-based programming, and client state can address scalability, latency, and bandwidth challenges in enterprise SOA systems.

Other

Build a Voice Skill for Amazon Echo

Build a Voice Skill for Amazon Echo

A step-by-step walkthrough of connecting an Alexa skill to AWS Lambda, defining intents, and testing voice interactions with a color example.

DevOps

How IPFS Could Transform P2P Application Infrastructure

How IPFS Could Transform P2P Application Infrastructure

Explore how content addressing, distributed storage, and decentralized networking could improve application resilience, data sovereignty, and scalability.

Other

Strategies for Building IoT Applications on Unreliable Networks

Strategies for Building IoT Applications on Unreliable Networks

Practical guidance for limiting data transfer, reducing latency, and designing IoT systems that remain effective when network bandwidth is constrained.

Other

The Qualities That Set Exceptional Developer Tools Apart

The Qualities That Set Exceptional Developer Tools Apart

Learn why seamless integration, ease of use, dependable functionality, and support for developer flow matter as much as a tool's core features.

Spring

Practical Strategies for Better System Performance

Practical Strategies for Better System Performance

Learn how NUMA configuration, modern CPU features, and debug containers can help teams improve performance in Docker-based environments.

DevOps

Why NetBeans IDE 8.1 Is Worth Revisiting

Why NetBeans IDE 8.1 Is Worth Revisiting

A look at NetBeans 8.1 improvements, including Node.js development, streamlined performance, dark themes, and its reputation for stability.

Spring

How Hortonworks Helps Administrators Tune Hadoop Clusters

How Hortonworks Helps Administrators Tune Hadoop Clusters

SmartSense and Smart Configuration target critical settings, performance bottlenecks, and component interactions across complex Hadoop deployments.

DevOps

How DevOps and Agile Practices Improve Software Quality

How DevOps and Agile Practices Improve Software Quality

Experts explain how collaboration, continuous integration, platform tooling, and security can bring development and operations closer together.

DevOps

Exploring Interactive Java Development with JShell

Exploring Interactive Java Development with JShell

See how Java 9's REPL runs statements interactively, manages code snippets, saves sessions, and supports debugging and experimentation.

Spring

How DevOps Metrics and Mode 2 Can Build Agility

How DevOps Metrics and Mode 2 Can Build Agility

Explore three practical ways to introduce DevOps, measure delivery performance, choose faster project modes, and evaluate PaaS technology.

DevOps

How QUIC Could Accelerate Web Application Traffic

How QUIC Could Accelerate Web Application Traffic

Google's experimental transport protocol targets connection latency, packet loss, congestion control, and wireless performance for HTTP applications.

DevOps

Why mobile application security is a growing enterprise challenge

Why mobile application security is a growing enterprise challenge

Explore the risks of untrusted devices, data leakage, weak service protection, and the security challenges of enterprise mobile applications.

Other

Using NoSQL to Turn Big Data Into Business Insight

Using NoSQL to Turn Big Data Into Business Insight

Learn how database choice, open source communities, data platforms, and analytics tools help enterprises extract value from growing data volumes.

Other

How HTTP/2 Improves Web Application Performance

How HTTP/2 Improves Web Application Performance

Explore the HTTP/2 features that reduce connection overhead, optimize resource delivery, and change established CSS, JavaScript, and domain-sharding practices.

Spring

Build Safer Applications with Simpler Java EE Security Roles

Build Safer Applications with Simpler Java EE Security Roles

Practical guidance for minimizing roles, avoiding hybrid LDAP groups, and making access management easier for security and operations teams.

Spring

Inside Netflix’s Shift to a Modular JavaScript Architecture

Inside Netflix’s Shift to a Modular JavaScript Architecture

Netflix refactored a large client application into independently testable modules, enabling better code sharing and more frequent updates.

DevOps

Practical Ways to Protect HTML5 Rendering Performance

Practical Ways to Protect HTML5 Rendering Performance

Understand how browser layout, graphics operations, GPU interactions, and profiling can help prevent performance bottlenecks.

Other

Building High-Performance Applications on Cloud Clusters

Building High-Performance Applications on Cloud Clusters

Learn how cloud clusters support HPC and big data workloads while addressing resource abstraction, node latency, storage, and integration challenges.

DevOps

How WebRTC Connects Browsers With VoIP and Phone Networks

How WebRTC Connects Browsers With VoIP and Phone Networks

Explore the signaling, codec, identity, and NAT traversal challenges involved in linking browser-based communications with SIP and PSTN services.

Other

How Virtual Networks Improve DevOps Application Quality

How Virtual Networks Improve DevOps Application Quality

Explore how SDN, VLANs, and programmable network services bring networking concerns into development, testing, and continuous delivery.

DevOps

Why Enterprise Teams Are Rethinking Development Environments

Why Enterprise Teams Are Rethinking Development Environments

Cloud IDEs simplify workspace setup and collaboration, while projects such as Eclipse Che and Flux address portability, scalability, and tooling gaps.

DevOps

A Practical Guide to Planning a Smooth Website Migration

A Practical Guide to Planning a Smooth Website Migration

Use data discovery, migration rehearsals, testing, backups, and a detailed timeline to move a website to a new portal with less risk.

DevOps

How Liferay Scaled Quality Across Distributed Teams

How Liferay Scaled Quality Across Distributed Teams

Ray Auge explains how team structure, modular software design, and continuous learning helped Liferay manage growth and quality.

Agile

Improving Software Quality Across ALM Stages

Improving Software Quality Across ALM Stages

SFactory's development lessons cover backend architecture, stack changes, cloud technology, and quality throughout the application lifecycle.

DevOps

Why Java Continues to Thrive After 20 Years

Why Java Continues to Thrive After 20 Years

A look at the Java platform's enduring balance of reliability, developer simplicity, concurrency innovation, and continued evolution.

Spring

Five Strategies for Safer Enterprise Mobile Applications

Five Strategies for Safer Enterprise Mobile Applications

Explore practical guidance for protecting corporate data on mobile devices through authentication, encryption, application containment, and careful access decisions.

Other

Avoid These Common HTML5 Coding Mistakes

Avoid These Common HTML5 Coding Mistakes

Improve your markup by learning practical ways to handle HTML versions, tags, attributes, page structure, comments, naming, and CSS.

Spring

Keep Behavior-Driven Development Projects on Track

Keep Behavior-Driven Development Projects on Track

Improve BDD with clearer requirements, behavior-focused tests, lean development, and continuous feedback between stakeholders and the business.

Agile

Bringing Google Maps Functionality to Java Desktop Apps

Bringing Google Maps Functionality to Java Desktop Apps

See how a JavaFX wrapper for Google Maps JavaScript APIs enabled mapping, waypoints, and pin drops in a desktop application.

Spring

Reduce JVM Latency for Faster Java Applications

Reduce JVM Latency for Faster Java Applications

Explore compilation thresholds, JIT behavior, and the tradeoffs involved in balancing startup time, memory use, and runtime performance.

Spring

Cleaner Portlet Namespaces and Context Paths in JSP

Cleaner Portlet Namespaces and Context Paths in JSP

Use JSTL variables and JSP expression language to simplify namespace handling and resource paths in portlet views.

Spring

Five Essential Lessons in Software Architecture

Five Essential Lessons in Software Architecture

Learn how modern architecture practices support maintainable systems, collaborative teams, lightweight design, and Agile change.

Spring

Adam Bien Challenges Java EE Design Patterns and EARs

Adam Bien Challenges Java EE Design Patterns and EARs

Java Champion Adam Bien argues for leaner enterprise applications, less architectural bloat, simpler modules, and a focus on business logic.

Spring

Choosing Between JPA Annotations and XML Mapping

Choosing Between JPA Annotations and XML Mapping

Explore the tradeoffs between annotation-based and XML-based JPA configuration, including maintainability, decoupling, compatibility, and update workflows.

Spring

Simplify Entity Discovery in Spring and Hibernate

Simplify Entity Discovery in Spring and Hibernate

Use package scanning to reduce manual ORM configuration and automatically find JPA entity classes in your application.

Spring

Accessing Hibernate Session Through JPA 2.0

Accessing Hibernate Session Through JPA 2.0

Learn how to use EntityManager.unwrap to obtain the underlying Hibernate Session with a more portable approach than JPA 1.0.

Spring

The Hidden Risks of Reusing Software Components

The Hidden Risks of Reusing Software Components

Understand how software reuse can create licensing, contractual, intellectual property, insurance, and financial problems.

Other

Four Strategies for Moving Mobile Apps Out of Production

Four Strategies for Moving Mobile Apps Out of Production

Plan app retirement carefully by informing users, managing data and APIs, and providing a smooth transition to a replacement application.

Spring

Optimize Tomcat with Two Key Production Settings

Optimize Tomcat with Two Key Production Settings

Configure connector thread capacity and GZIP compression to help Tomcat use server hardware efficiently and deliver text responses faster.

Spring

Improve Tomcat Performance by Consolidating Log Handlers

Improve Tomcat Performance by Consolidating Log Handlers

A small logging.properties configuration change can reduce duplicate handler overhead and help Tomcat devote more resources to application workloads.

DevOps

Why Strong Requirements Improve Software Projects

Why Strong Requirements Improve Software Projects

Practical guidance on documenting requirements, managing change, and aligning stakeholders throughout the software development lifecycle.

Other

When Traditional HTTP Services Beat SOAP and REST

When Traditional HTTP Services Beat SOAP and REST

Explore a practical approach to reusing legacy GET and POST endpoints for efficient APIs and mobile application support.

Spring

Managing the Cost, Quality, and Time Tradeoff

Managing the Cost, Quality, and Time Tradeoff

Understand why software projects succeed or fail based on how leaders evaluate constraints, set expectations, and manage competing priorities.

Other

Optimize JSF 2.0 Facelet Applications for Production

Optimize JSF 2.0 Facelet Applications for Production

Configure Facelets comments, refresh checks, and development debugging to improve JSF performance and simplify troubleshooting across environments.

Spring

Naming RESTful APIs for Clearer Service Contracts

Naming RESTful APIs for Clearer Service Contracts

See how meaningful URL structure and resource separators help description languages and client applications work more effectively.

Spring

Why Agile Development Fits Mobile Application Lifecycle Management

Why Agile Development Fits Mobile Application Lifecycle Management

Learn how iterative planning, rapid validation, and Web services can help enterprise teams manage the speed and uncertainty of mobile app development.

Agile

Build a More Effective Agile Release Process

Build a More Effective Agile Release Process

Explore practical ways to coordinate development and operations, automate recurring work, gather feedback, and plan deployments around production realities.

Agile

How to Prevent Application Deployment Problems

How to Prevent Application Deployment Problems

Explore practical ways to identify deployment risks, improve testing, coordinate with end users, and roll out application changes safely.

DevOps

Evaluating Cloud Migration for Legacy Applications

Evaluating Cloud Migration for Legacy Applications

Learn how to decide between redeployment and re-architecting, prioritize application migrations, and avoid common cloud deployment risks.

DevOps

Why Predictable Response Times Matter

Why Predictable Response Times Matter

Fast pages are not enough: consistent application responsiveness helps users build reliable expectations and experience fewer frustrating delays.

Other

Defining Clear and Testable Application Performance Requirements

Defining Clear and Testable Application Performance Requirements

Learn how to use the SMART framework to create specific, measurable, attainable, relevant, and time-bound performance requirements.

Spring

Automating Load Balancing Across Scalable Web Servers

Automating Load Balancing Across Scalable Web Servers

Learn how cloud, hybrid infrastructure, monitoring, and automated scaling can improve application resilience and reduce manual operations.

DevOps

The Business Case for Application Integration

The Business Case for Application Integration

Explore the benefits, barriers, and architectural approaches that can make enterprise application integration a higher business priority.

Spring

Explore Five Built-In Features in Liferay Portal

Explore Five Built-In Features in Liferay Portal

A brief video demonstrates Liferay Portal's built-in social tools, browser navigation, and wiki configuration capabilities.

Other

A Practical Baseline for Comparing Java Web Tools

A Practical Baseline for Comparing Java Web Tools

Start with the essential Java development stack, then evaluate whether additional tools solve real problems or simply add training overhead.

Spring

How Better User Interfaces Improve Application Outcomes

How Better User Interfaces Improve Application Outcomes

Learn how intuitive design, user testing, HTML5, and CSS3 can encourage adoption and help people use web applications more effectively.

Spring

Understanding Safe and Unsafe Type Casting in Java

Understanding Safe and Unsafe Type Casting in Java

See how narrowing conversions discard high-order bits and why casting values outside a target type's range can change the result.

Spring

Servlet RequestDispatcher: Include and Forward Compared

Servlet RequestDispatcher: Include and Forward Compared

Understand how include and forward differ in output stream handling and the generation of markup through JSP and Servlet resources.

Spring

Configure Hibernate Second-Level Caching with Spring and Ehcache

Configure Hibernate Second-Level Caching with Spring and Ehcache

This step-by-step guide covers the required libraries, cache annotations, DAO query hints, Ehcache configuration, and persistence settings.

Spring

Design Web Pages That Work Across Browsers

Design Web Pages That Work Across Browsers

Practical guidance on CSS defaults, accessible font sizing, flexible dimensions, and element positioning for more consistent browser rendering.

Spring

Practical HTML Practices for Cross-Browser Compatibility

Practical HTML Practices for Cross-Browser Compatibility

Use standards-compliant markup, CSS alternatives, code validation, and careful HTML5 adoption to reduce browser testing and debugging issues.

Spring

Designing Maintainable SOA Systems with Java EE

Designing Maintainable SOA Systems with Java EE

Tony Ng discusses service boundaries, interface compatibility, REST and web services, cloud deployment, and practical guidance for Java developers.

Spring

How to Select an Agile Methodology for Your Team

How to Select an Agile Methodology for Your Team

Explore XP, Scrum, and Feature-Driven Development to understand their practices, tradeoffs, and ideal project environments.

Agile

A Practical Method for Estimating Java Project Effort

A Practical Method for Estimating Java Project Effort

Use accurate use cases, development planning, and a structured five-step algorithm to create more reliable Java project estimates.

Spring

Tools for Monitoring and Tuning Java Performance

Tools for Monitoring and Tuning Java Performance

Learn how a selection of Java monitoring, heap analysis, garbage collection, and system tuning tools can help troubleshoot application performance.

Spring

Choosing Between Agile, Waterfall, and a Hybrid Method

Choosing Between Agile, Waterfall, and a Hybrid Method

Explore how Agile and Waterfall differ, where each approach fits, and why combining them can help software teams balance flexibility with discipline.

Agile

How HTML5 and Java Shape Modern Web Development

How HTML5 and Java Shape Modern Web Development

This overview examines modular HTML5 front ends, Java-based services, browser capability detection, and mobile Web architecture.

Spring

Create a Basic REST Service in Java

Create a Basic REST Service in Java

Follow a practical example using Jersey, web.xml, and Tomcat 7 to deploy a Java service that responds to HTTP GET requests.

Spring

Best Practices for a Successful BPM Deployment

Best Practices for a Successful BPM Deployment

Discover how to model real workflows, begin with practical low-risk projects, automate routine processes, and involve end users throughout BPM implementation.

Other

Create and Test a Java SOAP Service in NetBeans 7

Create and Test a Java SOAP Service in NetBeans 7

Follow a practical walkthrough for building a Rock-Paper-Scissors web service, deploying it to GlassFish, and inspecting its SOAP requests and responses.

Spring

Exploring CDI Portable Extensions and Implementations

Exploring CDI Portable Extensions and Implementations

Learn how CDI portable extensions work, review major Java EE 6 implementations, and compare CDI with Seam, Spring, and Guice.

Spring

Using JSP Views with JavaServer Faces 2.0

Using JSP Views with JavaServer Faces 2.0

A simple web.xml configuration change tells JSF 2.0 to load JSP files rather than its default XHTML and Facelets views.

Spring

Understanding JSF 2.0 Managed Bean Configuration Precedence

Understanding JSF 2.0 Managed Bean Configuration Precedence

See how annotations and faces-config.xml work together, and why XML settings override annotated bean behavior at runtime.

Spring

Use Java and XML Configuration Together in Spring 3

Use Java and XML Configuration Together in Spring 3

A practical example shows how @ImportResource combines annotation-based and XML bean definitions in one Spring application context.

Spring

Designing Distributed Enterprise Applications with EJB and Spring

Designing Distributed Enterprise Applications with EJB and Spring

Learn how EJB 3.0, Spring dependency injection, JPA, and Hibernate can work together across presentation, service, business, and data access layers.

Spring

Simplify JDBC Database Access with Spring JdbcTemplate

Simplify JDBC Database Access with Spring JdbcTemplate

See how Spring 3.0 reduces JDBC boilerplate by handling connections, statements, resource cleanup, and exception translation for database inserts.

Spring

Optimize JBoss EAP 4.3 for Production Performance

Optimize JBoss EAP 4.3 for Production Performance

These practical recommendations cover JVM and operating system tuning, Apache and application server trimming, deployment choices, logging, and capacity testing.

Spring

When Design Patterns Hurt More Than They Help

When Design Patterns Hurt More Than They Help

Design patterns can improve communication, but overusing them adds needless complexity. This article argues for balance and the simplest workable design.

Spring

A Beginner-Friendly Guide to Learning Hibernate and JPA

A Beginner-Friendly Guide to Learning Hibernate and JPA

Follow practical tutorials and videos that explain environment setup, Java annotations, database connections, and CRUD operations with Hibernate.

Spring

Improve WebSphere Portal 7 Startup and Server Performance

Improve WebSphere Portal 7 Startup and Server Performance

Learn how to match the initial and maximum heap sizes, disable verbose garbage collection, and apply the changes in the WebSphere Integrated Solutions Console.

Spring

Managing CDI Conversations in Java EE 6

Managing CDI Conversations in Java EE 6

Explore transient and long-running conversations, JSF workflows, lifecycle control, and the CDI Conversation API through a multi-step account creation example.

Spring

Finding Slow Ajax Events with ZK Gazer

Finding Slow Ajax Events with ZK Gazer

Explore ZK PerformanceMeter and EventInterceptor implementations for tracking request timing, event handling costs, and application bottlenecks.

Spring

Handling XML Escapes and Unicode Text in XAML

Handling XML Escapes and Unicode Text in XAML

Understand the reserved characters in XAML attributes and use Unicode syntax to display symbols such as Greek letters in WPF.

Spring

Using Spring Converters and Formatters

Using Spring Converters and Formatters

See how to create stateless converters, register them with a ConversionService, and use formatters for Spring MVC and expression language data binding.

Spring

Tech Tips

Tech Tips

My Tips on Java, AI and technology.