A Glossary for Tech Recruiters: Part 1
Do you know your CI tools from your VCS tools? Do you know what the main C++ frameworks are? We can all agree that IT is an industry that is peppered with jargon. Because of this, it’s very easy for recruiters, who aren’t as versed in tech, to get confused by all of the language, terminologies, and tools required to source tech talent effectively.
Luckily, our friends at RelocateMe have compiled this incredibly useful glossary for tech recruiters. From back-end technologies to DevOps and everything in between, this is the ultimate reference guide for anybody that sources for tech positions. So be sure to bookmark it and use as a guide when you’re doing your searches – it’ll make all the difference.
Back-end technologies
PHP 5.*
- PHP frameworks: Symfony (2), Zend Framework (2), CakePHP, Yii, Laravel, CodeIgniter
- CMS (content management system): Joomla, Drupal, WordPress, Magento (for e-commerce)
- LAMP: Linux + Apache + MySQL + PHP
- PHP keywords: Twig (templating), PHPUnit (testing), Doctrine (ORM), PHPStorm (IDE), Pear, Smarty
Ruby
- Ruby frameworks: Rails/Ruby on Rails, Sinatra, Padrino, JRuby
- Ruby testing tools: RSpec, Capybara, Watir, Cucumber
- Ruby deployment: Passenger, Capistrano
Java
- Java SE frameworks: Swing, Play, JavaFX, JSF, Netty, Spring MVC, Wicket
- Java EE frameworks: JSP, Servlets, EJB, JMX, JAF
- ORM: Hibernate, EJB, JPA
- Java build tools: Ant, Maven, Gradle
- Java deployment: Tomcat, JBoss, GlassFish, WebLogic
- Java testing tools: jUnit, TestNG, Cactus, EasyMock, Mockito, Cucumber
C# (.NET) Microsoft
- C# frameworks: .NET 1.0 – .NET 4.5.*
- ASP.NET (web framework connected with HTML, CSS, JS): ASP.NET Web API (2), ASP.NET MVC, ASP.NET Web Forms (old school)
- WPF, WCF: WPF – graphical subsystem for rendering user interfaces, WCF – tool to build Service-Oriented applications
- ORM: nHibernate, Entity Framework, Linq2SQL, ADO.NET
- C# testing tools: nUnit, SpecFlow, MStest
Python
- Python frameworks: Django, Flask, Pyramid, Pylons, SQLAlchemy, web2py, Kivy
С++
- C++ frameworks: STL, Boost, QT (for user interfaces), vxWidgets, Loki, POCO, OpenCV (for imaging)
Scala
- Scala frameworks: Akka, Cats, Lift, Play, Scalaz, Slick, Shapeless, Spray
Front-end technologies
JavaScript
- JavaScript frameworks: jQuery, extJS, Angular, React, Ember.js, Backbone, Knockout.js, …
- JavaScript Back-End frameworks: Node.js, Sails, Express, Grunt/Gulp (build tools for Node.js)
- Node.js-based build tools: Grunt, Gulp, Broccoli, Webpack
- JavaScript testing tools: Jasmine, Karma, Mocha
- AJAX: Dynamic requests to server without reloading a webpage
- HTML: HTML4, HTML5, Zurb, Bootstap, Canvas, WebGL
- CSS: CSS2, CCS3, Bootstrap, Compass, LESS, SASS, YAML, Zurb
- Responsive web design: Approach for optimal viewing and interaction across a wide range of devices (from monitor to mobile/tablets)
MOBILE development
- iOS: Objective C, Swift
- iOS frameworks: CoreData (DB in iOS), Cocoa, Cocoa Touch, UIKit, CoreLocation, CoreFoundation, CoreImage, CoreGraphics
- iOS tools: Cocoa Pods (dependency manager), Flurry (for analytics), TestFlight (for installation and testing iOS apps), HockeyApp (platform for apps)
Android
- Android keywords: Android SDK, Android NDK, Android IDE, Gradle (build tool), AndEngine, Robotium (testing) + a lot of Java keywords
- Cross-platform Mobile (mostly JavaScript): jQuery Mobile, PhoneGap, Sencha Touch, Dojo Mobile, Titanium, Xamarin (C#)
Testing (Quality Assurance)
- Functional, Regression testing tools: Selenium (browser automation), WebDriver, SoapUI (for API testing), Watir, Watin, QTP, Cucumber
- Load, Stress and Performance testing tools: JMeter, NeoLoad, LoadRunner, LoadUI, Siege, Gatling
- Types of testing: Load, stress, performance, regressional, functional, security, cross-browser, black-box, etc.
Databases
- SQL: Programming language for managing data held in a relational database management system (RDBMS)
- Relational DB: MySQL, Oracle, Access, MS SQL Server (mostly for Microsoft stack), PostgreSQL, SQLite
- NoSQL: Cassandra, MongoDB, Berkeley DB, Redis, Riak, CouchDB, DynamoDB
- Object-related mapping (ORM): Programming technique that connects databases with object-oriented principles)
- Magic keywords for DBA: Stored procedures, triggers, replication, performance optimization, clustering, back-up, deadlocks, tuning, configuration
Programming paradigms
- OOP (object-oriented programming): Programming paradigm based on the concept of “objects” (which are data structures that contain data, in the form of fields) often known as attributes; and code (in the form of procedures) often known as methods
- Languages with OO features: C++, C#, Java, JavaScript, Objective C, Perl (v5), PHP5, Python, Ruby, Scala,
- Functional programming: Style of building the structure and elements of computer programs, that treats computation as the evaluation of mathematical functions and avoids changing-state and mutable data.
- Functional languages: Scala, Erlang, OCaml, Haskell, F#, Clojure, Elixir
- Scripting language: Programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks that could alternatively be executed one-by-one by a human operator
- Scripting languages: Perl, Shell, Bash, AWK, Python, Ruby, JavaScript, Lua
Architecture
- OOD (object-oriented design): Object-oriented design patterns typically show relationships and interactions between classes or objects
- Design Patterns: Formalized best practices that the developer can use to solve common problems when designing an application
- MVC (model view controller): Software architectural pattern for implementing user interfaces. An easy way to understand MVC: the model is the data, the view is the window on the screen, and the controller is the glue between the two
- Design Patterns examples: Observer, Iterator, Strategy, Factory, Singleton, Composite, Facade, Proxy, etc
- SOA (Service-Oriented Architecture): Architectural pattern in which application components provide services to other components via a communications protocol, typically over a network
- UML (Unified Modeling Language): Way to visualize the design of a software (in diagrams)
- Webservices: REST – software architecture style with guidelines and best practices for creating scalable web services, SOAP, JSON-RPC, XML-RPC
- Markup (formatting and processing of text): XML, XSLT, xPath, XMPP (for messaging)
- API: Connector (bridge) for websites/mobile apps with your software – Facebook API, Google API, Twitter API, etc
Tools
- High-load tools: Memcached (for caching), Nginx (web server for high-load), Varnish, Squid (reverse proxies), haproxy (load balancer), CDN
- Big Data tools: Hadoop, Hive, Pig, Apache HBase, Cassandra, MapReduce (method), Spark
- Continuous Integration (CI): Merging all developer working copies with a shared mainline several times a day.
- CI tools: Jenkins, Teamcity, TFS (mainly C#), CruiseControl (C#), Bamboo, Hudson, Travis
- Continuous Deployment (CD): Updating а server with an automated schedule. These updates include code revision, auto/unit test running
- Bug/Issue Tracking system: Tracking bugs, reports. Issue tracking – software for project management, tasks in team, etc
- Bug/Issue Tracking tools: Jira, Mantis, Confluence, RedMine, YouTrack, Trello, BaseCamp
- Version Control System (VCS): Team of developers may change the same files
- VCS tools: Git, Mercurial, SVN, CVS, Perforce
- VCS services: Github, Bitbucket, Gitlab
- IDE (editors for code): Visual Studio (C#), Eclipse, NetBeans, Aptana, xCode (iOS), WebStorm, IntelliJ IDEA
DevOps
- OS: Linux, Unix, BSD, Windows, MacOS
- Linux Distributions: Ubuntu, RedHat, CentOS, Suse, Debian
- DevOps (Development + Operations): Software development method that emphasizes communication, collaboration, integration, automation. The method acknowledges the interdependence of software development, quality assurance (QA), and IT operations, and aims to help an organization rapidly produce software products and services and to improve operations performance
- Virtualization: Refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, operating systems, storage devices, and computer network resources.
- Virtualization tools: VMware, KVM, Xen, VirtualBox , Vagrant
- Configuration Management: Systems engineering process for establishing and maintaining consistency of a product’s performance, functional and physical attributes with its requirements, design and operational information throughout its life.
- CM tools: Puppet / MCollective, Chef, Ansible, CFEngine, SaltStack, RANCID, Ubuntu Juju
- Monitoring tools: New Relic, Nagios, Icinga, Graphite, Ganglia, Cacti, PagerDuty, Sensu
- Network protocols: TCP/IP (transfering data in computers and internet), HTTP (internet protocol), HTTP/2, WebSockets
- Web servers: Apache, Tomcat (mainly for Java), IIS (mainly for C#), jBoss (Java)
Development Methodologies
- Scrum: Iterative and incremental agile software development methodology for managing product development. It defines “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal, challenges assumptions of the “traditional, sequential approach” to product development, and enables teams to self-organize by encouraging physical co-location or close online collaboration of all team members, as well as daily face-to-face communication among all team members and disciplines in the project. A key principle of scrum is its recognition that during production processes, the customers can change their minds about what they want and need, and that unpredicted challenges cannot be easily addressed in a traditional predictive or planned manner.
- XP: Type of Agile software development methodology which is intended to improve software quality and responsiveness to changing customer requirements. It includes: frequent “releases” in short development cycles, programming in pairs or doing extensive code review, unit testing of all code, avoiding programming of features until they are actually needed, a flat management structure, simplicity and clarity in code, expecting changes in the customer’s requirements as time passes and the problem is better understood, and frequent communication with the customer and among programmers.
- TDD: Software development process that relies on the repetition of a very short development cycle: first the developer writes Automated Test Case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards.
- BDD: Emerged from TDD. The idea is to provide software development and management teams with shared tools and a shared process to collaborate on software development.
- Kanban: Kanban is a method for managing knowledge work with an emphasis on just-in-time delivery while not overloading the team members. In this approach, the process, from definition of a task to its delivery to the customer, is displayed for participants to see. Team members pull work from a queue. Kanban can mean a visual process-management system that tells what to produce, when to produce it, and how much to produce.
Magic Keywords
- Multithreading: Widespread programming and execution model that allows multiple threads to exist within the context of a single process.
- Concurrency: Several computations are executing simultaneously, and potentially interacting with each other.
- Cloud computing: Cloud computing, also known as on-demand computing, is a kind of internet-based computing, where shared resources and information are provided to computers and other devices on-demand. It is a model for enabling ubiquitous, on-demand access to a shared pool of configurable computing resources.
- Distributed system: Software system in which components located on networked computers communicate and coordinate their actions by passing messages. Three significant characteristics of distributed systems are: concurrency of components, lack of a global clock, and independent failure of components.
- Security: Processes and mechanisms by which digital equipment, information and services are protected from unintended or unauthorized access, change or destruction
- Caching: Cache is a component that stores data so future requests for that data can be served faster
- Scalability: Ability of a system, network to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth.The capability of a system to increase its total output under an increased load when resources (typically hardware) are added.
- Availability: Guarantee that every request receives a response about whether it succeeded or failed.
- Performance optimization: Performance tuning is the improvement of system performance.
- Failover: Failover is a backup operational mode in which the functions of a system component (processor, server, network, or database) are assumed by secondary system components when the primary component becomes unavailable.
- Clustering: Grouping a set of objects in such a way that objects in the same group (called a cluster)
- Redundant: Computer or network system components that are installed to back up primary resources in case they fail. Redundant data can protect a storage array against data loss in the event of a hard disk failure.
- Robust: Ability of a computer system to cope with errors during execution.
- Refactoring: Restructuring existing computer code without changing its external behavior. Code refactoring may also resolve hidden, dormant, or undiscovered computer bugs or vulnerabilities in the system by simplifying the underlying logic and eliminating unnecessary levels of complexity.
- Tuning: Improvement of system performance.
- Internationalization (i18n): Process of planning and implementing products and services so that they can easily be adapted to specific local languages and cultures. Internationalisation – an adaptation of the product for potential use virtually anywhere. Reduction of «i18n».
- Localization (l10n): Addition of special features for use in a particular region. «L10n», the number 10 – the number of letters between «L» and «n».
- Accessibility (a11y): Web accessibility means that people with disabilities can use the Web.
- Asynchronous (Async) requests: Asynchronous is a form of input/output processing that permits other processing to continue before the transmission has finished. Asynchronous is used to improve throughput, latency, and/or responsiveness.
- Web sockets: Providing full-duplex communication channels over a single TCP connection. Web Socket protocol makes more interaction between a browser and a website possible, facilitating live content and the creation of real-time games.
(Source: https://relocate.me/blog/)