{"id":297,"date":"2015-09-03T15:00:54","date_gmt":"2015-09-03T15:00:54","guid":{"rendered":"https:\/\/conversion.com\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/"},"modified":"2024-08-13T21:37:20","modified_gmt":"2024-08-13T21:37:20","slug":"we-dont-hire-developers-we-hire-hackers-and-heres-why","status":"publish","type":"post","link":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/","title":{"rendered":"We don&#8217;t hire developers. We hire hackers. And here&#8217;s why."},"content":{"rendered":"<section class=\"c-post-content\" data-ref=\"case-content\">\n\t<div class=\"post-content\">\n\t\t<div class=\"post-content__container container container--medium\">\n\t\t\t<aside class=\"post-content__sidebar post-content__sidebar--links\">\n\t\t\t\t<div class=\"sticky-menu\" data-ref=\"case-content-menu\">\n\t\t\t\t\t<h3 class=\"sticky-menu__title\">Contents<\/h3>\n\t\t\t\t\t<ul class=\"sticky-menu\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t                            \t\t\t\t\t\t\t<li class=\"sticky-menu__item\">\n\t\t\t\t\t\t\t\t<a class=\"sticky-menu__item-link  active\" href=\"#introduction\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"arrow\"><svg viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10.6875 9.34375V7.34375L13.3438 10L10.6875 12.6562V10.6562H2.65625V9.34375H10.6875Z\" fill=\"#F6876F\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"sticky-menu__item-text\">Introduction<\/span>\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t                            \t\t\t\t\t\t\t<li class=\"sticky-menu__item\">\n\t\t\t\t\t\t\t\t<a class=\"sticky-menu__item-link \" href=\"#howtohandlecss\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"arrow\"><svg viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10.6875 9.34375V7.34375L13.3438 10L10.6875 12.6562V10.6562H2.65625V9.34375H10.6875Z\" fill=\"#F6876F\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"sticky-menu__item-text\">How to handle\u00a0CSS<\/span>\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t                            \t\t\t\t\t\t\t<li class=\"sticky-menu__item\">\n\t\t\t\t\t\t\t\t<a class=\"sticky-menu__item-link \" href=\"#content\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"arrow\"><svg viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10.6875 9.34375V7.34375L13.3438 10L10.6875 12.6562V10.6562H2.65625V9.34375H10.6875Z\" fill=\"#F6876F\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"sticky-menu__item-text\">Content<\/span>\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t                            \t\t\t\t\t\t\t<li class=\"sticky-menu__item\">\n\t\t\t\t\t\t\t\t<a class=\"sticky-menu__item-link \" href=\"#forms\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"arrow\"><svg viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10.6875 9.34375V7.34375L13.3438 10L10.6875 12.6562V10.6562H2.65625V9.34375H10.6875Z\" fill=\"#F6876F\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"sticky-menu__item-text\">Forms<\/span>\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t                            \t\t\t\t\t\t\t<li class=\"sticky-menu__item\">\n\t\t\t\t\t\t\t\t<a class=\"sticky-menu__item-link \" href=\"#handlingelementsthatarenotthere\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t<span class=\"arrow\"><svg viewBox=\"0 0 16 20\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M10.6875 9.34375V7.34375L13.3438 10L10.6875 12.6562V10.6562H2.65625V9.34375H10.6875Z\" fill=\"#F6876F\"\/><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"sticky-menu__item-text\">Handling elements that are not there<\/span>\n\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t<\/div>\n\t\t\t<\/aside>\n\n\t\t\t<div class=\"post-content__content\">\n\t\t\t\t<ul class=\"post-content__sections\">\n\t\t\t\t\t                        \t\t\t\t\t\t<li class=\"post-content__section\" id=\"introduction\" data-ref=\"case-content-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"post-content__section-title\">Introduction<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__section-content\"><p><span style=\"font-weight: 400;\">When building experiments through any testing platform, our\u00a0<\/span><span style=\"font-weight: 400;\">developers have to think differently to most front end developers, and sometimes, they\u00a0need to get creative. Like us, there are other companies which don\u2019t have access to the clients\u2019 source code, but have to ensure that their code snippets aren\u2019t going to break anything. Products like Optimizely, Qubit and Qualaroo work in this way, for example. Our\u00a0developers have to create a robust and modular code that can be applied to any website and run smoothly without causing any issues.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">When it comes to us at Conversion.com, we effectively create our experiments <\/span><i><span style=\"font-weight: 400;\">on top <\/span><\/i><span style=\"font-weight: 400;\">of our clients\u2019 websites. Through selectors in jQuery and CSS, we apply the desired new look (and sometimes functionality) for our tests. Of course, things can often be more complicated than that\u00a0\u2013\u00a0we might have to rewrite an existing Ajax call (or hook our snippet on an existing Ajax call). Or we might have to manipulate what a form submits and how it invalidates\u00a0\u2013\u00a0all without having access to any file in our clients\u2019 server. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You could say we are in a way, a new kind of developer. There are Back End developers and Front End developers and then there is us, somewhere in between, placing a layer on top of the existing website in order to make our experiments work the way they are intended. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Here are\u00a0some tips that we have found to be the most useful when developing A\/B tests for our clients at Conversion.com.<\/span><\/p>\n<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__index\">\n\t\t\t\t\t\t\t\t<h3 class=\"post-content__index-title\">Contents<\/h3>\n\t\t\t\t\t\t\t\t<ul class=\"post-content__index-links\" data-ref=\"case-content-menu\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"post-content__index-link\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"#introduction\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t\t\t\tIntroduction\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"post-content__index-link\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"#howtohandlecss\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t\t\t\tHow to handle\u00a0CSS\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"post-content__index-link\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"#content\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t\t\t\tContent\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"post-content__index-link\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"#forms\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t\t\t\tForms\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class=\"post-content__index-link\">\n\t\t\t\t\t\t\t\t\t\t\t<a href=\"#handlingelementsthatarenotthere\" data-ref=\"case-content-menu-item\">\n\t\t\t\t\t\t\t\t\t\t\t\tHandling elements that are not there\n\t\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t                        \t\t\t\t\t\t<li class=\"post-content__section\" id=\"howtohandlecss\" data-ref=\"case-content-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"post-content__section-title\">1. How to handle\u00a0CSS<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__section-content\"><h3 style=\"padding-left: 30px;\"><b>1.1 Injecting CSS<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Starting with CSS, we inject our document, minified, at the head of the document using Javascript. At\u00a0Conversion.com, we have a special\u00a0plugin for that, but you could always link to an external file you have with the following code: <\/span><\/p>\n<pre><span style=\"font-weight: 400;\">$(<\/span><span style=\"font-weight: 400;\">'head'<\/span><span style=\"font-weight: 400;\">).append(<\/span><span style=\"font-weight: 400;\">'&lt;link rel=\"stylesheet\" href=\"style.css\" \r\ntype=\"text\/css\" \/&gt;'<\/span><span style=\"font-weight: 400;\">);\r\n<\/span><\/pre>\n<h3 style=\"padding-left: 30px;\"><b>1.2 Wrapper ID<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">You might not\u00a0want your CSS\u00a0to overwrite any existing CSS that isn&#8217;t impacted by your experiment. Having the same names for classes can sometimes happen, so it\u2019s advised to wrap your content with a unique ID and simply point your CSS towards that ID and its children. For example, if you wrap your content with: <\/span><\/p>\n<pre><span style=\"font-weight: 400;\">&lt;div id=\u201dconversion01\u201d&gt;&lt;div class=\u201dcontent\u201d&gt;&lt;\/div&gt;&lt;\/div&gt;<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">then simply calling:<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">#conversion01 .content<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">would ensure that you don\u2019t change something that you don\u2019t want to change. <\/span><\/p>\n<h3 style=\"padding-left: 30px;\"><b>1.3. Sometimes you really do need to overwrite CSS<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Even though we neatly wrapped our content with our unique ID, you might actually need to alter existing elements across the website. This often means that there will be a conflict of CSS rules between what you are trying to do and what is already there. You can either overwrite those rules by being more specific than the original CSS (e.g. body &gt; .container &gt; .paragraph instead of just .paragraph) or use<\/span><\/p>\n<h3 style=\"padding-left: 30px;\"><b>1.4 important!<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">I know! Using !important is reprehensible in a normal project. Unfortunately, we might need it a lot. !important is a quick way to make the changes we need so we can get the test live sooner. We can write better code once the test has proven successful and it&#8217;s worth the extra effort.<\/span><\/p>\n<h3 style=\"padding-left: 30px;\"><b>1.5 Not everything is always tidy<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Unfortunately, sometimes the HTML structure of some websites is not really tidy. There have been cases where some websites had tables and nested tables, with only a class given at the parent level. \u00a0Certain CSS changes had to be done two or three children below. In times like these, your only option would be to use a vague\u00a0<\/span><span style=\"font-weight: 400;\">nth-child()<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">On the other hand, if you do so, you should be careful in case the client changes something on their website (e.g. adds a new column in said table), since the previously selected element might no longer be represented by the number you chose in\u00a0<\/span><span style=\"font-weight: 400;\">nth-child()<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t                        \t\t\t\t\t\t<li class=\"post-content__section\" id=\"content\" data-ref=\"case-content-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"post-content__section-title\">2. Content<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__section-content\"><p><span style=\"font-weight: 400;\">Most of the time, new content is needed for our experiments. In order to inject this new content we use the following jQuery functions: <\/span><\/p>\n<pre><span style=\"font-weight: 400;\">append(), prepend(), after(), before()<\/span><span style=\"font-weight: 400;\">. <\/span><\/pre>\n<p><span style=\"font-weight: 400;\">By locating where our content should be, we use one of the functions from above appropriately. These functions also help to wrap our new content with the styles of the existing website. That\u2019s really important when a client\u2019s website uses a framework (e.g. <\/span><a href=\"http:\/\/getbootstrap.com\/css\/\"><span style=\"font-weight: 400;\">Bootstrap CSS<\/span><\/a><span style=\"font-weight: 400;\">) and all we have to do is place our content within the already defined Bootstrap elements. <\/span><\/p>\n<pre><span style=\"font-weight: 400;\">(e.g. <\/span><span style=\"font-weight: 400;\">&lt;div class=\u201d.col-md-1\u201d&gt;&lt;\/div&gt;<\/span><span style=\"font-weight: 400;\">).<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">There are also scenarios where an external script is needed in order to help with the development of a project. One example would be using <\/span><a href=\"http:\/\/fancyapps.com\/fancybox\/\"><span style=\"font-weight: 400;\">fancybox.js<\/span><\/a><span style=\"font-weight: 400;\"> in order to create a lightbox. At the top of the document, we include the CSS of fancybox and point to the images accordingly, and once we need to use it, we call<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">$.getScript('<\/span><span style=\"font-weight: 400;\">js\/jquery.fancybox.pack.js<\/span><span style=\"font-weight: 400;\">', function() {\r\n<\/span><span style=\"font-weight: 400;\">    $(\".fancybox\").fancybox();<\/span>\r\n<span style=\"font-weight: 400;\">});<\/span><\/pre>\n<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t                            <div data-target=\"post-newsletter-anchor\" data-device=\"mobile\"><\/div>\n                        \t\t\t\t\t                        \t\t\t\t\t\t<li class=\"post-content__section\" id=\"forms\" data-ref=\"case-content-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"post-content__section-title\">3. Forms<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__section-content\"><p><span style=\"font-weight: 400;\">There are cases in which we need to alter an existing form or create a new one that would still submit some of the old form\u2019s information. Sometimes hiding certain fields is enough, but there are also more complex scenarios than that. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The way we handle this is by copying the information that is typed into the new fields to the hidden form, usually on <\/span><span style=\"font-weight: 400;\">keyup<\/span><span style=\"font-weight: 400;\">. We use keyup because we usually have a dynamic field validation as well, so having everything within one function is tidier. Our code would look something like this: <\/span><\/p>\n<pre><span style=\"font-weight: 400;\">$(\u2018#newinput\u2019).keyup(function() {\r\n<\/span><span style=\"font-weight: 400;\">    $(\u2018#oldinput\u2019).val($(\u2018#newinput\u2019).val());\r\n<\/span><span style=\"font-weight: 400;\">});<\/span><\/pre>\n<p><span style=\"font-weight: 400;\">and if there is a new submit button you <\/span><span style=\"font-weight: 400;\">.submit()<\/span><span style=\"font-weight: 400;\"> the form when the new button is clicked.<\/span><\/p>\n<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t                        \t\t\t\t\t\t<li class=\"post-content__section\" id=\"handlingelementsthatarenotthere\" data-ref=\"case-content-item\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h2 class=\"post-content__section-title\">4. Handling elements that are not there<\/h2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"post-content__section-content\"><p><span style=\"font-weight: 400;\">Some websites have elements that might be loaded through Ajax due to a framework or plugin that the client is using. If we need to change that element then we might need to wait for it to exist first, and then do the necessary alterations.<\/span><\/p>\n<pre><span style=\"font-weight: 400;\">var checkElement = setInterval(function() {\r\n    if($(\u2018.element\u2019).length)<\/span><span style=\"font-weight: 400;\">{\r\n<\/span><span style=\"font-weight: 400;\">        \/\/do stuff\r\n<\/span><span style=\"font-weight: 400;\">        clearInterval(checkElement);\r\n<\/span><span style=\"font-weight: 400;\">    }\r\n<\/span><span style=\"font-weight: 400;\">}, 50);<\/span><\/pre>\n<p>Finally, if you have a more complicated problem that needs a more advanced solution, you could always hook up the existing Ajax call and create your changes accordingly.<\/p>\n<p>As I said before,\u00a0these are the 4 main tips that we have typically found to be most useful\u00a0when developing A\/B and multivariate tests for our clients here at Conversion.com. There are many other techniques out there that you may find useful when developing under this new paradigm, which is effectively a layer in front of traditional front end development. If you have any of your own tips to share, or any thoughts\u00a0on any of ours, we would love to hear from you &#8211; so be sure to leave your comments in the box below.<\/p>\n<p>Thanks for reading!<\/p>\n<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\n\t\t\t\t\t\t                            <div data-target=\"post-newsletter-anchor\" data-device=\"mobile\"><\/div>\n                        \t\t\t\t\t\n\t\t\t\t<\/ul>\n\t\t\t<\/div>\n\n\t\t\t<aside class=\"post-content__sidebar post-content__sidebar--form\">\n\t\t\t\t<div class=\"sticky-newsletter\" data-target=\"post-newsletter-anchor\" data-device=\"desktop\">\n                \t<div class=\"post-newsletter\" data-target=\"post-newsletter\">\n    <h4 class=\"post-newsletter__title\">Real-world growth experiments. In your inbox. Every week. <\/h4>\n            <div class=\"post-newsletter__form post-newsletter__form--world kam-world\">\n        <script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/embed\/v2.js\"><\/script> <script>   hbspt.forms.create({     region: \"na1\",     portalId: \"9358319\",     formId: \"4e927e03-4f90-466a-8646-7f94947f860c\"   }); <\/script>\n    <\/div>\n            <div class=\"post-newsletter__form post-newsletter__form--uk-us kam-uk-us\">\n            <script charset=\"utf-8\" type=\"text\/javascript\" src=\"\/\/js.hsforms.net\/forms\/embed\/v2.js\"><\/script><script>hbspt.forms.create({ region: \"na1\", portalId: \"9358319\", formId: \"03e799e7-ee63-4857-9182-cb3a687dba40\" });<\/script>\n        <\/div>\n        <div class=\"post-newsletter__terms\"><p>Join 5,000+ optimizers who subscribe to our content<\/p>\n<\/div>\n<\/div>\n\t\t\t\t<\/div>\n            <\/aside>\n\t\t<\/div>\n\t<\/div>\n<\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":17,"featured_media":298,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[27],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>We don&#039;t hire developers. We hire hackers. And here&#039;s why. | Conversion<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"We don&#039;t hire developers. We hire hackers. And here&#039;s why. | Conversion\" \/>\n<meta property=\"og:url\" content=\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\" \/>\n<meta property=\"og:site_name\" content=\"Conversion\" \/>\n<meta property=\"article:published_time\" content=\"2015-09-03T15:00:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-13T21:37:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/conversion.com\/wp-content\/uploads\/2022\/06\/Stavros-Final.png\" \/>\n\t<meta property=\"og:image:width\" content=\"805\" \/>\n\t<meta property=\"og:image:height\" content=\"502\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stavros Ferkadis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stavros Ferkadis\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\"},\"author\":{\"name\":\"Stavros Ferkadis\",\"@id\":\"https:\/\/conversion.com\/#\/schema\/person\/a8e8cf121e4454876fc9a591df4cc051\"},\"headline\":\"We don&#8217;t hire developers. We hire hackers. And here&#8217;s why.\",\"datePublished\":\"2015-09-03T15:00:54+00:00\",\"dateModified\":\"2024-08-13T21:37:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\"},\"wordCount\":10,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/conversion.com\/#organization\"},\"articleSection\":[\"Tech &amp; Development\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\",\"url\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\",\"name\":\"We don't hire developers. We hire hackers. And here's why. | Conversion\",\"isPartOf\":{\"@id\":\"https:\/\/conversion.com\/#website\"},\"datePublished\":\"2015-09-03T15:00:54+00:00\",\"dateModified\":\"2024-08-13T21:37:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/conversion.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"We don&#8217;t hire developers&hellip;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/conversion.com\/#website\",\"url\":\"https:\/\/conversion.com\/\",\"name\":\"Conversion\",\"description\":\"Better results with evidence\",\"publisher\":{\"@id\":\"https:\/\/conversion.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/conversion.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/conversion.com\/#organization\",\"name\":\"Conversion\",\"url\":\"https:\/\/conversion.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/conversion.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/conversion.com\/wp-content\/uploads\/2022\/12\/Colour-Logo.png\",\"contentUrl\":\"https:\/\/conversion.com\/wp-content\/uploads\/2022\/12\/Colour-Logo.png\",\"width\":1821,\"height\":193,\"caption\":\"Conversion\"},\"image\":{\"@id\":\"https:\/\/conversion.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/conversion.com\/#\/schema\/person\/a8e8cf121e4454876fc9a591df4cc051\",\"name\":\"Stavros Ferkadis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/conversion.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d527bf055c95971d7bc64a8db6a159b1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d527bf055c95971d7bc64a8db6a159b1?s=96&d=mm&r=g\",\"caption\":\"Stavros Ferkadis\"},\"description\":\"Stavros Ferkadis is a Developer at Conversion.com\",\"url\":\"https:\/\/conversion.com\/blog\/author\/stavros-ferkadis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"We don't hire developers. We hire hackers. And here's why. | Conversion","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/","og_locale":"en_GB","og_type":"article","og_title":"We don't hire developers. We hire hackers. And here's why. | Conversion","og_url":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/","og_site_name":"Conversion","article_published_time":"2015-09-03T15:00:54+00:00","article_modified_time":"2024-08-13T21:37:20+00:00","og_image":[{"width":805,"height":502,"url":"https:\/\/conversion.com\/wp-content\/uploads\/2022\/06\/Stavros-Final.png","type":"image\/png"}],"author":"Stavros Ferkadis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stavros Ferkadis"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#article","isPartOf":{"@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/"},"author":{"name":"Stavros Ferkadis","@id":"https:\/\/conversion.com\/#\/schema\/person\/a8e8cf121e4454876fc9a591df4cc051"},"headline":"We don&#8217;t hire developers. We hire hackers. And here&#8217;s why.","datePublished":"2015-09-03T15:00:54+00:00","dateModified":"2024-08-13T21:37:20+00:00","mainEntityOfPage":{"@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/"},"wordCount":10,"commentCount":0,"publisher":{"@id":"https:\/\/conversion.com\/#organization"},"articleSection":["Tech &amp; Development"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/","url":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/","name":"We don't hire developers. We hire hackers. And here's why. | Conversion","isPartOf":{"@id":"https:\/\/conversion.com\/#website"},"datePublished":"2015-09-03T15:00:54+00:00","dateModified":"2024-08-13T21:37:20+00:00","breadcrumb":{"@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/conversion.com\/blog\/we-dont-hire-developers-we-hire-hackers-and-heres-why\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/conversion.com\/"},{"@type":"ListItem","position":2,"name":"We don&#8217;t hire developers&hellip;"}]},{"@type":"WebSite","@id":"https:\/\/conversion.com\/#website","url":"https:\/\/conversion.com\/","name":"Conversion","description":"Better results with evidence","publisher":{"@id":"https:\/\/conversion.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/conversion.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/conversion.com\/#organization","name":"Conversion","url":"https:\/\/conversion.com\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/conversion.com\/#\/schema\/logo\/image\/","url":"https:\/\/conversion.com\/wp-content\/uploads\/2022\/12\/Colour-Logo.png","contentUrl":"https:\/\/conversion.com\/wp-content\/uploads\/2022\/12\/Colour-Logo.png","width":1821,"height":193,"caption":"Conversion"},"image":{"@id":"https:\/\/conversion.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/conversion.com\/#\/schema\/person\/a8e8cf121e4454876fc9a591df4cc051","name":"Stavros Ferkadis","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/conversion.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d527bf055c95971d7bc64a8db6a159b1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d527bf055c95971d7bc64a8db6a159b1?s=96&d=mm&r=g","caption":"Stavros Ferkadis"},"description":"Stavros Ferkadis is a Developer at Conversion.com","url":"https:\/\/conversion.com\/blog\/author\/stavros-ferkadis\/"}]}},"_links":{"self":[{"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/posts\/297"}],"collection":[{"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/comments?post=297"}],"version-history":[{"count":6,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/posts\/297\/revisions"}],"predecessor-version":[{"id":6759,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/posts\/297\/revisions\/6759"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/media\/298"}],"wp:attachment":[{"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/media?parent=297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/conversion.com\/wp-json\/wp\/v2\/categories?post=297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}