No, composition of linear functions is still linear. Imagine your first linear function represented by a matrix W, and a second linear function represented by matrix V. Then, f(x) = V * (W * x) = (V * W) * x, which is just a linear function over x.
In fact, in the example you linked, they do:
layer1 = sigmoid(np.dot(layer0, W1))
layer2 = sigmoid(np.dot(layer1, W2))

which introduces non-linearity between the layers.