The software engineer job encompasses a fairly wide range of responsibilities.
Smaller applications and systems may employ just a few software engineers to manage the full lifecycle software development process. Generally, for most large scale applications, jobs are broken down into groups that focus on one specific area of the software or just a specific function of the application or technology. For example, one system may employ a Software Architect, Design Engineer, Java Developer and Quality Assurance Engineer.
In today’s market, jobs involving web services have become more common as businesses continue to leverage capabilities of the Internet. Object-oriented analysis and design has is a common requirements for most business application design. Many of the responsibilities listed below are vague and general, focusing more on software engineering in a corporate setting. This does not encompass every possible software engineering responsibility and there are other specialized software engineering positions such as embedded software engineers.
Common alternate job titles for Software Engineer include: Senior Software Engineer, Software Developer, Software Programmer, Software Designer, Principal Engineer, Application Developer, Application Engineer, Embedded Software Engineer, Java Developer, Java Engineer, Web Services Developer, C++ Developer, Quality Assurance Engineer. Consultants can focus under any category but most technology consulting professionals possess experience in two or more of these areas as a specialty.
Common Job Responsibilities for Software Engineer
- Full lifecycle application development
- Designing, coding and debugging applications in various software languages.
- Software analysis, code analysis, requirements analysis, software review, identification of code metrics, system risk analysis, software reliability analysis
- Object-oriented Design and Analysis (OOA and OOD)
- Software modeling and simulation
- Front end graphical user interface design
- Software testing and quality assurance
- Performance tuning, improvement, balancing, usability, automation.
- Support, maintain and document software functionality
- Integrate software with existing systems
- Evaluate and identify new technologies for implementation
- Project Planning and Project Management
- Maintain standards compliance
- Implement localization or globalization of software
Common IT Hardware, Software, Platform and Systems Knowledge