Ankit
BAN USER
Ankit Shah
183 Jenkins Ln
Mountain View, CA 94043
Cell: 559-307-8715
E-Mail: shahankit@gmail.com
Software Engineer
Possess 13+ years of experience in classic structured software development including Cloud platforms (AWS and Open Source), database and object-oriented methodologies, Multi-threaded environment in JAVA/J2EE/WebServices and thorough understanding of Distributed Systems.
Summary of Skills
Amazon Web Services (EC2, S3, ELB, VPC, IAM, Security Rules, AWS Developer APIs)
Cassandra 1.6/1.7/2.x/3.x
Jersey, Apache CXF, Gson, XML/XSLT, Xstream
Model View Controller (MVC), Data Access Object (DAO), Singleton, Abstract Factory Pattern, Strategy Pattern, Adapter Pattern, Observer Pattern, Inversion of Control (IoC), Aspect Oriented Programming (AOP)
Eclipse, GIT, SVN, GIT, CVS), IBM WSAD, make, wget, Mylyn, Clover Code Coverage
Proficient in JAVA (1.5/1.6/1.7/1.8)
Junit, Mockito, Apache Ant, Maven, JConsole, JProbe, Xml-Unit, DB-Unit, JMeter
Nginx,Apache HTTP server, Tomcat
J2EE™, Servlets, JSP 1.2, REST Webservices, Apache Axis, Hibernate, LDAP,JNDI, UML, GWT 2.1, Jersey, Apache CXF
Oracle, MySQL, IBM DB2, MS Access
Red Hat Linux 9.0/ES 3.0/ 5.0, Cent OS 5.10, 6.x, Unix (Solaris), Mac OS X, Windows, VMWare VMs, Amazon Linux
Academic Background
M.S. in Computer Science: CALIFORNIA STATE UNIVERSITY, Fresno, CA [GPA: 3.38/4.0]
B.E. in Information Technology: SARDAR PATEL UNIVERSITY, India [GPA: 3.08/4.0]
Professional Experience
Symantec Inc Mountain View, CA
Sr. Principal Software Engineer / Principal Software Engineer
August 2010 to Current
[JDK 1.7, Cassandra 1.6/2.x, spring 3.5/3.6, JBoss 5.x, Tomcat 7.x/8.x/9.x, Eclipse, Maven, GIT / Perforce / SVN, JUnit 4.x, Python, StatsD, Graphite, Whisper, Amazon Webservices]
REST API: Convert the backend systems to Rest Based Architecture and implement them using Apache CXF.
Created a new backend infrastructure which serves around 4 billion OCSP responses and 500 million seal impressions a day.
Amazon Web Services (AWS) Platform: architected OCSP / Seal Solutions which includes EC2 instances, S3, ELBs and VPC.
Python / Shell Scripts / Boto to create and maintain lifecycle of Amazon machine images.
Nginx 1.4.3 integration with StatsD service to emit matrix points.
Clouds and distributed data stores / Architectural inputs
Amazon Web Services (EC2, Dynamo DB, S3, VPC, IAM)
Openstack
Cassandra
Scalability, Stateless Applications, Failsafe, Idempotent architecture, Applying CAP theorem principals
VeriSign Inc Mountain View, CA
Software Engineer IV / Software Engineer III
July 2008 to August 2010
[JDK 1.5/1.6, spring 2.5, hibernate 3.x, JBoss 4.3/5.x, Tomcat 6.x/7.x, Eclipse, XSLT, DAO, JSP, ANT, MAVEN, CVS / SVN, JUnit 3.x/ 4.x, Shell scripts, Cassandra, Big Data, Jersey, GWT]
Working as a team member SSL Core group, SSL Certificate group in VeriSign Inc.
Update / maintain the SSL Portal Java, Spring, XSLT, JSP, Junit
Maintain update existing monitoring scripts shell scripts
Created Rest Services using Jersey
Using GWT converted an old application to new layout (internal application)
Design / Implemented new product to filter blacklisted customers using Spring, Hibernate and HTML page scrapping
Cisco Systems San Jose, CA
Software Engineer [Consultant]
October 2007 to July 2008
[Java 1.5, spring , hibernate 3.x, JBoss, Eclipse, HTML, CSS, XSLT, DAO, JSP, ANT, CVS, JUnit, EasyMock, Xstream, Xml-Unit, Db-Unit]
Worked as a team member of Office of CEO and Chairman Activities [Internal websites and Tools]
Develop and support Web Application for ETL services using spring framework with Hibernate as Backend and XML Driven Flex as front-end.Design and Implement blog system to be used within Cisco Intranet. [Hibernate, spring framework, EasyMock for JUnit]
Test Driven Development (TDD) approaches to write code, Think about business cases and write test cases first using JUnit before writing the actual class.
Using EasyMock creates mock requests and Xstream and Xml-Unit for XML validations before it delegates to the front end.
Write spring controllers and appropriate services with the help of Hibernate DAO's.
WebEx Communication Inc San Jose, CA
Software Engineer [Consultant]
April 2007 to October 2007
Worked as a team Member of “BLIS” – a backend service oriented Payment Processing application to support WebEx products like “MeetMeNow” and “PCNow”.
develop and support the backend webservices, development and debugging through Bea Workshop 8.1.3
Prosumer Charge Engine: responsible for this Java application charge engine which charges the customers based on annual or monthly subscriptions.
Sun Microsystems Menlo Park, CA
Software Engineer [Consultant]
January 2007 to March 2007
Worked as a team Member of “Software Download Center” – Online sun portfolio for all the sun software products / repository. Manage those products and manage downloads for these products.
CWP IDM [Oracle 10g, Java 1.5, J2EE, JNDI / LDAP, JBoss, JDBC, Netbeans 5.5,]
Worked on converting a Common Integration Platform from LDAP to Oracle 10g. Java code to fetch LDAP data using JNDI and populate Oracle table based on a nightly batch process. Performance analysis of the code.
CDS [Common Download Center] [Hibernate, Struts 1.2, Oracle 10g, Java/J2EE, JDBC, Sun One WebServer 6.1, Ant, Display tags, tag libraries, Netbeans / Eclipse]
21st Century Insurance Woodland Hills, CA
Sr Programmer Analyst
February 2005 to February 2007
[IBM WSAD 5.1, JAVA, J2EE 1.3, JSP 1.2, Struts 1.2, IBM DB2, Oracle 9i, IBM MQ Series, IBM WAS 5, UNIX Shell Scripts, PERL Scripts, HTML, CSS, XML / XSLT / XPATH, Use case diagrams in UML]
Worked as a team Member of “AutoPay/Epay/Echek” – Online payment portfolio for 21st Century Insurance. E check project takes bank account number and routing number from customer and process the Payment. Quick Pay allows a customer to make payments without logging in to the system and its part of the Global Payment Processing system
E check: This project uses Struts MVC pattern, Hibernate 3.0 query services for Java for DB2 connections in different regions. Major work includes single sign on techniques to disable the browser back buttons for customers. Include a “please wait“JSP screen after customer submits an e check payment. Wrote java scripts for validations all across the project. Using IBM WSAD 5.0 to write/modify JAVA, JSP codes and property files, check out and commit source code using CVS plug-in for WSAD. Deploy the application using the Websphere Application Server on localhost. Populate the Form Beans and XSD Beans from the forms and write Actions for each class based on that.
Wrote Messaging layer in SOAP and used SAAJ API's to create, send and receive SOAP messages from Chase Paymentech WebService.
Used JAXP [Java API for XML processing] to transform XML documents independent of particular XML processing.
FISERV SourceOne Fresno, CA
Programmer Analyst I
June 2004 to February 2005
[My Eclipse 3.0, J2EE 1.3, JSP 1.2, Struts 1.2, DB2, Oracle 9i, Linx, Tomcat, IBM WAS4, WinCVS, MS Visual SourceSafe]
Worked as a team Member of “SourceOne Desktop“- A Banking application for New Account Setup, Time Deposit Accounts, Retirement Accounts, and BSI Document Printing.
J2EE framework based banking portal called “Desktop”.
Deploy the Source One Desktop, Extreme Programming approach to solve reworks, analyze build failures after deploying the whole application, fixing those failures on J2EE Environment using the Tool MyEclipse 3.0 and built in Tomcat server, DB Visualizer for DB2 Database, apache ant for testing the application.
CVS implementation on Red Hat Enterprise Linux includes (On jEdgar) setting up CVS Repository and defining administrator and developer users. Worked with ant build script (Build.xml) to implement “ant cvs-get” target to fetch the latest code from the repository. Setting up repository access from Windows machine using MyEclipse and WinCVS.
Implementing Bankers System Integration (BSI) Document Printing from current Desktop Application using J2EE (Struts, JDBC, Beans, and Java Scripts) on DB2 Database, XML Schema for data definitions. Tomcat Server including the modification of server.xml configuration file.
Center for Irrigation Technology Fresno, CA
Database Programmer [Part time]
April 2003 to June 2004
[PHP-MySQL, Apache 1.1, Mac OS X Server, Navicate MySQL Manager, EMS MySQL Manager, HTML, Javascripts]
APEP (Agriculture Pumping Efficiency Program) funded by Public Utility Commission with the help of PGE (Pacific Gas and Electric Company), SCE (Southern Cal Edition), SDGE (San Diego Gas and Electric Company) and SCG (Southern Cal Gas) to help California farmers improve their Pump Efficiency and utilize less power consumption ($14 Million project).
Design and Develop a Database Management System using PHP, JavaScript and MySQL as backend.
Design and Implementation of a web driven Reporting Tool: http://www.apepweb.com, basically migrated from MS Access.
Using Session Management in PHP assigned role to each individual accessing this application and based on the role table, granted permissions to edit, delete or modify the records.
Designed the MySQL database from scratch - define indices and partitions.
// this is a working code in JAVA for Nplets, that is duplex, triplex, quadruplets etc are provided by the function argument
package pkg;
import java.util.Random;
public class RandomNplet {
public static int randInt(int min, int max) {
Random rand = new Random();
// nextInt is normally exclusive of the top value, so add 1 to make it inclusive
int randomNum = rand.nextInt((max - min) + 1) + min;
return randomNum;
}
// second argument of this function dertermines duplex, tripplets, quadrupplets etc.
public static String getRandomNlets(int length, int nPlate) {
String index = "";
int current_num = -1;
for (int i = nPlate; i > 0; i--) {
current_num = randInt(current_num + 1, length - i);
index = index + current_num;
}
return index;
}
public static void main(String[] args) {
String input = "Helloworld";
String index = getRandomNlets(input.length(), 3);
// System.out.println(index);
String result = "";
for (int i = 0; i < index.length(); i++) {
String char_index = String.valueOf(index.charAt(i));
result = result + input.charAt(Integer.valueOf(char_index));
}
System.out.println(result);
}
}
package pkg;
import java.util.Arrays;
import java.util.Random;
public class MaxRandom {
/**
* Given an array of integers. We have to find the max element of the array,
* which is at multiple places in the array and return any one of the
* indices randomly.
*/
public static int findMaxElementIndiceRandom(int[] a) {
int maxIndice = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] > a[maxIndice]) {
maxIndice = i;
} else if (a[i] == a[maxIndice]) {
maxIndice = randSelect(maxIndice, i);
}
}
return maxIndice;
}
public static int randSelect(int numberOne, int numberTwo) {
Random random = new Random();
return (random.nextInt(2) % 2) == 0 ? numberOne : numberTwo;
}
public static void main(String[] args) {
int[] a = new int[] { 3, 6, 3, 9, 8, 9, 4, 3, 2, 9, 1, 6 };
System.out.println(findMaxElementIndiceRandom(a));
}
}
JAVA COMPILED AND TESTED CODE
//File-1 BinarySearchTree.java
public class BinarySearchTree {
// usually private but public because its been used
public class Node {
int data;
Node left;
Node right;
public Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}
Node root;
public BinarySearchTree(int data) {
root = new Node(data);
}
// insert routine
public void insert(int data) {
Node n = new Node(data);
if (root == null) {
root = n;
} else {
Node current = root;
Node parent = null;
while (true) {
parent = current;
if (data < current.data) {
current = current.left;
if (current == null) {
parent.left = n;
return;
}
} else {
current = current.right;
if (current == null) {
parent.right = n;
return;
}
}
}
}
}
// inorder traversal would print the node in the sorted order
public void inorderTraversal(Node root) {
if (root != null) {
inorderTraversal(root.left);
System.out.print(root.data + " ");
inorderTraversal(root.right);
}
}
}
// File-2 BalancedTree.java
public class BalancedTree {
public static boolean isBalanced(Node root) {
return (maxdepth(root) - mindepth(root) <= 1);
}
private static int maxdepth(Node root) {
if (root == null) {
return 0;
}
return 1 + Math.max(maxdepth(root.left), maxdepth(root.right));
}
private static int mindepth(Node root) {
if (root == null) {
return 0;
}
return 1 + Math.min(mindepth(root.left), mindepth(root.right));
}
public static void main(String[] args) {
BinarySearchTree tree = new BinarySearchTree(50);
tree.insert(20);
tree.insert(25);
tree.insert(30);
tree.insert(40);
tree.insert(60);
System.out.println(isBalanced(tree.root));
System.out.println(maxdepth(tree.root));
}
}
Repmarkhmitchell6, Analyst at ASAPInfosystemsPvtLtd
At first, tattooing was a hobby kind of thing for me. I didn’t spend too much time in tattoo ...
Replcarton941, Android test engineer at 8x8
My name is Lilly. I grew up in Somerset and currently live in the US. One desire that has always ...
RepLisaTQuinn, Analyst at A9
I have a passion for reading and creative writing and attend many workshops and conventions surrounding love spell that work ...
Repevelynleary0, Consultant at Arista Networks
Hi, I am Evelyn from Los Angeles, USA. I have been a Marketing Manager in Veramons Digital Company from last ...
Repjoyceeallard, Associate at Adap.tv
Hi, i am working as a training manager as a business professional who assesses the growth and development needs of ...
Repkylieblindner, abc at ASAPInfosystemsPvtLtd
Hello, I am Kylie. I am working in a store as Supply chain managers promote the design, development, and implementation ...
Repjennifertkramer, AT&T Customer service email at ADP
I had a dream to open my own Restaurant in FL. and i came true all dream with my hard ...
Repjuanitajboon, Applications Developer at 247quickbookshelp
Hi everyone, I am from Pelham. I currently work in the Hechinger as Cashier.I like to do creative things ...
RepJennyReimer, Dev Lead at Adobe
Badminton lover, coffee addict, guitarist, International Swiss style practitioner and TDC honorary member. Acting at the nexus of simplicity and ...
Repjasonmcarrier, Analyst at Abs india pvt. ltd.
Hello, I live in Houston and I am working as a Convention planner in Roberd's company, I also part ...
RepBarbaraLocke, Android test engineer at ABC TECH SUPPORT
Hey, I'm a BarbaraLocke. And I love my work. Apart from this, I am doing some new experiments in ...
Repcarmenrhargis, Associate at Achieve Internet
Hi, I am Gladys, I live in Florida, USA, I am working as a project manager in a Life’s ...
Repsusancmeans, Apple Phone Number available 24/7 for our Customers at Absolute Softech Ltd
I am Susan from Bronx, I am working as a Business management analyst in Brendle's company. I Have a ...
Repcarlotamdaniel, abc at ADP
RepWilliamDGiles, Cloud Support Associate at ADP
Spent 2001-2006 creating marketing channels for tar worldwide. Was quite successful at building tobacco for farmers. Won several awards for ...
RepSoccer lover, coffee addict, guitarist, International Swiss style practitioner and TDC honorary member. Acting at the nexus of simplicity and ...
Replyndaander9, Analyst at A9
My name is Anderson and I am a 24 years old trader born and currently working in New York, USA ...
RepSherriMooney, Network Engineer at Arista Networks
I am not a model but as a photographer, I can't see how one could call it fun. Matter ...
Repshirleyjbarker439, Animator at ASAPInfosystemsPvtLtd
Hello, I am Gladys. I am a Industrial Photographer. I started off my photographic career as a News photographer based ...
RepI am DavidAxon and I have lived in the US since my childhood.I am working in IT company In ...
Repnyladsomerville, abc
Want to purchase best quality silencer at affordable price manufactured by top most trusted brand Innovative Arms.
Contact Stonefirearms now!
RepAadenGarcia, Analyst at ADP
I have a knowledgeable professional librarian with more than 4 years of experience in the public library setting. I have ...
RepGiannaDavid, Author at The times
I am an Author, I have a passion for reading and creative writing and attend many workshops and conventions surrounding ...
Repteresawells858, Java Developer at 247quickbookshelp
I am Teresa. I work as a Software engineer at Asian Fusion Company. I was born in the US and ...
- Ankit February 28, 2016