Every recruiter should be well-versed with the latest technologies in order to source and interview candidates for the IT sector. From Back-end Technologies to DevOps and everything in between, this is the ultimate guide for anybody that sources for technical positions. So be sure to bookmark it and use it as a guide when you’re doing your searches.
Frontend vs Backend
Front End and Back End: Frontend and Backend are the two most popular terms used in web development. These terms are very crucial for web development but are quite different from each other. Each side needs to communicate and operate effectively with the other as a single unit to improve the website’s functionality.
Front end Languages: The front end portion is built by using some languages which are discussed below:
- HTML: HTML stands for Hyper Text Markup Language. It is used to design the front end portion of web pages using markup language. HTML is the combination of Hypertext and Markup language. Hypertext defines the link between the web pages. The markup language is used to define the text documentation within tag which defines the structure of web pages.
- CSS: Cascading Style Sheets fondly referred to as CSS is a simply designed language intended to simplify the process of making web pages presentable. CSS allows you to apply styles to web pages. More importantly, CSS enables you to do this independent of the HTML that makes up each web page.
Front End Frameworks and Libraries:
- SASS: It is the most reliable, mature and robust CSS extension language. It is used to extend the functionality of an existing CSS of a site including everything from variables, inheritance, and nesting with ease.
- Some other libraries and frameworks are: Semantic-UI, Foundation, Materialize, Backbone.js, Express.js, Ember.js etc
Backend Development: Backend is server side of the website. It stores and arranges data, and also makes sure everything on the client-side of the website works fine. It is the part of the website that you cannot see and interact with. It is the portion of software that does not come in direct contact with the users. The parts and characteristics developed by backend designers are indirectly accessed by users through a front-end application. Activities, like writing APIs, creating libraries, and working with system components without user interfaces or even systems of scientific programming, are also included in the backend.
Back end Languages: The back end portion is built by using some languages which are discussed below:
- PHP: PHP is a server-side scripting language designed specifically for web development. Since PHP code executed on the server side so it is called server-side scripting language.
- C++: It is a general purpose programming language and widely used now a days for competitive programming. It is also used as backend language.
- Java: Java is one of the most popular and widely used programming language and platform. It is highly scalable. Java components are easily available.
- Python:Python is a programming language that lets you work quickly and integrate systems more efficiently.
Back End Frameworks:
- The list of back end frameworks are: Express, Django, Rails, Laravel, Spring, etc.
- The other back end program/scripting languages are: C#, Ruby, REST, GO etc.
Java is basically a general-purpose, high-level programming language, which is widely used for the development of application software.
J2SE(Java Platform, Standard Edition)
Also known as Core Java, this is the most basic and standard version of Java. It’s the purest form of Java, a basic foundation for all other editions.
J2SE is mainly used to create applications for the Desktop environment.
It consists all the basics of Java the language, variables, primitive data types, Arrays, Streams, Strings Java Database Connectivity(JDBC) and much more. This is the standard, from which all other editions came out, according to the needs of the time.
J2ME(Java Platform, Micro Edition)
This version of Java is mainly concentrated for the applications running on embedded systems, mobiles and small devices. (which was a constraint before it’s development)
Constraints included limited processing power, battery limitation, small display etc.
J2EE(Java Platform, Enterprise Edition)
The Enterprise version of Java has a much larger usage of Java, like the development of web services, networking, server-side scripting, and other various web-based applications.
J2EE uses many components of J2SE, as well as, has many new features of its own like Servlets, JavaBeans, Java Message Services, adding whole new functionality to the language.
Java Frameworks are the bodies of pre-written code through which you are allowed to add your own code.
- Google web toolkit [GWT]
- JavaServer Faces [JSF]
- Apache Tomcat
- Apache TomEE
- Apache Geromino
- Build Tools
- Apache Maven
- Apache Ant
UI Designer (aka. User Interface Designer)
Well, the title literally says it all, this person designs user interface including any kind of visual layer that stands between the user and a product (mostly digital products). The required fundamental knowledge for this position involves understanding of how human use and communicate with (digital) products to create functional and easy to use interfaces combined with a sense of aesthetic.
UX Designer (aka. User Experience Designer)
Perhaps this is the most tricky one which makes it often hard to explain to a layman. A User Experience Designer is the one whose responsibility is to make sure that the overall experiences of the target users while and after using the product is positive and fit close to the target’s demands. UX designers create mind maps, user journeys, and real-world usage scenarios to stimulate how would the target users use the product to create a solution which helps the users to accomplish their goals in the best possible way. Thus, their job is to make a lot of studied assumptions for which they design the solution to test and validate.
One of the most important steps of the user experience design process is to study the users whose experiences they’re trying to design for. In order to do that, UX designers try to collect as much information as possible about the target audiences by conducting interviews, taking surveys, quantitative analysis, etc. Collecting user’s data is an on-going process that never ends. UX designers collect and analyze the data constantly to create insights which will be the guideline for everyone else is not just the product team to make design and strategic product decisions.
User Experience Designer doesn’t necessarily possess visual or graphic design skill set, however, an understanding of psychology and systematic design is a must.
This is basically graphic design or anything that needs a sense of aesthetic. Visual Designer’s main job is to make the thing look pretty and stylish. Most of the time, this position involves working with things that need to be printed out such as book covers, branding packages, billboards, etc. However, it’s not just limited to print material, Visual Designer also creates beautiful digital websites, banners, infographics, etc. At the core, they’re best at beautifying stuff.
I think this one is closely related to UI Designer except for the part that Interaction Designer is more about understanding human behaviors. Since the job is all about the layer that contains what happens between the users and the product, Interaction Designer should know how to design the interactions on a product to be easy to understand and meaningful. The product could be anything ranges from digital products such as websites and apps to a washing machine or a pen. Interaction Designer’s job is to create not just useful and functional interactions, but the interactions should be engaging as well to retain users’ attention and focus.
Product Designer is the person in charge of everything related to the concept and process of creating a product that satisfies the business’s needs as well as the customers’ needs. I think this title is very likely to be confused with UX Designer since their jobs share a lot of mutual aspects. However, the difference of the Product Designer role is that this one’s responsibility is a little bit wider than UX Designer since it involves more than just user experiences. Product designing consists of many disciplines and aspects such as visual, user experience, functional, interaction and packaging design.
This is the most confusing title ever and yet every company and everyone is using it so wildly. For this title, it could be interpreted as a person who does a little bit of this and a little bit of that or both. Or it could be put in short as a UX Designer who also knows visual design.
However, in reality, most UX/UI designers actually spend most of their time doing UI works with a few users study, which makes it a total UI design job. While, in most of those companies that employ this title, a part of the UX job is actually done by the marketing and sales team.
Software Testing is a process of evaluating the functionality of a software application to find any software bugs. It checks whether the developed software met the specified requirements and identifies any defect in the software in order to produce a quality product. It is basically executing a system in order to identify any gaps, errors, or missing requirements in contrary to the actual requirements
Types of Testing
Testing is an integral part of any successful software project. The type of testing depends on various factors, including project requirements, budget, timeline, expertise, and suitability. Software testing is a huge domain but it can be broadly categorized into two areas such as :
Manual Testing – Manual Testing is a type of Software Testing where Testers manually execute test cases without using any automation tools. It means the application is tested manually by QA testers.
Some of the tools used for Manual Testing are:
Automation Testing – Automation testing is an Automatic technique where the tester writes scripts by own and uses suitable software to test the software. It is basically an automation process of a manual process. Like regression testing, Automation testing also used to test the application from load, performance and stress point of view.
Types of testing that can be automated.
- Unit Testing
- Integration Testing
- Functional Testing
- Smoke Testing
- Regression Testing
Some scripting languages used in automated testing are:
- Unix Shell Script.
Some of the tools used for Automated Testing are :
Selenium is a popular automated web testing tool and helps you to automate web browsers across different platforms. Quite popular among the large browser vendors, Selenium is a native part of their browsers. Webdriver is the latest version of selenium with improved functional test coverage, like the file upload or download, pop-ups, and dialogs barrier
- Test Partner
- Silk Test
QTP, RFT, Silk test are Licensed tools and whereas Selenium is an open-source tool.
Types of Test Automation Frameworks:
- Linear Scripting Framework
- Modular Testing Framework
- Data-Driven Testing Framework
- Keyword Driven Testing Framework>
- Hybrid Testing Framework
- Behavior Driven Development Framework
Level of Testing
Functional Testing: Functional testing involves testing the application against business requirements. The goal of functional testing is to verify that the application is behaving the way it was designed to.
Unit Testing: Individually and independently testing of smallest testable parts of an application.
Integration Testing: When individual software modules are combined together and tested as a group than it is known as Integration Testing.
Smoke Testing: Preliminary testing to reveal simple failures severe enough to (for example) reject a prospective software release or build.
Sanity Testing: A very brief run-through of the functionalities to assure that part of the system or methodology works roughly as expected.
System Testing: Testing conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements.
Regression Testing: Retesting of a software system to confirm that changes made to a few parts of the codes have not any side effects on existing system functionalities.
Acceptance Testing: Formal testing with respect to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria.
Alpha & Beta Testing: Alpha Testing is conducted by a team of highly skilled testers at the development site whereas Beta Testing is always conducted in Real-Time environments by customers or end-users at their own site.
End to End Testing: End to End Testing is usually executed after functional and system testing. It uses actual production like data and test environment to simulate real-time settings. End-to-End testing is also called Chain Testing.
Non-Functional Testing: Non-Functional testing is designed to figure out if your product will provide a good user experience.
Performance Testing: To evaluate the performance of components of a particular system under a particular workload.
Load Testing: Testing the behavior of the system under a specific load or to get the breakeven point where the system starts downgrading its performance.
Stress Testing: It is performed to find the upper limit capacity of the system and also to determine how the system performs if the current load goes well above the expected maximum.
Usability Testing: Testing to determine the extent to which the software product is understood, easy to learn, easy to operate and attractive to the users under specified conditions.
Security Testing: This intends to uncover vulnerabilities of the system and determine that its data and resources are protected from possible intruders.
Portability Testing: Software reliability is the probability that software will work properly in a specified environment and for a given amount of time.
Methods of Testing
Black Box Testing: Method in which the internal structure/ design/ implementation of the item being tested is NOT known to the tester.
White Box Testing: Method in which the internal structure/ design/ implementation of the item being tested is known to the tester.
Gray Box Testing: Method in which tester has knowledge of some parts of internal structure.
(SYSTEMS, APPLICATIONS, PRODUCTS)
SAP is the fourth largest software company in the world.
The SAP R/3 system is a business software package designed to integrate all areas of a business.
It provides end to end solutions for financials, manufacturing, logistics, distribution, etc.
All business processes are executed in one SAP system and sharing common information with everyone.
SAP is an Enterprise Resource Planning (ERP) system by SAP AG.
After the hugely successful R/3, SAP created more and more niche software like Customer Relationship Management (CRM), SRM, XI (now called Process Integration or PI) and once again living up to the standards of SAP by maintaining tight integration with their core ECC software. The newest version of the suite is SAP ECC 6.0.
SAP Founded in and around 1972 by five IBM engineers Hopp, Wellenreuther, Hector, Tschira and Plattner.
SAP R/1:– The first version of SAP software was launched in and around 1972 known as the “R/1 system. R” stands for real-time data processing. it is one tier architecture in which three layers Presentation, Application, and Database are installed in one system/server
(one – Presentation + Application + Database).
SAP R/2:– In 1979 the second version of SAP R/2 was released. with IBM’s database and a dialogue-oriented business application. SAP R/2 to handle different languages and currencies. R/2 is 2 tier architecture in which three layers Presentation, Application, and Database are installed in two separate servers.
(Server one – Presentation, Server two – Application + Database.
SAP R/3:– SAP upgraded R/2 to R/3. SAP R/3 is the client/server version of the software and it is 3 tier architecture in which three layers Presentation, Application, and database are installed in three server/system.
Server one – Presentation, Server Two – Application, server Three – Database
Products of SAP
- SAP R/3 and R/3 Enterprise
- mySAP Business Suite
- SAP ERP
- SAP Industry Solutions
- SAP xApps
- SAP Solution Manager
- SAP R/3 – Modules & Integration
SAP ERP Functional & Technical Modules
SAP Modules can be categorized into:
Functional Modules: Back in the early days of SAP, a functional consultant was one who interpreted business processes, wrote specs, and did configuration. The functional consultant was typically the person that configured the system to reflect business requirements.
- Gathers requirements from the client
- Translates the requirements into functional specifications.
- Needs to know CRM Base Customizing and Business Terms
Technical Modules: A technical consultant was typically a programmer or basis person. The former was a person who developed programs specified by functional people to fill gaps between business processes and SAP. The basis people made sure the lights stayed on and the system worked.
- Needs to understand the functional requirement from the functional specs.
- Translates functional specs into technical specs.
- Does the coding as per the technical specs.
- Needs to know basic ABAP
- Needs to know basic business processes(optional).
These functional and technical modules are tightly coupled. Below is a list of key SAP Modules
SAP Functional Modules:-
FICO – Finance & Control
PP – Production Planning
MM – Material Management
SD – Sales & Distribution
HR – Human Resources
CRM – Customer Relationship Management
SAP Technical Modules
ABAP – Advanced business applications programming
XI – Exchange Infrastructure
BIW – Business Information Warehousing
Finance Module: Includes such modules as Financial Accounting, Controlling, Investment Management, Asset Management, and Treasury Management
Logistics Module: Includes Sales and Distribution, Materials Management, Warehouse Management, Product Lifecycle Management, Production Planning
Human Capital Management: All modules required to define an organization, recruit, hire and manage human resources.
Netweaver: The underlying technology platform that SAP operates on, as well as SAP Business Warehouse (sort of).
Supply Chain Management (SCM): Originally understood to be SAP APO or Advanced Planner and Optimizer, now includes, via integration, many parts of the logistics system.
Customer Relationship Management (CRM): Includes modules for Sales, Service and Marketing and call center management, integrated with Sales and Distribution.
Master Data Management: Really a suite of tools designed to manage the entire lifecycle of your Master Data (Customer Data, Product Data, many others).
Strategic Enterprise Management: Though somewhat supplanted by Business Objects Business Planning and Consolidation (BPC), includes Business Planning and Simulation (BPS), Balanced Scorecard (Balanced Scorecard), Stakeholder Relationship Management (SRM), Management Cockpit and Business Consolidation (BCS).
Business Warehouse (BW): Includes everything you need to build a data warehouse and reporting solution, including ETL (Extract, Transform, Load, Staging Tools, Metadata Management, Modeling, and Query and Reporting Tools)
SAP Hana: Includes everything you need to build a big-data data warehouse (up to 196 terabytes in ram) and reporting solutions, including ETL (Extract, Transform, Load, Staging Tools, Metadata Management, Modeling, and Query and Reporting Tools). SAP Hana is a 3-part solution consisting of SAP Hana, Data Services and Business Intelligence (BI) and comes in 2 flavors: BW on Hana for existing BW systems and Native Hana for greenfield implementations.
Industry Solutions: More than 30 Industry-specific solutions and numerous partner Industry Solutions, including MRO (Maintenance Repair and Overhaul), Well Drilling, Legal Services, Poultry and Dairy, among many.
S/4 Hana: The new Cloud-based full SAP ERP system, subscription basis.
What is SAP FICO?
SAP FICO Stands for FI (Financial Accounting) and CO (Controlling). SAP FICO is the imp module of ERP and both Finance and Controlling modules stores the financial transactions data. The ‘FI (Financial Accounting)’ records, collects and processes financial transactions or information on a real-time basis to provide the necessary inputs for external (statutory) reporting purpose. SAP CO plays an important role in the management decision making purpose and for the internal reporting purpose.
The Production Planning application module is used to plan and control the manufacturing activities of a company. consists of all system configuration, master data, , and complete solution to Produce process.
SAP SD ?
SAP SD ( Sales and Distribution ) is an important module of SAP and it is a part of logistics. The main activities of SD are sales order handling, distribution of shipments to customers, the billing process, customer invoice, delivery. SD module is fully integrated with other modules in the SAP R/3 System.
What is SAP HR ?
SAP Human Resources manages complete employee life cycle and payroll. All aspects are covered from training to appraisal.
DevOps Engineer works with developers and the IT staff to oversee the code releases They are either developers who get interested in deployment and network operations, or sysadmins who have a passion for scripting and coding, and move into the development side where they can improve the planning of test and deployment. Either way, these are people who have pushed beyond their defined areas of competence and who have a more holistic view of their technical environments.
DevOps Automation Tools
It is vital to automate all the testing processes and configure them to achieve speed and agility. This process is known as DevOps automation.
Amazon Web Services (AWS): Being a cloud service you do not need to be physically present in the data center. Also, they are easy to scale on-demand. There are no up-front hardware costs. It can be configured to provision more servers based on traffic automatically.
Chef: It is a useful DevOps tool for achieving speed, scale, and consistency. It can be used to ease out complex tasks and perform configuration management.
Jenkins: This tool facilitates continuous integration and testing. It helps to integrate project changes more easily by quickly finding issues as soon as a built is deployed.
Splunk: This is a tool that solves issues like aggregating, storing, and analyzing all logs in one place.
App Dynamic: It is a DevOps tool that offers real-time performance monitoring. The data collected by this tool helps developers to debug when issues occur.
Nagios: It is also important to make sure people are notified when infrastructure and related services go down. Nagios is one such tool for this purpose which helps DevOps teams to find and correct problems.