...

What We Think

Blog

Keep up with the latest in technological advancements and business strategies, with thought leadership articles contributed by our staff.
TECH

February 12, 2026

How to Manage Remote Docker with Portainer: A Client-Server Guide

As infrastructure scales, DevOps engineers often face the challenge of maintaining multiple container environments. Logging into individual servers via SSH to check container health is inefficient and error-prone. To solve this, you need a robust solution to manage remote Docker with Portainer.

View More
TECH

February 12, 2026

A Practical Guide to Building Recommender Systems with NMF and Latent Factors

In modern digital content platforms, many systems rely on techniques like Non-Negative Matrix Factorization (NMF) to power their recommendations. At the same time, users are often overwhelmed by a large number of choices. Consequently, most people now prefer scrolling through recommended lists. Instead of actively searching for new content, they simply pick something that catches their eye. As a result, the quality of these recommendations plays a key role in shaping the user experience on the platform.

View More
TECH

February 12, 2026

Understanding Value Types and Reference Types in Programming

When working with languages like JavaScript, Java, C#, Python, and many others, you will always encounter two fundamental concepts: Value Types and Reference Types. They may sound a bit technical, but they simply describe how data is stored in memory and how it behaves when assigned to variables or passed to functions.

Understanding the difference helps you avoid unexpected bugs and write cleaner, more predictable code.
In this post, we’ll explore:
    • What Value Types are
    • What Reference Types are
    • Why the difference matters
  • Common bugs caused by misunderstanding the two
  • Practical examples (JavaScript and C#)

1. What Is a Value Type?

A Value Type stores the actual value directly in memory (typically on the stack).
Key behavior: When you assign a Value Type to another variable, the value is copied. The two variables become completely independent.
Common Value Types
  • Number (int, float…)
  • Boolean
  • Char
  • Struct (C#)
  • Enum
Example (JavaScript)

let a = 10;
let b = a; // b receives a copy
a = 20;

console.log(a); // 20
console.log(b); // 10
Explanation: b holds its own copy of the value, so changes to a do not affect it.

2. What Is a Reference Type?

A Reference Type stores a reference (memory address) that points to data located on the heap.
Key behavior: Assigning a Reference Type to another variable copies the reference, not the actual data. Both variables point to the same object in memory.
Common Value Types
  • Object
  • Array
  • Function
  • Class instances
  • Collections (List, Dictionary, Map…)
Example (JavaScript)

let obj1 = { name: "David" };
let obj2 = obj1; // both point to the same object

obj1.name = "Alex";

console.log(obj1.name); // Alex
console.log(obj2.name); // Alex
Explanation: Both variables refer to the same object in memory.

3. Value Types vs Reference Types: Visual Summary

Feature Value Type Reference Type
Stored in Stack Heap (reference on stack)
What is stored Actual value Address pointing to data
Assignment behavior Copies the value Copies the reference
Independence between variables Yes No
Examples int, float, bool object, array, class

4. Shallow Copy vs Deep Copy

When dealing with Reference Types, copying becomes more complex.

Shallow Copy

Copies only the top-level structure; nested objects still share references.

Deep Copy

Copies all levels of data; nothing is shared.
Example (JavaScript deep copy):

let obj1 = { name: "Dũng", info: { age: 30 }};
let obj2 = structuredClone(obj1);

obj1.info.age = 31;

console.log(obj2.info.age); // 30 (independent)

5. Final Thoughts

Key takeaway
  • Value Types store actual values
  • Reference Types store memory references
  • Copying a Value Type creates an independent variable
  • Copying a Reference Type creates shared memory
  • Copying a Reference Type creates shared memory
Understanding these concepts will help you write more predictable, bug-free code—especially when dealing with objects, arrays, or complex data structures
Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.
View More
TECH

February 12, 2026

Stop Fearing Replacement: Turn AI into Your Powerful QC Assistant

Artificial Intelligence (AI) is no longer a futuristic concept; it is rapidly transforming the IT industry. From assisting developers in writing code to analyzing massive datasets, AI has become an integral part of the Software Development Life Cycle (SDLC).

This rapid evolution raises an important question—especially for Quality Control (QC) professionals:

Will AI replace us? To answer this, we must look beyond the hype and understand the synergy between human intuition and machine efficiency.

1. The True Essence of Quality Control

 QC Working

To understand AI’s impact, we must first redefine what QC actually does. Many believe QC is just about "finding bugs." In reality, even at a junior level, a QC professional is a guardian of quality throughout the SDLC by:

  • Ensuring requirements are clear and testable.
  • Identifying risks early in the design phase.
  • Features work as expected for real users
  • Bridging the gap between business needs and technical execution.
“Quality is not just the absence of bugs; it’s the presence of value. This is where the human element begins.”

2. Where AI Shines: The Ultimate Speed Booster

AI excels in tasks that require high-speed processing and repetitive workflows. It doesn’t get tired, and it doesn’t lose focus.

  • Regression Testing: AI ensures 100% coverage of repetitive scenarios with perfect consistency.
  • Test Data Generation: It can instantly create vast sets of complex edge cases that a human might overlook.
  • Predictive Analytics: By analyzing historical logs, AI can predict which modules are most likely to fail, allowing teams to act proactively.

3. Why AI Can’t (and Won’t) Replace the QC Mindset

While AI is powerful, it lacks the "human touch" required for high-level quality assurance. There are dimensions of testing that code simply cannot reach:

  • Business Context: AI struggles to understand why a feature exists or the complex business rules behind it.
  • Exploratory Testing: Machines follow paths; humans explore. QC professionals use intuition to find issues in illogical flows.
  • User Experience (UX): AI can check if a button works, but it can’t tell you if the interface "feels" frustrating or unintuitive for a real person.
  • Decision Making: When requirements are vague or conflicting, AI stalls. Humans collaborate, communicate, and negotiate.

QC professionals can think like real users, question unclear requirements, and notice subtle issues that don’t “feel right.” This human perspective is something AI cannot replicate.

4. Working Smarter: The "Super-Assistant" in Action

 QC Working with AI

AI isn’t taking your job; it’s upgrading your role. As a Junior QC, you can leverage AI to accelerate your growth:

  • Brainstorming: Use AI to generate initial test case ideas and negative scenarios.
  • Efficiency: Summarize complex test reports and automate documentation.
  • Learning: Review AI-generated suggestions against actual business logic to sharpen your own critical thinking.

Example: When testing a Login feature, let AI suggest the standard cases. You then focus your energy on the complex security redirects or specific localized business rules.

5. Thriving in the AI Era: A Roadmap for Junior QCs

The repetitive parts of testing may be automated, but the Quality Engineer will always be needed. To stay ahead:

  • Embrace AI as a Tool: Use it to handle the "boring" stuff so you can focus on strategy.
  • Deepen Domain Knowledge: Understand your industry (Fintech, E-commerce, etc.) better than any machine.
  • Master Soft Skills: Communication and empathy are your "unfair advantages" over AI.
References & Further Reading
📚

This article was inspired by and references insights from:
Will AI Replace Software Testers? — GeeksforGeeks

Ready to get started?

Ready to elevate your software quality with the perfect blend of AI efficiency and human expertise? Our team is here to help.

Contact Our Experts Today
View More
TECH

February 12, 2026

How IT Comtors Secure Client Approval for AI Tools

In the era of accelerated development, integrating generative AI tools like Google Gemini and GitHub Copilot into our workflow is becoming essential for boosting productivity. However, adopting these tools in client projects, especially in offshore development settings, requires overcoming a critical hurdle: client approval.

 

The Comtor (Communication Translator) plays a vital role in this process, translating not just language, but also technical necessity into business value that addresses client security and cultural concerns.

Here are specific examples of dialogues a Comtor can use to secure AI tool usage permission.

Phase 1: Acknowledging Concerns and Establishing Trust (Transparency)

Before introducing the solution, the Comtor must first acknowledge the client's perspective, especially their concerns regarding data security, code ownership, and compliance.

Comtor Dialogue:
“We understand that utilizing new AI tools like Gemini/Copilot raises concerns regarding code ownership and data confidentiality. Can you please specify your current security policy regarding the use of external generative AI, and what level of control you require over the data being processed?"

  • Focus: Addressing Transparency/Security. This opens the door to a productive conversation rather than presenting a request as a fait accompli.

 

Phase 2: Highlighting Value and Mitigating Risk (The Benefit/Risk Trade-off)

The Comtor must shift the focus from "using an AI tool" to "achieving required quality and efficiency." The focus should be on how AI helps solve existing project challenges.

Comtor Dialog:
"Our current project requires extensive unit testing, which is increasing our manual effort. By using Copilot for generating unit test cases, we anticipate a 20% reduction in coding time while ensuring higher test coverage. This allows us to allocate more resources to complex logic.”

  • Focus: Efficiency & Quality. Ties the AI tool directly to solving a known issue (high manual testing effort).

"To mitigate security risks, we propose using the Enterprise version of Gemini/Copilot, which guarantees that our proprietary code is not used for training the model. We can also establish an SLA for data handling."

  • Focus: Risk Mitigation. Directly addresses the "data security" concern by detailing the specific version or agreement that ensures data isolation.

 

Phase 3: Defining the Scope and Monitoring (Governance)

Once the client is receptive, the Comtor must define the precise scope and establish governance rules, aligning with the project's minimum visibility level.

Comtor Dialog:
"Initially, we only seek permission to apply AI to the Coding and Unit Test phases. We will start by restricting usage to non-critical modules and will document every instance of AI-generated code."

  • Focus: Scope Definition. Sets clear boundaries and allows the client to grant incremental approval.

"We will share a regular report on AI usage, detailing the time saved and any code review findings related to AI-generated snippets, aligning with our agreed minimum visibility level. After three sprints, we can review the results and decide on expansion."

  • Focus: Monitoring & Review. Establishes transparency and a defined review schedule, essential for building long-term trust.

 

A Comtor's success in gaining AI tool approval hinges on replacing fear with assurance. By being proactive in addressing security, quantifying the efficiency gains, and providing clear governance structures, the Comtor transforms the request from a risk to a strategic productivity gain for the project.

Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.

 

Refer

https://unsplash.com/s/photos

View More
TECH

February 12, 2026

Mastering Excel in Java with Apache POI

In the Java ecosystem, dealing with Microsoft Office documents is a ubiquitous requirement. Whether you are generating financial reports, exporting data grids, or parsing user uploads, Apache POI is the de facto standard library for the job.

View More
WEBINAR

February 11, 2026

IVC Podcast Series - Episode #1: Bridging Cultures While Scaling Business

Episode #1: Bridging Cultures While Scaling Business

ISB Vietnam Podcast

As global companies scale their technology teams, software delivery increasingly happens across borders, cultures, and time zones. While this creates opportunities for speed and cost efficiency, it also introduces a less visible challenge: cross-cultural communication.

In the first episode of the ISB Vietnam Podcast, hosts Nikki Skovmose Business Development Rep and Peter Ratcliff, International Sales Manager, explore how cultural differences between East and West shape the way software teams communicate, make decisions, and deliver results.

What This Episode Covers

Cultural Foundations of Communication

  • The cultural and philosophical roots behind different communication styles

Why Projects Fail Beyond Technology

  • Why many software project challenges are cultural rather than technical

Real-World Delivery Misalignment

  • Practical examples of misalignment in cross-border software delivery

Adapting Without Losing Quality

  • How ISB Vietnam’s teams successfully adapt their communication while maintaining high quality standards to align with global delivery models.

Practical Insights From Real Experience

Rather than focusing on theory, the discussion is grounded in practical lessons from real-life experience, drawn from hosts Nikki and Peter’s combined decades of work with international clients and distributed engineering teams.

Who Should Watch This Episode

For founders and CTOs considering offshore development but unsure where to start, this episode offers a practical, experience-based view on how to reduce risk, improve collaboration, and turn outsourcing into a long-term competitive advantage.

Watch the Full Episode

🎧 Watch the full episode on our YouTube channel:
👉 https://www.youtube.com/watch?v=0DjOawhwKOchttps://

What’s Coming Next

More episodes are coming soon, covering leadership, delivery, and real-world experiences of building software across cultures - recorded from the heart of Vietnam, Ho Chi Minh City, where ISB Vietnam is headquartered.

 

 

View More
TECH

January 6, 2026

How to Create Professional Sequence Diagrams Using Mermaid.js

If you are a developer or a technical writer, you know the pain of creating sequence diagrams. You open a GUI tool like Visio or Lucidchart, drag a box, drag another box, draw a line, realize the line isn't straight, adjust the line, and then realize you need to move everything to the right to fit a new actor.

It’s tedious. It’s hard to version control. It feels like drawing, not engineering.

Enter Mermaid.js. Mermaid allows you to create diagrams using text and code. It renders Markdown-like syntax into beautiful, professional diagrams. In this guide, we will master the art of writing Sequence Diagrams as code.

What is Mermaid and Why Use It?

Mermaid is a JavaScript-based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.

Why choose Mermaid?

  • Diagrams as Code: You store your diagrams in your Git repository as .md files.

  • Version Control: You can see diffs in your diagrams just like you see changes in your code.

  • Speed: No more pixel-pushing. You focus on the logic; Mermaid handles the layout.

  • Integration: Supported natively by GitHub, GitLab, Notion, Obsidian, and VS Code.

The "Hello World" of Sequence Diagrams

To create a sequence diagram in a Markdown file, you use a code block with the mermaid identifier.

Let's start with the absolute basics: Alice talking to Bob.

Code snippet
sequenceDiagram
    Alice->>Bob: Hello Bob, how are you?
    Bob-->>Alice: I am good, thanks!

The Output: The code above tells Mermaid to draw two participants. The ->> represents a solid arrow (request), and -->> represents a dotted arrow (response).

Defining Participants and Actors

By default, Mermaid creates participants in the order they appear. However, for complex diagrams, you often want to define them explicitly to control the order or use aliases.

  • participant: Renders as a rectangle (default).

  • actor: Renders as a stick figure.

  • as: Allows you to use short aliases in your code.

Code snippet
sequenceDiagram
    actor U as User
    participant FE as Frontend
    participant API as Backend API
    participant DB as Database

    U->>FE: Clicks button
    FE->>API: GET /users
    API->>DB: Select * from users

The Output: Notice how we used U, FE, and API in the code, but the diagram renders the full names.

Activations (Lifelines)

In a real system, a service takes time to process a request. We visualize this using "activation bars" (the vertical rectangles on the lifeline).

  • Long way: activate Alice / deactivate Alice

  • Short way (Recommended): Add + to the end of the arrow to activate, and - to deactivate.

Code snippet
sequenceDiagram
    participant Client
    participant Server
    participant DB

    Client->>+Server: Request Data
    Note right of Server: Server is processing...
    Server->>+DB: Query Data
    DB-->>-Server: Return Results
    Server-->>-Client: 200 OK

The Output: The grey bars indicate that the Server and Database are "busy" processing the request. This is crucial for analyzing performance bottlenecks.

Advanced Logic: Loops and Alternatives

Software isn't linear; it has loops and if/else conditions. Mermaid handles this with loop, alt (alternative), and opt (optional).

The alt Block (If / Else)

This is used to show mutually exclusive paths, such as a successful login vs. a failed login.

Code snippet
sequenceDiagram
    actor User
    participant Auth as Auth Service
    
    User->>Auth: Submit Credentials

    alt Credentials Valid
        Auth-->>User: Return Token (200 OK)
    else Credentials Invalid
        Auth-->>User: Return Error (401 Unauthorized)
    end

The loop Block

Used for repeated actions, such as polling or retries.

Code snippet
sequenceDiagram
    participant Client
    participant Server

    loop Every 5 seconds
        Client->>Server: Health Check
        Server-->>Client: Healthy
    end

The Output (Complex Logic): Here is a visualization of how these logical blocks appear in a rendered diagram.

Pro Tips for Clean Diagrams

  1. Use Notes: You can add notes to clarify specific steps using Note right of [Actor] or Note over [Actor1],[Actor2].

  2. Keep it Simple: If your sequence diagram is getting too wide or too long, consider breaking it into two separate diagrams.

  3. Use the Live Editor: When learning, use the Mermaid Live Editor. It gives you instant feedback as you type.

Conclusion

Switching to "Diagrams as Code" with Mermaid is a game-changer for developer productivity. It keeps your documentation close to your code, makes updates trivial, and ensures your diagrams always look consistent.

Next time you need to document an API flow, close Visio and open your Markdown editor. Your future self (and your team) will thank you.

Ready to get started?

Contact IVC for a free consultation and discover how we can help your business grow online.

Contact IVC for a Free Consultation

View More
TECH

January 6, 2026

Mendix - A Siemens Business

    1. Have you ever heard of 'Fusion Teams' – where developers and business experts collaborate to build applications? That is exactly what Mendix enables. It’s no coincidence that this Low-code platform has been named a Leader by Gartner for consecutive years. Let’s dive into what makes Mendix so appealing to both professional developers and citizen developers alike!
  1. 1. What is Mendix?

    Mendix is an enterprise Low-Code application development platform (owned by Siemens).

    This platform allows organizations to build, deploy, and manage software applications rapidly without the need for extensive manual coding.

    Key Highlights: Accelerates software development, integrates AI (via the Mendix AI assistant - MAIA), easily integrates with other systems (such as SAP, AWS), and supports comprehensive digital transformation.

    Goal: To help companies modernize legacy systems, automate processes, and create new digital experiences for customers.

  2. 2. How are companies using Mendix?

    Many major global corporations across various sectors (Finance, Manufacturing, Logistics, Healthcare, etc.) are using Mendix to solve specific challenges:

    Mendix Customer

    1. Siemens Energy: Used Mendix to scale from 4,000 to 40,000 internal users. They developed over 200 apps to drive innovation and increase workflow efficiency globally.

    2. Zurich Insurance: Uses Mendix to simplify business processes and support business strategy through rapid app development, serving customers better.

    3. Glico (Food & Confectionery): Applied in Smart Manufacturing and their digital transformation journey to manage production processes more effectively.

    4. WADA (World Anti-Doping Agency): Uses it to deliver software faster, helping manage athlete data and keep sports clean.

    5. Jabil (Manufacturing): Deployed over 100 apps to improve global factory operations and promote high customization in manufacturing.

    6. HTM (Public Transport): Achieved 60% faster application development speeds, improving employee efficiency and transport system management.

  3. 3. Which project types are best suited for Mendix?

    Not every software project should use Mendix. It is best suited when:

    1. Urgent/Time-critical: Applications need to be completed in weeks rather than months.

    2. Frequent Changes: Business processes change constantly; apps need rapid modification without crashing the system.

    3. Internal Digital Transformation: Custom-built ERP/CRM systems, employee portals, warehouse management, and supply chain management apps.

    4. Legacy Modernization: Replacing outdated software (like Lotus Notes, FoxPro) with modern web interfaces.

  4. 4. How does Mendix fit different users?

    • For "Citizen Developers" (Business Users/Non-coders)

      These are employees who understand business processes (HR, Accounting, Logistics...) but do not have deep programming knowledge.

      Why it fits:

      • Drag & Drop Interface: Mendix provides "Mendix Studio" on the web. Users can drag and drop buttons, forms, and design workflows using visual diagrams without writing a single line of code.

      • Solving the "Excel" Pain: Suitable for those managing data with dozens of disjointed Excel files who want to turn them into a centralized, secure management app.

      • Rapid Prototyping: Business users can visualize app ideas to present to IT teams or leadership.

    1. For Professional Developers

      Those who already know Java, JavaScript, CSS, SQL...

      Why it fits:

      • Eliminating Tedious Work: Mendix automates repetitive tasks like database setup, basic security, or UI/UX design. Developers can focus on complex logic.

      • Extensibility: Unlike closed "No-code" tools, Mendix allows developers to write code (Java actions, JavaScript widgets) to handle complex requirements that drag-and-drop tools cannot.

      • System Integration: Excellent support for connecting APIs (REST, SOAP, OData) and integrating with major systems like SAP, Salesforce, and AWS rapidly.

Low-code isn't here to replace programmers; it’s here to liberate us from tedious, repetitive tasks so we can focus on complex logic. With powerful AI support and limitless integration capabilities, Mendix is truly a formidable tool that every modern developer should experience at least once.
Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.

 

View More
TECH

January 6, 2026

Introducing Plan Mode Cursor AI

Plan Mode was introduced by Cursor in October 2025. Plan Mode assists AI Agents  in executing Complex Projects and long-term tasks by providing clear Context  and Direction right from the start. In other words, Plan mode sets up a plan before execution in Cursor AI.

1. What Plan Mode does?

  • Does not execute immediately - AI will NOT automatically edit files, run commands, or change your system
  • Plan Mode does deep research into your codebase
  • Plan Mode ​​asks you for clarification on requirements (to avoid misunderstandings).
  • Plan Mode Creates a detailed plan (It lets you review/edit the plan like a design document.)
  • Only then does it generate the code.

2. How to use Plan Mode

  • Start planning by pressing Shift + Tab in the agent input.
  • Answer clarifying questions on your requirements for the best output quality.
  • Review or edit the detailed plan, then build directly from your plan when ready.
  • Optionally, save the plan as a Markdown file in your repository for future reference.

3. Example in my demo project

I have a plan to change language from English to Vietnamese in my demo project.

Start planning by pressing Shift + Tab in the agent input.
" change language from English to Vietnamese"

Cursor will ask you a few questions to Clarify  your Requirements .
you only select the Answer and click Continue

Plan Mode Cursor AI- ask question

Cursor will create a detailed plan (Markdown file)

It lets you review/edit the plan like a design document.

Plan Mode Cursor AI - create plan

Then click to Build the plan when ready.

Plan Mode Cursor AI-Build

You can Review the results once more before applying them

Plan Mode Cursor AI-review result

As you can see, Plan Mode will be very useful when you have the following needs:

  • For complex, multi-step tasks
  • When there are Major changes in the codebase:
  • When you want to preview what the Cursor AI (Agent)  ​​will do before execution
  • When you need to ensure the Cursor AI (Agent) ​​correctly understands the requirements.

 

Whether you need scalable software solutions, expert IT outsourcing, or a long-term development partner, ISB Vietnam is here to deliver. Let’s build something great together—reach out to us today. Or click here to explore more ISB Vietnam's case studies.

More Cursor AI

refer: https://cursor.com/blog/plan-mode

View More
1 2 3 4 5 26
Let's explore a Partnership Opportunity

CONTACT US



At ISB Vietnam, we are always open to exploring new partnership opportunities.

If you're seeking a reliable, long-term partner who values collaboration and shared growth, we'd be happy to connect and discuss how we can work together.

Add the attachment *Up to 10MB