Schedule

There’s plenty going on

8:30 am 8:50 am

Registration

Master of Ceremonies

Vikram Poddar

BoredRoom Comedy presents Vikram Poddar as a fun host for Expert Talks 2018 at Pune!

Vikram Poddar is an Investment Banker turned Corporate Comedian. His company BoredRoom Comedy is India’s first Corporate Comedy Consultancy. (Sometimes mistaken for management consultants, an understandable error). BoredRoom Comedy creates & delivers Leadership Workshops, Marketing Campaigns and High-end conferences using Corporate Comedy. Their marquee clients include Cognizant, HCL, Accenture, Aditya Birla Group, Vodafone, HSBC, Axis Bank, ET, HUL, Godrej and……….anyone with a 5 page LinkedIn Profile.

Vikram’s career high point was asking Pete Lau, the founder of OnePlus, “Bro, do you have a OnePLus2 Invite?” His God is Scott Adams and he believes he is here to deliver us from the devils (in procurement, finance….and of course, HR)

9:00 am 10:00 am

The Equal Experts Space Agency

Nick Porthouse & Tim Squires

Nick and Tim will be describing EESA’s mission to achieve the highest altitude in horizontal flight by a winged aircraft. We’ll discuss the technology, politics, adventures and problems associated with high altitude drone flights. We’ll also look at the current mission plan, material testing and some of the custom code which will control the drone as it releases from the balloon at 30,000m before flying back to the Earth’s surface. There will be several drones for the audience to view and play with, plus videos of them flying.  

10:00 am 10:45 am

Deep Fakes

Navin Pai

DeepFakes is “an AI-based human image synthesis technique used to combine and superimpose existing images and videos onto source images or videos” In this talk, we explore how DeepFakes works purely from a coder’s perspective to answer Why and How and What we can do about it.

10:45 am 11:00 am

Tea Break

11:00 am 11:45 am

Making your website ADA Compliant

Aayush Arora

Coding an ADA-compliant website is achievable with minimal expense and impact on usability with some basic guidelines and strategies. In this talk, Aayush will highlight the entry barriers to accessibility – helping you with the tools required to make your website ADA compliant.

11:45 am 12:30 pm

Native Apps

Paul Stringer

Discover an alternative approach to mobile UI acceptance testing in this talk. We’ll learn how the UI approach is flawed, then refactor our tests and demonstrate how business logic can be extensively tested by using the right architecture – allowing tests to be fast and reliable.

12:30 pm 1:15 pm

Delivery with the Sun

Bethan Timmins

This talk is a case study on our own experience of Distributed Delivery using follow-the-sun methodology between teams in Sydney, London and Calgary. You’ll discover what we’ve done to make it work – and the importance of modern Agile principles in Distributed Delivery.

1:15 pm 2:15 pm

Lunch

2:15 pm 3:00 pm

Horizontally Scalable Architecture

Deep Shah

This is the story of how we built a system that’s been running in production since January 2018 and has yet to fail (even when individual components fail); and which scales horizontally depending on load, without any manual intervention. We’ll share all the lessons we learnt.

3:00 pm 3:45 pm

Monitoring at Scale

Talina Shrotriya

Quick reaction to failures makes software reliable. In closely guarded environments, measurement is a challenge. This talk highlights the aspects to consider, while designing a centralised monitoring system for services deployed on multi region data centres and cloud platforms.

3:45 pm 4:00 pm

Tea Break

4:00 pm 4:45 pm

Native App testing and release strategy

Anand Bagmar

Anand Bagmar

Learn the testing strategy and the release process of an Android & iOS Native app, in the entertainment domain, used by millions of users across 10+ countries. The app itself is not particularly unique – but its criteria for releases are very stringent. And that makes it special.

4:45 pm 5:30 pm

Structuring organisations using tech principles

Piyush Verma

You know SOLID, Single Responsibility and Dependency Inversion Principle. You know DRY, loose coupling, CAP theorem. You have probably also heard of the benefits of Functional Programming. Can one apply these learning and Programming principles to scale an organisation as well?

When you register, we’ll ask you which workshop you want to attend. They’re all on at the same time, so you can only choose one.

9:00 am 5:30 pm

Workshop 1: Continuous Delivery on AWS ECS via Docker and Terraform

Kaushik Chandrashekar, Prashant Kalkar & Rajan Patil

Who is this workshop for?

Software developers, DevOps engineers (CI/CD engineers), architects and anyone interested in deploying
containers to AWS cloud using ECS. Those attending are expected to have a basic understanding of Docker and
infrastructure on AWS (atleast EC2).

Requirements:

  • Bring your own laptop
  • AWS CLI installed (installation steps)
  • Terraform v0.11.7 or higher downloaded (download it here)
  • Install an IDE of your choice (Intellij Idea / Eclipse / any other)
  • Create a Github account, if you do not have one.
  • Install Docker on your laptop’s OS

Outline

09:00 – 10:10 – ECS & Terraform walk-through and ECS cluster setup:
In this session, we will discuss AWS ECS’s features and how to effectively use the service. We will also discuss Terraform as a tool to manage immutable infrastructure and then each go about creating an ECS cluster using
Terraform.

10:10 – 10:20 – Break for tea.

10:20 – 10:55 – Build application Docker image:
In this session, we will write application code that will run a service inside a Docker container. We will build the
Docker image, tag it appropriately and push it to the ECR repository.

11:00 – 12:25 – Deploying an application on ECS:
In this session, we will deploy the docker image we build in the previous session as a service on ECS. We will
create the necessary infrastructure and configuration such as Application Load Balancers, Security Groups, Task
Definitions and Services via Terraform. We will then verify our service is running on an HTTP endpoint.

12:30 – 13:00 – Break for lunch

13:00 – 14:25 – Service update & infrastructure upgrade strategies:
In this session,  we will perform updates to the code, the configuration and the underlying infrastructure (ECS
cluster) of the service without downtime. We will also discuss the various approaches possible, their constraints
etc.

14:30 – 15:25 – Setting up scaling and monitoring for the service:
In this session, we shall address configurations for scaling and high availability of the service. We will also
setup monitoring and logging of the service on CloudWatch and deploy the same using Terraform.

15:00 – 15:15 – Break for tea.

15:15 – 16:25 – Additional extras:
We will discuss and incorporate the steps we have done until this point via CI CD pipelines. We will also setup a
new environment on demand via pipelines.

16:30 – 17:30 – Q&A and open discussion:
We will try to address any questions around and beyond the topics that have been covered.

9:00 am 5:30 pm

Workshop 2: Kubernetes 101 workshop

Vishal Biyani & Sanket Sudake

Overview

The workshop will cover basics of Kubernetes with a hands-on lab covering deployment of a simple application on Kubernetes. You will leave with a good understanding of ecosystem and some advanced topics such as monitoring, logging, CI/CD.

Who is this workshop for?

  • You have heard of containers/Docker and want to learn about Kubernetes
  • You have heard of Kubernetes but want to get hands on with it
  • You are an operations/support person who has good understanding of systems/Linux etc. and want to get started with Kubernetes
  • You are an application developer and wants to get a crash course in Kubernetes

Requirements:

  • A laptop with Docker installed
  • Kubernetes cluster (Install Minikube or Setup GKE – you get 300$ worth of credits, but need to sign up with credit card, don’t worry you won’t be charged)

Outline

  • Setting up Kubernetes (Minikube or GKE) (10 minutes)
  • What is Kubernetes (20 minutes)
    • Container orchestrators evolution (Swarm, Mesos etc.)
    • Architecture of Kubernetes
  • Getting started with Kubernetes (30 minutes)
    • API, Kubectl etc.
    • Building a container image of sample app
  • Basic Constructs of Kubernetes
    • Creating a Pod for application (40 minutes)
      • Understanding ReplicaSet, Deployment, Health checks
    • Creating a config for app (30 minutes)
      • Understanding configmaps, secrets
    • Service and service types (30 minutes)
      • Creating a service for application and accessing it.
    • Doing a rolling upgrade of the application (30 minutes)
  • Basic operations (40 minutes)
    • Monitoring and logging architecture in Kubernetes
  • Where to go from here (10 minutes)
    • References, links, DIY workshops etc.

Learning outcomes

  • Get started on Kubernetes
  • Understanding basic concepts and terminologies such as Pod, Deployment and Service
  • Deploying an application
  • Get a basic overview of Kubernetes architecture

Out of scope

  • Other projects in ecosystem such as service meshes etc.
  • Kubernetes CRD & Controller and how to write them
9:00 am 5:30 pm

Workshop 3: Discover the secret to blazing fast, rock-solid testing for mobile app development

Paul Stringer

Overview

  • Business fortunes are dependant upon increasingly complex software so we need to we get our apps right early,
    and keep them working as intended.
  • Testing should be an integral part of mobile software development – not left to the end!
  • As developers we should be able to answer the question “can we submit yet?” in seconds, not days.

Testing is an essential part of the Agile software development process (rather than being seen as a separate
discipline, testing should be ‘built in’). In many iOS projects however we still see testing happen at the end of
build. This causes delays and confusion; it’s just not optimal for delivering quality software.

In recent years the tools supporting testing on iOS have evolved to become some of the best in the industry. In this
one day hands-on workshop you will learn the best practices and principles enabling you to use these tools to great
effect building testing into your iOS development from the outset.

The course provides an essential foundation for the modern iOS Developer to craft iOS apps that are high quality,
regression & bug free as-well as a pleasure to code and work with.

Who is this workshop for?

For developers and testers of all abilities who are interested in furthering their skills with an improved understanding of best practices in TDD, BDD and Automation testing on iOS. Please come armed with a Mac and Xcode. Basic experience of Xcode and iOS development required.

Requirements:

  • Mac
  • Xcode
  • Java

Outline

TDD and XCTest

  • An introduction to TDD and the XCTest framework
  • Understanding Mocks, Stubs and Fakes
  • Considerations for testing in Swift v Obj-C
  • Code Coverage reporting with Xcode and Xcode Bots

Testing Best Practices

  • Fundamental principles of writing testable code
  • Refactoring legacy code through tests
  • Writing defect-driven tests

Acceptance Testing

  • An introduction to the role of acceptance testing in Agile software development
  • Acceptance testing on iOS using FitNesse (an open source Wiki and acceptance testing framework)
  • An introduction to User Interface testing with UIAutomation and XCTest

Learning outcomes

  • Write maintainable tests that help you build Apps that get better not worse.
  • Use tests to improve and change existing legacy code.
  • Spot and avoid common testing anti-patterns
  • Understand acceptance testing and the role it plays in Agile software development
  • Work with FitNesse (an open source Wiki and acceptance testing framework)
  • Automate tests using continuous integration and Xcode bots
  • Apply Unit Tests, Acceptance Tests and UI Tests on iOS effectively, and get an understanding of each

Out of scope

This workshop does not cover UI testing tools e.g. Calabash / Appium.