IT BPO Companies

BPO is Business Process Outsourcing. It involves outsourcing services such as customer service, technical support, and back-office operations to other countries where cost of operation is lower. IT BPO refers specifically to IT service that is outsourced to other companies. These companies are more efficient in providing entire IT services for other companies. IT works out well for other companies too, as they don't want to have their own IT department to take care of billing, paychecks, etc. Total Market size of IT BPO is $450B as of 2026, and growing at 5%-8% a yr (estimates vary widely). I assume that all markets grow at same rate as what US GDP grows by, which is 5%/yr. USA is the largest market by revenue accounting for 30%-40%. India is the largest provider of IT BPO services, as is evident by the fact that most IT companies are Indian Co, or are situated in India. Besides India, other countries as Philippines, Vietnam, Indonesia are also emerging players. 

Global IT spending is $5.5T as of 2025, of which $1.7T is spent on IT services. BPO part of these IT services seems to be only $0.5T.

 

 

Crypto Currency (CC):

First of all, crypto currency is just bunch of numbers. They re no different any other currency that the government issues. In case of Crypto currency, this currency is issued by a distributed source controlled by the people, so government has no authority to print or destroy it. To make this currency work, merchants have to be willing to accept this currency, just like they accept dollars or other government issued currency. When these crypto currency were issued in 2000's, people were highly skeptical if any businesses would accept them. But over, big players started accepting them. Thus they got solidified as real currency, and their values started going up in value. Bunch of crypto currency came into existence, each claiming to be better than the other. With so many different types of Crypto currency, it's hard to say which of these will survive long term.

Basics of CC:

CC are encrypted numbers (called as digital currency). The seller/buyer are anonymous, and each CC needs to be mined (i.e numbers generated) using a long series of mathmatical solutions that takes a lot of compute power. Each CC has a limit of how many can be mined till 

Major CC:

As of 2024, combined market cap of all CC is ~$2T. Top 5 cryptocurrency comprise 80% of the market. They are all traded on stock exchanges just like stocks.

  • Bitcoin (BTC) = $1.2T or about 55% of market. This is the most popular CC, and was the first one that started the CC business.
  • Ethereum (ETH) => $0.3T or about 15% of market. 
  • Others: Tether USDt (USDT) @$115B, BNB (BNB) @80B and Solana (SOL) @60B comprise next 12%

There's also an ETF for crypto, so that you can invest in CC, w/o directly buying the CC. This is lot better, since all crypto exchanges charge some fees for buy/sell of crypto, and also add a wide spread, which eats into your profits immediately.

 

Pharma:

Top players in Pharma are Eli Lilly, Pfizer, etc. They discover and invent new drugs, have patent rights on them for a long time allowing them to milk customers, and spend heavily on advertising and R&D. The best part of Pharma Companies is the high dividend they pay to shareholders.

Market: 

SPMI = System Power management Interface

SPMI bus protocol is defined by the MIPI alliance (version 2.0 released in 2012). It allows for communication b/w Power controllers (PC) on a chip (SoC = System on Chip) and a PMIC (Power management IC). This i/f is used to send cmds from master (which is the SoC) to slave (which is the PMIC) to ask the slave to change voltage on voltage lines. These voltage lines are driven by LDO or Switching regulators (i.e Buck Converters) on the PMIC, and drives power pins on the SoC.

DFVS (Dynamic Frequency and Voltage scaling): DVFS is a very comon technique used in SoC where voltage are frequency are changed according to the needs of the system to save power. SPMI protocol is used to drive this. This is the sequence => SoC writes to registers in PMIC, and if successful, PMIC changes voltages in response to cmds it received. Voltage may be changed in steps and in a particular order to ensure voltage levels are in compliance with what the SoC can tolerate. SoC gets the new voltage levels on it's power pins. At powerup, there is some default voltage that is driven by PMIC, and once SoC sends updated cmds, the voltages are adjusted accordingly by the PMIC, and driven to SoC.

SPMI protocol:

SPMI Protocol Basics (Rhode and Schwarz) => https://www.youtube.com/watch?v=kVuTSN6JwIQ

SPMI is a 2 wire interface, one clk and other data:

  • SCLK: Unidirectional. driven by Master. Freq from 32 KHz to 24MHz
  • SDATA: Bidirectional. can be driven by Master or Slave. 

Bus transactions start from bus being in Idle state: SCLK and SDATA being low. Then a cmd sequence starts. 4 parts to cmd seq:

  1. SSC (seq start cond) => Here Data line (SDATA) is pulled high for 1 clk cycle and then oulled low for another clk cycle, while SCLK is still in Low state. This iis used by master or slave to indicate to the other side that cmd seq is starting. After the SSC. the bus owner starts the clock and frame transmission begins. This is NOT necessarily done for all SPMI devices, depending on how the manufacturer wants this to be handled. SPMI bus is susceptible to glitches at power up, so 
  2. Three different types of frame:
    1. Cmd frames: It is a 13 bit frame. 1st 4 bits are either slave addr (16 slaves possible) or master addr (1st 2 bits are 0, next 2 bits are master addr allowing for 4 masters). These addr are called as Identifiers. These addr are static and defined by the manufacturer. If driven by Master, then 4 bit slave addr used to target the particular slave, while if used by slave, then 2 bit master addr used to target the particular master (in a multi master mode). Addr is followed by 8 bits of cmd which indicates the type of cmd (sleep, rd/wrt, etc). 8 bit cmd may contain some bits for addr too (depending on the cmd type). There's an additional parity bit for error checking. It's odd parity, meaning the total # of 1's should be odd. So, if the 12 bits are all 0s, then 13th parity bit should be 1 so that # of 1's is odd. 
      1. 4 tpes of SPMI cmds:
        1. State mgmt cmds: Used to change states of the slave. 4 states defined => Startup state, active state, sleep state and shutdown state. In this case, cmd of 8 bits is 0001_00XY, where XY are the 2 bits for the 4 states. Then a Parity bit is sent, followed by BP to xfer control to slave (see BP below). Slave then sends 1 bit ACK/NACK (see below) and then again a BP to xfwr control back to Master.
        2. Authentication cmds: These are used for device identification and IP mgmt. Floowing SSc and slave addr, 8 bit cmd of 0x14 identifies it as authentication cmd. Then 1st challenge frame is sent by master, to which the slave sents a Response frame. This continues for 4 such frames of challenge and response.Contents are deiced by manufacturer. A slave that doesn't support authentication, sends a "No response frame" which is all 0's (discussed below)
        3. Register access cmd: To read data from or wrt data to device. 
          1. Reg read: SSC followed by 4 bit slave addr, followed by 011 (3 bits to indicate rd cmd) and then 5 bit reg addr (32 reg possible). Then parity bit, then BP to xfer control to slave (see BP below), and then slave sends the 8 bit data from the reg, folowed by Parity bit, and then again a BP to xfwr control back to Master. Not sure if ACK/NACK is sent by the master to the slave after reading the reg bits?
          2. Reg write: Similar to reg rd, except that wrt data is also driven by the master. Then a BP, ACK/NACK and BP done (similar to rd reg case)
    2. Data/Address frames: This is a 9 bit frame, with an additional parity bit. It's odd parity, meaning the total # of 1 should be odd. So, if the 8 bits are all 0s, then 9th parity bit should be odd. We either provide addr of reg, or the data to write to the reg, or the data read from the reg is put on this line. If we don't have addr as part of cmd frame, then addr frame is passed on first followed by the data frame. There may be multiple addr and data frames, but only 1 cmd frame.
    3. No response frames: This is either a 13 bit (for cmd frame) or 9 bit (for data/Addr frame). The bits in here are all 0 (i.e SDATA is low). 
  3. Bus Park (BP): This seq is used to release the data bus by the owner. This is needed since both slave and master can drive the bus. BP returns the bus to idle state as clk and data both go low. On rising edge of SCLk, SDATA is pulled low, and then SCLK goes low too. This allows another device to take control of the bus, in order to send a cmd or ack.Master drives only 1/2 cycle, so that slave can tke control. To summarize, whenever the driver of the bus changes from one device to another, a BP cycle is needed for turn-around.
  4. ACK/NACK: This is 1 bit to indicate an ACK (a 1) or NACK (a 0) for cmd and data/addr frames. After a frame transmission, 1 bit BP is sent to xfer control of SDATA to the receiving device. Master still controls the SCLK line and drives next clk cycle on which the receiving device sends an ACK/NACK. After this a second BP is performed by the receiving device to release the SDATA line 

 

 


 

 

Few common Spanish structures with verbs are presented here separately. We use special connecting words as "de", a, etc.

Common structures:

The below link talks about 6 such verbs. All 5 verbs are conjugated based on our regular 2x3 table.

Link => https://www.youtube.com/watch?v=6RdVV_mHx_s

  • terminar de => to finish doing something. terminar is conjugated and the verb following it retains subjunctive form. 
    • present tense: she finishes studying at eight => Ella termina de estudiar a las ocho
    • past tense: I finished reading the book => yo terminé de leer el libro (If we had "I didn't finish ..", then it's > yo no terminé de leer ..)
    • Terminar remains in subjunctive form if it follows a verb. ex: When are you going to finish cleaning? => ¿Cuándo vas a terminar de limpiar?
  • empezar a => to start doing something (instead of "de", we use "a" to indicate "start to do ...". With "finish", we don't have "finish to do something ..."). 
    • NOTE: Empezar is an irregular verb with stem empie- in boot entries (see irregular verb section)=> empiezo, empieza, empiezas, empezamos (not a boot entry), empiezan 
    • present tense: she starts working at nine => Ella empieza a trabajar a las nueve
    • past tense: I started to run (or started running) this morning => yo empecé a correr esta mañana
    • Empezar remains in subjunctive form if it follows a verb (similar to terminar). ex: We are going to start studying? => Vamos a empezar a estudiar. 
  • dejar de => to stop or quit doing something (different than terminar as that's for finish doing something). There are other meanings also. It's explained under "imperative mood" section.
    • present tense: she never stops talking => Ella nunca deja de hablar
    • past tense: ex: I stopped smoking last year => yo dejé de fumar el año pasado
    • subjunctive form: ex: When are you going to stop crying? => ¿Cuándo vas a dejar de llorar?
  • acabar de => to have just done something. Acabar is always used in present form, even though sentence usually indicates past tense.
    • present tense: No past tense form
      • ex: she just left => ella acaba de salir. Here "just" is present tense, evn though "left" is past tense.
      • ex: Did you just hear that? => ¿Acabas de escuchar eso?
  • asistir a => to attend (to) a event, etc (NOT to assist) 
    • present tense: she attends university => Ella asiste a la universidad
    • past tense: ex: I attended the conference yesterday  => yo asistí a la conferencia ayer
    • subjunctive form: ex: We are going to attend the wedding => vamos a asistir a la boda
  • confiar en => to trust in/on.
    • present tense: she trusts (in) her friends => Ella confia en sus amigos
    • Imperative: Do not trust that person => No Confies en esa persona. Here "confiar" conjugates to "confies" for 2nd person negative cmd.