Wingify EngineeringWingify Engineering

Pranav Jindal

How we are writing modern Javascript with AngularJs

Pranav Jindal
By Pranav Jindal
March 22, 202311 Min Read

Preface Writing slick user interfaces has never been so delightful as it is now. You’ve got amazing frameworks, state management patterns…

Anil Mor

Computing Aggregates in VWO

Anil Mor
By Anil Mor
March 09, 20239 Min Read

Introduction In VWO, we present clients with information about the data of their users' events in aggregated form on their dashboard…

Vasu Gupta

Google BigQuery: Why & How we power our Data Platform with it

Vasu Gupta
By Vasu Gupta
December 22, 202210 Min Read

Introduction BigQuery is a completely serverless and cost-effective enterprise data warehouse provided by the Google Cloud Platform. Just…

Mohit Khanna

Network Mocking in Playwright

Mohit Khanna
By Mohit Khanna
December 15, 20224 Min Read

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…

Ganesh Gupta

Why functional programming is needed

Ganesh Gupta
By Ganesh Gupta
December 15, 20227 Min Read

A Little History Having a functional approach to a problem does not kick off the adventurous journey of learning a new language, instead, it…

Kandeel Chauhan

Automating Tedious Managerial Tasks

Kandeel Chauhan
By Kandeel Chauhan
November 28, 20224 Min Read

Client issue assignment and tracking. We at Wingify take our client issues very seriously and have built processes to get the desired…

Rahul Pandey

Rest Assured - Journey to the end to end API automation

Rahul Pandey
By Rahul Pandey
October 31, 20228 Min Read

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…

Pratik Sisodia

Playwright – The Rightful Heir

Pratik Sisodia
By Pratik Sisodia
September 21, 20227 Min Read

The hunt has ended. Protractor's successor has finally been found! Introducing Playwright, the new star of test automation:-). An end-to-end…

Kandeel Chauhan

The Big Bug Hunt - Wingify

Kandeel Chauhan
By Kandeel Chauhan
March 25, 20222 Min Read

Quality is never an accident. It is always the result of intelligent effort. In line with the above quote, we organized a quality-focused…

Kandeel Chauhan

Cypress - A worthy replacement for Protractor?

Kandeel Chauhan
By Kandeel Chauhan
March 24, 20224 Min Read

We, at Wingify, have implemented our web automation tests using Protractor. Although the old horse has served us well it is fast approaching…

Aakash Chawla

Kroomsa: A search engine for the curious

Aakash Chawla
By Aakash Chawla
February 14, 20227 Min Read

Introduction The search algorithm implemented in your website greatly influences visitor engagement. A decent implementation of a search…

Punit Goswami

Finding Bughotspots in Source Code

Punit Goswami
By Punit Goswami
October 05, 20215 Min Read

Introduction We are often faced with the problem of source code that breaks frequently. Or those modules which are very sensitive to changes…

Punit Goswami

Handling Shadow DOM in Protractor Tests

Punit Goswami
By Punit Goswami
September 17, 20214 Min Read

Overview Shadow DOM has slowly and steadily become an integral part of modern web apps. Before this, the Web platform provided only one way…

Randeep Singh

Designers should understand code

Randeep Singh
By Randeep Singh
July 21, 20217 Min Read

The term designer is used across many domains. In the context of this article, it refers to a UX (User Experience) designer. One question…

Nikhil Garg, Brayan Abraham and Pranav Jindal

Wingify CTF 2k21

Nikhil Garg, Brayan Abraham and Pranav Jindal
By Nikhil Garg, Brayan Abraham and Pranav Jindal
May 20, 202113 Min Read

Here at Wingify, we love solving problems and puzzles. To spread this spirit of problem solving, we organized the fourth edition of Capture…

Sushant Soni

Performance Testing a data pipeline at scale

Sushant Soni
By Sushant Soni
December 22, 20208 Min Read

Introduction At VWO, we get traffic at a very high throughput (22K req/sec) to our servers. The data pipeline crunches and transforms the…

Anshul Gupta

Maths behind Bayesian Duration Calculator

Anshul Gupta
By Anshul Gupta
December 14, 20207 Min Read

Introduction The culture of experimentation is strongly picking up in several sectors of industry. It has become imperative to measure the…

Vasu Gupta

A lua-nginx Client for Pub/Sub

Vasu Gupta
By Vasu Gupta
December 04, 20208 Min Read

Introduction Lua as a part of the OpenResty package, is extensively used in our in-house Dynamic CDN (DACDN) module. CDN generally is used…

Aditya Gaur

Kafka Streams Stateful Ingestion with Processor API

Aditya Gaur
By Aditya Gaur
November 10, 202012 Min Read

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…

Punit Goswami

Programmatic Authentication under IAP on GCP

Punit Goswami
By Punit Goswami
September 25, 20208 Min Read

Overview We recently started with moving a lot of our infrastructure onto Google Cloud Platform. With this, we also decided that a lot of…

Shubham Soni, Udit Chawla

Performance improvements in VWO SmartCode

Shubham Soni, Udit Chawla
By Shubham Soni, Udit Chawla
January 08, 202010 Min Read

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…

Varun PK

Three Wingifighters at the BountyCon

Varun PK
By Varun PK
December 18, 20196 Min Read

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…

Punit Gupta, Kamal Sehrawat

Wingify towards Docker and Kubernetes

Punit Gupta, Kamal Sehrawat
By Punit Gupta, Kamal Sehrawat
December 03, 201912 Min Read

Introduction: At Wingify, we follow microservices based architecture to leverage it's great scalability benefits. We have a lot of…

Aditya Mishra, Punit Gupta

JS13K Games 2K18

Aditya Mishra, Punit Gupta
By Aditya Mishra, Punit Gupta
September 26, 20188 Min Read

Introduction: Js13kGames is a JavaScript game development competition that is organized every year from 13th August to 13th September. What…

Kushagra Gour

Shift to Atomic CSS

Kushagra Gour
By Kushagra Gour
August 31, 20184 Min Read

For the past few months, we at Wingify, have been working on making a common platform for different products - so that things get reused…

Surbhi Mahajan

Demystifying Webpack 4 Split Chunks Plugin

Surbhi Mahajan
By Surbhi Mahajan
August 10, 20185 Min Read

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…

Sahil Goyal

Automated Heatmap Verification E2E using Selenium and Canvas

Sahil Goyal
By Sahil Goyal
April 03, 20183 Min Read

Heatmaps record visitor clicks on the live state of your website, which can be used to interpret user behavior on elements like modal boxes…

Ashish Bardhan

Animations in VueJS

Ashish Bardhan
By Ashish Bardhan
December 12, 20175 Min Read

This article is inspired from Animating Vue JS by Sarah Drasner at JS Channel 2017. Problem Statement - Why Animation? Website UI…

Chhavi Khandelwal

Why we've removed Inheritance/Extend from SASS & you should do the same!

Chhavi Khandelwal
By Chhavi Khandelwal
November 30, 20173 Min Read

SASS is a preprocessor that provides features like variables, nesting, mixins, inheritance and other nifty goodies and makes CSS clean and…

Amandeep Singh

Leveraging Kafka Streams to reduce DB Hits

Amandeep Singh
By Amandeep Singh
October 26, 20177 Min Read

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…

Varun Malhotra

Migrating towards Yarn and Webpack

Varun Malhotra
By Varun Malhotra
October 04, 201720 Min Read

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…

Dinkar Pundir

The First Wingify DevFest

Dinkar Pundir
By Dinkar Pundir
October 03, 20178 Min Read

"What is the most resilient parasite? Bacteria? A virus? An intestinal worm? An idea. Resilient... highly contagious. Once an idea has taken…

Kushagra Gour

Automated environment deployments

Kushagra Gour
By Kushagra Gour
September 22, 20174 Min Read

Shipping a bug-free feature is always important in every release. To ensure this, we do quality analysis(QA) at various points of the…

Pramod Dutta

PyData at Wingify - My Experience

Pramod Dutta
By Pramod Dutta
September 12, 20174 Min Read

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…

Sahil Batla

Demand-driven APIs Using GraphQL

Sahil Batla
By Sahil Batla
August 31, 20174 Min Read

Introduction This article will deal with the issues we face with the current API architecture (mostly REST) and why demand-driven APIs seem…

Dheeraj Joshi

Wingify's First Internal CTF

Dheeraj Joshi
By Dheeraj Joshi
May 19, 20174 Min Read

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…

Rachit

Wingify Hackathon - Sum It Up

Rachit
By Rachit
May 03, 20172 Min Read

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…

Hemkaran Raghav

Wingify Hackathon - VWO X-Ray

Hemkaran Raghav
By Hemkaran Raghav
April 02, 20172 Min Read

Recently, Wingify had organised a 24-hour Internal Hackathon where the developers from Wingify created a lot of awesome projects for daily…

Dheeraj Joshi

Wingify at Europe/UK Conferences

Dheeraj Joshi
By Dheeraj Joshi
December 25, 20163 Min Read

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…

Kushagra Gour

Heybot! - Our skype bot

Kushagra Gour
By Kushagra Gour
December 23, 20163 Min Read

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…

Dinkar Pundir

Speeding Up VWO

Dinkar Pundir
By Dinkar Pundir
September 17, 20165 Min Read

About two years ago, Wingify had introduced the new generation of our Visual Website Optimizer to the world. Boasting a modern visual…

Dheeraj Joshi

Secure Your Web Application @JSChannel Conference ’16

Dheeraj Joshi
By Dheeraj Joshi
August 25, 20163 Min Read

Recently, I spoke about securing Web Applications at JSChannel Conference ’16. The conference venue was The Ritz-Carlton, Bangalore…

Jatin Makhija, Ankita Gupta

Automating Web Push Notifications @Selenium Conference 2016

Jatin Makhija, Ankita Gupta
By Jatin Makhija, Ankita Gupta
August 04, 20163 Min Read

There were just two hours left to catch a flight for an exciting opportunity to present at the biggest Selenium conference, SeleniumConf…

Dheeraj Joshi

Let's talk Security - Engineering Talkies

Dheeraj Joshi
By Dheeraj Joshi
May 02, 20161 Min Read

At Wingify, we recently began an initiative by the name Engineering Talkies where our engineering teams share their experiences, repertoire…

Hemkaran Raghav

Code In the Dark at Wingify

Hemkaran Raghav
By Hemkaran Raghav
April 28, 20162 Min Read

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…

Kushagra Gour

A layout trick

Kushagra Gour
By Kushagra Gour
April 04, 20163 Min Read

Few weeks ago, we did a redesign of our product - VWO. It wasn't a complete overhaul from scratch, but some major design decisions were…

Chris Stucchio

Free objects - a generalized interpreter pattern

Chris Stucchio
By Chris Stucchio
February 15, 201613 Min Read

In the GOF book, the interpreter pattern is probably one of the most poorly described patterns. The interpreter pattern basically consists…

Vaidik Kapoor

SuperElasticsearch - More Python goodness in elasticsearch-py

Vaidik Kapoor
By Vaidik Kapoor
October 07, 20157 Min Read

We have been using Elasticsearch for storing analytics data. This data stored in Elasticsearch is used in the Post Report Segmentation…

Apoorv Saxena

Wingify at Meta Refresh 2015

Apoorv Saxena
By Apoorv Saxena
June 02, 20152 Min Read

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…

Apoorv Saxena

Meta Refresh 2015 Delhi Run-up Event hosted at Wingify

Apoorv Saxena
By Apoorv Saxena
June 01, 20154 Min Read

Giving back to the community has always been a priority at Wingify, be it through open sourcing internal projects or via organizing…

Himanshu Kapoor

Q-Directives - A Faster Directive System For Angular.js

Himanshu Kapoor
By Himanshu Kapoor
May 05, 20152 Min Read

Performance matters, and an Angular.js developer would especially know it. Several watchers in a digest cycle can often be a bottleneck, and…

Vaidik Kapoor

Elasticsearch for Analytics

Vaidik Kapoor
By Vaidik Kapoor
March 27, 201517 Min Read

Elasticsearch is essentially a distributed search-engine but there have been more than one example of companies and projects using…

Himanshu Kapoor

Meta Refresh 2015 Delhi Run-Up Event

Himanshu Kapoor
By Himanshu Kapoor
March 09, 20152 Min Read

Meta Refresh is an event organised by HasGeek that focuses on design, user experience and the front-end web. The current iteration of Meta…

Kushagra Gour

Open source at Wingify

Kushagra Gour
By Kushagra Gour
February 20, 20151 Min Read

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…

Kamal Sahni

Testing AngularJS Apps End to End Using Protractor

Kamal Sahni
By Kamal Sahni
February 13, 201510 Min Read

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…

Rahul Jain

Overcoming the Challenges of Performance Testing Single-page Apps

Rahul Jain
By Rahul Jain
January 29, 20155 Min Read

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…

Himanshu Kapoor

Wingify at CSSConf / JSConf Asia 2014

Himanshu Kapoor
By Himanshu Kapoor
January 17, 20156 Min Read

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…

Suchit Puri

JSFoo Delhi Run-up Event @ Wingify

Suchit Puri
By Suchit Puri
September 08, 20144 Min Read

Last week, we announced that Wingify would be sponsoring the JSFoo 2014 conference in Bangalore. We have always been looking out for…

Himanshu Kapoor

JSFoo 2014 Delhi Run-up Event + JS Contest

Himanshu Kapoor
By Himanshu Kapoor
August 25, 20144 Min Read

The front-end has become the heart of today's web application development, and JavaScript drives a core part of it. New technologies…

Himanshu Kapoor

Open Sourcing DOM Comparator

Himanshu Kapoor
By Himanshu Kapoor
August 11, 20144 Min Read

DOM Comparator is a JavaScript library that analyzes and compares two HTML strings, and returns back a diff object. It returns an output…

Vaidik Kapoor

Wingify at The Fifth Elephant

Vaidik Kapoor
By Vaidik Kapoor
August 02, 20147 Min Read

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…

Ankit Jain

Dynamic CDN

Ankit Jain
By Ankit Jain
July 23, 20146 Min Read

We, at Wingify, handle not just our own traffic, but also the traffic of major websites such as Microsoft, AMD, Groupon, and WWF that…

Vaidik Kapoor

We are sponsoring The Fifth Elephant 2014

Vaidik Kapoor
By Vaidik Kapoor
July 21, 20141 Min Read

We are excited to announce our sponsorship of The Fifth Elephant - a popular conference around the Big Data ecosystem. The conference will…

Rohit Yadav

Fast Storage with RocksDB

Rohit Yadav
By Rohit Yadav
June 13, 20144 Min Read

In November last year, I started developing an infrastructure that would allow us to collect, store, search and retrieve high volume data…

Kushagra Gour

Automated e2e testing- WebDriverJS, Jasmine and Protractor

Kushagra Gour
By Kushagra Gour
November 26, 20138 Min Read

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…

Rohit Yadav

Scaling with Queues

Rohit Yadav
By Rohit Yadav
September 02, 20134 Min Read

Our home-grown geo-distributed architecture based CDN allows us to delivery dynamic javascript content with minimum latencies possible…

Vivek Kishore

Internship experience @Wingify

Vivek Kishore
By Vivek Kishore
August 05, 20132 Min Read

When I got an opportunity of interning with the engineering team at Wingify it made me ecstatic because of an exciting office with…

Kushagra Gour

Getting 60 FPS using Chrome devtools

Kushagra Gour
By Kushagra Gour
July 29, 20138 Min Read

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…

Himanshu Kapoor

please.js - A simple PostMessage based communication library

Himanshu Kapoor
By Himanshu Kapoor
July 15, 20132 Min Read

In one of our previous posts, we talked about the problems we faced when communicating with frames on a different domain in our application…

Kushagra Agarwal

How We Made The Animated A/B Testing Guide

Kushagra Agarwal
By Kushagra Agarwal
July 08, 20134 Min Read

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'll go…

Himanshu Kapoor

jQuery Promises: The answer to PostMessage's asynchrony

Himanshu Kapoor
By Himanshu Kapoor
June 17, 20135 Min Read

Visual Website Optimizer's editor component loads a website for editing using a proxy tunnel. It put a big restriction on what kind of…

Sparsh Gupta

Introduction: Engineering @ Wingify

Sparsh Gupta
By Sparsh Gupta
May 22, 20132 Min Read

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…