An algebraic branching program (ABP) A can be modelled as a product expression X 1 • X 2. .. X d , where X 1 and X d are 1×w and w ×1 matrices respectively, and every other X k is a w ×w matrix; the entries of these matrices are linear forms in m variables over a field F (which we assume to be either Q or a field of characteristic poly(m)). The polynomial computed by A is the entry of the 1 × 1 matrix obtained from the product d k=1 X k. We say A is a full rank ABP if the w 2 (d − 2) + 2w linear forms occurring in the matrices X 1 , X 2 ,. .. , X d are F-linearly independent. Our main result is a randomized reconstruction algorithm for full rank ABPs: Given blackbox access to an m-variate polynomial f of degree at most m, the algorithm outputs a full rank ABP computing f if such an ABP exists, or outputs 'no full rank ABP exists' (with high probability). The running time of the algorithm is polynomial in m and β, where β is the bit length of the coefficients of f. The algorithm works even if X k is a w k−1 × w k matrix (with w 0 = w d = 1), and w = (w 1 ,. .. , w d−1) is unknown.