TARUN
Scala Developer
*****@******.***
PROFESSIONAL SUMMARY
Over 8 years of IT experience in analysis, design, development, documentation, implementing and testing of software systems in Scala, Java, J2EE, Akka, REST API, MySQL and AWS technologies.
Expertise in design and development of various web and enterprise applications using Type safe technologies like Scala, Akka, Play framework, Slick.
Working knowledge of various AWS technologies like SQS Queuing, SNS Notification, S3 storage etc.
Distributed Application Development using Actor Models for extreme scalability using Akka.
Experienced in using Scala, Java tools like Intelli J, Eclipse.
Set up, configured, and maintained multiple web/application servers like Apache Tomcat and Play.
Hands on experience with Play Framework MVC model, Object relational mapping tools like Slick.
Working knowledge of deploying on Linux servers.
Strong experience in Core Java, Multi-threaded Programming, Data structures, Algorithms and Collections framework.
Strong understanding of OOP concepts and design patterns.
Experience in configuring, deploying the web applications on AWS servers using SBT and Play.
Ability to learn and use new systems and paradigms in considerably less time.
Worked on code optimization, scalability & performance tuning of various applications.
Extensive understanding and experience in the SDLC phases like the Requirements Specification, Analysis, Design, Implementation, Testing, Deployment and Maintenance.
Hands on experience in end to end development of Software Applications. Application domain areas include development for E-Commerce, Retail and Storage industries.
Possess excellent Technical background, communication, interpersonal and presentation skills. Very quick at learning new technologies & frameworks.
Highly motivated, dependable trouble shooter and problem Solver.
Expertise in developing reference implementation (Proof of concepts) for key deliverables by evaluating and executing with latest and optimal technology stacks.
Worked in offshore – on site model and managed team.
Experience in different Operating Systems/ platforms like Windows, Linux and UNIX.
Excellent problem solving, analytical, interpersonal and communication skills. Ability to work in-groups as well as independently with minimal supervision. Ability to learn new languages and Tools quickly.
TECHNICAL SKILLS
Languages
Scala, Java, Java EE, JSP
Databases
MySQL 5.0, Dynamo DB, IBM DB2, RDS
Application server
WebLogic, WebSphere, Tomcat, Play
Operating Systems
Windows, Linux
XML/JSON Technologies
XML, XML Schema, JSON parsing
IDE
Eclipse, Intelli J
Version control system
GIT, SVN
Database Tools
Sequel Pro, Liquibase
Internet Technologies
JDK, Spring, XML, JSON, Web Services, REST, Specs2, Selenium, ANT, JavaScript, AJAX, HTML, CSS, JQuery, Bit bucket, AWS EC2, Load balancer, Route 53, SES, SQS, SNS, S3, JIRA, WinSCP, FileZilla
O - R Mapping
Slick, Hibernate
PROFESSIONAL EXPERIENCE
Choice Hotels, AZ Jul 2014 – Till Date
Scala Developer
Responsibilities
Involved in extensive meetings with business and design people in analyzing / drafting Business Requirement Specification and Software Requirements Specification.
Worked on migrating the old java stack to Type safe stack using Scala for backend programming.
Extensively used Akka actors architecture for scalable & hassle free multi-threading. Millions of activity messages per second were handled very easily by the actors by propagating the messages to appropriate child actors in asynchronous or synchronous fashion.
Worked on handling all the requests to the systems using play framework MVC framework.
Used Scala collection framework to store and process the complex consumer information. Based on the offers setup for each client, the requests were post processed and given offers.
Extensively involved in developing restful API’s for web portals for each of the client which goes live with system, which includes getting all the meta data information of the client and user, all the activities, offers etc.
Used slick to query and storing in database in a Scala fashion using the powerful Scala collection framework.
Developed parsers for each new client using the regular expressions and the internal framework to map all the receipt information and eventually persist the data to Sql database like MySQL and NoSQL databases like Dynamo DB.
Involved in developing the reporting infrastructure for all the daily and monthly reports for the merchants based on different criteria.
Worked on pulling data for email and sms campaigns, there after performing the data analytics for each of the campaign for business development and sales team.
High volume data processing.
Used Specs2 and Play logger to run through pre-load and post-load test cycles for application performance and errors.
Extensively used MySQL queries in querying user buying trend analysis and implementation on Amazon RDS.
Used Git and Bit bucket version control system and code maintenance.
Coordinated with front end and design team in coming up with API contracts and integration with the back end.
Worked with customer support to quickly resolve the support issues.
Coordinated with the team to debug the server issues and resolving them.
Environment
Scala, Akka, Play, Slick, MySQL, Dynamo DB, IntelliJ, Sequel Pro, RDS, Bit bucket, Git, Shell Script, Linux, Specs2, Load Balancer, Restful APIs, Liquibase, JIRA
Thomson Reuters, NY Apr 2013 – Jun 2014
Scala Developer
Responsibilities
Experience working within agile development environments using SCRUM methodology.
Involved in Design and deliver of key features of web products, driving rapid iterations while keeping an eye on scale by handling massive and multiple streams of data at once, using technologies like Akka, Play concepts.
Participated in Architect and design of the components using a distributed architecture on AWS cloud platform.
Main focus was on seamless integration of the portal messages across the business partners.
Developed a scalable queuing system to accommodate the ever growing message flows across the systems using Amazon Simple Queuing System and Akka actor models.
This consisted of parsing the data and converting the data to JSON format and pushing it to the outbound queue.
All the incoming messages were handling by using play framework MVC framework and separate child actors were initiated to identify the type of messages and push the messages to appropriate queues.
Requests were processed using the powerful Scala collections and persisted to the database in synchronous fashion.
Implemented fault tolerant mechanism by handling the various types of error messages and reprocess them without any concurrency issues.
Worked on an internal utility parsers to get and post large set of information at once to support the sync between various systems.
Involved in building a scalable email system using amazon simple email service, s3 and Akka actors for handling heavy loads of emails.
We’ve adopted agile methodology across the team. As part of this we have regular SCRUM and Sprint meetings. I have participated in these meetings and at times drive it as well.
Environment
Scala, Akka, Amazon EC2, SQS, SES, SNS, Route 53, Play, Slick, IntelliJ, Git
JBS, CO Oct 2012 – Mar 2013
Java Developer
Responsibilities
Each of the clients such as a database servers, application servers, laptops or mobile end points connect to the central backup server and the whole system will be backed up. If there are any failures in the setup it needs lot of time to debug the issue and fix it.
Developed a solution by Dynamic network topology creation for thousands of clients to find faults in the network by parsing various firewall configurations, grouping clients by their properties and displaying on web page using d3 framework.
Used Java and python scripts to get all the data required for identification of the faults over the network.
Used oracle database to persist all of the raw data and later the data which is in JSON and XML format is parsed to identify the faults.
Worked with front end team to display all the topology of connected clients and faults in the system through an internal API.
Involved in Prototyping and Generating thumbnails of a video file which were backed up by the server software using ffmpeg.
Developed a small application using java to fetch all the thumbnails and indexing them using Solr.
Researched on how different video players and passed on the data in various data structures and finally displaying them on video player seek bar for the cloud backup app.
Design and implementation of a java based work flow for testing the status of secondary (disaster recovery) server by migrating few clients from the production server to secondary server, testing basic functionality such as backup and restore, and migrating them back to production server.
The work flow takes only 30 minutes and can be scheduled thus eliminating the existing complicated manual procedure which takes 3-4 hours every month.
Worked with all the teams including offshore to learn about the product thus come up with a solution for disaster recovery management system.
Automation of manual test cases using internal python framework, which can be scheduled to run for every service pack release thus eliminating the need to manual test repetitively.
Involved in Client interaction, coding, testing, bug fixing.
Environment
JAVA, J2EE, Tomcat, Oracle, Eclipse, JSP, FFMPEG, Python, C++, SOLR, JSON and XML Parsing.
Tesco, India Jul 2010 – Sep 2012
Java Developer
Responsibilities
Worked on different projects dealing with Extending/Modifying the supply chain product for the clients based on requirement.
Used Java, JSP, J2EE, XML-XSL parsing and more importantly on how the product works and how it can be morphed to meet the requirements of the Clients.
Involved in successful implementation of supply chain products while working offshore.
Extensively involved in writing java code to get all the order related information from the front end, process them through various work flows depending on the stage and type of the order.
Based on the different stages of the order, parsed through the XML messages and send the response to front end and databases.
Every customer/merchant data will be unique, wherever necessary built custom API’s to persist the data to IBM DB2.
Used JMS queues to put various order waiting for credit card processing, address verification etc.
Responsible in the Coding, Unit Testing and Functional Testing of the systems.
Hosted the application on IBM WebSphere.
Environment
Eclipse, IBM WebSphere, Java/JDK, JSP, Servlets, JMS, JDBC, PL/SQL, XML, XSLT, Struts Framework, Rational Suite, IBM DB2.
Reliance, India May 2008 – Jun 2010
Software Engineer
Responsibilities
My initial responsibilities include understanding the ongoing Number Portability Project.
Number portability is solution which enables the user to switch carriers without changing the phone numbers. As a part of this each user will be filling out an application in the front end. This request is eventually gets processed and sent to both old and new carrier and based on various parameters the request gets processed according to Telecoms regulations.
Involved in developing JSP pages for client side components leveraging MVC framework.
Involved in building basic soap web services to get the data from front end.
In the controllers parsed all the data to redirect the request to different java based work flows.
Developed Java Beans and Utility Classes for interacting with the database using JDBC.
Involved in writing custom JavaScript for validations, error correction.
Involved in bugs recording, bug fixing, code review and other maintenance of the application.
Involved in Client interaction, Supporting UAT and Production.
Used SQL statements and procedures to fetch the data from the database.
Ensure enhancements and requirements meet established quality and end user needs.
Environment
Java, JSP, JDBC Driver to connect to the database, Tomcat, HTML, CSS, Eclipse IDE, SOAP, TOAD, and many internal tools for bug tracking and different testing cycles.
EDUCATION
BE Computer Science, Birla Institute of Technology and Science (BITS), India