I have always been interested in computer vision and for this reason, I tried to gradually be an expert in it. I have gained a lot of experience in designing and solving complex mathematical equations related to computer vision optics, as well as converting these equations into algorithms and then implementing them with object-oriented programming languages such as C++. I usually build my application user interface with QT, MFC, or C#.Net and use XML files or Microsoft SQL Server, My SQL, and SQLite databases to store data. I also use C++ to write other parts of the program, especially computing parts that are supposed to do a lot of computing in a short amount of time. I worked for 5 years (2014-2019) alone on developing software of “high-quality industrial 3D scanner with structured light”. In this project, very complex mathematical calculations have been used to eliminate the optical distortions of the lens. Also, genetic and neural-network algorithms have been used to calibrate and automatically tune the parameters in the equations. Some of the functions and classes defined in the program were redeveloped dozens of times, and during the implementation of this project, I became acquainted with the OpenCV and HALCON libraries and sometimes used them. However, because they did not meet my needs in most cases, such libraries not used much in the application. In addition to the “high-quality industrial 3D scanner with structured light” project I described above, I designed and implemented several other computer vision projects that have been used in a variety of industries.