In this work we show a practical solution for image denoising using CNN Autoencoder Neural Network. The network we built is easy to implement and provide relatively high performance when compared to other classic methods like BM3D, and even compared to other, more complex networks. This network is also very flexible and can be adjusted to match different memory capacity of the graphic cards available for the training. We show how we use a relatively simple design and improve it by using custom performance metrics designed to evaluate images, replacing standard layers like MaxPool and UpSampling with convolutional layers, implementing custom loss functions and comparing between them. Finally, we compared our model performance with other popular methods and models.