Tech Training

Tech Skillsets

BUSINESS OPTIMIZATION

  • Project Manager
  • Business Analyst
  • Product Owner
  • UX/UI Designer

CLOUD/INFRASTRUCTURE

  • Cloud Engineer
  • DevOps Engineer
  • Network Engineer
  • Systems Engineer

DEVELOPMENT

  • Front-End Developer
  • Back-End Developer
  • Full-Stack Developer
  • Mobile Developer
  • QA

DATA MODERNIZATION

  • Data Scientist/Machine Learning
  • Data Engineer
  • Business Intelligence/Data Visualization
  • Database Developer

Remember: There are more titles than just listed above and in our line of work titles aren’t everything. Look at their functional responsibilities to determine what type of IT professional they are.

 

2 Main Sides of Technology

INFRASTRUCTURE/HARDWARE

  • Computers, Networks, Storage
  • Build, Maintain, Manage 
  • Servers
  • Database i.e. storage and backup
  • Network Equipment
  • Desktop and Laptops
  • Email & Phones
  • This is what is moving to the “cloud” or “virtual”

SOFTWARE (SDLC)

  • Application Dev vs System Dev
    • App Dev
    • Web Dev
    • Mobile Dev
    • Cloud

 

What is the SDLC or Software Development Lifecycle?

  • SDLC is a process that produces software with the highest quality and lowest cost in the shortest time
  • SDLC includes a detailed plan for how to develop, alter, maintain, and replace a software system
  • SDLC involves several distinct stages, including planning, design, building, testing, deployment and maintenance. 
  • Popular SDLC models include Waterfall, Agile & SCRUM

 

Lifecycle

01: Planning

Identifying a need, consideration of solution options, and possibly considering the features of competing applications.

02: Analysis

Documenting the functional requirements for the application and anticipating potential problems that may be encountered.

03: Design

Defining how the app will work and what features and components it will have.

04: Implementation/Construction

This is where the actual programming occurs using the requirements and design as a guideline.

05: Testing/Integration

Try out the application, looking for errors and confirming that documented requirements are met. Then making the application available for people to use.

06: Maintenance/Support

Monitor user experience. Sometimes recommendations for revisions arise. If those recommendations are pursued, they will go through the lifecycle also.

 

What are common Methodologies within the SDLC?

WATERFALL:

a linear approach to development. This is a sequential model where software development is segregated into a sequence of pre -defined phases – including feasibility, planning, design, build, test, production, and support.

THE AGILE MODEL:

provides continuous iteration of development and testing in the software development process.

  • In this methodology, development and testing activities are concurrent (unlike in Waterfall). Agile allows more communication between developers, managers, testers, and customers.
    • Typically handling “Sprints” of 2-4 weeks

 

Front-End Developer

  • A software engineer that develops everything a user sees, clicks, or uses to input or retrieve information on a website is the work of a front-end developer.
  • Their focus is on user experience, and the technology they implement hinges on how well it will accomplish that efficiency, speed, and smooth functionality. 
  • Ensure there are no errors or bugs on the front end, and that the design appears as it is supposed to across various platforms and browsers.

 

Back-End Developer

  • A software engineer that focuses on the back-end. The back-end, or “server side”, of a website is where the data is stored and it usually consists of three parts: a server, an application, and a database.
  • Back-end developers need to understand databases, as well as server programming languages and architecture. If an application keeps crashing or is mind-numbingly slow or keeps throwing errors at you, it’s likely to be a back-end issue.
  • Finally, database management is a prime aspect of back-end development. Database management is the backbone of any system that holds large amounts of data. Think companies’ client database, such as Facebook’s; one billion users’ details have to be organized somehow, and back-end developers make this their job.

 

Full-Stack Developer

  • Comfortable working with both back-end and front-end technologies. A full-stack developer doesn’t need to master all the areas and technologies needed to work it. The developer just needs to be comfortable working with the technologies associated while delivering at the level expected by the client.
  • Full-stack developers can write code for both Backend and Frontend:
    • On the Backend, they build APIs using one of the backend languages (C#, Java, JavaScript, …) and connect to the database using SQL or NoSQL. 
    • On the Frontend, they use JavaScript with one of the frameworks (React, Angular, Vue.js).

 

Mobile App Developer

  • Mobile Development could better be described as “App Development” and involves creating applications that run on mobile devices, such as iPhones, Android devices, tablets, etc. 
  • The versatility of mobile development allows anything from Candy Crush, to console-like quality games in the palm of your hand. Games aren’t the only thing to focus on either; there are all sorts of apps for pretty much anything : YouTube, Instagram, Snapchat, TikTok, etc.
  • We can categorize mobile application developers based on their focus on a particular platform: iOS or Android. If a mobile developer focuses on one platform, they usually build native applications for that specific platform. 
  • Each platform allows two programming languages to be used to develop applications: 
    • On iOS, a developer can use Objective-C or Swift language. 
    • On Android, a developer can use Java or Kotlin language. 

 

QA (Quality Assurance)

QA Engineers monitors every phase of the development process to ensure that the design and software adhere to company standards. Software delays are costly for a company, so it’s vital for releases to meet target dates and stay within budget. A software quality assurance engineer helps meet deadlines by breaking up the development process into attainable testing goals and relaying any issues back to the development and product teams or leaders.

 

MANUAL QA

Manual testing is testing of software where tests are executed manually. Performed to discover bugs in software under development.

AUTOMATION QA

In Automated Software Testing, testers write code/test scripts to automate test execution. Testers use automation tools to develop test scripts and validate the software. The goal is to complete test execution in a less amount of time.

  • Selenium, Cucumber, Espresso, Jenkins, Appium

 

DevOps Engineer

  • DevOps is a software development strategy which bridges the gap between the developers and the IT staff. With DevOps, organizations can release small features very quickly and incorporate the feedback which they receive, very quickly. 
  • Involves development, testing and deployment technologies for developing automated CI/ CD pipelines. 

 

GIT AND GITHUB – Source code management (Version Control System)

JENKINS – Automation server, with plugins built for developing CI/ CD pipelines

SELENIUM – Automation testing

Docker – Software Containerization Platform

Kubernetes – Container Orchestration tool

Puppet – Configuration Management and Deployment

CHEF – Configuration Management and Deployment

Ansible – Configuration Management and Deployment

Nagios – Continuous Monitoring

 

Security Engineer

  • A security engineer is tasked with the monumental role of protecting the networks and computer systems of a company from any security threats or attacks. Mostly, a security engineer is responsible for establishing and implementing security solutions that can defend a company and its networking assets.
  • Otherwise known as “hacking”Penetration testers (“white-hat” ethical hackers) and cyber-security experts work together for the good of companies and their systems and data. 
  • The cyber-security team develops software to keep important company assets safe from theft, viruses and other malicious attacks. The pentester, or penetration tester, then tries to ‘hack’ into the system to find where the vulnerabilities, or weak spots, are. This way, there’s less chance of your “black-hat” actual malicious hacker getting into your important data.