CINXE.COM

<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><style id="typography.js">html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}html{font:112.5%/1.722 'Lato',sans-serif;box-sizing:border-box;overflow-y:scroll;}*{box-sizing:inherit;}*:before{box-sizing:inherit;}*:after{box-sizing:inherit;}body{color:hsla(0,0%,0%,0.8);font-family:'Lato',sans-serif;font-weight:400;word-wrap:break-word;font-kerning:normal;-moz-font-feature-settings:"kern", "liga", "clig", "calt";-ms-font-feature-settings:"kern", "liga", "clig", "calt";-webkit-font-feature-settings:"kern", "liga", "clig", "calt";font-feature-settings:"kern", "liga", "clig", "calt";}img{max-width:100%;margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}h1{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:2rem;line-height:1.1;}h2{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:1.51572rem;line-height:1.1;}h3{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:1.31951rem;line-height:1.1;}h4{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:1rem;line-height:1.1;}h5{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:0.87055rem;line-height:1.1;}h6{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;color:hsla(0,0%,0%,0.9);font-family:'Neuton',sans-serif;font-weight:700;text-rendering:optimizeLegibility;font-size:0.81225rem;line-height:1.1;}hgroup{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}ul{margin-left:1.722rem;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;list-style-position:outside;list-style-image:none;}ol{margin-left:1.722rem;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;list-style-position:outside;list-style-image:none;}dl{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}dd{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}p{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}figure{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}pre{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;font-size:0.85rem;line-height:1.722rem;}table{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;font-size:1rem;line-height:1.722rem;border-collapse:collapse;width:100%;}fieldset{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}blockquote{margin-left:0;margin-right:1.722rem;margin-top:0;padding-bottom:0;padding-left:1.93725rem;padding-right:0;padding-top:0;margin-bottom:1.722rem;font-size:1.1487rem;line-height:1.722rem;color:hsla(0,0%,0%,0.59);border-left:0.64575rem solid;border-color:#612423;}form{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}noscript{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}iframe{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}hr{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:calc(1.722rem - 1px);background:hsla(0,0%,0%,0.2);border:none;height:1px;}address{margin-left:0;margin-right:0;margin-top:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;margin-bottom:1.722rem;}b{font-weight:700;}strong{font-weight:700;}dt{font-weight:700;}th{font-weight:700;}li{margin-bottom:calc(1.722rem / 2);}ol li{padding-left:0;}ul li{padding-left:0;}li > ol{margin-left:1.722rem;margin-bottom:calc(1.722rem / 2);margin-top:calc(1.722rem / 2);}li > ul{margin-left:1.722rem;margin-bottom:calc(1.722rem / 2);margin-top:calc(1.722rem / 2);}blockquote *:last-child{margin-bottom:0;}li *:last-child{margin-bottom:0;}p *:last-child{margin-bottom:0;}li > p{margin-bottom:calc(1.722rem / 2);}code{font-size:0.85rem;line-height:1.722rem;}kbd{font-size:0.85rem;line-height:1.722rem;}samp{font-size:0.85rem;line-height:1.722rem;}abbr{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;}acronym{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;}abbr[title]{border-bottom:1px dotted hsla(0,0%,0%,0.5);cursor:help;text-decoration:none;}thead{text-align:left;}td,th{text-align:left;border-bottom:1px solid hsla(0,0%,0%,0.12);font-feature-settings:"tnum";-moz-font-feature-settings:"tnum";-ms-font-feature-settings:"tnum";-webkit-font-feature-settings:"tnum";padding-left:1.148rem;padding-right:1.148rem;padding-top:0.861rem;padding-bottom:calc(0.861rem - 1px);}th:first-child,td:first-child{padding-left:0;}th:last-child,td:last-child{padding-right:0;}a{color:#4665b7;text-decoration:none;}a:hover,a:active{color:hsla(0,0%,0%,0.8);}h1,h2,h3,h4,h5,h6{margin-top:3.444rem;}blockquote > :last-child{margin-bottom:0;}blockquote cite{font-size:1rem;line-height:1.722rem;color:hsla(0,0%,0%,0.8);font-weight:400;}blockquote cite:before{content:"— ";}@media only screen and (max-width:480px){blockquote{margin-left:-1.2915rem;margin-right:0;border-left:0.32288rem solid;border-color:#612423;padding-left:0.96862rem;}}</style><style data-href="/styles.6661cafb0f80a69e6cc3.css">footer{background-color:rgba(0,0,0,.9);padding:20px 0 40px;color:hsla(0,0%,100%,.7)}footer .Footer-module--container--3Dvn1{display:grid;grid-template-columns:50% 50%;margin-left:auto;margin-right:auto;max-width:50rem;padding:20px}footer a{color:#ddd;margin:10px}footer a:hover{color:#fff}footer .Footer-module--copyright--2uglW{text-align:right}header{display:flex;justify-content:space-between;align-items:center;padding:1rem;position:-webkit-sticky;position:sticky;top:0;background:hsla(0,0%,100%,.75);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);z-index:9;margin-left:auto;margin-right:auto;height:70px}header a{text-decoration:none;color:#3c4856;font-size:1.1rem;margin-top:0}header h1{margin-top:5px}header nav a{color:#757575;transition:color .2s ease;text-decoration:none;display:inline-block;position:relative;font-size:16px}header nav a:hover{color:#4f647d}header nav a strong{margin:1px;color:#4f647d;font-size:.8rem}header .Header-module--activeNav--25noA{color:#4f647d;font-weight:700}header .Header-module--we-are-hiring--3Vkey span{color:red}.Header-module--brand--nQIOf{margin-top:40px;display:flex;flex-direction:row;flex-wrap:wrap}.Header-module--main-nav--2C0n8{display:flex;list-style:none;padding:0;margin-top:30px;overflow:auto;overflow:-moz-scrollbars-none;scrollbar-width:none;-ms-overflow-style:none!important}.Header-module--main-nav--2C0n8::-webkit-scrollbar{width:0!important}.Header-module--main-nav--2C0n8 li{font-size:1.3rem}.Header-module--main-nav--2C0n8 li+li{margin-left:1.5rem}@media (max-width:1000px){header{display:block;height:120px}.Header-module--brand--nQIOf{margin-top:0;margin-bottom:0}nav{margin-top:-50px}nav ul{margin:0}}@media (max-width:768px){header strong{display:none}.Header-module--main-nav--2C0n8 li+li{margin-left:1rem}}@media (max-width:520px){header nav a{font-size:.7rem;border:1px solid #eee;padding:2px;border-radius:5px}}body{margin:0;background:#fafbfb}h1,h2,h3,h4,h5,h6{margin-top:1rem}main{margin-left:auto;margin-right:auto;max-width:50rem;display:flex;flex-direction:column;min-height:100vh;padding:20px}article{height:90%}article:hover{box-shadow:0 11px 22px 12px #eee;border-radius:5px}.pill{display:inline-block;height:24px;padding:0 10px;margin-left:5px;margin-right:5px;margin-bottom:10px;color:#929fb3;text-transform:uppercase;font-size:12px;line-height:22px;border-radius:2px;border:1px solid}code.language-text{background:#d4d4d4!important;color:#000!important;font-family:monospace!important;text-shadow:none!important;padding-left:5px!important;padding-right:5px!important}.gatsby-highlight{font-size:14px}.projects{text-align:center}.project-box{float:left;width:50%;padding:20px}.code-latex{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em;color:#f8f8f2;background:#272822}.MJXc-display{text-align:initial!important}@media (max-width:600px){.project-box{width:100%}}.PostsListing-module--article-list--3ReSK{display:grid;grid-template-columns:50% 50%}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I{margin-bottom:30px;display:inline-block;width:auto;transition:all .25s ease;padding-top:20px}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--author-image--1wgum{width:30px;height:30px;display:inline-block;border-radius:15px;margin-bottom:0}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--author-description--uwweV{display:inline-block;margin-left:10px}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--thumbnail-container--c94Mm{height:200px;overflow:hidden;text-align:center;display:flex;align-items:center;justify-content:center;background:#ececec}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--thumbnail-container--c94Mm img{margin-bottom:0}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--author-name--3k7M0{margin-top:0;margin-bottom:0}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I:hover{cursor:pointer}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--right--2MxCO{padding:15px;color:#3c4856;margin-top:-20px}.PostsListing-module--article-list--3ReSK .PostsListing-module--article-box--3M6_I .PostsListing-module--right--2MxCO .PostsListing-module--meta--3cFzL{margin-bottom:20px;font-size:.7rem}@media (max-width:768px){.PostsListing-module--article-list--3ReSK{grid-template-columns:100%}}.Bio-module--avatar--v_AB0{border-radius:50%;width:70px;float:left;margin:5px 20px}.PostTags-module--tag-container--ksSgQ a{text-decoration:none;display:inline-grid}.PostTags-module--tag-container--ksSgQ span{font-size:.8rem;font-weight:500;padding:.3rem .6rem;margin:.3rem;border-radius:3px;background:rgba(141,154,169,.21);color:rgba(0,0,0,.54)}.SocialLinks-module--social-links--1RDpJ{position:fixed;top:100px;left:30px;flex-direction:row;flex-wrap:wrap;justify-content:center;align-content:center;align-items:center;margin:15px 0}.SocialLinks-module--social-links--1RDpJ div{margin:5px 15px;cursor:pointer}.SocialLinks-module--share-count--3wXKp{text-align:center}@media (max-width:1200px){.SocialLinks-module--social-links--1RDpJ{position:relative;top:0}.SocialLinks-module--social-links--1RDpJ div{display:inline-grid;position:relative}}.post-module--post-meta--1ci95{color:#757575;margin-bottom:.5rem;font-size:.7rem}.post-module--pagination--1F-V0{display:flex;flex-wrap:wrap;justify-content:space-between;list-style:none;padding:0;margin-top:4rem}code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:none;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}</style><meta name="generator" content="Gatsby 2.22.11"/><title data-react-helmet="true">Wingify Engineering</title><link data-react-helmet="true" rel="icon" type="image/png" href="/images/favicon.png"/><meta data-react-helmet="true" name="description" content="This is the engineering blog from the hackers at Wingify"/><meta data-react-helmet="true" name="image" content=""/><meta data-react-helmet="true" property="og:url" content="https://engineering.wingify.com/"/><meta data-react-helmet="true" property="og:title" content="Wingify Engineering"/><meta data-react-helmet="true" property="og:description" content="This is the engineering blog from the hackers at Wingify"/><meta data-react-helmet="true" property="og:image" content=""/><meta data-react-helmet="true" property="fb:app_id" content=""/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:creator" content="wingify_engg"/><meta data-react-helmet="true" name="twitter:title" content="Wingify Engineering"/><meta data-react-helmet="true" name="twitter:description" content="This is the engineering blog from the hackers at Wingify"/><meta data-react-helmet="true" name="twitter:image" content=""/><script data-react-helmet="true" type="application/ld+json">[{"@context":"http://schema.org","@type":"WebSite","url":"https://engineering.wingify.com/","name":"Wingify Engineering","alternateName":"Wingify Engineering - Blog"}]</script><link href="//fonts.googleapis.com/css?family=Neuton:700|Lato:400,400i,700" rel="stylesheet" type="text/css"/><style type="text/css"> .anchor.before { position: absolute; top: 0; left: 0; transform: translateX(-100%); padding-right: 4px; } .anchor.after { display: inline-block; padding-left: 4px; } h1 .anchor svg, h2 .anchor svg, h3 .anchor svg, h4 .anchor svg, h5 .anchor svg, h6 .anchor svg { visibility: hidden; } h1:hover .anchor svg, h2:hover .anchor svg, h3:hover .anchor svg, h4:hover .anchor svg, h5:hover .anchor svg, h6:hover .anchor svg, h1 .anchor:focus svg, h2 .anchor:focus svg, h3 .anchor:focus svg, h4 .anchor:focus svg, h5 .anchor:focus svg, h6 .anchor:focus svg { visibility: visible; } </style><script> document.addEventListener("DOMContentLoaded", function(event) { var hash = window.decodeURI(location.hash.replace('#', '')) if (hash !== '') { var element = document.getElementById(hash) if (element) { var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop var clientTop = document.documentElement.clientTop || document.body.clientTop || 0 var offset = element.getBoundingClientRect().top + scrollTop - clientTop // Wait for the browser to finish rendering before scrolling. setTimeout((function() { window.scrollTo(0, offset - 0) }), 0) } } }) </script><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+'';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer', 'GTM-T9CS925');</script><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="theme-color" content="#c62828"/><link rel="apple-touch-icon" sizes="48x48" href="/images/favicon.png"/><link rel="alternate" type="application/rss+xml" title="/atom.xml" href="/atom.xml"/><link as="script" rel="preload" href="/webpack-runtime-e67a7c97db3322d008c9.js"/><link as="script" rel="preload" href="/framework-9fe058f4359556db0d38.js"/><link as="script" rel="preload" href="/app-99ec7086382d867c7c8c.js"/><link as="script" rel="preload" href="/styles-823ae8103e36ae8a7f9f.js"/><link as="script" rel="preload" href="/6b3c31c87dfb891be24ad1723dc89e8083e2fee1-3aeae6b2992d33209c1a.js"/><link as="script" rel="preload" href="/component---src-pages-index-js-8f95e95b8fdd494d939f.js"/><link as="fetch" rel="preload" href="/page-data/index/page-data.json" crossorigin="anonymous"/><link as="fetch" rel="preload" href="/page-data/app-data.json" crossorigin="anonymous"/></head><body><noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-T9CS925" height="0" width="0" style="display: none; visibility: hidden"></iframe></noscript><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><header><h1><a aria-current="page" class="Header-module--activeNav--25noA" href="/"><span class="Header-module--brand--nQIOf"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" width="30px" height="30px" alt="Wingify Engineering"/><span style="margin-top:5px;margin-left:15px">Wingify Engineering</span></span></a></h1><nav><ul class="Header-module--main-nav--2C0n8"><li><a aria-current="page" class="Header-module--activeNav--25noA" href="/">Posts</a></li><li><a href="/labs">Labs</a></li><li><a href="/about">About</a></li><li><a href="https://github.com/wingify">Github</a></li><li><a href="/atom.xml">Feed</a></li><li><a href="https://wingify.com/careers/" class="Header-module--we-are-hiring--3Vkey" target="_blank"><span>We are Hiring</span></a></li></ul></nav></header><main><div class="PostsListing-module--article-list--3ReSK"><a href="/posts/revolutionizing-test-reporting-with-ai/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2025/03/ctrf-report-01.png" alt="Sahil Goyal"/></div><h3>Revolutionizing Test Reporting with AI at Wingify - A Deep Dive into CTRF Integration</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/sahil_goyal.png" alt="Sahil Goyal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Sahil Goyal</h5><div class="PostsListing-module--meta--3cFzL">March 17, 2025<!-- --> — <!-- -->6<!-- --> Min Read<!-- --> </div></div><p>Introduction Wingify dramatically improved its software testing process by integrating the Common Test Report Format (CTRF) with AI-powered…</p></div></article></a><a href="/posts/enhancing-clickHouse-architecture-with-distributed-query-engines/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2024/12/clickhouse-query-engine-old-arch.png" alt="Vasu Gupta"/></div><h3>Enhancing ClickHouse Architecture with Distributed Query Engines: A Cost-Effective Transformation</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vasu_gupta.png" alt="Vasu Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vasu Gupta</h5><div class="PostsListing-module--meta--3cFzL">December 22, 2024<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Preface In high-performance data platforms, efficiency and scalability are paramount. ClickHouse, renowned for its blazing-fast analytics…</p></div></article></a><a href="/posts/how-we-writing-modern-javascript-with-angularjs-1-x/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2023/01/angular-sword.jpeg" alt="Pranav Jindal"/></div><h3>How we are writing modern Javascript with AngularJs</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/pranavjindal999.png" alt="Pranav Jindal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Pranav Jindal</h5><div class="PostsListing-module--meta--3cFzL">March 22, 2023<!-- --> — <!-- -->11<!-- --> Min Read<!-- --> </div></div><p>Preface Writing slick user interfaces has never been so delightful as it is now. You’ve got amazing frameworks, state management patterns…</p></div></article></a><a href="/posts/computing-aggregates-in-VWO/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2023/02/figure1-bt-agg-high-level-diagram.png" alt="Anil Mor"/></div><h3>Computing Aggregates in VWO</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/anil_mor.png" alt="Anil Mor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Anil Mor</h5><div class="PostsListing-module--meta--3cFzL">March 09, 2023<!-- --> — <!-- -->9<!-- --> Min Read<!-- --> </div></div><p>Introduction In VWO, we present clients with information about the data of their users&#x27; events in aggregated form on their dashboard…</p></div></article></a><a href="/posts/google-bigquery-why-how-we-power-our-data-platform/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2022/12/google-bigquery-custom-writer-figure1.png" alt="Vasu Gupta"/></div><h3>Google BigQuery: Why &amp; How we power our Data Platform with it</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vasu_gupta.png" alt="Vasu Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vasu Gupta</h5><div class="PostsListing-module--meta--3cFzL">December 22, 2022<!-- --> — <!-- -->10<!-- --> Min Read<!-- --> </div></div><p>Introduction BigQuery is a completely serverless and cost-effective enterprise data warehouse provided by the Google Cloud Platform. Just…</p></div></article></a><a href="/posts/Network-Mocking-in-Playwright/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Mohit Khanna"/></div><h3>Network Mocking in Playwright</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/mohit_khanna.png" alt="Mohit Khanna"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Mohit Khanna</h5><div class="PostsListing-module--meta--3cFzL">December 15, 2022<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>The Requirement In VWO, we have our client-side library which is executed on our customer’s website and it is the stepping stone of every…</p></div></article></a><a href="/posts/why-functional-programming-is-needed/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Ganesh Gupta"/></div><h3>Why functional programming is needed</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/ganesh_gupta.png" alt="Ganesh Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Ganesh Gupta</h5><div class="PostsListing-module--meta--3cFzL">December 15, 2022<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>A Little History Having a functional approach to a problem does not kick off the adventurous journey of learning a new language, instead, it…</p></div></article></a><a href="/posts/Automating_Managerial_Tasks/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Kandeel Chauhan"/></div><h3>Automating Tedious Managerial Tasks</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kandeel_chauhan.png" alt="Kandeel Chauhan"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kandeel Chauhan</h5><div class="PostsListing-module--meta--3cFzL">November 28, 2022<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Client issue assignment and tracking. We at Wingify take our client issues very seriously and have built processes to get the desired…</p></div></article></a><a href="/posts/restassured-journey-to-e2e-api-automation/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Rahul Pandey"/></div><h3>Rest Assured - Journey to the end to end API automation</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/rahul_pandey.png" alt="Rahul Pandey"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Rahul Pandey</h5><div class="PostsListing-module--meta--3cFzL">October 31, 2022<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>REST Assured is a Java-based library, one of the most popular libraries to test RESTful Web Services, and is used to perform testing and…</p></div></article></a><a href="/posts/playwright-the-rightful-heir/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Pratik Sisodia"/></div><h3>Playwright – The Rightful Heir</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/pratik_sisodia.png" alt="Pratik Sisodia"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Pratik Sisodia</h5><div class="PostsListing-module--meta--3cFzL">September 21, 2022<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>The hunt has ended. Protractor&#x27;s successor has finally been found! Introducing Playwright, the new star of test automation:-). An end-to-end…</p></div></article></a><a href="/posts/Big_Bug_Hunt/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Kandeel Chauhan"/></div><h3>The Big Bug Hunt - Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kandeel_chauhan.png" alt="Kandeel Chauhan"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kandeel Chauhan</h5><div class="PostsListing-module--meta--3cFzL">March 25, 2022<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>Quality is never an accident. It is always the result of intelligent effort. In line with the above quote, we organized a quality-focused…</p></div></article></a><a href="/posts/Cypress-a-worthy-replacement-for-protractor/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Kandeel Chauhan"/></div><h3>Cypress - A worthy replacement for Protractor?</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kandeel_chauhan.png" alt="Kandeel Chauhan"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kandeel Chauhan</h5><div class="PostsListing-module--meta--3cFzL">March 24, 2022<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>We, at Wingify, have implemented our web automation tests using Protractor. Although the old horse has served us well it is fast approaching…</p></div></article></a><a href="/posts/kroomsa-a-search-engine-for-the-curious/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2022/02/kroomsa_load_test.png" alt="Aakash Chawla"/></div><h3>Kroomsa: A search engine for the curious</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/aakash_chawla.png" alt="Aakash Chawla"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Aakash Chawla</h5><div class="PostsListing-module--meta--3cFzL">February 14, 2022<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>Introduction The search algorithm implemented in your website greatly influences visitor engagement. A decent implementation of a search…</p></div></article></a><a href="/posts/finding-bughotspots-in-source-code/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Punit Goswami"/></div><h3>Finding Bughotspots in Source Code</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/punit_goswami.png" alt="Punit Goswami"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Punit Goswami</h5><div class="PostsListing-module--meta--3cFzL">October 05, 2021<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>Introduction We are often faced with the problem of source code that breaks frequently. Or those modules which are very sensitive to changes…</p></div></article></a><a href="/posts/handling-shadow-dom-in-protractor/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Punit Goswami"/></div><h3>Handling Shadow DOM in Protractor Tests</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/punit_goswami.png" alt="Punit Goswami"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Punit Goswami</h5><div class="PostsListing-module--meta--3cFzL">September 17, 2021<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Overview Shadow DOM has slowly and steadily become an integral part of modern web apps. Before this, the Web platform provided only one way…</p></div></article></a><a href="/posts/designers-should-understand-code/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2021/07/Image4.png" alt="Randeep Singh"/></div><h3>Designers should understand code</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/randeep_singh.png" alt="Randeep Singh"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Randeep Singh</h5><div class="PostsListing-module--meta--3cFzL">July 21, 2021<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>The term designer is used across many domains. In the context of this article, it refers to a UX (User Experience) designer. One question…</p></div></article></a><a href="/posts/ctf-2k21/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2021/05/ctf-hero-image.png" alt="Nikhil Garg, Brayan Abraham and Pranav Jindal"/></div><h3>Wingify CTF 2k21</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/team_tripod_ctf2k21.png" alt="Nikhil Garg, Brayan Abraham and Pranav Jindal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Nikhil Garg, Brayan Abraham and Pranav Jindal</h5><div class="PostsListing-module--meta--3cFzL">May 20, 2021<!-- --> — <!-- -->13<!-- --> Min Read<!-- --> </div></div><p>Here at Wingify, we love solving problems and puzzles. To spread this spirit of problem solving, we organized the fourth edition of Capture…</p></div></article></a><a href="/posts/performance-testing-a-data-pipeline-at-scale/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2022/12/qaWingify.png" alt="Sushant Soni"/></div><h3>Performance Testing a data pipeline at scale</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/sushant_soni.png" alt="Sushant Soni"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Sushant Soni</h5><div class="PostsListing-module--meta--3cFzL">December 22, 2020<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>Introduction At VWO, we get traffic at a very high throughput (22K req/sec) to our servers. The data pipeline crunches and transforms the…</p></div></article></a><a href="/posts/maths-behind-bayesian-duration-calculator/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2020/12/uplift-distribution.png" alt="Anshul Gupta"/></div><h3>Maths behind Bayesian Duration Calculator</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/anshul_gupta.png" alt="Anshul Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Anshul Gupta</h5><div class="PostsListing-module--meta--3cFzL">December 14, 2020<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>Introduction The culture of experimentation is strongly picking up in several sectors of industry. It has become imperative to measure the…</p></div></article></a><a href="/posts/a-lua-nginx-client-for-pubsub/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="../images/2020/11/lua-resty-pubsub-architecture.jpg" alt="Vasu Gupta"/></div><h3>A lua-nginx Client for Pub/Sub</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vasu_gupta.png" alt="Vasu Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vasu Gupta</h5><div class="PostsListing-module--meta--3cFzL">December 04, 2020<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>Introduction Lua as a part of the OpenResty package, is extensively used in our in-house Dynamic CDN (DACDN) module. CDN generally is used…</p></div></article></a><a href="/posts/kafka-streams-stateful-ingestion-with-processor-api/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2020/10/kafka-streams-flow-diagram.png" alt="Aditya Gaur"/></div><h3>Kafka Streams Stateful Ingestion with Processor API</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/aditya_gaur.png" alt="Aditya Gaur"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Aditya Gaur</h5><div class="PostsListing-module--meta--3cFzL">November 10, 2020<!-- --> — <!-- -->12<!-- --> Min Read<!-- --> </div></div><p>At Wingify, we have used Kafka across teams and projects, solving a vast array of use cases. So, when we had to implement the VWO Session…</p></div></article></a><a href="/posts/programmatic-authentication-under-iap/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Punit Goswami"/></div><h3>Programmatic Authentication under IAP on GCP</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/punit_goswami.png" alt="Punit Goswami"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Punit Goswami</h5><div class="PostsListing-module--meta--3cFzL">September 25, 2020<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>Overview We recently started with moving a lot of our infrastructure onto Google Cloud Platform. With this, we also decided that a lot of…</p></div></article></a><a href="/posts/performance-improvements-in-vwo-smart-code/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://lh5.googleusercontent.com/AevuoDiVqRfwwk6feRa7dxx4rk-EPH0QnDWj0-Z5qmJUQJ_OfaKisc2s340Mo4BlS19UczC5ck6C48m-TtETAHiqsTiCgL7hCuL9ntT-rSzpeAqZboNPx-QR8JMVMlOOrPzC4dPE" alt="Shubham Soni, Udit Chawla"/></div><h3>Performance improvements in VWO SmartCode</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/shubham_soni_udit_chawla.png" alt="Shubham Soni, Udit Chawla"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Shubham Soni, Udit Chawla</h5><div class="PostsListing-module--meta--3cFzL">January 08, 2020<!-- --> — <!-- -->10<!-- --> Min Read<!-- --> </div></div><p>VWO puts a lot of focus on ensuring websites remain performant enough while using VWO. We have been increasing the efforts in this area and…</p></div></article></a><a href="/posts/three-wingifighters-at-the-bountycon/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://static.wingify.com/gcp/uploads/sites/5/2019/12/excited.gif" alt="Varun PK"/></div><h3>Three Wingifighters at the BountyCon</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/varun_pk.png" alt="Varun PK"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Varun PK</h5><div class="PostsListing-module--meta--3cFzL">December 18, 2019<!-- --> — <!-- -->6<!-- --> Min Read<!-- --> </div></div><p>On March 29th, 2019, our team members Ankit Jain, Dheeraj Joshi and I had the privilege to attend a very exclusive event called BountyCon in…</p></div></article></a><a href="/posts/wingify-towards-docker-kubernetes/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2019/11/docker_common_repo_structure.png" alt="Punit Gupta, Kamal Sehrawat"/></div><h3>Wingify towards Docker and Kubernetes</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/punit_gupta_kamal_sehrawat_square.png" alt="Punit Gupta, Kamal Sehrawat"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Punit Gupta, Kamal Sehrawat</h5><div class="PostsListing-module--meta--3cFzL">December 03, 2019<!-- --> — <!-- -->12<!-- --> Min Read<!-- --> </div></div><p>Introduction: At Wingify, we follow microservices based architecture to leverage it&#x27;s great scalability benefits. We have a lot of…</p></div></article></a><a href="/posts/js13k-game-development/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2018/09/js13k_twisty_polyhedra.gif" alt="Aditya Mishra, Punit Gupta"/></div><h3>JS13K Games 2K18</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/aditya_mishra_punit_gupta.png" alt="Aditya Mishra, Punit Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Aditya Mishra, Punit Gupta</h5><div class="PostsListing-module--meta--3cFzL">September 26, 2018<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>Introduction: Js13kGames is a JavaScript game development competition that is organized every year from 13th August to 13th September. What…</p></div></article></a><a href="/posts/shift-to-atomic-css/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Kushagra Gour"/></div><h3>Shift to Atomic CSS</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">August 31, 2018<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>For the past few months, we at Wingify, have been working on making a common platform for different products - so that things get reused…</p></div></article></a><a href="/posts/demystifying-split-chunks-plugin/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2018/08/split-chunks-duplicated-view.png" alt="Surbhi Mahajan"/></div><h3>Demystifying Webpack 4 Split Chunks Plugin</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/surbhi_mahajan.png" alt="Surbhi Mahajan"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Surbhi Mahajan</h5><div class="PostsListing-module--meta--3cFzL">August 10, 2018<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>Recently, we migrated one of our web apps to the Webpack 4, which decreases build time and reduces chunk size by using Split Chunks plugin…</p></div></article></a><a href="/posts/automated-heatmap-verification/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2018/04/heatmap.png" alt="Sahil Goyal"/></div><h3>Automated Heatmap Verification E2E using Selenium and Canvas</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/sahil_goyal.png" alt="Sahil Goyal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Sahil Goyal</h5><div class="PostsListing-module--meta--3cFzL">April 03, 2018<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>Heatmaps record visitor clicks on the live state of your website, which can be used to interpret user behavior on elements like modal boxes…</p></div></article></a><a href="/posts/animations-in-vue-js/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Ashish Bardhan"/></div><h3>Animations in VueJS</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/ashish_bardhan.png" alt="Ashish Bardhan"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Ashish Bardhan</h5><div class="PostsListing-module--meta--3cFzL">December 12, 2017<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>This article is inspired from Animating Vue JS by Sarah Drasner at JS Channel 2017. Problem Statement - Why Animation? Website UI…</p></div></article></a><a href="/posts/sass-inheritance-removal/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Chhavi Khandelwal"/></div><h3>Why we&#x27;ve removed Inheritance/Extend from SASS &amp; you should do the same!</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/chhavi_khandelwal.png" alt="Chhavi Khandelwal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Chhavi Khandelwal</h5><div class="PostsListing-module--meta--3cFzL">November 30, 2017<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>SASS is a preprocessor that provides features like variables, nesting, mixins, inheritance and other nifty goodies and makes CSS clean and…</p></div></article></a><a href="/posts/leveraging-kafka-streams-to-reduce-db-hits/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/10/kafka-streams-before-aggregation.png" alt="Amandeep Singh"/></div><h3>Leveraging Kafka Streams to reduce DB Hits</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/amandeep_singh.png" alt="Amandeep Singh"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Amandeep Singh</h5><div class="PostsListing-module--meta--3cFzL">October 26, 2017<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>I have been working with Apache Kafka for more than 4 years now and have seen it evolve from a basic distributed commit log service…</p></div></article></a><a href="/posts/migrating-towards-yarn-webpack/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/10/migrating-towards-yarn-webpack-header.jpg" alt="Varun Malhotra"/></div><h3>Migrating towards Yarn and Webpack</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/varun_malhotra.png" alt="Varun Malhotra"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Varun Malhotra</h5><div class="PostsListing-module--meta--3cFzL">October 04, 2017<!-- --> — <!-- -->20<!-- --> Min Read<!-- --> </div></div><p>For the past couple of years, we have been using require.js for module loading and Grunt for automating tasks on front-end, for one out of…</p></div></article></a><a href="/posts/the-first-wingify-devfest/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/10/devfest-banner.png" alt="Dinkar Pundir"/></div><h3>The First Wingify DevFest</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dinkar_pundir.png" alt="Dinkar Pundir"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dinkar Pundir</h5><div class="PostsListing-module--meta--3cFzL">October 03, 2017<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>&quot;What is the most resilient parasite? Bacteria? A virus? An intestinal worm? An idea. Resilient... highly contagious. Once an idea has taken…</p></div></article></a><a href="/posts/automated-environment-deployments/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/09/autodeploy-1.png" alt="Kushagra Gour"/></div><h3>Automated environment deployments</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">September 22, 2017<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Shipping a bug-free feature is always important in every release. To ensure this, we do quality analysis(QA) at various points of the…</p></div></article></a><a href="/posts/wingify-pydata-at-wingify/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/06/pydata_6.jpg" alt="Pramod Dutta"/></div><h3>PyData at Wingify - My Experience</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/pramod_dutta.png" alt="Pramod Dutta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Pramod Dutta</h5><div class="PostsListing-module--meta--3cFzL">September 12, 2017<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>About PyData I recently got an opportunity to speak at the PyData, Delhi. PyData is a tech group, with chapters in New Delhi and other…</p></div></article></a><a href="/posts/demand-drive-apis-using-graphql/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Sahil Batla"/></div><h3>Demand-driven APIs Using GraphQL</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/sahilbatla.png" alt="Sahil Batla"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Sahil Batla</h5><div class="PostsListing-module--meta--3cFzL">August 31, 2017<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Introduction This article will deal with the issues we face with the current API architecture (mostly REST) and why demand-driven APIs seem…</p></div></article></a><a href="/posts/wingify-capture-the-flag/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/05/ctf_logo.png" alt="Dheeraj Joshi"/></div><h3>Wingify&#x27;s First Internal CTF</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dheeraj_joshi.png" alt="Dheeraj Joshi"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dheeraj Joshi</h5><div class="PostsListing-module--meta--3cFzL">May 19, 2017<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Capture the Flag (CTF) is a special kind of information security competition which provides a safe and legal way to try your hand at hacking…</p></div></article></a><a href="/posts/wingify-hackathon-sum-it-up/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/05/jesus_meme.png" alt="Rachit"/></div><h3>Wingify Hackathon - Sum It Up</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/rachit.png" alt="Rachit"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Rachit</h5><div class="PostsListing-module--meta--3cFzL">May 03, 2017<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>I am a frontend developer at Wingify and I am building a really awesome product, PushCrew. Last month, we had a hackathon. The idea was to…</p></div></article></a><a href="/posts/wingify-hackathon-vwo-xray/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2017/04/vwo_xray_1.png" alt="Hemkaran Raghav"/></div><h3>Wingify Hackathon - VWO X-Ray</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/hemkaran_raghav.png" alt="Hemkaran Raghav"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Hemkaran Raghav</h5><div class="PostsListing-module--meta--3cFzL">April 02, 2017<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>Recently, Wingify had organised a 24-hour Internal Hackathon where the developers from Wingify created a lot of awesome projects for daily…</p></div></article></a><a href="/posts/wingify-at-europe-uk-conferences/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/12/tshirts.jpg" alt="Dheeraj Joshi"/></div><h3>Wingify at Europe/UK Conferences</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dheeraj_joshi.png" alt="Dheeraj Joshi"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dheeraj Joshi</h5><div class="PostsListing-module--meta--3cFzL">December 25, 2016<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>Last two months were quite amazing for me as a Wingifighter; I was on a traveling spree over Italy and London. I got an opportunity to…</p></div></article></a><a href="/posts/heybot-your-skype-bot/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/12/add-to-skype.png" alt="Kushagra Gour"/></div><h3>Heybot! - Our skype bot</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">December 23, 2016<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>Few days back, we open-sourced our internal Skype bot to the world. Its called Heybot!, but we call it Ramukaka at Wingify :) Whether its…</p></div></article></a><a href="/posts/speeding-up-vwo/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/09/http2-browser-support.png" alt="Dinkar Pundir"/></div><h3>Speeding Up VWO</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dinkar_pundir.png" alt="Dinkar Pundir"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dinkar Pundir</h5><div class="PostsListing-module--meta--3cFzL">September 17, 2016<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>About two years ago, Wingify had introduced the new generation of our Visual Website Optimizer to the world. Boasting a modern visual…</p></div></article></a><a href="/posts/secure-your-web-apps/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/08/jschannel_speakers.jpg" alt="Dheeraj Joshi"/></div><h3>Secure Your Web Application @JSChannel Conference ’16</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dheeraj_joshi.png" alt="Dheeraj Joshi"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dheeraj Joshi</h5><div class="PostsListing-module--meta--3cFzL">August 25, 2016<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>Recently, I spoke about securing Web Applications at JSChannel Conference ’16. The conference venue was The Ritz-Carlton, Bangalore…</p></div></article></a><a href="/posts/automating-web-push-notifications/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/08/pushknot_final_call.png" alt="Jatin Makhija, Ankita Gupta"/></div><h3>Automating Web Push Notifications @Selenium Conference 2016</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/jatin_makhija_ankita_gupta.png" alt="Jatin Makhija, Ankita Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Jatin Makhija, Ankita Gupta</h5><div class="PostsListing-module--meta--3cFzL">August 04, 2016<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>There were just two hours left to catch a flight for an exciting opportunity to present at the biggest Selenium conference, SeleniumConf…</p></div></article></a><a href="/posts/lets-talk-security/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Dheeraj Joshi"/></div><h3>Let&#x27;s talk Security - Engineering Talkies</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/dheeraj_joshi.png" alt="Dheeraj Joshi"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Dheeraj Joshi</h5><div class="PostsListing-module--meta--3cFzL">May 02, 2016<!-- --> — <!-- -->1<!-- --> Min Read<!-- --> </div></div><p>At Wingify, we recently began an initiative by the name Engineering Talkies where our engineering teams share their experiences, repertoire…</p></div></article></a><a href="/posts/code-in-the-dark/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/04/CITD_1.JPG" alt="Hemkaran Raghav"/></div><h3>Code In the Dark at Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/hemkaran_raghav.png" alt="Hemkaran Raghav"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Hemkaran Raghav</h5><div class="PostsListing-module--meta--3cFzL">April 28, 2016<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>Coding is always fun at Wingify, be it a Wingify Camp or a Fun Friday. And to add to the fun, in a Fun Friday Code In the Dark was organized…</p></div></article></a><a href="/posts/layout-trick/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2016/04/old-design.png" alt="Kushagra Gour"/></div><h3>A layout trick</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">April 04, 2016<!-- --> — <!-- -->3<!-- --> Min Read<!-- --> </div></div><p>Few weeks ago, we did a redesign of our product - VWO. It wasn&#x27;t a complete overhaul from scratch, but some major design decisions were…</p></div></article></a><a href="/posts/Free-objects/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Chris Stucchio"/></div><h3>Free objects - a generalized interpreter pattern</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/chris_stucchio.png" alt="Chris Stucchio"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Chris Stucchio</h5><div class="PostsListing-module--meta--3cFzL">February 15, 2016<!-- --> — <!-- -->13<!-- --> Min Read<!-- --> </div></div><p>In the GOF book, the interpreter pattern is probably one of the most poorly described patterns. The interpreter pattern basically consists…</p></div></article></a><a href="/posts/superlelasticsearch/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Vaidik Kapoor"/></div><h3>SuperElasticsearch - More Python goodness in elasticsearch-py</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vaidik_kapoor.png" alt="Vaidik Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vaidik Kapoor</h5><div class="PostsListing-module--meta--3cFzL">October 07, 2015<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>We have been using Elasticsearch for storing analytics data. This data stored in Elasticsearch is used in the Post Report Segmentation…</p></div></article></a><a href="/posts/meta-refresh-conference/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/03/conference/0.jpg" alt="Apoorv Saxena"/></div><h3>Wingify at Meta Refresh 2015</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/apoorv_saxena.png" alt="Apoorv Saxena"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Apoorv Saxena</h5><div class="PostsListing-module--meta--3cFzL">June 02, 2015<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>After hosting the Meta Refresh Delhi Runup Event, it was time for us at Wingify to prep up for MetaRefresh. We were very excited to…</p></div></article></a><a href="/posts/post-meta-refresh-run-up/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/03/1.jpg" alt="Apoorv Saxena"/></div><h3>Meta Refresh 2015 Delhi Run-up Event hosted at Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/apoorv_saxena.png" alt="Apoorv Saxena"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Apoorv Saxena</h5><div class="PostsListing-module--meta--3cFzL">June 01, 2015<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Giving back to the community has always been a priority at Wingify, be it through open sourcing internal projects or via organizing…</p></div></article></a><a href="/posts/q-directives/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/05/1.png" alt="Himanshu Kapoor"/></div><h3>Q-Directives - A Faster Directive System For Angular.js</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">May 05, 2015<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>Performance matters, and an Angular.js developer would especially know it. Several watchers in a digest cycle can often be a bottleneck, and…</p></div></article></a><a href="/posts/elasticsearch-for-analytics/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Vaidik Kapoor"/></div><h3>Elasticsearch for Analytics</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vaidik_kapoor.png" alt="Vaidik Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vaidik Kapoor</h5><div class="PostsListing-module--meta--3cFzL">March 27, 2015<!-- --> — <!-- -->17<!-- --> Min Read<!-- --> </div></div><p>Elasticsearch is essentially a distributed search-engine but there have been more than one example of companies and projects using…</p></div></article></a><a href="/posts/meta-refresh-run-up/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Himanshu Kapoor"/></div><h3>Meta Refresh 2015 Delhi Run-Up Event</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">March 09, 2015<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>Meta Refresh is an event organised by HasGeek that focuses on design, user experience and the front-end web. The current iteration of Meta…</p></div></article></a><a href="/posts/opensource-at-wingify/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/02/github-stars.png" alt="Kushagra Gour"/></div><h3>Open source at Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">February 20, 2015<!-- --> — <!-- -->1<!-- --> Min Read<!-- --> </div></div><p>At Wingify, we believe in open source and actively seek opportunities to give back to the community. We make use of a lot of open source…</p></div></article></a><a href="/posts/angularapp-e2e-testing-with-protractor/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/02/2.png" alt="Kamal Sahni"/></div><h3>Testing AngularJS Apps End to End Using Protractor</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kamal_sahni.png" alt="Kamal Sahni"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kamal Sahni</h5><div class="PostsListing-module--meta--3cFzL">February 13, 2015<!-- --> — <!-- -->10<!-- --> Min Read<!-- --> </div></div><p>We, at Wingify, have been writing e2e test cases for our A/B testing app for the past 5 months using protractor. Writing e2e scripts is easy…</p></div></article></a><a href="/posts/performance-testing/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/01/01.png" alt="Rahul Jain"/></div><h3>Overcoming the Challenges of Performance Testing Single-page Apps</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/rahul_jain.png" alt="Rahul Jain"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Rahul Jain</h5><div class="PostsListing-module--meta--3cFzL">January 29, 2015<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>To begin with, lets talk about two of the most important things are that come to mind when we talk about performance testing. The Metrics to…</p></div></article></a><a href="/posts/jsconf-asia-2014/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2015/01/ben.jpg" alt="Himanshu Kapoor"/></div><h3>Wingify at CSSConf / JSConf Asia 2014</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">January 17, 2015<!-- --> — <!-- -->6<!-- --> Min Read<!-- --> </div></div><p>Back in November, I, along with some colleagues from Wingify went to Singapore to attend CSSConf and JSConf Asia. A part of DevFest Asia, it…</p></div></article></a><a href="/posts/jsfoo-run-up-event-details/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2014/09/0.jpg" alt="Suchit Puri"/></div><h3>JSFoo Delhi Run-up Event @ Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/suchit_puri.png" alt="Suchit Puri"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Suchit Puri</h5><div class="PostsListing-module--meta--3cFzL">September 08, 2014<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Last week, we announced that Wingify would be sponsoring the JSFoo 2014 conference in Bangalore. We have always been looking out for…</p></div></article></a><a href="/posts/jsfoo-run-up-event/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Himanshu Kapoor"/></div><h3>JSFoo 2014 Delhi Run-up Event + JS Contest</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">August 25, 2014<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>The front-end has become the heart of today&#x27;s web application development, and JavaScript drives a core part of it. New technologies…</p></div></article></a><a href="/posts/open-sourcing-dom-comparator/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Himanshu Kapoor"/></div><h3>Open Sourcing DOM Comparator</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">August 11, 2014<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>DOM Comparator is a JavaScript library that analyzes and compares two HTML strings, and returns back a diff object. It returns an output…</p></div></article></a><a href="/posts/wingify-at-the-fifth-elephant/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2014/08/0.jpg" alt="Vaidik Kapoor"/></div><h3>Wingify at The Fifth Elephant</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vaidik_kapoor.png" alt="Vaidik Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vaidik Kapoor</h5><div class="PostsListing-module--meta--3cFzL">August 02, 2014<!-- --> — <!-- -->7<!-- --> Min Read<!-- --> </div></div><p>The Fifth Elephant is a popular conference in India around the Big Data ecosystem. It happened last week in Bangalore. And we were proud to…</p></div></article></a><a href="/posts/dynamic-cdn/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2014/07/0.png" alt="Ankit Jain"/></div><h3>Dynamic CDN</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/ankit_jain.png" alt="Ankit Jain"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Ankit Jain</h5><div class="PostsListing-module--meta--3cFzL">July 23, 2014<!-- --> — <!-- -->6<!-- --> Min Read<!-- --> </div></div><p>We, at Wingify, handle not just our own traffic, but also the traffic of major websites such as Microsoft, AMD, Groupon, and WWF that…</p></div></article></a><a href="/posts/sponsoring-fifth-elephant/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Vaidik Kapoor"/></div><h3>We are sponsoring The Fifth Elephant 2014</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vaidik_kapoor.png" alt="Vaidik Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vaidik Kapoor</h5><div class="PostsListing-module--meta--3cFzL">July 21, 2014<!-- --> — <!-- -->1<!-- --> Min Read<!-- --> </div></div><p>We are excited to announce our sponsorship of The Fifth Elephant - a popular conference around the Big Data ecosystem. The conference will…</p></div></article></a><a href="/posts/fast-storage-with-rocksdb/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2014/06/0.png" alt="Rohit Yadav"/></div><h3>Fast Storage with RocksDB</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/rohit_yadav.png" alt="Rohit Yadav"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Rohit Yadav</h5><div class="PostsListing-module--meta--3cFzL">June 13, 2014<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>In November last year, I started developing an infrastructure that would allow us to collect, store, search and retrieve high volume data…</p></div></article></a><a href="/posts/e2e-testing-with-webdriverjs-jasmine/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Kushagra Gour"/></div><h3>Automated e2e testing- WebDriverJS, Jasmine and Protractor</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">November 26, 2013<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>e2e or end-to-end or UI testing is a methodology used to test whether the flow of an application is performing as designed from start to…</p></div></article></a><a href="/posts/scaling-with-queues/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2013/09/0.png" alt="Rohit Yadav"/></div><h3>Scaling with Queues</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/rohit_yadav.png" alt="Rohit Yadav"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Rohit Yadav</h5><div class="PostsListing-module--meta--3cFzL">September 02, 2013<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Our home-grown geo-distributed architecture based CDN allows us to delivery dynamic javascript content with minimum latencies possible…</p></div></article></a><a href="/posts/internship-experience-at-wingify/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Vivek Kishore"/></div><h3>Internship experience @Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/vivek_kishore.png" alt="Vivek Kishore"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Vivek Kishore</h5><div class="PostsListing-module--meta--3cFzL">August 05, 2013<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>When I got an opportunity of interning with the engineering team at Wingify it made me ecstatic because of an exciting office with…</p></div></article></a><a href="/posts/getting-60fps-using-devtools/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/2013/07/devtools.png" alt="Kushagra Gour"/></div><h3>Getting 60 FPS using Chrome devtools</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_gour.png" alt="Kushagra Gour"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Gour</h5><div class="PostsListing-module--meta--3cFzL">July 29, 2013<!-- --> — <!-- -->8<!-- --> Min Read<!-- --> </div></div><p>This post is about making your web page perform better using a real world example. As you know, we recently launched a very cool animated…</p></div></article></a><a href="/posts/please-js-release/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Himanshu Kapoor"/></div><h3>please.js - A simple PostMessage based communication library</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">July 15, 2013<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>In one of our previous posts, we talked about the problems we faced when communicating with frames on a different domain in our application…</p></div></article></a><a href="/posts/making-of-abtesting-scrollmation/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="/images/posts/hn-bob-post.png" alt="Kushagra Agarwal"/></div><h3>How We Made The Animated A/B Testing Guide</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/kushagra_agarwal.png" alt="Kushagra Agarwal"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Kushagra Agarwal</h5><div class="PostsListing-module--meta--3cFzL">July 08, 2013<!-- --> — <!-- -->4<!-- --> Min Read<!-- --> </div></div><p>Recently, we launched our first ever animated guide to A/B testing which made it to the top of HN homepage (Yay!). In this post, I&#x27;ll go…</p></div></article></a><a href="/posts/jquery-promises-with-postmessage/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Himanshu Kapoor"/></div><h3>jQuery Promises: The answer to PostMessage&#x27;s asynchrony</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/himanshu_kapoor.png" alt="Himanshu Kapoor"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Himanshu Kapoor</h5><div class="PostsListing-module--meta--3cFzL">June 17, 2013<!-- --> — <!-- -->5<!-- --> Min Read<!-- --> </div></div><p>Visual Website Optimizer&#x27;s editor component loads a website for editing using a proxy tunnel. It put a big restriction on what kind of…</p></div></article></a><a href="/posts/introduction/"><article class="PostsListing-module--article-box--3M6_I"><div class="PostsListing-module--right--2MxCO"><div class="PostsListing-module--thumbnail-container--c94Mm"><img src="https://wingify.com/wp-content/themes/wingify/images/labs/engg_blog.png" alt="Sparsh Gupta"/></div><h3>Introduction: Engineering @ Wingify</h3><img class="PostsListing-module--author-image--1wgum" src="/images/team/sparsh_gupta.png" alt="Sparsh Gupta"/><div class="PostsListing-module--author-description--uwweV"><h5 class="PostsListing-module--author-name--3k7M0">By <!-- -->Sparsh Gupta</h5><div class="PostsListing-module--meta--3cFzL">May 22, 2013<!-- --> — <!-- -->2<!-- --> Min Read<!-- --> </div></div><p>I clearly remember the summer of 2010 when we were about to launch our product Visual Website Optimizer out of beta and almost all the…</p></div></article></a></div></main><footer><div class="Footer-module--container--3Dvn1"><div><a href="https://twitter.com/wingify_engg" target="_blank" rel="noopener noreferrer">Twitter</a><a href="https://github.com/wingify" target="_blank" rel="noopener noreferrer">GitHub</a><a href="https://engineering.wingify.com/atom.xml" target="_blank" rel="noopener noreferrer">RSS</a></div><div class="Footer-module--copyright--2uglW">Copyright © Wingify. All rights reserved.</div></div></footer></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div><script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/";/*]]>*/</script><script id="gatsby-chunk-mapping">/*<![CDATA[*/window.___chunkMapping={"app":["/app-99ec7086382d867c7c8c.js"],"component---node-modules-gatsby-plugin-offline-app-shell-js":["/component---node-modules-gatsby-plugin-offline-app-shell-js-e385def15e29b6ed02a7.js"],"component---src-pages-404-js":["/component---src-pages-404-js-0c6355b7aa7c186b82f7.js"],"component---src-pages-about-js":["/component---src-pages-about-js-fc892947e3543d68cd59.js"],"component---src-pages-contact-js":["/component---src-pages-contact-js-8f1d647515267d9174b5.js"],"component---src-pages-docs-js":["/component---src-pages-docs-js-75320bb29b557bc73d6f.js"],"component---src-pages-index-js":["/component---src-pages-index-js-8f95e95b8fdd494d939f.js"],"component---src-pages-labs-js":["/component---src-pages-labs-js-ac5b96295395cd153578.js"],"component---src-templates-post-js":["/component---src-templates-post-js-86eb8f5f76ee576dcf22.js"]};/*]]>*/</script><script src="/component---src-pages-index-js-8f95e95b8fdd494d939f.js" async=""></script><script src="/6b3c31c87dfb891be24ad1723dc89e8083e2fee1-3aeae6b2992d33209c1a.js" async=""></script><script src="/styles-823ae8103e36ae8a7f9f.js" async=""></script><script src="/app-99ec7086382d867c7c8c.js" async=""></script><script src="/framework-9fe058f4359556db0d38.js" async=""></script><script src="/webpack-runtime-e67a7c97db3322d008c9.js" async=""></script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10