Monday, 15 December 2014

6 C's for More Efficient IT In 2015

There’s no getting away from the inevitable round of IT predictions that mark the end of every year. Just about every research company and IT vendor has its own list — and 451 Research is no exception.
This time it comes in the shape of 6 C’s for 2015 that cover a range of issues from content management to containers to cloud and crowd working. Combined, they envisage a year that will see workers using more agile IT, largely through cloud and converged platforms. These same workers will also be more mobile and disassociated from the enterprise.

A Look at the List

The common theme running through each prediction is agile and efficient IT, with a very big E.
Since predictions this time of year are almost endless, we should be able to identify a number of trends and perhaps hone in on ones destined for reality in the coming year.
Only last week, IDC published its list of emerging IT trends for the coming year. And guess what? They are mostly repeated in this 451 Research list. Here are 451 Research’s predictions and, like something out of Sesame Street, they come to you beginning with the letter C.


1. Containers

451 Research predicts IT departments will start using Docker and containerization technology over the year to such a point that it will disrupt IT departments at least through the end of next year.
The Docker website describes it as an open platform for developers and systems administrators to build, ship, and run distributed applications. It comes with Docker Engine, a portable, lightweight runtime and packaging tool, and Docker Hub, a cloud service for sharing applications and automating workflows. The result is that IT will be able to ship the same app on laptops, data centers, laptops, virtual machines and cloud platforms.
451 analysts believe Docker will be adopted by large enterprises to work alongside, as well as replace, traditional VMs because of its management and efficiency advantages. Docker has not yet achieved parity with traditional VMs in some critical areas, including integration and security, and a large number of vendors are rapidly addressing this.

2. Convergence

Technology and platform convergence will be one of the big flavors of next year, particularly hyper-convergence, which has exploded in recent years and will start showing the first signs of widespread adoption in 2015. A hyper-converged infrastructure tightly integrates storage, compute, networking and server virtualization resources in the same box.
451 Research thinks enterprises are being attracted to these kinds of infrastructures because of improved efficiencies from integrating computing, storage and networking while, vendors use it to differentiate product offerings in the face of commodification. The larger question is whether either of these expectations can be realized and what the move to new product categories means for the IT marketplace.

3. Cloud Security

According to 451 Research, security spending is up again. The security space itself will be marked by mergers and acquisitions, IPOs, venture capital and private equity at a level of activity that is higher than it ever has. 451 Research points out that security is, to a large extent, reactive with new tools emerging as new IT, software and architecture emerge, but two years slower than other IT developments.
Not only are new security products matching IT developments and widespread vulnerabilities, but they’re also all claiming to be complementary to the existing security. The result is many more security layers that are a lot more efficient at protecting infrastructure than they have been to date.

4. Closets

Demand for more effective and efficient data processing continues, but there are still many technical and commercial constraints involved in accessing, or delivering, data over wide area and public networks. One of the possible solutions to this is the development of micro-modular data centers that can process and store data near the point of use and which are offered as complete, self-contained products.
These micro modular data centers include IT capabilities including processing, storage and connectivity functions, coupled with the supporting infrastructure.

5. Crowd Workers

With the rise of mobile, the way people are working is changing at a faster pace than companies’ abilities to effectively manage that change. Human resources systems that were developed to manage on-premises work forces are starting to buckle under the strain created by the development and multiplicity of working structures.
The disconnect will be aggravated over the year as workers become increasingly mobile and work remotely. This will impact processes like on-boarding and off-boarding, corporate communications, and task tracking. Next year will be dominated by this and enterprises’ attempted to deal with it.

Wednesday, 10 December 2014

10 Common Mistakes Java Developers Make when Writing SQL

Java developers mix object-oriented thinking with imperative thinking, depending on their levels of:
  • Skill (anyone can code imperatively)
  • Dogma (some use the “Pattern-Pattern”, i.e. the pattern of applying patterns everywhere and giving them names)
  • Mood (true OO is more clumsy to write than imperative code. At first)
But when Java developers write SQL, everything changes. SQL is a declarative language that has nothing to do with either object-oriented or imperative thinking. It is very easy to express a query in SQL. It is not so easy to express it optimally or correctly. Not only do developers need to re-think their programming paradigm, they also need to think in terms of set theory.
Here are common mistakes that a Java developer makes when writing SQL through JDBC or jOOQ (in no particular order). For 10 More Common Mistakes,
jOOQ is the best way to write SQL in Java
Here are common mistakes that a Java developer makes when writing SQL (in no particular order):

1. Forgetting about NULL

Misunderstanding NULL is probably the biggest mistake a Java developer can make when writing SQL. This is also (but not exclusively) due to the fact that NULL is also called UNKNOWN. If it were only called UNKNOWN, it would be easier to understand. Another reason is that JDBC maps SQL NULL to Java null when fetching data or when binding variables. This may lead to thinking that NULL = NULL (SQL) would behave the same way as null == null (Java)
One of the crazier examples of misunderstanding NULL is when NULL predicates are used with row value expressions.
Another, subtle problem appears when misunderstanding the meaning of NULL in NOT IN anti-joins.
The Cure:
Train yourself. There’s nothing but explicitly thinking about NULL, every time you write SQL:
  • Is this predicate correct with respect to NULL?
  • Does NULL affect the result of this function?

2. Processing data in Java memory

Few Java developers know SQL very well. The occasional JOIN, the odd UNION, fine. But window functions? Grouping sets? A lot of Java developers load SQL data into memory, transform the data into some appropriate collection type, execute nasty maths on that collection with verbose loop structures (at least, before Java 8’s Collection improvements).
But some SQL databases support advanced (and SQL standard!) OLAP features that tend to perform a lot better and are much easier to write. A (non-standard) example is Oracle’s awesome MODEL clause. Just let the database do the processing and fetch only the results into Java memory. Because after all some very smart guys have optimised these expensive products. So in fact, by moving OLAP to the database, you gain two things:
  • Simplicity. It’s probably easier to write correctly in SQL than in Java
  • Performance. The database will probably be faster than your algorithm. And more importantly, you don’t have to transmit millions of records over the wire.
The Cure:
Every time you implement a data-centric algorithm in Java, ask yourself: Is there a way to let the database perform that work for me?

3. Using UNION instead of UNION ALL

It’s a shame that UNION ALL needs an extra keyword compared to UNION. It would be much better if the SQL standard had been defined to support:
  • UNION (allowing duplicates)
  • UNION DISTINCT (removing duplicates)
Not only is the removal of duplicates rarely needed (or sometimes even wrong), it is also quite slow for large result sets with many columns, as the two subselects need to be ordered, and each tuple needs to be compared with its subsequent tuple.
Note that even if the SQL standard specifies INTERSECT ALL and EXCEPT ALL, hardly any database implements these less useful set operations.
The Cure:
Every time you write a UNION, think if you actually wanted to write UNION ALL.

4. Using JDBC Pagination to paginate large results

Most databases support some way of paginating ordered results through LIMIT .. OFFSET, TOP .. START AT, OFFSET .. FETCH clauses. In the absence of support for these clauses, there is still the possibility for ROWNUM (Oracle) or ROW_NUMBER() OVER() filtering (DB2, SQL Server 2008 and less), which is much faster than pagination in memory. This is specifically true for large offsets!
The Cure:
Just use those clauses, or a tool (such as jOOQ) that can simulate those clauses for you.

5. Joining data in Java memory

From early days of SQL, some developers still have an uneasy feeling when expressing JOINs in their SQL. There is an inherent fear of JOIN being slow. This can be true if a cost-based optimiser chooses to perform a nested loop, possibly loading complete tables into database memory, before creating a joined table source. But that happens rarely. With appropriate predicates, constraints and indexes, MERGE JOIN and HASH JOIN operations are extremely fast. It’s all about the correct metadata (I cannot cite Tom Kyte often enough for this). Nonetheless, there are probably still quite a few Java developers who will load two tables from separate queries into maps and join them in Java memory in one way or another.
The Cure:
If you’re selecting from various tables in various steps, think again to see if you cannot express your query in a single statement.

6. Using DISTINCT or UNION to remove duplicates from an accidental cartesian product

With heavy joining, one can loose track of all the relations that are playing a role in a SQL statement. Specifically, if multi-column foreign key relationships are involved, it is possible to forget to add the relevant predicates in JOIN .. ON clauses. This might result in duplicate records, but maybe only in exceptional cases. Some developers may then choose to use DISTINCT to remove those duplicates again. This is wrong in three ways:
  • It (may) solve the symptoms but not the problem. It may as well not solve the symptoms in edge-cases.
  • It is slow for large result sets with many columns. DISTINCT performs an ORDER BY operation to remove duplicates.
  • It is slow for large cartesian products, which will still load lots of data into memory
The Cure:
As a rule of thumb, when you get unwanted duplicates, always review your JOIN predicates. There’s probably a subtle cartesian product in there somewhere.

7. Not using the MERGE statement

This isn’t really a mistake, but probably some lack of knowledge or some fear towards the powerful MERGE statement. Some databases know other forms of UPSERT statements, e.g. MySQL’s ON DUPLICATE KEY UPDATE clause. But MERGE is really so powerful, most importantly in databases that heavily extend the SQL standard, such as SQL Server.
The Cure:
If you’re UPSERTING by chaining INSERT and UPDATE or by chaining SELECT .. FOR UPDATE and then INSERT or UPDATE, think again. Apart from risking race conditions, you might be able to express a simpler MERGE statement.

8. Using aggregate functions instead of window functions

Before the introduction of window functions, the only means to aggregate data in SQL was by using a GROUP BY clause along with aggregate functions in the projection. This works well in many cases, and if aggregation data needed to be enriched with regular data, the grouped query can be pushed down into a joined subquery.
But SQL:2003 defined window functions, which are implemented by many popular database vendors. Window functions can aggregate data on result sets that are not grouped. In fact, each window function supports its own, independent PARTITION BY clause, which is an awesome tool for reporting.
Using window functions will:
  • Lead to more readable SQL (less dedicated GROUP BY clauses in subqueries)
  • Improve performance, as a RDBMS is likely to optimise window functions more easily
The Cure:
When you write a GROUP BY clause in a subquery, think again if this cannot be done with a window function.

9. Using in-memory sorting for sort indirections

The SQL ORDER BY clause supports many types of expressions, including CASE statements, which can be very useful for sort indirections. You should probably never sort data in Java memory because you think that
  • SQL sorting is too slow
  • SQL sorting cannot do it
The Cure:
If you sort any SQL data in memory, think again if you cannot push sorting into your database. This goes along well with pushing pagination into the database.

10. Inserting lots of records one by one


JDBC knows batching, and you should use it. Do not INSERT thousands of records one by one, re-creating a new PreparedStatement every time. If all of your records go to the same table, create a batch INSERT statement with a single SQL statement and multiple bind value sets. Depending on your database and database configuration, you may need to commit after a certain amount of inserted records, in order to keep the UNDO log slim.

Monday, 8 December 2014

A Look Into HTML6 – What Is It and What It Has to Offer?

HTML is a simple web development language that keeps on rolling out new versions, and has started working on its sixth revision. HTML5 the current revision of HTML is considered to be one of the most sought-after revisions, compared to all the previous HTML versions.

Let’s have an Overview of HTML5

HTML5 gave us some very exciting features like audio and video support, offline local storage, and most importantly ability to build mobile optimized websites. In addition, it gave us freedom from using type attribute from tags such as <link> and <script>. What’s more? It helped developers organize content in a more relevant manner using new tags like <article>, <section>, <header> etc. However, HTML5 is still in its development stage and isn’t a truly semantic markup.

Understanding the Concept of HTML6

Have you ever wondered if you could express tags? If you haven’t then, just imagine using tags like <logo></logo> for assigning a logo to your web page, or using tag <toolbar<</toolbar> and so on. Wouldn’t it be better if your could use the <div> tag without using multiple id’s such as a wrapper or container, and rather use <wrapper> or a <container> directly. Simply put, instead of using <div id='container'> you can simply use <container>. This is where HTML6 comes in.
HTML6 is sixth revision of HTML with namespaces that has structure like XML. XML namespaces will help you use the same tag without conflicting it with any other tag. For instance the one used in the XHTML DOCTYPE:
HTML6 will provide us the benefit to use tags that we want and won’t have to use only the defined tags.

Example of HTML6

01<!DOCTYPE html>
02<html:html>
03    <html:head>
04        <html:title>A Look Into HTML6</html:title>
05        <html:meta type="title" value="Page Title">
06        <html:meta type="description" value="HTML example with namespaces">
07        <html:link src="css/mainfile.css" title="Styles" type="text/css">
08        <html:link src="js/mainfile.js" title="Script" type="text/javascript">
09    </html:head>
10    <html:body>
11        <header>
12            <logo>
13                <html:media type="image" src="images/xyz.png">
14            </logo>
15            <nav>
16               <html:a href="/img1">a1</a>
17               <html:a href="/img2">a2</a>
18             </nav>
19        </header>
20        <content>
21            <article>
22                <h1>Heading of main article</h1>
23                <h2>Sub-heading of main article</h2>
24                <p>[...]</p>
25                <p>[...]</p>
26            </article>
27            <article>
28                <h1>The concept of HTML6</h1>
29                <h2>Understanding the basics</h2>
30                <p>[...]</p>
31               </article>
32        </content>
33        <footer>
34            <copyright>This site is &copy; to Anonymous 2014</copyright>
35        </footer>
36    </html:body>
37</html:html>
Looking at the above HTML6 document you’ll see some odd <html:x> tags. Those odd tags are the namespaced elements that belong to the W3C and HTML6 spec, and will trigger browser events. For example, the <html:title> element will change the title bar of your browser and the <html:media> element will help make the defined image appear on your browser screen. The best part is that all these elements are specifically defined for users and don’t have anything to do with the browser. They’re nothing more than hooks for JavaScript and style sheet and helps to make your sample code more semantic.

HTML6 APIs

The HTML6 tags will have the namespace html like <html:html> or <html: head> etc. Let’s have a look at the each tag attributes used in the above HTML6 example document.

1. <html:html>

1<!DOCTYPE html>
2<html:html>// this is equivalent to <html> tag written in previous HTML versions
3  <!-- sample of HTML document -->
4</html:html>

2. <html:head>

This tag is equivalent to <head> tag. It’s purpose is to obtain data and scripts that tweaks how the content is displayed within the <html:body> tag.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <!-- Main content would come here, like the <html:title> tag -->
5  </html:head>
6</html:html>

3. <html:title>

As the name implies, it will change the title of the HTML document, and is similar to the <title> tag used in earlier HTML versions. This tag is used by browsers for changing the title bar, favorites, etc.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5  </html:head>
6</html:html>

4. <html:meta>

This tag is somewhat different from the <meta> tag used in the latest HTML version. Using this HTML6 tag you can use any sort of meta data. And so, unlike HTML5 you won’t have to use the standard meta types in HTML6. It helps to accumulate information such as a webpage description, by storing content.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5    <html:meta type="description" value="HTML example with namespaces">
6  </html:head>
7</html:html>

5. <html:link>

This tag will help you link external documents and scripts (like CSS, JS etc.) to the HTML document. It’s similar to <link> tag used in HTML5. This tag includes following attributes:
  • charset: "UTF-8" character encoding.
  • href: It contains link to your source file.
  • media: This defines the kind of device on which your item will run, for example, "Smartphone" or "tablet".
  • type: The MIME type of the document.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5 <html:link src="js/mainfile.js" title="Script" type="text/javascript">
6  </html:head>
7</html:html>

6. <html:body>

This is just like the <body> tag that you’ve been using in the current HTML version. This is where all your website stuff like text, media and others are placed.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5  </html:head>
6  <html:body>
7    <!-- This is where your website content is placed -->
8  </html:body>
9</html:html>

7. <html:a>

This tag is similar to the <a> tag, and is used to represent a link to other web page. However, unlike the <a> tag, <html:a> takes only a single ‘href’ attribute, which directs the link to the page you need to visit.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5  </html:head>
6  <html:body>
7    <html:a href="http://siteurl">Go to siteurl.com!</html:a>
8  </html:body>
9</html:html>

8. <html:button>

This tag is equivalent to <button> tag or <input type="button"> used in the current and older HTML versions. This tag enables you to create a button to help a user perform some interaction on your site’s page. It has one attribute disabled.
1<!DOCTYPE html>
2<html:html>
3  <html:head>
4    <html:title>A Look Into HTML6</html:title>
5  </html:head>
6  <html:body>
7    <html:button>Click Here</html:button>
8  </html:body>
9</html:html>

9. <html:media>

This tag wrap up all the <media> tags like <img>, <video>, <embed>, etc. By using <html:media> tag, you no longer have to specify a tag for each of the file type. The <html:media> tag you’re using will be executed by the browser based on the type attribute (if provided), or it will just make a guess on the basis of file extension, or by the ‘MIME type’.
01<!DOCTYPE html>
02<html:html>
03  <html:head>
04    <html:title>A Look Into HTML6</html:title>
05  </html:head>
06  <html:body>
07    <!-- Image would come here -->
08    <html:media src="img1/logo.jpg" type="image">
09    <!-- Video doesn't need a type -->
10    <html:media src="videos/slide.mov">
11  </html:body>
12</html:html>

An Overview of Tag types

Similar to the current and previous HTML versions, HTML6 will also have two types of tags such as single tags and double tags. The single tags won’t be having any text content, and rather will only have attributes. For example:
1<html:meta type="author" content="z13a">
2<html:meta type="author" content="z13a" />
Compared to the double tag, you don’t need to close your single tag. Double tags have opening and closing tag, as they have some text content. But, in the case double tags don’t have any text based content, you can reduce it to the ‘self-closing single variant’. For example:

1<html:link href="./a.html">Text based content</html:link>
2<!-- This shortand... -->
3<foo class="xyz" />
4<!-- ...means in fact this: -->
5<foo class="xyz"></foo>

Wednesday, 3 December 2014

Talent trends 2015: Hiring to go up; social recruiting rules


Passive Candidate Recruiting: India In Global Top 3
1.) Increase in Indian companies reaching out to passive candidates via proactive sourcing. India ranks 3rd (69%) compared to other countries in terms of hiring passive candidates.
2.) Companies in the US (83%) and China (72%) are most aggressively recruiting passive candidates.
3.) Globally, 75% of professionals consider themselves "passive" yet only 61% of companies consider recruiting passive talent.



     The Future Of Recruiting
1.) Global recruiting leaders agree that social and professional networks are the most essential and long-lasting trend in recruiting. Indian firms consider utilising social and professional network as the most (39%) essential and long-lasting trend in recruiting for professional roles, followed by boosting referral programme (31%) and upgrading employer brand (27%).
2.) Candidate and job matching could reshape the recruiting industry - Improved candidate and job matching (personality fit, culture fit, etc) will the most (58%) important role in shaping the recruiting industry for the next five to 10 years.
       




Tuesday, 2 December 2014

Research: 59 percent concerned IT skill set will become obsolete

Summary: The fear of obsolescence is driving many IT professionals to further their education and obtain new certifications, according to a Tech Pro Research survey on the future of IT jobs.
As technology grows more diverse and powerful it also grows more difficult to manage and balance. Many IT jobs are requiring a broader responsibility in terms of expertise and the number/type of skills needed.
Working in IT today requires an IT professional to be more of a generalist rather than a specialist in one discipline: the pressure is on to have a diverse knowledge set. This spells promise for IT pros who can leverage a broad skill set and move among groups or companies to exercise their talents. But it can also limit the career options of those who can't or don't keep moving.
Tech Pro Research conducted a global survey of 1,156 respondents to find out about the following issues:
  • How are IT professionals responding to the current technology landscape?
  • How are they managing their careers?
  • What have they been working on?
  • Where should they branch out to stay competitive?
  • Where and why are they are expanding their technical and non-technical skill sets?
  • How are they learning and who is arranging that?
  • How are the new skill sets translating into hands-on work, and what percentage of their time is being allocated to these new areas?
  • What level of demand are they seeing for their skills sets at the organizations? What about in the overall job market? What are recruiters and employers looking for in an IT professional?
  • What do they expect to see down the road, both personally and within their industries?
  • How are they planning to stay in IT, or are they moving (or being driven) into other fields or companies?

Fear of obsolescence

obsolete chart
The report revealed that many people fear that their current IT skill set will become obsolete, with 59 percent of respondents employed in the IT industry reporting concern. A little more than one-third of respondents (34 percent) said they weren't concerned. The reasons for the lack of concern include working to prevent it by furthering their education, or planning to retire or otherwise end their career before becoming obsolescent.
obsolete industry chart
The industry matters, too, with respondents in education reporting more concern (71 percent) than the average across all industries (59 percent). This ties in with how many expect less demand in the future for IT skills in the education field.

Plans to obtain additional degrees or certifications

Future education chart
To stave off obsolescence, many respondents are planning to obtain additional IT certifications or degrees, with 57 percent planning for IT certifications either within their current job role or outside of their current job role. Another 10 percent are looking toward adding a bachelor's or master's degree in IT, and a further 10 percent plan to get a non-technical degree such as an MBA.

Conclusion


The report stated, "The results of our survey refute the recent media reports on the possibility that IT jobs may disappear due to new technical advances. In fact, it's quite the contrary with the increased complexity breeding new opportunities and  furthering demand for skilled IT professionals. As things stand, the future of IT looks bright for both existing workers and newcomers, with some stipulations."

Monday, 1 December 2014

Cheap Tablets Aren't Just Crap, They're Dangerous

Cheap Tablets Aren't Just Crap, They're Dangerous
As you head to your local Walmart today for America's annual reenactment of The Hunger Games, here's a reminder that sucker-punching someone to get the last $50 tablet might not be the wisest course of action. For several reasons.
The main complaint that you hear against the kinds of cheap, Chinese no-brand tablets filling the aisles at Walmart is that they're terrible to use - and they are! But, it turns out that cheap tablets also tend to be riddled with security problems. Bluebox Labs, a security software firm, recently ran a test on a number of cheap tablets on sale at big-box stores. Unsurprisingly, they found security holes you could drive a small truck through.
A bunch of the tablets they tested had the malicious app protection - the setting that prevents you from installing apps from unknown sources - turned off by default. That makes it far more likely that the five-year-old you foist the tablet off to will download malware, and your credit card number will be gone before you can say 'suspicious charges from a Siberian minicab firm'.
The worrying discoveries don't stop there, either. A number of the tablets came rooted out of the box, making them more easily compromised by a lazy hacker; a couple were signed using a test signature for AOSP, a custom version of Android, which would make rolling out a malware-infected system upgrade easy; and Staples' $39 tablet even had some security features painstakingly removed for no good reason.
Then, of course, there's the programs that come pre-installed to ruin things. Bluebox didn't go into details, but claimed that a few tablets came installed with adware, or custom versions of Angry Birds that collect extra user data.
So, from a security perspective, it's fairly clear that cheap tablets are crap across the board. And it's not like there's any other redeeming features: cheapo crap tablets are - surprise! - universally slow, buggy, often don't have access to Google's app collections, never get updates, and are built with components that make an Etch-A-Sketch look premium. If you really want a tablet for $50, pick up a used Nexus 7 off eBay - or better, save up the extra hundred bucks and splurge on something that actually works. [Bluebox Labs]

Sunday, 30 November 2014

19 Best Tips For Making A Fabulous Resume

While resumes should be tailored to the industry you're in, the one below offers a helpful guide for entry- and mid-level professionals with three to five years of relevant work experience.
 
A winning resume makes the difference between a potential employer wanting to meet you versus them hiring some other job candidate.
 
Here are 19 points that makes your resume best: 

1. Must includes a URL to the jobseeker's professional online profile.
If you don't include URLs to your professional online profiles, hiring managers will look you up regardless. Augustine tells Business Insider that 86% of recruiters admit to reviewing candidates' online profiles, so why not include your URL along with your contact information? This will prevent recruiters from having to guess or mistaking you for someone else.

2. Uses consistent branding.
"If you have a common name, consider including your middle initial on your resume and online professional profiles to differentiate yourself from the competition," says Augustine. For example, decide if you're Mike Johnson, Michael Johnson, or Mike E. Johnson. Then use this name consistently, be it on LinkedIn, Google+, Twitter, or Facebook.

3. Includes a single phone number and email address.
"Choose one phone number for your resume where you control the voicemail message and who picks up the phone," she advises. The same rule applies to an email address.

4. It does not include an objective statement.
There's no point in including a generic objective about a "professional looking for opportunities that will allow me to leverage my skills," says Augustine. It's not helpful and distracting. Ditch it.

5. It must includes an executive summary.
Replace your fluffy statement with an executive summary, which should be like a "30-second elevator pitch" where you explain who you are and what you're looking for. "In approximately three to five sentences, explain what you're great at, most interested in, and how you can provide value to a prospective employer," Augustine says.

6. Must uses reverse chronological order.
This is the most helpful for recruiters because they're able to see what you've been doing in recent years immediately, says Augustine. "The only time you shouldn't do this is if you're trying to transition to another career altogether, but then again, in this situation, you'll probably be relying more on networks," than your resume, she says.

7. Uses keywords like "forecasting" and "strategic planning."
Many companies use some kind of screening process to identify the right candidates. You should include the keywords mentioned in the job posting throughout your resume.

"Identify the common keywords, terminology, and key phrases that routinely pop up in the job descriptions of your target role and incorporate them into your resume (assuming you have those skills)," advises Augustine. "This will help you make it past the initial screenings and on to the recruiter or hiring manager."

8. Must provides company descriptions.
It's helpful for recruiters to know the size of the company you used to work for, advises Augustine.

"Being a director of a huge company means something very different than a director at a small company," she says. You can go to the company's "About Us" section and rewrite one or two lines of the description. This should be included right underneath the name of the company.

9. Does not list achievements in dense blocks of text.
Recruiters receive so many resumes to scan through at a time, so make it as easy as possible for them to understand why you're perfect for the job. Dense blocks of text are too difficult to read, says Augustine.

10. Achievements are listed in three bullet points per job.
Under each job or experience you've had, explain how you contributed to or supported your team's projects and initiatives. "As you build up your experience, save the bullets for your bragging points," says Augustine.

11. Quantifies achievements.
"Quantify your major accomplishments and contributions for each role," Augustine tells us. This can include the money you saved or brought in for your employer, deals closed, and projects delivered on time or under budget. Do not use any more than three to five bullet points.

12. Accomplishments are formatted as result-and-then-cause.
A good rule is to use the "result BY action" sentence structure whenever possible. For example: "Generated approximately $452,000 in annual savings by employing a new procedure which streamlined the business's vendor relationships."

13. White space draws the reader's eyes to important points.
Recruiters do not spend a lot of time scanning resumes, so avoid dense blocks of text. "The key is to format the information in a way that makes it easy to scan and recognize your job goals and relevant qualifications," Augustine tells us.

14. Never use crazy fonts or colors.
"Stick to black and white color," says Augustine. As for font, it's best to stick with the basics, such as Arial, Tahoma, or Calibri.

15. Must not include pronouns.
Augustine says you should never write your resume in third person because everyone knows you're the one writing it (unless you go through a professional resume writing service).

Instead, you should write it in first person, and do not include pronouns. "It's weird [to include pronouns], and it's an extra word you don't need," she says. "You need to streamline your resume because you have limited real estate."

16. No to images.
"Avoid adding any embedded tables, pictures, or other images in your resume, as this can confuse the applicant-tracking software and jumble your resume in the system," says Augustine.

17. Do not use headers or footers.
It may look neat and concise to display your contact information in the header, but for "the same reason with embedded tables and charts, it often gets scrambled in an applicant tracking system," says Augustine.

18. Education is listed at the bottom.
Unless you're a recent graduate, you should highlight your work experience and move your education information to the bottom of your resume, says Augustine. Never include anything about your high-school years.

19. It doesn't say "references upon request."
Every recruiter knows you're going to provide references if they request it so there's no reason for you to include this line. Again, remember that space on your resume is crucial so don't waste it on a meaningless line, Augustine tells us.