Independent component analysis (ICA) is a basic problem that arises in several areas including signal processing, statistics, and machine learning. In this problem, we are given linear superpositions of signals. E.g., we could be receiving signals from several sensors but the receivers only get the weighted sums of these signals. The problem is to recover the original signals from the superposed data. In some situations this turns out to be possible: the main assumption being that the signals at different sensors are independent random variables. While independent component analysis is a well-studied problem, one version of it was not well-understood, namely when the original signals are allowed to be heavy-tailed, such as those with a Pareto distribution. Such signals do arise in some applications. In this talk, I will first discuss the previously known algorithms for ICA and then a new algorithm that applies also to for the heavy-tailed case. The techniques used are basic linear algebra and probability.