Latest Posts

Recent Posts

Saturday, November 29, 2025

Working with LLM/SLM locally using Ollama

Ollama is an open-source tool developed by Jeffrey Morgan and Michael Chiang. It allows users to run large language models (LLMs) locally on their own computers. It simplifies the process of downloading, managing, and executing open-source LLMs through a command-line interface (CLI) and an API. Running LLMs locally with Ollama has benefits such as enhanced data privacy and security, cost savings, and offline capabilities.

How to install ollama?

  • Windows
    • Go to the official Ollama website and download the Windows installer.
    • Run the downloaded OllamaSetup.exe file.
    • Follow the on-screen instructions to complete the installation.
    • Open a new command prompt or PowerShell window.

  • Mac and Linux OS - Run the command to install the Ollama 

        curl -fsSL https://ollama.ai/install.sh | sh 

How to verify the Ollama installation?

Open a terminal and run the command ollama --version. It will return the current running version of Ollama

How to run the Ollama locally?

To start the Ollma locally, run the command ollama serve 

How to check if Ollama is working or not?

Open a browser and run http://localhost:<OllamaPortNumber>/ if its working fine than it will show message "Ollama is running" .  

http://localhost:11434/

What are the different SLM/LLM models available that work with Ollama?

  • deepSeek-r1
  • ollama3.1
  • ph3
  • llama3.2
  • mistral

How to install the open source LLM/SLM models?

  • Open a terminal
  • Run ollama serve to start the Ollama.
  • Open a new terminal and run the command ollama pull <LLM model> like ollama pull llama3.2 to pull new LLM models

How to interact with models using ollama on terminal?

  • Run the command ollama run <model name> like ollama run llama3.2
    

  • Ask any question it will provide the answer

How to interact with models running under Ollama using the REST API?

  • Open a terminal
  • start the Ollama with Ollama serve command
  • run curl to get the answers to your queries. You can use POSt man also

curl --location 'http://localhost:11434/api/chat' \
--header 'Content-Type: application/json' \
--data '{
    "model": "deepseek-r1",
    "messages": [{ "role": "user", "content": "who is presidnet of united states" }],
    "stream": false
}'

  • If you face issue due to GET command then use POST. The GET doesn't support HTTP so it fails  

How to change the default port of Ollama?

Press Windows + R to open the Run dialog. Type sysdm.cpl and press Enter to open System Properties

In the System Properties window, navigate to the "Advanced" tab. Click on the "Environment Variables" button

In the "System variables" section (or "User variables" if you prefer it only for your user), click "New" if OLLAMA_HOST doesn't exist, or select it and click "Edit" if it does

Set this to the desired IP address and port, for example, 0.0.0.0:14434 to listen on all network interfaces on port 14434, or 127.0.0.1:8000 to listen only on localhost on port 8000.

Click "OK" on all open windows to save the changes.

Do we have any alternative for Ollama?

The other counterpart of Ollama is LN studio. Ollama and LM Studio both work with locally installed LLM/SLM models, but LM Studio is known for its simple, GUI-based experience. Ollama is ideal for developers who want command-line control, scripting, and API integration. LM Studio features an easy-to-use chat interface with built-in model downloading capabilities. Ollama provides more flexibility and is better for backend development due to its command-line and REST API focus. 


Monday, May 19, 2025

The Developer’s Career Journey: From Individual Contributor to Manager

Every developer starts with a passion for code. But as careers progress, many evolve into roles that require leadership, vision, and collaboration. This post explores the typical lifecycle of a software developer — from Individual Contributor (IC) to People Manager to Client Manager — with pros, cons, and guidance for choosing your ideal path.

👨‍💻 Stage 1: The Individual Contributor (IC)

Who They Are:
ICs are the builders — writing the actual code, solving problems, and creating the foundation of software products.

Responsibilities:

  • Develop features and write clean code

  • Troubleshoot bugs and optimize performance

  • Collaborate with peers on architecture

Pros:

  • Focused, hands-on technical work

  • High control over your own productivity

  • Measurable output

Cons:

  • Limited influence over team decisions

  • May feel siloed from bigger strategic goals


🧭 Stage 2: The People Manager

Who They Are:
People Managers lead teams of developers, ensuring that everyone is working toward a shared mission and feeling supported along the way.

Responsibilities:

  • Set team direction and monitor progress

  • Mentor, coach, and evaluate developers

  • Align team goals with business objectives

Pros:

  • Larger, long-term impact

  • Helps others grow and succeed

  • More strategic involvement

Cons:

  • Less time in hands-on coding

  • People issues can be emotionally draining

  • Success is harder to measure


🤝 Stage 3: The Client Manager

Who They Are:
Client Managers (also called Account Leads or Technical Engagement Managers) are responsible for the health and growth of client relationships. They collaborate closely with clients and internal teams to deliver value.

Responsibilities:

  • Understand client goals and needs

  • Co-create roadmaps and solutions

  • Grow the account strategically

Pros:

  • High visibility and business impact

  • Builds lasting professional relationships

  • Enables mutual client + personal growth

Cons:

  • High-pressure environment

  • Constant context switching

  • Balancing internal delivery and client expectations


🔄 Choosing the Right Path

There’s no “one size fits all” career route in tech. Some developers go deep into engineering. Others become leaders. Some blend both. Choose based on what energizes you — whether it's solving code challenges, empowering teams, or building client trust.


✅ Conclusion

From coding solo to leading people or working with clients, the developer’s lifecycle offers plenty of opportunities to grow and evolve. The key is to reflect on your strengths and interests, and move toward roles that align with them.

💬 Which path are you on? Share your journey in the comments!


Wednesday, November 30, 2022

How to check version of Python on Windows/Linux and MacOs

Python is a modern programming language and is very popular. After C and C++, Python has emerged as the true programing language which can handle hardware as well as data.


Standard commands are used to find the version of python installed on a system depending on the operating system.


Prerequisites  

Access to a command-line/terminal window:

  • Linux:  Ctrl-Alt-T, Ctrl-Alt-F2
  • Windows:  Win+R > type PowerShell > Enter/OK
  • macOS:  Finder > Applications > Utilities > Terminal

There are different versions of Python, but the two most popular ones are Python 2.7.x and Python 3.7.x. The x stands for the revision level and could change as new releases come out.


Find/Check the version of python on Linux 

Open a terminal and run the below command 

python --version

Find/Check the version of python on Windows

Open a PowerShell window and run the below command

python --version

Find/Check the version of python on macOS

python --version


Find/Check the version of python if multiple version is installed

1. To check for Python 2.7.x:

python --version

2. To check for Python 3.x.x

Python 3 is backwards compatible so 2.x.x application can work with python 3

python3 --version


Monday, April 6, 2020

Blockchain Interview questions

Interviewing people for blockchain roles? Applying for blockchain jobs? These are some of the top interview questions right now.
  1. What is a blockchain?
  2. Why are blockchains often referred to as distributed ledger technologies (DLT)?
  3. What is proof of work/proof of stake/proof of elapsed time etc.?
  4. What is a consensus algorithm and why is it useful in blockchain?
  5. Explain the common consensus algorithms (e.g. Paxos, Raft, Tangeroa, PBFT, RBFT, BFTsmart etc)
  6. What is hashing/hash functions and how are they used in blockchain?
  7. Give me an overview of Bitcoin.
  8. What is mining? How does it work in Bitcoin?
  9. What is the difference between Bitcoin and Ethereum?
  10. What are smart contracts? Do you know a smart contract language (Solidity / Serpent / Vyper) ?
  11. How does Hyperledger Fabric work?
  12. What are some common privacy modes in blockchain (e.g. encrypted on chain data, channels in hyperledger fabric, R3 Corda privacy model)
  13. What is the difference between a public blockchain and private/consortium blockchains? Pros and cons?
  14. What is an ICO?
  15. What is a token?
  16. What is an ERC20 contract?
  17. What is a Merkle tree/trie and how is it used in blockchain?
  18. Explain how public / private digital signatures work.
  19. Explain the difference between symmetric and asymmetric key encryption?
  20. How does Diffie Hellman key exchange work in SSL? What is it used for?
  21. What scalability and throughput challenges are there with blockchain? What solutions would you suggest?

Monday, September 4, 2017

BLOCKCHAIN – THE SOLUTION OF MISTRUST

 


As a child, my father narrated to me a story about two brothers, who used to work in different cities and sent money to their old-age parents living in a village. However, one day the younger brother among the two - under the impression that he would be sending more money than his other brother - started reducing the money being sent to his parents and eventually stopped sending money.

Unaware about his younger brother’s plan, the elder one, due to the same reason as his younger sibling, also started reducing his monthly payout to parents and brought it down to nil. As money flow reduced, the health of aged parents, who did not have any other source of income and sustained mainly on money sent by their sons, started deteriorating. As days passed, parents’ health deteriorated further leading to their death.

The moral of this story, according to my father, was to not think about others while performing one’s duty and focus solely on the delivery. However, this did not convince me because merely thinking about other’s work should not impact the delivery by a man, who is God’s best creation.

As I grew older and attained knowledge through various means available, it donned on me that the problem was not related to the duty, rather, related to information sharing channel between the two brothers that lead to both brothers deciding to reduce the money being sent. Not just the brothers, but parents also did not have any means to inform their children about the repercussion their act of reducing money not being sent to parents has caused.

In real life too, we come across many such instances, where lack of information leads to mistrust. However, in 2009, Satoshi Nakamoto (a person not known to many) designed a system for anonymous fund transfer, popularly known as Bitcoin. This technology guaranteed that the information shared among the users is correct and not tampered with.

The system guaranteed correctness of the information by adhering to below principles:


1. All information must have a similar pattern
2. Information is shared among multiple trusted user
3. All the trusted users act as witness and custodian of the information
4. The group of trusted users is always going to greater than the untrusted user.
5. A collective consciousness mechanism among user for building trust factor

The underlying concept of bitcoin evolved and become Blockchain. Over a period of time Blockchain evolved and many more algorithms were introduced to make consciousness among the users like Proof of Work, Proof of Stake, Delegated Proof of stake et cetera. Based on a conscious mechanism, a different system was design Bitcoin (Proof of work), Ethereum (Proof of stake), Lisk, SHIFT (Delegated Proof of stake).

The brothers would not have started reducing their monthly payout to their parents if they had kept transactions between each one of them transparent – the philosophy of bitcoin. Alas! That was not the case with them and they lost their parents. 

In this article, I have thrown some insights on blockchain with hope, it will clear all your doubts.

Keep watching this space for insights on conscious mechanism.

Wednesday, August 30, 2017

Open Source web developer Roadmap



Below you find a set of flow diagrams demonstrating the paths and the technologies that a person can adopt in order to become a frontend, backend, or DevOps.
If you think that these can be improved in any way, please do suggest.

Introduction


:art: Front-end Roadmap

 The roadmap for front end developer is as below
Back-end Roadmap
For the backend, personally I would prefer Node.js and PHP 7 for the full time. Plus, I have been experimenting lately with Go and I quite like it. Apart from these, if I have to choose another one, I would go for Ruby. However this is just my personal preference, you can choose any of the shown languages and you will be good.
 

DevOps Roadmap



Tuesday, July 11, 2017

Javascript : Var and Let





-->
var let
The scope of a variable defined with var is function scope or
Declared outside any function, global.
The scope of a variable defined with let is block scope.
Examples
function varandlet() {
var i = 5;
}
console.log(i);
VM131:1 Uncaught ReferenceError: i is not defined at
function varandlet() {
let i = 5;
}
console.log(i);
VM131:1 Uncaught ReferenceError: i is not defined at
function varandlet() {
For(var i=0;i<10 br="" i=""> console.log(i);
}

Varandlet(); // Output = 10; No error here
function varandlet() {
For(let i=0;i<10 br="" i=""> console.log(i);
}

Varandlet();

VM350:1 Uncaught ReferenceError: i is not defined at varandlet (:1:62)
at :1:1
******** LET has block level scope.
{
var o = p = 10;
}
console.log( o);
console.log( p);
// Output
// O = 10
// P = 10
{
let o = p = 10;
}
console.log( o);
console.log( p);
// Output
// Error O is not defined
// P = 10 // In this case P becomes global variable
for (var i = 0; i < 5; ++i) {
setTimeout(function () {
console.log(i); // output '5' 5 times
}, 100);
}

//Output will be five times 5

The settimeout function works in asynchronous way.
Closure in Loop

for (let i = 0; i < 5; ++i) {
SetTimeout(function () {
console.log(i); // output '5' 5 times
}, 100);
}

//Output will be five times 1 2 3 4 5

let in the loop can re-binds it to each iteration of the loop, making sure to re-assign
t the value from the end of the previous loop iteration, so it can be used to
avoid issue with closures.