Software Dev Engineer II


● Full stack polyglot software engineer with around 7 years experience in Java, Scala, Python, Nodejs and Ruby ● Language and platform agnostic approach for problem solving with focus on keeping it simple. ● Worked in Banking, Social Media, Advertising, Travel and Government sector domains. ● Worked in machine learning and data pipeline projects using Apache Spark and Elasticsearch. ● Contributed to open source projects like Dropwizard, Play framework etc on Github. ● Expertise in Play Framework (Java/Scala) and Spring framework. ● Expertise in designing and developing RESTful services. ● Experience working in Agile (Scrum, Kanban) methodology with test driven development (TDD) and pair programming. ● Full stack web application development, covering front end, middleware and backend, including system architecture and database designing. ● Extensive background in full life-cycle of software development process including requirement collection, design specification, development, testing, debugging, deployment and maintenance. ● Experience in working at multiple client sites and acted as single point of contact and lead the team in development. ● Proven track record of designing and developing flexible solutions, which support frequent changes to functionality and UI, to meet the client requirements. ● Knowledge in Java frameworks and tools like Spring, Hibernate and Jasper Reports and also in graph analysis tools like R, Gephi and IGraph, also worked on Neo4J NoSQL graph database and Spring Data Neo4J. ● Master's degree in E-Business and Information Systems from Newcastle University, UK. ● Bachelor's in Computer Science and Engineering from University of Calicut, India. Skills Languages Java, Scala, JavaScript, Ruby, shell scripting, Python scripting, PL/SQL Web HTML, CSS, JavaScript, JQuery, AngularJS, Backbone.js, RequireJS, AJAX, JSON, Web Service, Bootstrap, React.js APIs JEE (JSP, Servlets, Filters), JPA, JAXB, JUnit, Jasper Reports, Log4J Frameworks Play Framework, Node.js, Spring Core, Spring MVC, Spring Roo, Spring Security, Hibernate, Spring Data Neo4J Testing Frameworks JUnit, TestNG, Mockito, AssertJ/Fest fluid assertions, Jasmine Tests, specs2 Methodologies Agile (Scrum and Kanban) Middleware nginx, Apache Tomcat, Websphere Cloud Platform Amazon Web Services Automation Chef Service Discovery Consul Big Data Apache Spark Database Oracle, PostgreSQL, MySQL, Neo4J(NoSQL graph database) Development Tools IntelliJ IDEA, Spring Tool Suite, Eclipse, Toad, PL/SQL Developer, pgAdmin, Sequel Pro, vim, emacs Source control git (+ git-flow), svn, perforce Cache Redis, EhCache Acquainted with C, C++, R, PHP Unofficial MongoDB, Travis CI, Wercker

Key Skills
  • Java
  • Scala
  • JavaScript
  • Ruby
  • React.js

Work Experience

Software Dev Engineer II

Expedia Affiliate Network2 Years

Joined Expedia on contract basis for building the next generation reporting tool for internal users and then extended the contract on to anomaly detection platform. Responsibilities included software development in various languages, design & architecture discussions, DevOps, deployment pipeline, and interviewing candidates. Projects: 1. Reporting Platform The project involved building reporting platform using micro-services architecture in a Kanban environment. Front end was in React.js and backend was in Node.js Developed user identity management and implemented authorization algorithm using JSON Web Tokens(JWT) and oAuth. Designed and implement various REST API endpoints in Nodejs and Restify for getting the data. HATEOAS (Hypermedia As The Engine Of Application State) pattern was used for linking between resources. Wrote a framework Chef Cookbook for deploying Nodejs based services. Wrote Chef cookbooks for various services, including rspec tests and integration tests with kitchen vagrant. Acted as psuedo DevOps member within the team. Implemented API Gateway using nginx and Chef. Implemented Service Discovery using Hashicorp Consul. Implemented next iteration of API Gateway with nginx, Consul and chef. Deployment in AWS Cloud. Setup nodes using Scalr. Fix various deployment issues. Did a brown bag session on Hashicorp Consul and service discovery, which was well recieved. Worked closely with Operations team to deploy services to Production environment. Technologies Used: NodeJS, Chef, cookbooks, rspec, serverspec, chefspec, AWS Cloud, Teradata, nodejs, ruby, reactjs, redux, rubocop, jenkins, Scalr, bamboo, stash, gitlab, devops, restify, bamboo. 2. Anomally Detection platform (Machine Learning) Big data analytics project for detecting anomalies in various time series data using machine learning techniques. Worked closely with Data scientists to develop models and the platform. Wrote models is Scala to run on Apache Spark. Used Spark to parallelize forecasting based on splits of data. Wrote Scala based tool for triggering AWS Simple Notification Service (SNS). Automated Airflow DAG creationg using Python based on configurations in AWS S3. Wrote AWS Lambda functions in Python. Setup Elastic Search cluster on AWS cloud. Wrote a script to automate the process. Optimized data ingestion to Elastic search from Hive on AWS Elastic Map Reduce (EMR). Used Spark to move data from Teradata to S3 in Parquet format. Techonologies Used: Apache Spark, Hive, AWS Cloud, AWS Lambdas, Python, AWS SNS, AWS Elastic Map Reduce, Scala, Python, Airflow

Java Tech Lead

Department of Work and Pensions4 months

Working in DWP location on a project related to Government Digital Service (GDS) and Gov.UK Verify using micro-services architecture as a Tech Lead in an Agile (Scrum) environment. Actively upgraded existing source code to use Java 8 features. Brought in consistency and standardisation to source code Helped new team members practice TDD. This project uses Elasticsearch to find possible matches from a matching data set. Wrote bash/zsh scripts to ease development process. Wrote Git hooks in Python to standardise commit message format. Responsibilities include technical discussions with architects, sprint planning, sprint elaboration, delivering sprint vision, knowledge sharing among team members, pair programming and code review. Co-ordinated with DevOps/WebOps team to fix broken builds. Reported and fixed issue #953 in DropWizard project on Github during the stint. Technologies Used: Java 8, DropWizard, JDBI, PostgreSQL, Node.js, Ruby, Git, Jenkins, JIRA, Nginx, Gitlab, Javascript, Mongodb, Python for scripting, Elasticsearch, Docker, Kibana, Logstash, JUnit and Fest Assertions, Sonar.

Full Stack Developer

Backbone.js6 months

The project was to build new module into existing social care product developed by Corelogic. Worked on Java (Spring/ibatis), Backbone/Marionette, Microsoft SQL Server and Oracle stack. Suggested positive changes to standards and practices. Introduced JSR-303 server side validation. Designed RESTful API's and structured controllers. Responsibilities included attending sprint meetings, code review and merging changes from other developers. Technologies Used: Java, Spring, ibatis, Backbone.js, Marionette, Handlebars, Underscore.js, MSSQL, Oracle, Weblogic server, Gitlab, JIRA, TestNG, Mockito.

Software Engineer

The Audience Engine1.5 Years

Collective is a leader in multi-screen advertising, dynamic creative optimization (DCO) and programmatic advertising that connects brands to audience with personalized ads. Joined the team at Collective to build and evolve the best dynamic creative optimized ad platform in an Agile environment. ● Responsible for the inhouse Big Data Analytics product, which produces reports from the ad delivery/engagement logs generated by the ad server. ● Designed and developed secure REST API for reporting dashboard using Play Framework and Redis for caching. ● Play framework and NodeJS/ExpressJS based secure RESTful APIs ● Tech talk on responsive design and introduced Bootstrap to the team ● Research oriented development environment ● Rich UI using AngularJS and RequireJS ● Received more than 100% bonus for excellent performance in Collective. Projects 1. RESTful Reporting API (Dashboard) New reporting API for the dashboard project to get information about Ad Campaigns. This project had multiple components to it. A RESTful API, backed by Redis cache, backed by cache pre-loader. Data came from multiple sources and were processed on a Hadoop stack to generate reports and loaded into MySQL database. Spring batch was used to run jobs and Graphite was used for monitoring. Developed the user authentication (Security) module. Akka for downloading large file from a separate web-service. Single sign-on integration with Authentication API. Vagrant boxes for database and caching during development. As a Lead Developer setup the project with Play Framework using Scala and gave knowledge transfer to new team members. Pair programming was used whenever necessary. Implemented a state machine based Authentication header parser and developed algorithm. Technologies Used: Scala, Akka, Play Framework, Slick, vagrant, TDD, h2 in-memory database for unit testing, specs2, yaml, github wiki for documentation, git, youtrack, IntelliJ IDEA, Jenkins and Chef. 2. Reporting UI (Dashboard) New responsive UI project for showing the progress of ad campaigns. This application also had it's own RESTful API that talked to a different web-service exposed by an in-memory database we had at Collective. The API was made secure using same token in the headers as the RESTful API. As a Lead Developer setup the project with Node.js and Express.js and gave knowledge transfer to new team members. REST API security using middleware in Express.js. Technologies Used: Node.js, Express.js, AngularJS, HighCharts, d3.js, github wiki, git, youtrack, IntelliJ IDEA, Jenkins, Chef 3. Proof Of Concept Developed a POC for reporting dashboard using Play framework in Scala. Front-end was built using AngularJS and Bootstrap. Data visualization using D3.js and NVD3. Built RESTful API for data access. Wrote asynchronous Scala code for talking to another web-service. As individual developer proposed the use of Play Framework. Technologies Used: Java, Scala, Play Framework, d3.js, NVD3, Bootstrap, EBean, TDD, JUnit, Jacoco (Code coverage), Redis, Postgres, git, youtrack, IntelliJ IDEA, Jenkins, Fest Assertions 4. Tableau Reporting Developed this Backbone.js and Bootstrap based app for Tableau views built on top of Tableau javascript API using Yoeman. UAT version was deployed in Heroku. Production build with Grunt and Jenkins, deployment with Chef. Technologies Used: Backbone.js, Bootstrap, Tableau javascript API, Yeoman, Heroku, git, Youtrack, Sublime Text, Grunt, Jenkins, Chef 5. In-house BigData Analytics product Developed new features and fixed issues reported on this mature product. Initiated and completed modernisation of console UI using Bootstrap. Created new reports for customers using custom XML based DSL. Modified the task and queue management module to auto schedule weekly and monthly reports based on the day. Added and modified failure email alerts feature. Handled failed tasks by re-running them or catchup with new queues Technologies Used: Java, iBatis, Struts, jspx, tagx, quartz, Bootstrap, python for scripting, git, Youtrack, IntelliJ IDEA

Masters Student

University of Newcastle upon Tyne12 months

This was a paid project given by the University as part of Newcastle Work Experience program to build an academic assignment feedback generation application which, makes it possible to prepare constructive and comprehensive feedback in an efficient and effective manner. ● Create PDF reports from data using Jasper reports. ● User authentication and authorisation features using Spring Security. ● UAT deployment in Heroku and PostgreSQL ● Production deployment in Tomcat server and MySQL database located at remote University Server using ssh key authentication. Technologies Used: Java, Spring Roo, Hibernate, Jasper Reports, Dojo framework, Spring Security, Heroku, PostgreSQL, Tomcat and MySQL.

Data Engineer / API Developer

Happiest6 months

Happiest is a start-up in Newcastle upon Tyne, that focused on Rewarding customers based on engagements. To be a part of an exciting start-up in the UK was really thrilling. Most exciting part was the thought of building something that is going to delight people. The internship turned into an offer for doing Master's dissertation. Data Engineer (June - September) ● Dissertation project on Social Network Analysis and Centrality metrics - This project was considered the initial phase of bigger data analysis project. ● Created a friend recommendation system using Neo4J graph database. ● Analysis of social network data using R, IGraph - Happiest's network data was analysed and centrality points were given to each node in the network. ● Graph data visualization using R and Gephi. API Developer (March - June) ● Developed various API end points in PHP ● Database programming in PostgreSQL ● Responsible for github commits and merges ● Scrum methodology ● Daily stand-up sessions and discussions.

Lead Developer

Dhanlaxmi Bank6 months

This is the gateway module to all other web applications through which the user will login. There has to be facility to login, logout, add new application, remove an application and session handover should work transparently. This is an implementation of single-signon. Lead Developer. Single point of contact at Client location. Decided how the application works (architecture) and prepared the design document. Technologies Used: Java, JSP, jQuery, Jasper Reports, Netbeans, CSS, Production deployment in WebSphere

Software Engineer / Technical Consultant

JMR Infotech3 Years

JMRInfotech, previously Trasset India, is a technology consulting company Banking and Financial Services Industry domain in India, where I served for 3 years including offshore support and client site development projects. ● Was deployed in client site and acted as single point of contact. ● Lead the team in design and development and also gave training to team members and knowledge transfer to new members. ● Designed and developed Java based web framework for development. ● Training in FLEXCUBE® (now OFSS), PL/SQL and Oracle Forms. ● Offshore support for FLEXCUBE. ● Responsible for code maintenance and version control. ● Responsible for UAT deployment. ● Recipient of certificate of appreciation, for the quality and dedication, 3 times from JMR Infotech. ● Direct email from the CEO appreciating performance and skills.

Lead Developer and Single point of contact at Client location

Dhanlaxmi Bank12 months

PDF reports were generated using Jasper reports based on the format given by the bank. Several reports were created as different applications. Lead Developer and Single point of contact at Client location. Technologies Used: Java, JSP, jQuery, Hibernate, Jasper Reports, Netbeans, CSS, Production deployment in IBM WebSphere

Lead Developer

BBank Chequeank Cheque4 months

truncation Automation interface Jul 2010 - Sept 2010 Dhanlaxmi Bank Developed a Java Swing based desktop GUI application using Netbeans platform, which generates XML files required to automate check truncation. This application interfaces between FLEXCUBE® and cheque truncation automation vendor and is to be used manually by a bank employee to generate the XML files and then upload them to FLEXCUBE. Lead Developer. Single point of contact at Client location.

Software Engineer

JMR Infotech2 months

The client just launched cards and wanted to add a new tab in their Internet Banking site for Credit Cards. The card holder could view transactions, make payments, plan his budget and spends etc using the new Credit Card Application tab. With this tab user can analyse his Credit Card usage by viewing data as Tables, Pie Charts or Bar Graphs. Various data visualization was available to analyse month-on-month, quarter-on-quarter Spend vs Budget data. The project involved sending XML requests and consuming XML Responses to and from the Web-service (SOAP) exposed by the Credit Card vendor, and painting the data in the website. Graphs were painted using javascript developed specifically for this project. Also specific charts were created using Java libraries. Session handling and handover was handled by invoking a web service on each click. The deployment is done in IBM WebSphere Application Server. Joined the project in the early development stage and took it through UAT and production phases. Technologies Used: JSP, Java Web-services, XML, JavaScript, JDeveloper, CSS, Servlets, Filters, Apache Commons FileUpload 5. Data Double Entry Feb 2010 - Mar -2010 Web application to verify same data entered by two users. Used XML for representing data and XSLT to translate it into html. Technologies Used: JAVA, JSP, JDBC, Ajax, jQuery, Oracle 10g Database, HTML, CSS, Servlet, Filter, XSLT, XML 6. Bulk Signature Uploader Jan 2010 - Feb 2010 Requirement is to upload multiple customer signatures to FLEXCUBE® database. The customer name and signature names will be provided in file. There should be option to preview the signatures before uploading. Approved signatures should be uploaded to the database. Database triggers where used for logging events. The signatures were first uploaded to Application server and then FTP-ed to database server and from there inserted to database table using PL/SQL function. Technologies Used: JAVA, JSP, JDBC, Ajax, jQuery, Oracle 10g Database, Oracle PL/SQL, enterprisedt FTP, HTML, CSS, Servlet, Filter

Software Engineer

JMR Infotech6 months

Hungarian Banks FLEXCUBE® is an end-to-end product suite for consumer, corporate, investment and Internet banking, asset management, and investor servicing. Have provided technical assistance on various FLEXCUBE® installations, including Application server setup, Web services configuration and database setup. Have also provided offshore support for various maintenance and issues raised in FLEXCUBE®. Technologies Used: Oracle Forms 6i/10g, Oracle Application Server 10g, Oracle Database 10g, SQL/PLSQL

Software Engineer

JMR Infotech4 months

8. XML Interface for FLEXCUBE® Feb 2009 - May 2009 A leading Hungarion Bank FLEXML is the Interface layer of FLEXCUBE® that is used to interface FLEXCUBE® with any third party external systems. Created a Java based front end screens to capture details for FT and SI Modules. Have also provided the end to end support for testing Front end application with the FLEXML interface. The task includes coding, Unit Testing, Integration testing and solving the UAT issues. Technologies Used: JAVA Web-services, Oracle 10g Database, Oracle PL/SQL

Internet marketing strategy

SEO2 months

is the process of improving the volume or quality of traffic to a web site from search engines. As an Internet marketing strategy, SEO considers how search engines work and what people search for. The project involved editing meta content and HTML to increase the sites relevance to specific keywords and to remove barriers to the indexing activities of search engines. New sitemaps where generated and submitted to major search engines for indexing. Reports were created to analyse effect of SEO. Technologies Used: HTML, Google Analytics, Google WebMasters Central Tools

Official Website Development

JMR Infotech2 months

A new official website was designed and created. Effects using JavaScript was done along with DotNetNuke system. Technologies Used: DotNetNuke, HTML, JavaScript, CSS, Windows Server, IIS