Software developers develop computer applications that allow users to perform specific tasks on computers or other devices. They may also develop or customize existing systems that run devices or control networks. Most of the time, software developers work in an office. A bachelor's degree in software engineering, computer science, information technology, or other relevant majors is often required. They are required to have relevant job experience. They must be familiar with various computer languages, such as C++, Python, Java, PHP, XML, HTML/JavaScript/CSS, and Unix Shell Scripting. They must also be familiar with various operating systems, such as Linux, Solaris, HPUX, BSD, Mac OS X, and Windows. They must know various databases, such as Oracle (PL/SQL), MySQL that are used widely in various businesses.They must be able to work in a team environment. Software developers work closely with systems engineers and computer programmers. They must be able to convey technical information in a language that is understood by non-technical people. They usually work directly with users and various computer-related vendors. They must have excellent oral and written communication skills. They must keep themselves up to date with various new technological changes, either in software or hardware. They must attend various classes or workshops to expand their knowledge. They may have to train, coach, or mentor new or junior software developers. They may be required to travel from time to time to visit vendors or clients.