Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Starting a career in software engineering

Starting a career in software engineering

Chisom Nwokwu

January 13, 2024
Tweet

More Decks by Chisom Nwokwu

Other Decks in Technology

Transcript

  1. Hi, I'm Chisom Software Engineer, Microsoft Ex- Intern, Bank Of

    America Author of 'A Techie's Guide into Big Tech Companies' Digital Content Creator (Youtube & Instagram) tech_queen chisom__nw
  2. 1 Software Engineering 2 Career Paths in Software Engineering 3

    Required Skills and Qualifications 4 How to start a SWE career Today's Agenda 📚 5 Question/ Answers
  3. What is Software Engineering? 🛠️ Software Engineering means applying engineering

    principles to software development, to create high-quality, reliable, and scalable software systems.
  4. Let’s look at it in detail 📍 Software engineering is

    a field of study and practice that focuses on the systematic design, development, testing, maintenance, and documentation of software.
  5. Software Development Lifecycle 👩‍💻 Software development lifecycle (SDLC), is a

    systematic process that guides the development of software applications from conception to completion.
  6. Software Lifecyle Requirements Gathering and Analysis System Design Programming 1

    2 3 Understand and define the needs and expectations of the end-users and stakeholders. Gather requirements through interviews, surveys, and meetings. Create a high-level system architecture and detailed design specifications based on the gathered requirements. Write, test, and debug code according to the design specifications. This phase involves actual programming and may also include unit testing.
  7. Software Lifecycle Testing Deployment (Release) Maintenance and Support 3 4

    5 Conduct various levels of testing, including unit testing, integration testing, system testing, and acceptance testing Package the software for deployment, create installation guides, and release it to end-users Resolve issues reported by users, apply patches and updates, and make modifications to the software based on changing requirements.
  8. Careers in Software Engineering There are various careers within the

    phases of the software development lifecycle, which has respective objectives
  9. Frontend Engineer 📍 A software engineer who specializes in the

    development of the user interface (UI). They deal with cross-browser compatibility and fixing bugs to ensure an excellent visual presentation of the UI
  10. 1 Proficiency in HTML, CSS, and JavaScript 2 Understanding of

    responsive design 3 Knowledge of browser compatibility issues 4 Ability to work with APIs 5 Experience with front-end frameworks and libraries like React, Angular, Vue.js, and jQuery.
  11. Backend Engineer 📍 A software engineer who specializes in the

    underlying logic and performance of the application
  12. 1 Programming languages like Java, Python, PHP, Ruby, or Node.js

    2 Knowledge of server and network architecture 3 web development frameworks like Spring, Django, Laravel, or Ruby on Rails 4 Familiarity with RESTful APIs 5 Experience with databases such as MySQL, PostgreSQL, MongoDB, or Cassandra.
  13. Software Engineer in Test 📍 QA engineers create test plans,

    manual tests, automated tests using tools and frameworks to make sure that products and processes run as expected
  14. 1 Programming languages like Java, Python, PHP, Ruby, or Node.js

    to develop test automation scripts 2 Strong analytical and problem-solving skills 3 Familiarity of Databases to create Database Tests 4 Understanding of software development processes such as Agile and Scrum. 5 Knowledge of testing frameworks such as JUnit, TestNG, or PyTest to design and execute test cases
  15. DevOps Engineer 📍 Software engineers who are familiar with the

    technologies required for the development of systems to build, deploy, integrate, and administer back-end software and distributed systems
  16. 1 Proficiency in scripting languages such as Bash, Python, or

    Ruby 2 Knowledge of continuous integration and delivery tools like Jenkins, Bamboo 3 Strong problem-solving skills 4 Understanding of containerization technologies such as Docker or Kubernetes 5 Familiarity with cloud platforms such as Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP).
  17. Data Engineer 📍 A software engineer who builds data systems

    and infrasturcture to enable a few flow of data in the organisation for end users.
  18. 1 Experience with big data technologies such as Hadoop, Spark.

    2 Familiarity with data warehousing technologies such as Snowflake, Redshift, or BigQuery 3 Knowledge of data modeling and database design 4 Familiarity with cloud platforms such as AWS, Azure, or Google Cloud Platform 5 Proficiency in programming languages such as Python, Java, or Scala to develop and maintain data pipelines, ETL processes, and data models.
  19. Cloud Engineer / Architect 📍 These are software engineers who

    play a pivotal role in managing the cloud-based infrastructure and its operations. From Cloud Management and Migration to Monitoring.
  20. 1 Strong infrastructure and network design skills 2 Familiarity with

    cloud-native technologies such as containers, microservices, and serverless computing 3 Strong understanding of cloud computing 4 Proficiency in cloud platforms such as AWS, Azure, or Google Cloud Platform 5 Understanding of compliance and regulatory requirements such as HIPAA, GDPR, or PCI-DSS
  21. Cyber Security Engineer 📍 A software engineer who specializes in

    creating systems, methods, and procedures to test the security of a software system and exploit and fix security flaws.
  22. 1 Strong understanding of information security 2 Understanding of threat

    modeling and risk assessment 3 Strong analytical and problem-solving skills 4 Experience with security compliance frameworks such as PCI-DSS, HIPAA, or ISO 27001 5 Familiarity with security tools and technologies such as firewalls, intrusion detection and prevention systems (IDS/IPS)
  23. What type of SWE am I? 👩‍💻 I am a

    software engineer who ships features on the Windows OS, and I carry out data engineering practices to track the use of those features
  24. Disclaimer 🚨 Most of these career paths overlap, depending on

    the company you would find your self doing a bit of everything.
  25. Roadmap 🚦 Get a degree Pick a field Start learning

    and building 1 2 3 You can take a computer science degree or any coding bootcamp for general knowledge Go through the existing career paths and make your pick Use tutorials, books, paid courses to learn and then start building projects
  26. Roadmap 🚦 Join a community Seek mentorship Learn data structures

    and algorithms 4 5 6 Join a group of like minded individuals and grow with them Have someone you look up to in the industry and follow them up (directly or indirectly) Start building your problem solving skills through alrorithm practice
  27. Become job ready 🚀 Create a resume and start applying

    for graduate/ internship roles (That’s how I got in 💡)
  28. You can be the best engineer but without soft skills,

    you would find it hard collaborating with teams 🥲
  29. Software Engineering is a powerful field in the technology industry,

    remember that you can do whatever you put your mind to 💡