We study efficient algorithms for soft-input soft-output (SISO) encoding of convolutional codes. While the BCJR algorithm has been suggested for SISO encoding, we show that a forward recursion on the code’s trellis is sufficient to compute the a posteriori probabilities of the code bits. We further propose a shift-register based SISO encoding algorithm for non-recursive convolutional encoders, whose complexity scales linearly with constraint length and block length. Finally, we assess the complexity of the proposed algorithms and we discuss approximations to facilitate practical implementation.