Software Engineers research, design, develop and maintain software systems. They usually work in an office setting at a computer, but telecommuting options are becoming a more common perk. With the demand for web applications and the development of cloud computing, opportunities for software engineers are plentiful.