Friday

IAM Security consultant



Job Title :IAM Security 
Job Location: Fort Worth Texas – Must be Local 50% Onsite
Job type : Contract / Contract to Hire
Work Authorization: USC / GC
Rate : 70hr W2 or $80hr c2c ( own corp )
Contract / Contract to Hire
Job Description:
  • 8+ years of software design and development, including at least 5+ years of development experience with Identity and Access Management technologies, 3+ years of relevant hands-on technical management experience and 2+ years of experience with cloud
  • This engineering position would be responsible for the development, deployment and support of Security Identity and Access Management solutions as directed by management and senior team members.
  • Additionally, this engineer will be responsible for troubleshooting and triaging issues, monitoring system health, deploying enhancements, hot fixes and fix packs, performing configuration changes in multiple environments, and coordinating with
  • key stakeholders from IT operations, business teams, and third party vendors.
  • Must be able to assist with user identity administration and maintenance of user security roles and profiles.
  • Must be able to provide technical guidance and possess the ability to compose, articulate and present complex technical issues to peers, management and clients to gain consensus and recommend and/or act to complete complex deployments.
Preferred Technical Qualifications
  • 8+ years of software design and development, including at least 5+ years of development experience with Identity and Access Management technologies, 3+ years of relevant hands-on technical management experience and 2+ years of experience with cloud provider services (AWS or Azure).
  • 3+ years of design, development and support experience with SailPoint IdentityIQ (IIQ 8.x) including Life Cycle Manager
  • (LCM) and Compliance Manager(CM) which includes hands on experience with the following SailPoint IdentityIQ components such as but not limited to Workflows, Rules, Connectors, Security Policies, Aggregation Jobs, Roles, Certification Campaigns and Application Integration.
  • Experience working in DevOps environment, automation first mindset, ability to leverage coding/scripting skills and  working experience with APIs.
  • Ability to compose, articulate and present complex technical issues to both technicians and clients to gain consensus.
  • Exposure to all and expert knowledge in three or more of the following technologies: Automated Provisioning, Directory
  • Services, Application On-Boarding, Password Management, Re-certifications, Access Requests, Access Review, Delegation,
  • Dynamic Organizations, Role based Security & Access Control, Customer Identity Management.
  • Fluency in more than one technology stack and expertise in several of the following: C, C++, Java, J2EE, JSP, Servlet, EJB,
  • Application (Client/Server), LDAP, RMI, WAS, Web Services, WS-Security, SAML, HTML, XML, XSLT, SOAP, MQ Series, LDAP / Active Directory, Federation Protocols such as OpenID
Knowledgeable in the following areas:
  • Identity as a Service
  • Mutual Auth for Service -Service
  • PIM methodologies REST and REST Security
  • Experience with DB2, SQL Server, Oracle, or another enterprise-class RDBMS
  • Operating Systems like Windows, AIX, and Linux.
  • SOX audit controls and applicability to IAM services architecture, design, and processes
  • Java Application Interface Development and Object Models
  • Enterprise Service Bus (ESB) technologies / JMS Advanced systems design
  • Certifications is a plus
  • Hands on experience with IBM Security Identity Manager (ISIM) is a plus

Wednesday

Cyber Security Engineer Remote Opportunity

Job Title: Senior Cyber Security Engineer

Job Location: 100% Remote

Duration: 12+ Months plus

Visa allowed :USC/ gc/ gcead/ h4 ead

 

Must have 

Endpoint Security EPP/EDR

Microsoft E5

Microsoft Intune

 

Job Description

·         Monitor new and emerging security threats from various sources. Assist with creating product detection mechanisms based on emerging threats. Working knowledge of Linux, Firewalls, Virtual Private Networking, Intrusion Detection / Prevention and penetration testing.

·         Strong technical track record and hands on experience with many of the following technologies: L2/L3 firewalls, application layer security, Intrusion Detection/Prevention, anti-virus solutions, spyware/malcode tools, DDOS mitigation, traffic profiling/anomaly detection, wireless security, VPN and VoIP security.

·         Ability to troubleshoot through network traces and maintain the highest levels of client assurance and confidence. Bachelor Degree in Computer Science or equivalent. 2-5 years with Security implementation experience.

·         Must Have:

·         This role will focus on endpoint security maturation and EPP/EDR product evaluation. Advanced knowledge of Microsoft E5 Security suite required.

·         Experience conducting Endpoint Security (EPP/EDR) product evaluations is a plus.

·         Advanced knowledge of Windows and Linux security Advanced knowledge and experience with Microsoft E5 Security suite of tools.

·         Experience with endpoint security tools like Corowdstrike, SentinelONE, Deep Instance and others Experience with threat hunting, incident investigation, and security monitoring


Todays open positions

 Please hare your consultant resume at vicky@proitshub.com

Job TitleJob LocationExpMandatory Skills
Java ArchitectRichardson,TX10+Java, Spring, Web/Application server architecture, Junit, Oracle, Rest API
.Net ArchitectRichardson,TX10+.net, MVC, adonet
Python developerSunnyvale, CA5+Python, Tableau
Python developerAustin,TX5+Python, Tableau
Java DeveloperAustin, TX / Sunnyvale, CA7+Java, Spring, Web/Application server architecture, Junit, Oracle, Rest API
Network EngineerRemote10+3G, 4G, 5G, wifi wireless
PHP DeveloperSunnyvale, CA5+PHP, Laravel, JavaScript
iOS DeveloperSunnyvale, CA Plano, TX5+Java, Kotlin, Objective c
Solution ArchitectPlano, TX (Hybrid)10+Technical expertise in Automotive Connected Vehicle and Services, Connected Device management, OTA, and similar technologies
Business AnalystSunnyvale, CA Austin,TX5+RDBMS or NoSQL
UI DeveloperSunnyvale, CA5+Nodejs, ReactJS, React Hooks, Angular 8, Angular JS, HTML, CSS, JavaScript,Desired: Accessibility, SEO

Tuesday

Python Developer Positon

Job title: Python developer
Location: Sunnyvale, CA, Austin, TX
Experience: 5+ Years
Mandatory Skills: Python and Tableau
Job Description

a) Mandatory : Python, Django, PostgreSQL, strong logical skills, strong operating system concepts, strong data structure concepts, multi-threading concepts.
b) Good to have : Knowledge of REDIS, micro-service architecture, MQTT, Message queues like Rabbit MQ, Kafka, 3rd party API integrations like payment gateways, email APIs, SMS API's. Experience with Pandas, NumPy, Scikit would be a great addition.
c) Soft Skills : Strong communication skills, high spirited, eager to learn, able to perform in a high-pressure environment


Please share your and your consultant resume to vicky@proitshub.com

Monday

Network Engineer Position

Job title: Network Engineer
Location: Plano, TX
Network Engineer – Requirement:
3g, 4g, 5g, and networking with wifi and wireless must



10-15 years+ of experience in the wireless communication industry with experience in commercial cellular services for 3G UMTS, 4G LTE & 5G NR technologies Systems, RF Design, Backhaul, Proposals, and RFP which include Macro Designs, DAS, Small Cell for Public Safety, WiFi, Satellite Trail, Network Broadband Wireless Certification, Vehicle Connectivity, Fleet Management, Advanced Technology, Open Platform, vendors and wireless roadmap planning, compliance documentation Network Development, Product & Strategy, Training/Development, Troubleshooting.
• Experience with RF Field Tools like Actix Analyzer, Spectrum Analyzer, Signal Generator, Network Analyzer, and Network Simulator
• Experience with WCDMA, EVDO, 3G UMTS, 4G LTE & 5G NR
• Experience working with IP networking, routers & switches.
• Experience working with AT&T, Sprint/T-Mobile, Verizon, etc.
• Devise, plan, deploy, and improve wireless networks from the beginning to implementation by collaborating with vendors, managers, and network engineer
• Experience with automotive, telematics, IoT

Open Positions

 Please share your open position in the comment with your Email ID 

Friday

Basic Computer Science for IT Recruiters

iOS

iOS is the operating system that Apple developed to power its ubiquitous iPhone. Apple has used its operating system to power a number of other devices including the iPad, Apple Watch, and Apple TV. So if you hire an iOS developer, will they be coding in iOS? Well not exactly. When you talk about an iOS Developer, you’re actually talking about a developer who uses one or both of the languages which are proprietary to iOS. Starting in 2008, Apple released its own proprietary programming language, Objective-C to be used for iOS. That was joined four years ago by Swift. While these are the only two languages available for iOS, you can also use these languages to develop software for macOS as well. But even if they can be used for both operating systems, they are a bit different in some key ways. Objective-C is reflective, class-based, and object-oriented. Swift is multi-paradigm, protocol-oriented, object-oriented, functional, imperative, and block-structured. Swift borrowed its general language ideas heavily from Objective-C along with JavaScript, Ruby, and Python. It is also much more convenient than Objective-C, mostly because it’s type-safe. This has meant that it’s become easier to start learning iOS programming and improve the safety and stability of applications. What you’ll find is that while there are a number of legacy systems that use Objective-C, Swift has mostly taken over as the programming language of choice for iOS. The learning curve for writing safe, bug-free code is a bit steeper with Swift than it was for Objective-C. That said, once developers master Swift, the practice of writing safe, bug-free code is actually easier than it was with Objective-C. Swift uses the same runtime environment and SDK as Objective-C. This means that it is fully backward compatible with the entire iOS tech stack as well as new Swift-only tools. You’ll find that the iOS environment changes on regular basis. There’s usually a major update once a year which informs the languages that are used as well as the direction of development. They are usually announced at WWDC or the World Wide Developers Conference. This is the biggest event in the world for iOS developers with all new iOS technologies announced in the keynote.


Any recruiter who is looking for iOS developers should take note of what is announced here to stay atop the latest iOS technologies. The two most important libraries that all iOS developers must know are UIKit and Foundation. An iOS developer simply can’t build any apps without these so it is mandatory that the developer can use these tools. In addition, to the Apple-supported tools, there are a huge number of open-source libraries and frameworks that iOS developers can draw on to build their software. Probably the most valuable thing an iOS developer’s CV can tell you about is the types of projects that the candidate engages in. These can include essential functions like Bluetooth, local databases, and working with location services. Obviously, a huge plus would be if they’ve developed an app. Any app can be checked by going to the iOS app store. Building apps isn’t the only useful experience to look for on your candidate’s CV. Experience with other languages, especially C++ is great to see. It is also good to see that the candidate has worked with a specific platform such as Apple Watch or Apple TV. Because of the nature of the platform, you want to see knowledge of unit testing and the App Store submission process.

Beyond that, the different versions of the operating system are basically the same with only the addition of new extensions. The most common iOS technology names that are used interchangeably

CoreData and SQLite can be used interchangeably. All of the versions of Swift that are available are similar to each other. Of course, the language has gone through multiple iterations from 1.0 to 4.2. And each of these has introduced its own specific changes. However, if someone has experience with three they should have no problems using the latest version. Now, let’s talk about the skill set that is required by a senior iOS app developer. Multiple Programming languages: Being at the designation of a senior iOS app developer, you cannot think of growing by holding on to just a single programming language. At this point in your career, as an app developer, you need to hold expertise in multiple programming languages. For iOS mobile app development, my suggestion would be to strengthen your Swift and Objective-C. UI design: The UI (User Interface) design is another skill that is vital for app developers. The use of color, the graphical representation of pictures, integration of audio and videos, the overall appeal of language flow, everything falls under the User Interface. It is a developer's job to make the app as interactive as they can for the end-users. The motive here is to get the target audience hooked on your app at the earliest.


Java Development

Java is an object-oriented programming language, similar in syntax to C++. It is intended to let application developers “write once, run anywhere” meaning that compiled Java code can run on all platforms that support Java without the need for recompilation. An application written in Java has very good performance thanks to the use of a Just-In-Time compiler which continuously analyses the program speed and optimizes frequently executed spots. Another key advantage of Java is automatic memory management which allows developers to write applications without worrying explicitly about memory allocation and deallocation. As of now, it is one of the most popular programming languages in use. Java is not considered an easy-to-use language for non-programmers. Java and JavaScript are both totally different languages, so don’t confuse these two programming languages. 

Firstly, the Java world changes often, so experience with the framework gained 5 years ago is not valid anymore. Bear this in mind when you assess Java skills based on so far employment. Secondly, in the Java environment, knowledge of tools and libraries is more valuable than knowledge of the language itself. Without it, a programmer will write everything by himself from scratch and just waste time. If a developer is familiar with Java libraries and frameworks then he can use it like Lego to make what they need and write code only where it is necessary. By doing it this way their work is much more efficient. Last but not least only commercial experience is important. Java knowledge from a university is hardly ever useful for business coding. So unless you recruit for an entry-level or junior position you can skip assessing Java skills based solely on university education and degree. In that case, what is more, important is the candidate’s real-life coding projects, it doesn’t have to be a commercial one – it can be a hobby or open-source programming project. 

When you start screening the resume, you come across terms like Hibernate or JMX, and pretty quickly you get confused about whether this is the candidate you are looking for. Now that you know the basics, we can go into detail. If the candidate states that they know EJB does it mean that they are familiar with Java EE? Or if the applicant knows Maven 1 does it mean they can also deal with Maven 2? 
Relations between respective versions of Java technology:
EJB 2.0 is totally different from EJB 3.0,
Java EE 1.4 is totally different from Java EE 5,
Java EE 7 is an enhanced version of Java EE 6 which is an enhanced version of Java EE 5,
Spring 2.0 or Spring 3.0 is similar to Spring 4.0,
Acegi changed its name to Spring Security,
Maven 1 is totally different from Maven 2,
Maven 2 is very similar to Maven 3,
Hibernate 4. x is very similar to Hibernate 5. x,
GWT 1. x is different from GWT 2. x,
Struts 1 is totally different from Struts 2,
JPA 2.x is a richer version of JPA 1.0.

It is also valuable to be aware of the following relations:
Full-text search: If someone knows one of Lucene, Solr or ElasticSearch will be able to deal with the rest.
Object Relational Mapping: If someone knows one of Hibernate, EclipseLink, and OpenJPA then will be able to deal with the rest.
RESTful services: If someone knows one of Spring MVC, JaxRS, or Jersey then will be able to deal with the rest.
The significance of a Java certificate for assessing a developer’s Java skills
Java certificates are usually appreciated by employers. However, certification seldom is a requirement for a candidate. As a technical recruiter, I have to be however cautious in assessing Java programming skills based on certificates, because none of them serves as a guarantee for developers' capabilities. It happens very often that a very experienced programmer hardly passes the certification exam and weak programmer scores well in such an exam. Why is it so? Such certificates hardly verify practical skills. They usually require learning by heart things that a more experienced developer would quickly find in documentation or be able to verify it. By quickly I mean within several seconds using their favorite IDE (software that a programmer uses to work on applications), which is not available during the exam. BTW, being not able to use IDE doesn’t make sense ‘cause on a daily basis, the programmer uses a lot of external sources, such as IDE, to perform their job. Below you will find a list of Java certifications divided into 3 groups

A. Practical Java certificates, requiring hands-on experience, guarantee in-depth knowledge of the subject
Spring Certificates:
Spring Professional,
Spring Web Application Developer,
Enterprise Integration Specialist.
B. Useful Java certificates can serve as a reliable proof of knowledge
Oracle Certified Master, Java SE 6 – requires pretty good level Java skills, but only Java 1.6, which was released 10 years ago (2006),
Oracle Certified Expert, Java EE 6 Web Services Developer – requires sound knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success,
Oracle Certified Expert, Java EE 6 Java Persistence API Developer – requires sound knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success,
Oracle Certified Master, Java EE 6 Enterprise Architect – a candidate understands and can apply Java on an architecture level,
IBM WebSphere – requires sound product knowledge but doesn’t verify commercial experience, therefore, it cannot serve as a guarantee for project success.
C. Java certificates – theoretical knowledge, not much use from a business perspective
Oracle Certified Associate, Java SE,
Oracle Certified Professional, Java SE,
Oracle Certified Expert, Java EE 6 JavaServer Faces Developer,
Oracle Certified Expert, Java EE 6 Web Component Developer,
Oracle Certified Expert, Java EE 6 Enterprise JavaBeans Developer.
Other information on a resume that can show a developer’s Java skills
Participation in an open source project is the information worth taking into account. If the candidate is a contributor to well-known and large projects then it can be of great value. It is also important if a programmer has experience in similar kind of IT projects that we are looking an employee for. Creating new things requires a different set of skills and attributes than maintaining them.






Python

The key advantages of Python are (1) Flat learning curve. It brings in users with little technical experience, like academics for research, or business for automation. (2) It’s owned by an independent Python Software Foundation (PSF) and guided by the community. (3) Powerful scientific tools (e.g. SciPy). (4) Good documentation and community support. This includes many local user groups and conferences. Since Python has a variety of uses. It is often difficult to distinguish candidates from academics, through network programming and web applications to simple scripting. Yet it is often easier for a developer to learn new Python than to change her domain (e.g. Data Science to Web Applications). In 2007, Python 3.0 was released. It was rejected by the community due to backward incompatibility. This challenges the community to this day, as Python 2 and 3 share marked nearly equally to this day. Python is dynamically typed, which ease scripting and writing small applications. It is often said to bring difficulties in building large and long-lasting applications.

Highlights: - Python 2 and 3 are very different. Python 2.7 is the latest (and last) version of Python 2. Python 3 version is evolving and the latest version is 3.6. Asyncio is only met in Python 3. Tornado, Twisted, Gevent are all libraries for async programming. Django is by far the most popular web framework. Unit test library is built into the language, therefore rarely mentioned separately.

Certification: - Python Community does not provide any Certification program. Therefore it is rare to meet any (independent) certificates for Python language or libraries.

Full-stack developers: - Full-stack often means that a Python developer may also create HTML pages with CSS and JavaScript. Frontend skills are welcome and most of the JavaScript screening knowledge applies here.

.Net 

.NET is a software development framework from Microsoft. It provides a controlled programming environment where software can be developed, installed, and executed mainly on Windows-based operating systems (this is changing with the introduction of .NET Core). It was Microsoft’s response to the rapid growth of the Java platform and that’s why many concepts (starting from languages’ syntax and including the idea of executing programs on a virtual machine) of those two are similar. The .NET platform supports many languages, like C#, Visual Basic .NET, F#, and C++ .NET. It also gives .NET developers a bunch of libraries and frameworks, making it very straightforward to create a large variety of applications (web, desktop, and mobile), including ones for the most sophisticated enterprise purposes. The main advantages of .NET include: natural integration with other Microsoft products/tools like Office, the framework’s maturity and stability, and great support from the .NET developer community. We have come up with a list of the most important things IT recruiters should know when it comes to .NET. Just like in the Java environment, only being familiar with a specific language (in most cases it will be C#) is simply not enough. To be a productive .NET developer, you need to know libraries and frameworks, like ASP.NET, MVC, or Entity Framework. This these are the building blocks of any non-trivial commercial application built using .NET. It is important not to rule out candidates if they don’t know a single framework from the requirements’ list. .NET frameworks are often similar and if the candidate has a decent knowledge of one of them, they can easily migrate to the required one. Despite not knowing the library or framework in question, they should still understand the ideas and principles behind it. If you want to learn more, we will give examples of these relationships a bit further down. Commercial experience is what really counts and brings real value for an employer. .NET knowledge from university, unless it’s very practical, doesn’t bring much to business coding. Of course, if you are looking for a junior .NET developer, education does matter. But remember that you can take into account programming experience, even if it is non-commercial. Ask if the candidate has done any hobby or open source programming project that was done in .NET technology.

.NET Core Framework:- .NET is constantly evolving at a rapid pace. Previously, a common limitation of .NET was problems with porting the framework to other hardware architectures and operating systems. This among other factors eventually led to the creation of the .NET Core framework. This is now open source and supports Windows, Mac, and Linux. .NET Core hasn’t replaced the previous version of .NET. For now, the two are being developed in parallel and it doesn’t seem that .NET Core will replace .NET anytime soon. There are many applications built using .NET and they will still have to be maintained and updated. Not only could that, updating an application from .NET to .NET Core be hard or even impossible for technological and/or financial reasons. Well, both are quite similar overall, with some differences in details depending on libraries and components. Generally speaking, a .NET developer should be able to get comfortable with using .NET Core pretty easily. That said, there are some specific parts of .NET like ASP.NET Web Forms, or .NET C++ language which currently aren’t supported by .NET Core, and no one knows if they ever will be. For now .NET Core is usually used in low-risk new projects that are just starting from scratch (startups etc.) It’s possible to use some .NET components in .NET Core apps (but not the other way round). Some companies may try to rewrite their existing software into .NET Core, or just write new modules using .NET Core. To do this, there will be a demand for developers who know both .NET and .NET Core. Due to the similarities between .NET and .NET Core, we will refer to both of them as .NET from here on out, pointing out differences if needed

Azure: - Nowadays, Microsoft has its own cloud platform – Azure. And it’s getting more and more popular as time goes one. The demand for developers who are able to use its functions is also rising. The pricing of Azure services is based on the usage of computing power and resources needed. This means that careless software development may lead to increased bills, even after app deployment. The set of new ideas and technologies that comes with Azure doesn’t make it easier to create optimal software since many developers haven’t had enough time to become experts in those solutions yet. Let’s see at a glance what issues the .NET developers could be familiar to in the context of Azure:

Web apps
Serverless functions
Cosmos DB
Service fabric
Blog storage
Containers and microservices

Azure is a very deep subject that comes with many new functionalities like these and many more. Now that you are familiar with .NET basics, we can go into further detail. If you’re not a technical person, then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says that they know C#, does it mean that they are familiar with Visual Basic .NET? Or if the applicant knows ASP.NET MVC 1, does it mean they can also use ASP.NET MVC 3? Just keep on reading and you will get an answer.

The most common .NET technology names that are used interchangeably:

ASP.NET, ASP.NET MVC, .NET MVC (Model View Controller)
EF, Entity Framework, ADO.NET Entity Framework
Windows Communication Foundation, WCF, SOA, Service-Oriented Architecture
How close respective versions of .NET technologies are to each other:
ASP.NET MVC 3/4/5 are similar
ASP.NET Core MVC is a bit different than ASP.NET MVC 5
ASP.NET MVC 1 and ASP.NET MVC 2 are similar
ASP.NET MVC 3 is different than ASP.NET MVC 2
C# 7 (there were a few of them: 7.0;7.1;7.2;73) is a bit different than C# 6.0
C# 7 is used in .NET Core and .NET 4.6.2+
C# 6.0 is a richer version of C# 5.0 which is a richer version of C# 4.0
C# 4.0 is a bit different than C# 3.0
C# 3.0 is different than C# 2.0
Entity Framework 7.0 was renamed Entity Framework Core because it was completely rewritten from scratch
Entity Framework Core is a bit different than Entity Framework 6.0 Some things seem the same in the code but works in a different way under the hood.
Entity Framework 6.0 is similar to Entity Framework 5.0
Entity Framework 5.0 is similar to Entity Framework 4.0
It is also valuable to be aware of following relations:
C# is totally different than Visual Basic .NET
ASP.NET MVC is totally different than ASP.NET Web Forms
WPF is totally different than Windows Forms
All IoC containers are very similar conceptually. If someone knows one, then it’s easy to adapt to another
.NET Core doesn’t need an IoC container as it’s come with its own, but it can utilize the existing ones.
nHibernate is similar to Entity Framework
Entity Framework and nHibernate are totally different than ADO.NET
RESTful Services: If someone knows ASP.NET Web Api then will be able to deal with the others
How important are .NET certificates for assessing a .NET developer’s coding skills?
Certificates are a bit of a controversial subject in the .NET world. Some companies and specialists say that they are the best proof that the candidate has in-depth knowledge of .NET. Others believe that exams hardly test any practical skills at all, concentrating instead on exceptions and theoretical knowledge. It is safe to say that certificates don’t necessarily prove anything. Many great developers don’t have any as they don’t see any value in them. Others, who may not have a lot of commercial experience, will try to “boost” their market position by taking a certification exam. Obviously, one can say that having a certificate is better than not having any, but recruiters should remember that it is rather a “nice to have” than a requirement. A candidate’s best proof of quality is their commercial experience and references. In .NET, Microsoft certifications obviously matter most when it comes to software development. They can be divided into several levels:

1. MTA – Microsoft Technology Associate:- It’s the first level of certification and certifies that a candidate has had exposure to Microsoft technologies. To receive an MTA, a candidate is required to pass one of its exams. There is a wide spectrum to choose from, but there are a couple of exams that are significantly related to development:

Exam 98-361 Software Development Fundamentals

Exam 98-364 Database Fundamentals

Exam 98-375 HTML5 Application Development Fundamentals

Exam 98-382 Introduction to Programming Using JavaScript

Exam 98-383 Introduction to Programming Using HTML and CSS

Please note, that having an MTA isn’t required to start an MCSA level examination, so treat it as a bonus.

2. MCSA:-It’s the second level and requires no prerequisites. A candidate can earn two versions of the certification:

MCSA:Web Applications.

For this one, the candidate wil need to pass:

Exam 70-486 Developing ASP.NET MVC Web Applications

And at least one of following:

Exam 70-483 Programming in C#Or

Exam 70-480 Programming in HTML5 with JavaScript and CSS3

MCSA: Universal Windows Platform

The candidate will need to pass both:

Exam 70-483 Programming in C#

Exam 70-357: Developing Mobile Apps

3. MCSD: App Builder

To earn the MSCD: App Builder certification you will need to have at least an MCSA in Web Applications or Universal Windows Platform

To earn this certification, the candidate should pass:

Exam 70-487 Developing Microsoft Azure and Web Services

More information about current certifications can be found here.

Please note that there are plenty of certifications (MCP, MCTS, MCPD) and exams (especially regarding older versions of .NET, WPF) that has been retired. Those are also notable for a candidate to have. It is also valuable to have passes plain exams, even if the candidate didn’t continue on the path to certification.

Other information on a resume that can show the developer’s .NET skills

When reading a candidate’s resume, pay attention to the following points. They can suggest that your candidate is likely to be valuable to your IT team.

Experience in large projects, including dealing with large volumes of data. This suggests that the candidate probably already knows how to handle issues which can emerge in any IT project.

Participation in conferences, programming meetups. This is a sign that the candidate has an above-average interest in new trends and could be a passionate and skillful developer.

Participation is open-source projects. This is a sign that the candidate probably has an above-average knowledge of .NET technology and would probably do great as a part of any project. You are about to start a recruitment campaign to hire a .NET developer or a .NET Core developer. But once you receive your applications and resumes, you have to decide who is good enough to get to an on-site technical interview. This requires a technical screening process. What a lot of technical recruiters don’t realize is that screening involves more than glancing through a resume. Why is that? On the one hand, good .NET developers are scarce so you don’t want to overlook a candidate with potential and good programming skills. On the other, you don’t want to invite weak candidates for an interview. This wastes the precious time of your IT team and coworkers. So the question arises, how can you screen the .NET programming skills of your .NET developer candidates so that you interview the good candidates and filter out the bad ones? We have put together this guide to show what matters in .NET technology and how to screen candidates quickly and effectively. Are you ready? Let’s start with the basics.

3.3. Technical screening of .NET developer skills using an online coding test

Online coding tests can be a great tool to asses .NET developers skill. In fact, they will tell you more than a resume screen or phone interview ever can. Keep reading to find to find out how programming tests can streamline your technical screening process and what should they include in order to provide you with accurate information.

Should .NET online coding tests be the primary or an additional method for screening?

Depending on your company’s approach, coding tests can either be used as the primary method of screening .NET developer skills or an additional one, next to resume analysis and a phone interview. More and more companies are turning to coding tests as the primary method for screening as they give IT recruiters a couple of crucial benefits:

The most important thing a .NET developer needs is programming skills. Because of this, they should be verified carefully and in an accurate way at the very beginning of IT recruitment process.

Technical recruiters should only spend their time getting to know promising candidates who passed the programming test.

Your technical interviewers have a limited amount of time they can spend on interviewing so you should make sure that they only interview a few candidates with the right skills.

Candidates that take coding test show their willingness to participate in your recruitment process which has a positive impact on candidate’s engagement. That’s why for an on-site interview no-shows rarely happen.

Which .NET online programming test should you choose?

In order to screen your candidate’s .NET developer skills accurately, the coding test you give them has to give you a full picture of their abilities. They have to be formulated in such a way so that they assess programming skills and ability to solve real-life coding challenges and not rely on theoretical knowledge. A lot of experienced programmers can be put off by coding tests if the tests only consist of multiple choice questions. The candidates get frustrated because they can’t show their experience and programming skills in action.

That’s why you should choose .NET coding tests carefully. Below you will find my top 5 features you should be looking for:

.NET programming tests should verify not only .NET developer skills in general but also frameworks and libraries. A .NET developer who is familiar with these resources brings a lot of value for the employer and generally works much more much more efficiently.

.NET coding tests should consist of programming tasks similar to and at the same level of difficulty as the responsibilities the candidates will have if they get the job. Tests shouldn’t be based on algorithmic tasks as you cannot verify whether a candidate can solve a real-life coding challenge.

It’s worth considering preparing .NET programming tasks based on the company’s code. This is the best way to imitate the challenges the candidate will have once they get the job.

Coding tests can also include programming task with code review challenges to test .NET developer skills. It gives you information about the experience of the candidate, their approach to code quality, and how efficiently they perform debugging and find traps. Such an assessment should be obligatory when recruiting senior .NET developer.

There is no point in forbidding the programmer from using external sources. The best way to tis to create them such an environment like they have at work on a daily basis, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE to feel comfortable when solving a programming challenge.

Ruby on rails

So you’ve done all the hard work to source your Ruby on Rails developer candidates. This might have involved making lasting relationships in the developer community. It might have also involved you combing through GitHub projects and finding who had the best commits. It might have even been a referral from one of your other developers. However you found your candidates, you now need to find the right one to fit the position you are trying to fill. But there’s a catch. Technical interviews take up the valuable time that your current developers could use to build your product. To keep moving forward, you want to hold as few interviews as possible. And there is a solution. Screening Ruby on Rails developer skills should eliminate anyone who is not able to do the job. This saves everybody’s time. But how do you eliminate unqualified candidates while making sure the right ones get an interview? This post will tell you everything you need to know about what to look for in a Ruby on Rails developer so that you can find people with the exact skills that you need.

What are Ruby and Ruby on Rails?

This is an interesting question because Ruby and Ruby on Rails are two separate things. Ruby is a dynamic interpreted programming language. It was released back in 1995 and was influenced by Perl. That said, it can be easily compared to Python. Ruby on Rails is a framework. Released 10 years after the original release of Ruby, it has become the most widely used framework in the Ruby language. It is web oriented primarily used for building web apps and it follows the pattern MVC. Ruby is unique among programming environments in that most development is done using one framework. That isn’t to say that there aren’t other frameworks and libraries that are used with Ruby. It’s simply that Ruby on Rails makes up a sizeable majority of the development done in the language. As a result, we’re going to focus this post on screening Ruby on Rails instead of Ruby more generally. Ruby is actually a general-purpose language which was built with a focus on simplicity and productivity. With these goals in mind, its syntax is remarkably easy to read and write. This makes it ideal for two applications, as a server-side scripting language in addition to its use in front-end applications. Ruby on Rails is mainly used to code web applications and the back-end for mobile apps. It comes with many advantages in these areas. For one thing, it is open source. There is a vast community of developers who use and update it. It’s also time and cost-oriented making it ideal for business applications. Finally, it enforces test and code quality meaning that only high-quality code gets out. If you’re doing any kind of web development, Ruby on Rails is one of the most popular frameworks in Ruby today. One of the reasons is that Ruby and Ruby on Rails along with it are relatively easy to learn. It’s easy to start coding and then once you have started, it’s easy to improve your skills. Also, the readability that comes with Ruby makes it a lot easier to understand other people’s code.

Probably the most important takeaway is that there’s a difference between pure Ruby vs. Ruby on Rails. This means that it’s not the same to recruit a pure Ruby developer vs. a Ruby on Rails developer. There are other Ruby frameworks like Sinatra and these can be useful for a developer. But these libraries perform many functions so don’t expect a pure Ruby developer who knows Sinatra to have an in-depth understanding of Ruby on Rails.

In Ruby, libraries are referred to as gems and the gem management system is remarkable. It’s also very easy to scale and has matured to the point that it is completely standardized. It’s good to know about the gem system and which ones are most popular. That said, you shouldn’t forget that knowledge of the Ruby and your chosen framework are the most important things you should be looking for. It’s also important to be up on the latest version of the language. Ruby is pretty stable but a candidate should be familiar with the latest versions of Ruby and Rails.

How often the environment changes Part of the reason for Ruby on Rails’ stability is that the environment changes regularly. About every two years there’s a new version of Rails. While there are usually some new features, there is usually a high degree of backword-compatibility. On top of that, a new version of Ruby comes out about every year. Ruby is an open source language and there are thousands of open source and free gems available online. There’s also a huge community which supports the language. One of the cool things about Ruby on Rails specifically is that you don’t need to have the whole framework to use one of its characteristics. Instead, you can import the modules that you need to your Ruby application without having to take on the whole framework. When looking for a Ruby on Rails developer, it’s important for the candidate to have at least one year of real commercial used with Ruby on Rails. This is because there’s a huge difference between personal projects and commercial projects using Ruby on Rails. Of course, if the candidate is familiar with frameworks like Laravel in PHP or Django in Python, they won’t need as much experience to get up to speed. Candidates who contributed to Ruby on Rails open source projects are particularly valuable.

If you’re just trying to find a developer that uses Ruby as a scripting language, they also need to know the basics of Linux, networks, and other system basics. Screening can be a difficult process. Depending on the message you use, it can either be beneficial for both the candidate and the recruiter or it can be a time-consuming nightmare for both. Below we’ve compiled a number of tips that can help you screen Ruby on Rails developer skills.

3.1. Technical screening of Ruby on Rails skills based on a CV

Before you do any kind of skills test it’s important to see how much experience your candidate has with Ruby on Rails in commercial applications. It’s also worth looking at what other languages the candidate knows. This is because candidates who know other modern MVC frameworks can have a softer learning curve. It’s also worth checking if the candidate has made any contributions to open source projects. A developer who’s used Ruby without Ruby on Rails or other frameworks often has a deeper knowledge of the pure basis of the language, which is a great asset to have.

Ruby on Rails technology – a basic glossary of Ruby on Rails developer terms for IT recruiters

Ruby on rails developer glossary

Image source: Photo by Aaron Burden on Unsplash

If you’ve read this far, you’ve probably picked up on some new vocabulary like gems and Sinatra. Even if these are new to you, it is important to get the vocabulary about Ruby on Rails right to truly be able to understand what your candidate is familiar with and capable of. Here’s a list of important vocabulary that you need to know for Ruby on Rails.

Ruby Frameworks Ruby on Rails, Sinatra

Application servers Unicorn, Puma, Passenger, Thin

Testing gems Rspec, Sinatra, Capybara, Cucumber, FactoryBot, VCR

Ruby version managers Rbenv, RVM

ORM ORM Mongoid, ActiveRecord

Code review Rubocop, SimpleCov, RubyCritic, rails_best_practices

Authorization Devise, OmniAuth, CanCanCan, API or WS Grape, WashOut

Background job processing Sidekiq, Resque

Of course, these are just the basics. We can now go into details about important information for screening Ruby on Rails developers.

Can the names be used interchangeably?

RoR stands for Ruby on Rails. Often you also hear Ruby on Rails shortened to Rails. It’s important to note that Ruby on Rails has a special relationship with the Ruby environment. Unlike frameworks for other languages, you hear Ruby on Rails spoken about more often than you hear Ruby spoken about on its own.What certifications are there and are they valuable?

You might see some certifications such as the Ruby Association certification for senior candidates. Truth be told, I’ve never seen any company ask for them. In my opinion, being active in the community, writing a post, or preparing a talk about Ruby on Rails is more valuable than any certificate the candidate possesses.

It is a bit different for junior candidates and trainees. It is better that they have a degree or at least a boot camp diploma, than no formal experience at all. At the same time, the most important thing is their skills and not the diplomas they possess.

What else should you look for on a CV?

On top of these skills, there’s other information on a candidate’s CV that can show a candidate’s skills.

Companies that are known for applying good practices

A degree in computer science

A good GitHub or other open source profile

Books the candidate has read

Knowledge of database inquiries

Other tools and technologies such as Git, Docker, Kafka, and some JavaScript frameworks

3.2. Ruby on Rails interview questions during a phone/video technical interview

Once you’ve done the CV screen, it can be useful to do a phone screen. You shouldn’t go too long but it can tell you a lot about whether you should be inviting the candidate in for a formal interview. While they don’t reveal exact coding skills, they can illuminate the candidates’ understanding of the environment and their approach to the technology.

Ruby on Rails interview questions

Q1: What are the changes between Rails 4 and Rails 5?

Why you should ask this: A candidate for a senior position or one that claims that have been working with Rails for more than 2 years must know at least a couple of features that Rails 5 added.

Q2: In a Ruby on Rails, where do you write your logic: Models, View or Controllers? Is there any alternative?

Why you should ask this: “Fat Model, Skinny Controller” is the basic motto of Ruby on Rails, so every Rails candidate should know that. However, more senior candidates should answer that they prefer Skinny Models, Skinny Controllers, and Fat Services.

Q3: What are the main difference between rspec and minitest?

Why you should ask this: In Ruby, tests are almost compulsory. However, there are two big libraries for testing. A good candidate will know one of them, but a brilliant one will have played with both, not just the one that they use at their current position. They should be able to describe the main differences.

Q4: Given a class that has these methods,

def factorial(number): returns the factorial of #number

def fibonacci(n): calculates the value of the nth Fibonacci number

what unit test would you write?

Why you should ask this: Another test question, but in this case, besides testing their ability to write test, the idea is to learn how well the candidate brainstorm’s think of edge cases that can cause problems.

Q5: You have a code and tested a ticket for a new feature on a new page. Just after deploying it to production we detect that the new page loads, but it takes one minute. What do you look at?

Why you should ask this: Perhaps my favorite question, it’s not specific to Ruby on Rails but it tells you a lot about your candidate and his/her experience facing problems in real-life. If they are at a complete loss, they probably haven’t managed big projects. Also, the answer and the aspects that they cover will tell you a lot about their experience in DevOps, JS, Databases, backed, among others. The senior candidate that you are looking for can tell you 5+ places to look at.

Q6: Why did you choose Ruby on Rails?

Why you should ask this: Nowadays there are more than a dozen frameworks to choose from, it’s good to know what the person that applies for a Rails position started with that framework.

Q6: What does Rails add to Ruby?

Why you should ask this: Although Ruby is very attached to Ruby on Rails, it is good to know what are the added values of the frameworks and what is the core of the system.

3.3. Technical screening of Ruby on Rails developer skills with online coding tests CV screens can tell you what a Ruby on Rails developer reports to know about and have experience in. An additional phone screen can tell you how they would handle certain situations and whether they can answer trivia. While these are both useful tools, they still can’t tell you about your candidates’ ability to actually code. Online coding tests are probably the best way to determine a Ruby on Rails developers coding abilities. But it’s important to pick the right one as not all of them are created equal.

Algorithmic tests are traditional but they still fall short. They can’t really test a candidate’s knowledge of the environment. This is especially problematic for a Ruby on Rails developer. It’s not enough to know whether somebody can write an algorithm in Ruby, they need to be able to use the Ruby on Rails framework when necessary. There is a limited number of ways to solve algorithm problems. Additionally, plagiarism concerns mean that you can’t call on normal resources that a developer would like Google or Stack Overflow.

Probably the best way to screen a developer’s Ruby on Rails coding skills is to give them a work sample test. These involve giving the candidate a task like the ones they would get on their first day of work. Then let your candidate complete the task in as natural an environment as possible. This means being able to use all the resources they normally would use. These include frameworks and libraries like Rails and Sinatra or other resources like Stack Overflow and Google. You can then assess the effectiveness of the solution they create in all edge cases, their business logic, and the quality of their code.



Albert is the CTO of FCM travel solutions for France and Switzerland. There he uses mainly Ruby, Ruby on Rails and React, as well as Elixir and other frameworks and technologies. Previously he worked for the fintech company, Novicap. Before that, he worked for LivingSocial and LetsBonus, both multinational companies in the leisure market.

FCM FR & CH has a tech lab in Barcelona, where Albert leads the development team. They give support to integrations with providers and clients. They also design and build new products for the travel industry.

Android


Android developer skills are in great demand, and this demand is expected to grow even further as Android is the dominant mobile operating system today, running on countless models of smartphones and tablets, as well as many other devices. As a result, a recruitment campaign for Android Developer is pretty hard. It has to be quick and accurate if you want to hire the best ones. Otherwise, your competitors will steal you candidate. Screening usually takes the most time so let’s find out how to do it in a fast and effective way. Android is the world’s most popular operating system dedicated mainly to mobile devices. The source code is developed by Google under the Android Open Source Project (AOSP). Subsequent versions are usually released annually and are announced at Google I/O conferences. Its characteristic feature is that apart from phones, it can be installed on tablets and a number of other embedded devices, e.g. TVs (Android TV), displays in cars (Android Auto) or watches (Android Wear).The main advantages of the Android system are the following: open source code (https://source.android.com/) the platform is developed by Google. Every half a year, the system provides the users and programmers with something new. Google is very particular about developing the entire ecosystem, it develops a number of libraries, tools (IDEs based on IntelliJ), organizes a lot of conferences, workshops, screencasts, etc. consistent design, especially since the concept of Material Design was introduced. The constant struggle to maintain a consistent look of applications in Android, so that when switching between apps, users do not get lost as to how to use a particular app. There are certain things that an IT recruiter should be aware of as far as Android is concerned: Architecture of the Android platform: how many processes are launched during app startup, how many threads are started, in what ways the application communicates with the system and other applications (e.g. as in the following scenario: picking a contact, sharing a picture), what is a main thread and how does it work in Android Basic components of the platform: Activity, Fragment, Service, Intent, BroadcastReceiver, ContentProvider. Standard and most popular libraries supporting the creation of applications. These are some examples of libraries: Android Support Library, Google Play Services, Retrofit, OkHTTP, rxJava, EventBus, Dagger

Design patterns which enable writing applications in a way which allows easy maintenance, extension and testing. Latest trends: MVP, MVVM, Clean architecture Rules concerning the creation of efficient views, ability to create reusable custom views Ability to deal with the market fragmentation and the multitude of various devices from different producers with various system versions. Mechanisms that the platform offers to ensure smooth operation of the application on devices with screens of different sizes/densities, various language versions, various versions of the system itself [On a lighter note] Each Android version features a digit and a letter (from with C up to N). Google always tries to come up with a name of pastry or something sweet beginning with a particular letter and this is how it calls subsequent Android versions: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Icecream Sandwich, Jellybean, KitKat, Lollipop, Marshmallow, Nougat). A candidate should be able to enumerate these names if he is interested in the life of the platform and its development

3. How to verify Android developer skills in the screening phase?

Screening is hard when you are not an Android developer yourself. It is even harder when the technology itself is developing all the time and requires you to be up to date. So, let’s move on to a few practical recruiting tips on how to verify Android developer skills.

3.1. Technical screening of Android skills based on CV

A candidate’s CV can tell us a lot of useful information, but you need to know how to pick what is most important. As an IT recruiter look for the following valuable information in a developer’s resume: A number of applications released on Google Play. If they are still available, it should be checked what they look like, how they work and how many downloads it has in Google Play

How large was the developer’s team and what was their role in the project? Was the project that they were working on also created for other platforms (iOS? Windows Phone?) If you cannot figure that out from the CV itself, it is worth asking these questions during a telephone or video interview.

In the world of Android, there are some key system releases which are revolutionary in a way or introduce something new. For further information go to http://socialcompare.com/en/comparison/android-versions-comparison or see the brief summary below:

Android 7.0:- Multi-window mode (two applications simultaneously displayed on a divided screen)

Android 6.0:-Runtime permissions. New approach to requesting access to users’ sensitive data (based on the example of iOS)

Android 5.0:- Material design. UI revolution in applications

Android 4.0:-The first version of the system which does not have variants for phones/tablets, but operates on devices with any types of screens

Certification in Android:- Google recently implemented a certification scheme which did not gain popularity, therefore it is of little importance in the recruitment process. For more information go to: https://developers.google.com/training/certification/

Previous experience: what is important for an IT recruiter If you see from an Android developer resume that they’ve had a couple of years of experience, dig a little bit deeper and look for the following things in their CV: I already wrote about this in “What to take into account when screening CV?”. Experience is the most important: teamwork, the number of publications and production issues that a candidate experienced and can fluently talk about in an interesting way which goes beyond “my team and I solved such and such problems”. It is important what problems the person solved, what they contributed to. What else in the CV can help assess Android programming skills? Everything related to Java programming. Workshops, certificates, knowledge of patterns. Java is Android’s basic programming language and even if other languages appear, they would be based on JVM (specifically Android Runtime, ART), so being familiar with all limitations and rules concerning Java programming is very useful.

3.2. Technical screening of Android skills during a phone/video interview

A resume gives you some basic information on a developer’s skills, but it won’t tell you anything about the developer as a person and is not sufficient to provide you with solid knowledge of their coding skills. Below you will find a few example questions that will tell you more about the candidate.

1. Tell us about the most interesting problem you encountered after publishing an application for users. How did you solve this problem?This question reveals any deficiencies in the experience of a decent developer who should provide tons of examples of the top of their head of problems they managed to solve that made them proud. If someone just participated, they may get lost in answering the question.

2. Enumerate ready-made components of Material Design whose implementations can be found in the Support library family. An answer to this question manifests knowledge of the basic family of libraries which each and every application uses. A candidate should be able to enumerate at least the following: CardView, RecyclerView, Floating Action Button, Toolbar, Navigation Drawer. If a programmer knows these components, it means that they will not reinvent the wheel when creating a classic application, but use reliable and widely used components from a free library.

3. What is your favorite shortcut in Android Studio? An answer to this question shows to what extent a candidate is interested in the tool they use on a daily basis and to what extent they mastered it. A candidate should easily enumerate at least 4-5 shortcuts they use every day. The more examples they give the better it reflects on them. It is a bad sign when a programmer who does not know shortcuts and uses the mouse for everything.

4. What do you have to do to make an Android application freeze? An answer to this question is: perform too many operations in the main thread. An answer to this question manifests a candidate’s knowledge of platform architecture. Being able to answer this question is an absolute must. A candidate who is unable to provide an answer will not write an application which is fast and stable from the point of view of its users.

5. How do you deal with fragmentation? The market of phones with Android is the most diverse of all mobile platforms. Being able to answer this question means that a candidate knows the basics of the platform well, they know what it offers and know how to ensure compatibility of the application on a particular version of the system, devices with various screens, etc.

6. It is also a good idea to ask about the source of the developer’s projects, i.e. PSD or provided by a designer. How do they deal with cutting graphics and cooperating with designers?

How you will screen a Scala developer?

Scala (/ˈskɑːlɑː/ skah-lah) is a general-purpose programming language providing support for functional programming and a strong static type system The design of Scala started in 2001 at the École Polytechnique Fédérale de Lausanne (EPFL) by Martin Odersky. It followed on from work on Funnel, a programming language combining ideas from functional programming and Petri nets. Odersky formerly worked on Generic Java, and javac, Sun’s Java compiler. Scala is mainly used in backend development in highly concurrent applications.

Key advantages of Scala:- Objects are immutable “by default” (e.g. all collections)

It makes the language much less error-prone, particularly in relation to threads.

An advanced type system:- More types mean that Scala can perform more kinds of tasks than languages with more basic type systems, like Java. Functional, object-oriented, and imperative programming are all possible, Different tasks require different styles of programming. While other languages only work with one or two programming styles, Scala works with all three. This means that a developer working in the Scala environment can perform more types of tasks without having to switch to a different programming environment. Above all else, there are three super important things that any technical recruiter should know when they are trying to fill a Scala developer position. Currently, Scala is the most popular functional programming language. While it has a number of different applications, probably it’s most popular used right now is in Big Data. Scala uses the same runtime environment as Java called the Java virtual machine. Because of this, it is completely interoperable with Java. That is a fancy way of saying that you can use Scala libraries for Java applications and Java libraries for Scala applications. This gives Scala developers have a huge advantage over other developers because they can access the incredibly large and diverse Java ecosystem. The one thing that can put developers off Scala is that has more complicated syntax in languages like Java or C#. As a result, the learning curve can be particularly steep, meaning it can be difficult to find a qualified Scala developer. (In March 2015, former VP of the Platform Engineering group at Twitter Raffi Krikorian, stated he would not have chosen Scala in 2011 due to its learning curve. The same month, LinkedIn SVP Kevin Scott stated their decision to “minimize dependence on Scala.” In November 2011, Yammer moved away from Scala for reasons that included the learning curve for new team members and incompatibility from one version of the Scala compiler to the next) Source: Wikipedia When searching for Scala developers, you have to understand that you’re going to be looking for an elite who have been willing to overcome the barriers to entry that the language poses.

3.1. Technical screening of Scala skills based on the candidate’s resume

Before doing any type of broader technical screening it’s worthwhile to check out your development candidate’s interest in functional programming. This means how interested they are in learning new languages as well as functional languages like Haskell, F sharp, and OCam. Scala glossary for tech recruiter

Scala frameworks and libraries Backend: Akka, Finagle

Big data: Spark, Scalding

Web: Play, Lift, Scalatra

Utils: Scalaz, Cats

Scala testing tools:- ScalaTest, Specs2

Scala build tools:- sbt (Simple Build Tool)

Relations between respective versions of Scala technology:

Mostly version 2.12 is used with a smaller contingent of developers using version 2.11. Version 3.0 is scheduled to be released in 2020. These major Scala versions aren’t binary compatible – you need to recompile all libraries, but minor versions (2.11.1, 2.11.2 etc.) are; all versions are source compatible. The significance of a Scala certificate for assessing a Scala developer’s skills

There are a lot of courses available. Most popular ones are offered by Lightbend which also issues certificates. But a lot of people are doing the Coursera Scala track, which is developed by Scala Center.

Check out these courses as well:

https://www.coursera.org/learn/progfun1

https://www.edx.org/course/paradigms-computer-programming-louvainx-louv1-1x-1#.VKWU9aYVlpk

While certificates can show some aptitude, there are many more factors which determine whether a candidate will be the right Scala developer for you.

3.2. Technical screening of Scala skills during a phone/video interview

Usually, after a resume screen, the next step in the hiring process is to have a phone or video interview with a candidate. The main advantage of this part of the process is to be able to ask behavioral questions to see how your candidate would react in certain real-life situations. Often this is the main decider as to whether a candidate will be invited on site for a one-on-one technical interview so it’s important at this stage to ask the right technical questions. Of course, these questions can vary depending on the types of skills that you are recruiting for. That said the questions here should be useful for filling any Scala developer position.

Q1: What is pattern matching? Why you should ask this: It is important to know because Scala has a built-in general pattern-matching mechanism. This mechanism allows you to match it any sort of data with a first match policy.

Q2: What are case classes? Why you should ask this: Case classes are unique to Scala. They’re actually just regular classes that have a few extra conditions added to them. They are immutable by default, decomposable through pattern-matching, compared by structural equality instead of by reference, and succinct to instantiate and operate on.

Q3: Which object-oriented patterns are implemented in Scala? Why you should ask this: There are three main object-oriented patterns that a Scala developer should know. With Singleton, Scala provides direct realization of the Singleton pattern in the language. Value object patterns are possible by using Tuples, types, or case classes. Finally, in Scala, there’s a lazy keyword which offers lazy initialization

Q4: What is a trait and is there any equivalent in Java? Why you should ask this: Traits are similar to interfaces in Java and partially implemented.

In addition to the specific technical questions, there are a number of behavioral questions which will be helpful in determining how your candidate will act in certain situations.

Q5: Which technologies have you had commercial experience within the past 2 years? What were your responsibilities? What was your biggest achievement?

Why you should ask this: Not all programming skills are created equal. Developers often have a wide variety of interests and have dabbled in a number of different Technologies but it is important to ascertain which they have a functional working knowledge of and which they simply have dabbled in. This question will also help show how will they have used the technology for commercial land.

Q6: Which Java open source libraries do you consider to be valuable and why?

Why you should ask this: Mentioned before Scala is interoperable with Java. Since Java has many more libraries to draw on the effectiveness of your Scylla engine year will be depending on how many of these libraries they are familiar with. This question will give you insight into what libraries outside of Scala your candidate is familiar with and how they have used it in the past.

Q7: I’ve noticed you listed framework X on your CV. What’s your opinion of it? Is it a good choice? The real value of a developer is not simply their knowledge of the language for their ability to execute a project efficiently. The best are familiar with A number of tools and resources that Multiply the scope of what they are able to Achieve. this question will get to the heart of how comfortable the developer is using these outside resources to supercharge their software development.

3.3. Technical screening of Scala skills with an online coding test

Phone screens can give you a lot of information as can a thorough scan of a candidate’s resume, but at the end of the day, you need to be able to determine what the coding skills are of your candidate. After all, none of the screening methods mentioned up until now and actually tell you whether your candidate can code or not. For that, you need a coding test.

There are a number of ways currently offered to do coding tests. They range from whiteboard interviews to algorithmic testing platforms. Unfortunately, most of these methods don’t give you the information you need to make an informed decision. Data structures and algorithms are the basic building blocks of software but at the same time, they have little to do with the day-to-day work of a software developer. It would be like asking a backhoe operator to dig a hole with a shovel. Technically you’re testing how well they can move dirt but what you really want to know is how well they can use the tools available to them to efficiently dig a giant hole within a tight deadline.

In the same way, you don’t want to waste time in your recruitment process testing basic skills. Instead, you want to see how a developer uses all of the tools and resources available to them to deliver efficient solutions on time. Probably the best way to do this is with a work sample test. We’ve discussed elsewhere on this blog how to make a work sample test but here are the main points you should take into consideration when giving a work sample test to a Scala developer.

You shouldn’t just test languages skills but also knowledge of the frameworks and libraries that your company uses Instead of relying on multiple choice questions, focus instead on the programming tasks Whenever possible, use a real task using your own codebase since it will give your candidate a taste of the kind of work they will be doing when they start working for you

Treat the test like a normal day at work. This means giving the candidate access to tall the libraries, frameworks, and general resources they would use on a normal day. You aren’t testing their ability to memorize facts. Instead, you want to know whether they can create an amazing solution

The main advantage of this type of platform is that tests are delivered automatically so the candidate can take the test out there later from anywhere in the world. Not only that the platform automatically evaluates the code quality as well as the power of the solution without any input from any technical staff on your end. It is an efficient way to get an effective read on how well your candidate can do the job and is incredibly convenient both for your staff and for the candidate. This means that fewer candidates fall out of your pipeline and fewer hours are wasted having your expensive developers work on recruiting.

How you will source a SQL Developer?

As an IT recruiter we can find some really valuable information in resume we get from SQL developer, but I have to know how to read it and what to look for. This will enable me to speak the same language with my candidates (or at least understand basics the candidate is talking about).That’s why we prepared this basic SQL glossary, just have a look.

Declarative programming: - 4GL SQL is a fundamentally different programming language.

DDL (Data Definition Language):- The subset of the SQL language that is used for defining the database

DML (Data Manipulation Language):- The subset of the SQL language that is used for manipulating the data in the database. Most queries are DML

Execution Plan:-The algorithm chosen by the optimiser for a given SQL statement.

(Optimiser):-The engine that translates a SQL statement into an execution plan. Even simple statements have dozens of possible valid execution plans. A database may maintain several plans per statement.

Cost based optimiser (CBO):- Most modern databases ship with a CBO, which makes decisions based on statistics, histograms, and heuristics about production data. It is pretty hard to beat the decision made by a CBO in a modern, commercial database.

Rule based optimiser: - Older databases implement simple rule engines in order to make execution plan decisions. These rules are often wrong in real world situations, which is why queries in these situations need much more tuning, e.g. by using hints.

Join: - One of the most fundamental operations in relational algebra that helps “joining” or “connecting” two database tables, for instance books and authors to produce results.

PL/SQL, T-SQL, pgplsql, etc: - These are procedural extensions to the SQL language, i.e. general-purpose languages that integrate SQL. While these skills are very useful in some projects, they are not necessarily an important indicator for SQL skills.

Normalisation: - The practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalisation.

Relational Database (relational model, relational algebra, etc.): -While SQL mostly works with relational databases, it can also work on other data storage systems. Relational databases implement the relational model

E.F. Codd (Optional background knowledge): - Codd was the biggest contributor to relational algebra and much more.

If you’re not a technical person then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says “sequel” does it mean “ess-queue-el”? Or is SQL something similar to MySQL? Most common SQL terms that are used interchangeably: Statement, command, query MSSQL, SQL Server (not to be confused with MySQL)

Oracle (the company), Oracle Database

The pronunciation is either “ess-queue-el” or “sequel”. Over the past decades, the community could never settle on either pronunciation.

Common table expressions, subquery factoring, WITH clause

Relations between respective versions of SQL technology:

SQL-92 is the first, widely adopted standard (although there had been standards before)

SQL-1999 made SQL “turing complete”, which means that any program can be implemented with common table expressions. In simpler words: It made SQL really powerful

SQL-2003 added window functions, which are extremely useful for analytics

In general SQL evolves a bit more slowly, and more backwards-compatible than other ecosystems. Also, usually, vendor-specific features can be very important for specific projects that integrate tightly with SQL, but are out of scope for this listing.

So far experience: what is important for IT recruiter

IT recruiters reach out to various screening methods from assessing SQL programming skills based on resume through video or phone interviews to online coding tests. These are some useful and practical recruiting tips how to verify SQL skills using each method. How should you read SQL developer resume?

If you see from SQL developer resume that they’ve had a couple of years of experience, dig a little bit deeper and look for following things in CV: One of the most valuable SQL skills is SQL performance tuning both from a developer perspective (reading execution plans, maintaining indexes, etc.) as well as from a DBA / operations perspective (resolving contention issues, tuning storage, etc.). The latter is a bit more specific to operations, but it can still be a plus if a SQL developer has to work closely with operations. SQL design skills, and a profound knowledge of relational theory is important when new projects are started. It is very important to get database design right in early stages, as it is very hard to migrate badly designed databases later on. In legacy systems, most developers can simply follow the established rules, where design skills are less crucial (although still helpful). SQL refactoring skills can prove quite useful in larger teams where the SQL starts getting rather complex. Unlike Java refactoring which is rather easy nowadays (thanks to IDE tooling), SQL refactoring is still very hard because the SQL code is difficult to test.

What else in CV can be valuable to assess SQL programming skills?

As an IT recruiter you can also draw following conclusions from SQL developer resume:

SQL is an excellent technology for stateless, streaming data processing. A developer experienced with any of these technologies will also be good with SQL:

XSLT

Functional programming (Lisp, Clojure, Ocaml, Haskell, Scala)

Various NoSQL technologies, including MongoDB, CouchBase, Neo4j and many more, which all ship with query languages inspired by SQL

Most SQL jobs are not SQL-only jobs, i.e. the developer will need to be able to work both with general purpose languages (like Java, C#, etc.), and SQL. A good sign that a developer is able to do this is to look for interest and experience in a lot of different programming languages.

3.2. Technical screening of SQL skills during a phone/video interview Resume itself is not enough to draw reliable conclusions about candidate’s SQL programming skills. Therefore, IT recruiters often conduct a phone or video interview. Such an interview gives an opportunity to dig deeper into candidate’s skills and experience. Often such a technical phone or video interview serves as a basis for making a decision whether to invite candidate for on-site technical interview with IT team or not, so it’s worth to choose and ask the right questions. Of course, questions vary greatly due to position you are recruiting for and specific skills you want to verify. Below you will find some general questions to find out more about candidate’s SQL skills.

1. SQL interview question concerning developer’s experience

Q1: With which technologies listed in your CV, did you have commercial experience in the past 2 years? What were your responsibilities? What was your biggest achievement?

Why to ask Q1: By asking this question, you can find out more about candidate’s SQL up-to-date experience, responsibilities and achievements. Thus you get to know your candidate better.

2. SQL interview question concerning developer’s decision making regarding SQL technology

Q2: On what stage did you join recent projects? Were you involved in the choice of technology or project setup? If yes, which technology/ relational database management system did you choose or recommend for the project and why?

Why to ask Q2: Such a questions shows not only how a candidate makes choices regarding technology but also whether they were included into making decisions. Especially important if you are looking for someone with experience.

3. Behavioral question for SQL developer

Q3: Think about programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could there be anything done differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?

Why to ask Q3: That type of question will help you find out how the candidate perceives their decisions, draws conclusions and how much they learn from their previous experience.

3.3. Technical screening of SQL skills with online coding test

Online coding tests can be a great way to screen SQL skills. Below you will find information how you can use programming tests and which ones to choose.

Online SQL coding tests – the primary or additional method for screening

Coding tests can be used in two ways. Some companies invite candidates for programming test if they pass screening process e.g. once IT recruiter looks through their CV or interviews them over the phone or video. However, it is more common to invite all candidates that apply for certain SQL programming position to take a test. This gives them a couple of benefits. IT recruiters don’t have to spend time on all applications, but only on candidates that have potential to fit a job as far as their programming skills are concerned. Moreover, candidate that takes a coding assessment shows some engagement and willingness to participate in your IT recruitment process. It can be a sign that they are more likely to want to find a job.

SQL online coding test – which one to choose?

In order to screen accurate, coding tests have to be the right ones.

There are some SQL online tests on the market but often they verify candidate’s academic knowledge rather than programming skills and abilities to solve real life problems. This is what really annoys experienced programmers and that’s why they don’t like that kind of coding assessments. If coding test verifies book knowledge they cannot show their skills in action and prove that they are capable of solving real life programming challenges.

That’s why you should choose coding tests carefully in your IT recruitment process. Below you will find my top 5 features of SQL tests you should be looking for:

SQL coding tests should consist of a couple of tasks, not only multiple-choice tests, but above all, programming tasks which difficulty should match the responsibilities the candidates will have if they get the job (tests shouldn’t be based on algorithmic tasks as thus you cannot verify whether a candidate can solve real life coding challenges).

There is no point in forbidding the programmer to use external sources, the best way is to create them such an environment like they have at work, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE, just as he does on a daily basis.

SQL programming tests should verify not only SQL skills as far as technology in general is concerned but also knowledge specific for particular database engines

Coding test can also include task with code review challenges to test SQL skills. It gives very accurate information about the experience of the candidate, their approach to code quality and efficiency of debugging and finding traps. Such an assessment should be obligatory when recruiting senior SQL developers.

You want to hire SQL developer and start your IT recruitment campaign. You receive many resumes and cover letters now it’s time to begin screening process. Looking through applications and talking over the phone with candidates you start wondering whether a certain SQL programmer is good enough to become a part of your IT team and are they worth inviting for an on-site technical interview. On the one hand you don’t want to turn down SQL developer with potential that could be valuable for your company. On the other hand you don’t want to invite weak candidate for interview with your IT team and hear them complaining that the candidate programming skills are poor and they knew it after 5 minute talk. That’s why it is so important to plan your screening process of SQL programming skills and choose such methods that will support IT recruiters in doing it as accurate as possible. So we thought we will give you a hand. Below you will find all the crucial information on how to screen candidates fast and effective. Let’s start.

SQL is the most popular 4GL (Fourth Generation programming Language), which means that programmers only declare what the result looks like, rather than how the result should be calculated by the database. Historically, this declarative programming paradigm has been a key feature for ad-hoc queries run for data introspection executed by human users directly with SQL (rather than with a UI). In modern days, SQL is also embedded in other, more general purpose programming languages like Java in order to access data from central databases. There are certain tips which can be valuable for IT recruiters when it comes to SQL. The declarative programming paradigm is very different from object orientation, procedural programming, or even functional programming. It takes a special mindset and experience for a developer to become a SQL expert. While basic tasks can be implemented very easily by everyone (including non-programmers, such as business analysts, requirements engineers, project managers, etc), complex SQL is rather hard to get right. These are the things about SQL that you should bear in mind: A thorough background on (or at least some intuition about) set theory is very important for developers working with SQL frequently. If such background is absent, developers tend to fetch individual data items one-by-one, processing them in the client using a general-purpose language like Java, rather than performing bulk operations on entire data sets directly in the database. This has drastic performance impacts.

Most universities, unfortunately, do not go far beyond relational algebra and some basic SQL-92 features. SQL has evolved a lot during the past decades, both in the SQL standard form, as well as in vendor-specific dialects. There are a variety of features like window functions, common table expressions (CTE), and much more, which help developers run complex reports relatively easily. Typically, knowledge about window functions and CTE help distinguish between SQL beginners and advanced SQL developers. This is important in ETL, reporting, BI, analytics use-cases.

Perhaps 90% of all SQL performance related issues can be solved with proper indexing. Being able to identify situations where an index will be beneficial (or in rare cases: detrimental) is thus essential. The other 10% are usually work for DBA and operations teams, and are often out of scope for developers, unless working in specialized setups. In theory, a declarative SQL statement will be optimized as much as possible by the database. In practice, many databases still need help from the SQL developer. Many SQL statements are formally equivalent, but some will produce better execution plans than others. These things differ from database to database. In everyday SQL jobs, it is usually sufficient if developers know about execution plans and the fact that SQL needs to be tuned. The necessary skills for the particular database can still be obtained on the job. In more specific situations (Big Data, high scalability), the developer should bring tuning knowledge about the particular database in use. SQL feels “arcane” for “modern” developers. This is mostly due to the language syntax, which stems from times when COBOL and FORTRAN were still widely used. Apart from syntax, there is nothing arcane about the technology. This subjective topic helps separating developers who are curious about finding the right tool for the job from those who follow dogma (and will thus probably make wrong choices later on). In particular, technical recruiters should be able to distinguish between developers who want to hide SQL behind an ORM (that’s bad) and those who understand that ORMs only solve a subset of data storage problems, while SQL is still an important technology. All ORM vendors agree on this distinction, while unfortunately, many developers prefer not to touch SQL.

fairs by reading



How to screen .net developer?

IT recruiters can use a few different screening methods to assess .NET developer skills. These can be based on anything from the candidate’s resume, a technical interview or video calls, all the way to online coding tests. Below you will find some useful and practical recruiting tips to help you verify .NET developer skills using each method. As an IT recruiter, you can find some really valuable information in the resumes you get from .NET developers. But to unlock the valuable information they contain, you have to understand what is written there without getting confused by any of the .NET terms they use. If you are technical recruiter looking for a .NET developer, then you should at least be familiar with all of its frameworks, build tools, and other resources in order to know what you are looking for. You should be able to speak the same language as your candidates (or at least understand basics the candidate is talking about). That’s why we prepared this basic .NET glossary. Take a second to brush up on the terms it contains.

.NET framework versions:- .NET 1.0 – .NET 4.7.2

Languages:- C#, Visual Basic .NET, F#, C++ .NET

Web frameworks:- ASP.NET MVC 1-5, ASP.NET Web API 1-2, ASP.NET Web Forms (old school)

Desktop frameworks:- WPF, Windows Forms (old school)

Communication frameworks:- WCF, ASP.NET Web API, 1-2, Web Services (old school)

IoC Containers       Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac

ORM  Entity Framework 1-6, nHibernate 1-5, L inq2SQL (depreciated), ADO.NET

C# unit testing frameworks        nUnit, SpecFlow, MSTest, xUnit

C# build tools         TFS, Team City, Jenkins, Cruise Control .NET, Azure DevOps (old TFS)

.NET Core glossary for technical recruiters

.Net Core framework versions     .NET Core 1.0-2.2

Languages:- C#,Visual Basic .NET, F#

Web frameworks:- ASP.NET Core MVC 1.0-2.2

Desktop frameworks        None now but coming in .NET Core 3

Communication frameworks:- Web Api is now integrated into ASP.NET Core MVC 1.0-2.2

IoC Containers       Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac

ORM  Entity Framework Core 1.0-2.2

C# unit testing frameworks:- nUnit, MSTest, xUnit

*used to exchange data and create Service Oriented Applications.

How to screen android developer?

As a Technical Recruiter looking for an Android Developer, I should be familiar with all terminology used by candidates. That’s why we developed this Android glossary for IT recruiters so that I can speak the same language as my candidate in the screening process.

Android basic components: - Activity, Fragment, Intent, Service, BroadcastReceiver, ContentProvider

Testing tools: - Espresso, Mockito, Robolectric

Basic UI components: - Toolbar, ViewPager, RecyclerView, CardView, Floating Action Button, Navigation Drawer, BottomBar, CoordinatorLayout

Build tools: - Gradle (Eclipse and ADT are legacies)

Most popular libraries: - Support library, Google Play Services, Retrofit, EventBus, rxJava, rxAndroid, OkHttp, Dagger


DevOps


2) Relationship Between Agile and DevOps:- Agile Development is an umbrella term for several iterative and incremental software development methodologies. The most popular agile methodologies include Extreme Programming (XP), Scrum, Crystal, Lean Development, and Feature-Driven Development (FDD). On the other hand, DevOps is about a culture where development and operations collaborate to give maximum throughput and high-end outcomes. Similar to Agile, there are ways through which DevOps can be implemented such as deep communication and automated deployment. Agile is all about software development while DevOps deals with software development and operations. Therefore one thing is clear that DevOps is an extension of Agile methodology and it is always fruitful to integrate these two rather than

replacing with one another.

3) DevOps Lifecycle:- DevOps is deep integration between development and operations. Understanding DevOps is not possible without knowing DevOps lifecycle. Here is a brief information about the Continuous DevOps life-cycle:

i. Development:-> In this DevOps stage the development of software takes place constantly. In this phase, the entire development process is separated into small development cycles. This benefits DevOps team to speed up software development and delivery process.

ii. Testing:- QA team use tools like Selenium to identify and fix bugs in the new piece of code.

iii. Integration:- In this stage, new functionality is integrated with the prevailing code, and testing takes place. Continuous development is only possible due to continuous integration and testing.

iv. Deployment:- In this phase, the deployment process takes place continuously. It is performed in such a manner that any changes made any time in the code, should not affect the functioning of high traffic application.

v. Monitoring:- In this phase, operation team will take care of the inappropriate system behavior or bugs which are found in production

4) Software Tools for DevOps:- As DevOps is the collaboration of Development, QA and Operations, it is obvious that a single tool cannot be adequate for all the needs. So there are multiple tools required in each stage to perform all the operations successfully.

How do all these tools work together?
This flow may vary from organization to organization as per the requirement.
i. Developers develop the code and this source code is managed by Version Control System tools like Git etc.
ii. Developers send this code to the Git repository and any changes made in the code is committed to this Repository.
iii. Jenkins pulls this code from the repository using the Git plugin and build it using tools like Ant or Maven.
iv. Configuration management tools like puppet deploys & provisions testing
environment and then Jenkins releases this code on the test environment on
which testing is done using tools like selenium.
v. Once the code is tested, Jenkins send it for deployment on the production server (even production server is provisioned & maintained by tools like puppet).
vi. After deployment It is continuously monitored by tools like Nagios.
vii. Docker containers provides testing environment to test the build features.
5) DevOps and Software Testing:- Software Testing is one of the Process in four basic processes of DevOps...
Puppet: Puppet is one of the widely used tools in DevOps methodology and assists in delivering, making changes and releases. It can define infrastructure code and manage multiple servers. In a survey carried out by Right Scale, approximately 42% of businesses used Puppet as one of their tools in implementing DevOps methodology.
Docker: This tool is used at the deployment stage of development. It assists in building, distributing and running applications on multiple systems by containerizing them.
Jenkins: This tool helps you to monitor the execution of repetitive jobs. And also makes it easy to integrate any changes.
Ansible: Need to monitor the life-cycle of an application. Well this tool does the job well and also can handle complex deployments.
Nagios: Nagios or Nagios core is an open source tool mainly used to monitor the IT infrastructure. It can detect errors and notify about the same again when a problem or an error is being fixed.
Selenium: Selenium is an open source software designed for automating the testing frameworks of web applications.