Alternative thoughts on Retrieval-Augmented Generation (RAG)

Solutions are always tailored to specific problems. There’s no one-size-fits-all approach. The techniques vary depending on needs like the level of customization, available data sources, and system complexity. The strategy should be based on these factors. Here are a few alternative approaches we can consider, if RAG is optional:

Embedding-Based Search with Pretrained Models: This is a relatively easy approach to implement, but it doesn’t offer the same capabilities as RAG. It works well when simple retrieval is enough and there’s no need for complex reasoning.

– Knowledge Graphs with AI Integration: Best for situations where structured reasoning and relationships are key. It requires manual effort and can be tricky to integrate, but it offers powerful semantic search capabilities and supports reasoning tasks.

– Fine-Tuned Language Models: This is ideal for stable, well-defined datasets where real-time data isn’t crucial. Since the data is straightforward, generating responses is easier. It performs well when the data is comprehensive but may struggle with queries outside the trained data.

– Hybrid Models: A mix of retrieval and in-context learning. While it’s a bit more complex to implement, it delivers high accuracy and flexibility because it combines different techniques. Use this when you need high accuracy and rich content.

– Multi-Modal Models: These models handle different types of data (eg., images, text) and provide combined insights. For example, they can retrieve images from documents and analyze them. However, they require solid infrastructure, which can get expensive.

– Rule-Based Systems: These expert systems rely on predefined rules to generate responses. They’re great for regulated industries like finance & legal, as they offer transparency and auditability. However, they’re typically not scalable and may not handle unstructured data effectively.

– End-to-End Neural Networks (for Q&A): These models are trained specifically for question-answering tasks. They perform well for defined tasks like Q&A and give concise answers without the need for complex pipelines. But they require large, annotated datasets and may underperform if there isn’t enough related data.

Since this field is still evolving, it’s important to stay on the lookout for new or improved techniques based on the specific requirements

300 technical phrases to sound outsmart in your daily conversations and meetings

Technically, I am not a fan of this but tired of laughing without facial expressions throughout my career, especially when talking to sales teams. Thanks to ChatGPT, here is the most abused jargons.

  1. Edge case
  2. Low-hanging fruit
  3. Leverage synergies
  4. Move the needle
  5. Quick win
  6. Paradigm shift
  7. Boil the ocean
  8. Blue-sky thinking
  9. Circle back
  10. Drill down
  11. Push the envelope
  12. Scalable solution
  13. Out-of-the-box thinking
  14. Core competency
  15. Pain point
  16. Big picture
  17. Synergize efforts
  18. Strategic alignment
  19. Actionable insights
  20. MVP (Minimum Viable Product)
  21. Ecosystem approach
  22. Data-driven decision-making
  23. Critical path
  24. Hit the ground running
  25. Robust architecture
  26. Seamless integration
  27. Optimize for performance
  28. In the weeds
  29. Future-proof
  30. Stakeholder buy-in
  31. Granular level
  32. At scale
  33. Cross-functional collaboration
  34. High-level overview
  35. Vertical integration
  36. Closing the loop
  37. Mission-critical
  38. Value proposition
  39. Game changer
  40. Lean process
  41. Disruptive innovation
  42. Pain points mitigation
  43. Agile mindset
  44. Best practices
  45. Customer-centric approach
  46. Best-in-class
  47. Low-risk, high-reward
  48. Fail-fast approach
  49. Digital transformation
  50. Continuous improvement
  51. Go-to-market strategy
  52. Technical debt
  53. Cloud-native architecture
  54. Holistic approach
  55. Bandwidth constraints
  56. Action plan
  57. Operationalize the process
  58. Right-sizing the solution
  59. Minimal footprint
  60. Shift left
  61. High-touch approach
  62. Business as usual (BAU)
  63. KPI (Key Performance Indicators)
  64. Thought leadership
  65. Single source of truth
  66. Deliverables alignment
  67. Fast-tracking initiatives
  68. Technical enablement
  69. Customer journey mapping
  70. Product-market fit
  71. Tipping point
  72. Pushing the boundaries
  73. Burning platform
  74. Clear path forward
  75. Closing the gap
  76. Data democratization
  77. Real-time optimization
  78. Heads-down execution
  79. Proof of concept (POC)
  80. Double down on effort
  81. Down the line
  82. Capacity planning
  83. Bulletproof strategy
  84. Architecture runway
  85. Ready for primetime
  86. Iterate quickly
  87. Low-fidelity prototype
  88. Growth hacking
  89. Agile workflow
  90. Full-stack solution
  91. Resource constraints
  92. Automation at scale
  93. Failover mechanism
  94. Big data insights
  95. Architectural pivot
  96. Tech stack enhancement
  97. Greenfield development
  98. Heavy lifting
  99. Blockers and enablers
  100. Delivery roadmap

  1. Value-added services
  2. Time to market
  3. Low-hanging opportunities
  4. Heavy technical lift
  5. Business agility
  6. Moving parts
  7. Hit capacity
  8. Micro-optimization
  9. Vertical scalability
  10. Horizontal scaling
  11. DevOps pipeline
  12. Customer pain points
  13. Hyperautomation
  14. Functional decomposition
  15. Lean methodology
  16. Resource allocation
  17. Feedback loop
  18. Plug-and-play
  19. Zero-touch automation
  20. Feature parity
  21. Speed to value
  22. Containerization strategy
  23. Feature flagging
  24. Technical feasibility
  25. Seamless migration
  26. Decision matrix
  27. Frictionless experience
  28. Just-in-time (JIT) delivery
  29. SLA (Service Level Agreement)
  30. Rollback strategy
  31. Self-service capabilities
  32. Hyper-scale infrastructure
  33. Platform agnostic
  34. Capacity optimization
  35. Risk mitigation plan
  36. Digital footprint
  37. Shift-right testing
  38. Resilient architecture
  39. Quicksilver solutions
  40. Bottleneck identification
  41. Infrastructure as code
  42. The North Star metric
  43. Plug-in architecture
  44. Service orchestration
  45. Operational efficiency
  46. Customizable framework
  47. Proactive monitoring
  48. Single pane of glass
  49. Empowered teams
  50. Decoupled architecture
  51. Multi-cloud strategy
  52. Intent-based networking
  53. Battle-tested solutions
  54. Data governance
  55. Heuristic approach
  56. Data-driven automation
  57. Light-touch deployment
  58. RACI matrix
  59. Edge-to-cloud strategy
  60. Enhanced user experience
  61. Cloud-agnostic deployment
  62. Pushing the roadmap
  63. Hyper-personalization
  64. Accelerated growth
  65. Outcome-based approach
  66. Hyper-focused execution
  67. Multi-threaded approach
  68. In-flight initiatives
  69. Strong backlog
  70. Low-code/no-code solutions
  71. Distributed architecture
  72. Decentralized management
  73. Decision-making at the edge
  74. Shift towards automation
  75. Application lifecycle management
  76. Full-stack visibility
  77. Low-latency applications
  78. Blockchain integration
  79. Continuous deployment
  80. Zero-downtime deployment
  81. Stack trace analysis
  82. Technical validation
  83. Converged infrastructure
  84. Architectural refactoring
  85. Guardrails for development
  86. Next-gen solution
  87. Multi-tenant architecture
  88. Consumption-based pricing
  89. Solution scalability
  90. Technical roadmap
  91. Fine-tuning processes
  92. Zero-day exploits
  93. Collaborative tooling
  94. Secure-by-design architecture
  95. Real-time data ingestion
  96. Failsafe mechanisms
  97. Pushing to production
  98. Cross-pollination of ideas
  99. Enterprise-grade solutions
  100. Silo-breaking collaboration

  1. Mission alignment
  2. Architectural governance
  3. Problem-solution fit
  4. Self-healing systems
  5. Industry best practices
  6. Continuous integration (CI)
  7. DevSecOps practices
  8. Scalability roadmap
  9. Infrastructure modernization
  10. Innovation pipeline
  11. Customer-first mindset
  12. Digital-first approach
  13. Operational resilience
  14. Microservices orchestration
  15. Security by default
  16. Automation-first approach
  17. Just-in-time scalability
  18. Business continuity planning
  19. Lean architecture
  20. End-to-end visibility
  21. Resource elasticity
  22. Self-managed infrastructure
  23. Holistic monitoring
  24. Technical pivot
  25. Shift-left testing
  26. Container orchestration
  27. Context switching
  28. Golden path for developers
  29. Cloud-native applications
  30. Software-defined infrastructure
  31. Autonomous systems
  32. Open-source innovation
  33. Dynamic provisioning
  34. Always-on availability
  35. Full-stack observability
  36. Right-sizing infrastructure
  37. Seamless user onboarding
  38. Continuous feedback loop
  39. Elastic workload management
  40. Test-driven development (TDD)
  41. Decentralized control
  42. Feedback-driven iteration
  43. Hyper-growth phase
  44. Automated workflows
  45. Proactive governance
  46. Modular architecture
  47. Collaborative delivery
  48. Business impact analysis
  49. Go-forward strategy
  50. Technical deep dive
  51. Dynamic scaling
  52. Systems interoperability
  53. Thought-partnering
  54. Time-boxing
  55. Outcome-driven development
  56. High-availability systems
  57. Data sovereignty
  58. Cost optimization strategies
  59. Capacity on demand
  60. Architecture governance
  61. Cloud-first strategy
  62. End-to-end automation
  63. Infrastructure uplift
  64. Latency-sensitive workloads
  65. Real-time decision-making
  66. Data integrity checks
  67. Service-level objectives (SLOs)
  68. Governance at scale
  69. Throughput optimization
  70. Enabling cross-team collaboration
  71. Code quality assurance
  72. Performance benchmarking
  73. Cloud bursting
  74. Stateless applications
  75. Version control best practices
  76. User-centric design
  77. Technical enablers
  78. On-demand scalability
  79. Data lifecycle management
  80. Automated scaling
  81. Next-gen platforms
  82. Continuous performance monitoring
  83. Resilience engineering
  84. Horizontal infrastructure
  85. High-touch services
  86. Technical grooming
  87. Infrastructure rationalization
  88. Resiliency testing
  89. Pre-mortem analysis
  90. Security-first mindset
  91. Operational scalability
  92. Converging infrastructure
  93. API-first design
  94. Autonomous infrastructure
  95. Service-level agreements (SLAs)
  96. Data-driven architecture
  97. Fault-tolerant systems
  98. Infrastructure harmonization
  99. Pipeline as code
  100. Lean thinking for innovation

How to attach a file to HubSpot contact through APIs, in Power Automate

With this article, the issues and solutions I am trying to address are:

  1. How to use HubSpot APIs
  2. How to upload a file to HubSpot
  3. How to make association between a Contact and the uploaded file
  4. How to achieve all of these using Power Automate

On a high level, below is the list of API tasks we have to do to achieve this. We have to make requests to three calls (one less if you have Customer ID already).

High level Power Automate flow

See below the high level flow I have created to demonstrate:

Prerequisites

  1. Basic knowledge in HubSpot. We would be interacting the CRM Contacts and Library
  2. Good knowledge in Power Automate
  3. A HubSpot account – Sandbox / Developer
  4. Create a Private App in HubSpot
  5. Get an Access Token
  6. Create a sample contact in HubSpot (for testing)
  7. Create a folder in the HubSpot Library (optional)

Detailed Flow

In this example, I am using a HTTP Request Trigger, which starts when we POST a file and a email-id (I used it to represent a customer in HubSpot contact form). I am doing some

Set the stage

For those struggling to get few items from the POST’ed content, find below details for your reference.

Using Postman to trigger a Power Automate HTTP flow

A. Get File content

triggerOutputs()['body']['$multipart'][0]['body']

B. Get filename

Honestly, I am not sure if there is a straight forward method available. This is my way of parsing filename from the Content-Disposition string:

// Input sample: "headers": {
//        "Content-Disposition": "form-data; name=\"email\"",
//        "Content-Length": "25"
//      }

// Power fx
trim(concat(split(split(triggerOutputs()['body']['$multipart'][0]['headers']['Content-Disposition'], 'filename="')[1], '"')[0]))

C. Get Email

triggerOutputs()['body']['$multipart'][1]['body']['$content']

HubSpot API Calls

Since the APIs for fetching Contact ID and Uploaded File ID are independent tasks, I am executing them in parallel.

A. Upload file, and get file id

I have used only minimum number parameters to avoid the confusion. I am uploading the file to a folder in the library.

Find the POST’ing JSON script for the Body. I see many people are struggling to make this correct.

{
  "$content-type": "multipart/form-data",
  "$multipart": [
    {
      "headers": {
        "Content-Disposition": "form-data; name=\"folderPath\""
      },
      "body": "/Sample Folder"
    },
    {
      "headers": {
        "Content-Disposition": "form-data; name=\"file\"; filename=\"@{variables('Filename')}\""
      },
      "body": @{variables('file')}
    },
    {
      "headers": {
        "Content-Disposition": "form-data; name=\"options\""
      },
      "body": {
        "access": "PRIVATE"
      }
    }
  ]
}

Upon successful upload, you will be receiving a JSON response with File ID.

B. Get the Customer ID of a contact using email as parameter.

This is a straight forward task. Just call the API using GET. Example: https://api.hubapi.com/crm/v3/objects/contacts/john@mathew.com?idProperty=email

C. Create Contact-File association

Once you have FileID and Contact ID, now you can POST a create-note API call to https://api.hubapi.com/crm/v3/objects/notes

Below is the JSON body you have to use:

{
    "properties": {
        "hs_timestamp": "2024-07-30T10:30:00.000Z",
        "hs_attachment_ids": "<File ID>"
    },
    "associations": [
        {
            "to": {
                "id": "<Customer ID>"
            },
            "types": [
                {
                    "associationCategory": "HUBSPOT_DEFINED",
                    "associationTypeId": 10
                }
            ]
        }
    ]
}

Note: associationTypeId is the magic number which tells the API to make Contact-File association. Please check the documentation for more association types.

Find the Power Automate action view:

Verify if the flow has worked

Go to HubSpot, select contact and you should be able to see the file attached.

Additionally, if you go to the Library -> Files -> Sample Folder, you can see the same file appearing there.

Article: Target Fixation Problem in IT

Views on how target fixation problem can be compared to impacting your career journey

The other day, I was reading about target fixation problem in vehicle driving and it occurred to me I have met many people in Information Technology field also with such a problem. Target fixation as per Wikipedia:

“an attentional phenomenon observed in humans in which an individual becomes so focused on an observed object that they inadvertently increase their risk of colliding with the object.”

In the fast-paced world of IT, it’s easy to get caught up in the rush of achieving specific career goals. One of the main problems with this is burnout. When an individual is too focused on climbing the corporate ladder or mastering a particular technology, they might end up working long hours without taking necessary breaks. This can lead to physical and mental exhaustion, ultimately affecting their productivity and health. Surprisingly, most of the time this is happening subconsciously so we don’t even think about it because it is a blind spot. One of my friend was so addicted to Microsoft SharePoint technologies and was really an expert in that. But he did not bother upskill even when Microsoft decided to strengthen its future by introducing Power Platform elements, such as Power Apps or Power Automate. For him those were alien tracks because he believed SharePoint is never outdated and never it will.

Moreover, target fixation can strain personal relationships. IT professionals who are constantly chasing their career goals might neglect their family and social life. This imbalance can lead to feelings of isolation and dissatisfaction, both personally and professionally. It’s essential to remember that a successful career should not come at the expense of one’s well-being and relationships.

Well, how do we overcome this problem?

Unfortunately, it doesn’t have a silver bullet fix. Recognizing and accepting the reality is the first step.

We have to adopt a balanced approach to cure this. Then set realistic and flexible career goals (SMART goals). Instead of obsessing over a single target, one should aim for a broader vision that includes professional growth, skill development, and personal happiness. Regularly reassessing and adjusting these goals can help in staying on the right track. Additionally, one should cultivate a diverse skill set. In the ever-evolving field of IT, being adaptable is key. By learning new technologies and exploring different roles, professionals can stay relevant and open to various opportunities. This not only reduces the pressure of achieving a single target but also enhances overall career prospects. Additionally, seeking support from mentors and peers can provide valuable insights and encouragement.

In conclusion, while setting career targets is essential, it’s equally important to avoid the pitfalls of target fixation. A balanced approach, continuous learning, and prioritizing well-being can help IT professionals achieve long-term success and fulfillment. Remember, a fulfilling career is one that grows harmoniously with personal happiness and health.

URL: https://www.linkedin.com/pulse/target-fixation-problem-career-praveen-nair–dwpac