12 Types of Software Engineers

Personal summary from this site:
https://www.indeed.com/career-advice/finding-a-job/types-of-software-engineer

Software engineer vs software developer

  • SE:
    • applies the principles of engineering to
      • design,
      • develop,
      • maintain,
      • test and evaluate computer software
    • highly collaborative activity
      • requires teamwork skills
    • uses components of a hardware system
      • to create the tools to develop software
      • tends to solve issues on a large scale
  • SD:
    • builds software that runs across various types of computers
      • using finished tools to build apps and write complete programs
    • tends to be more solitary

Most common careers in the world of software engineering

  1. Video game designer
  2. Quality assurance (QA) engineer
    • tests, reviews, assesses and writes software to validate the quality of an application
  3. CRM project manager
    • CRM: customer relationship management
      • systems that collect user and consumer data, creating programs that gather useful metrics for adjusting the needs of a given program
    • improving customer satisfaction or sales
    • by optimizing the tools used by customer support and sales representatives
  4. Software integration engineer
    • embedded systems developers
    • program hardware like consumer devices, home security alert systems, electronics, interfaces, real-time systems and serial data transmissions
  5. Security engineer
    • "white hat" or "ethical" hackers
    • create systems, methods and procedures that test the security of a given software
    • to exploit security flaws and discover vulnerabilities
    • to fix them before the systems reach the end-user
  6. Front-end engineer
    • web developer
    • specializes in the development of user interface ( UI) design
      • for the user-facing side of an application or website
      • visual design elements, including layout and aesthetics, and a thorough understanding of how people interact with and use computer programs
      • UI & UX
    • skills: UX and UI frameworks, CSS, JavaScript, HTML
  7. Full-stack engineer
    • fluent in front-end and back-end skills
    • to create a fully functional web app, from the front-facing user experience to the complex systems behind it
    • skills: UX and UI frameworks, CSS, JavaScript, HTML, Java, C, C++, Ruby, Perl, Python, Scala, Go, Kubernetes, Docker, Apache Mesos, Jenkins, HashiCorp stack (Terraform, Vault, Consul, Nomad)
  8. 3D Graphics Developer
    • create software for rendering, lighting, shadowing, shading and management of scenes
  9. Data scientist
    • data engineer
    • develops software programs that analyze information
    • statistical analysis, machine learning, data visualization and predictive modeling
    • providing an organization with metrics that can help determine how a product will grow to fit the needs of the business
    • skills: SQL, R, Python
  10. Mobile developer
    • write code for applications specifically designed to run on mobile devices, such as smartphones and tablets
  11. DevOps engineer
    • development and operations
    • to streamline
      • product development,
      • improvement, and
      • maintenance
    • to facilitate communication between the development and operations team
    • requires familiarity with the processes used by back-end developers
      • to build, deploy and integrate across technologies, like cloud computing services
      • familiar with cloud storage applications such as OneDrive, GitHub and Amazon Web Services (AWS)
    • skills: Kubernetes, Docker, Apache Mesos, Jenkins, HashiCorp stack (Terraform, Vault, Consul, Nomad)
  12. Back-end engineer
    • works within complex systems to create smooth functions behind the user interface
    • mainly create and manage databases, integrating data systems, logging systems and caching systems using Application Programming Interfaces (APIs)
    • skills: Java, C, C++, Ruby, Perl, Python, Scala, Go