Summary:
Over ** years of professional experience in Software Development using Java/JEE technologies.
Real time project implementation skills in using Java (Lambda, Streams, Collections, Swing, JDBC), JEE (Servlet/JSP) and third-party Frameworks such as Spring Boot (Core and MVC), Spring Data JPA/Hibernate, Spring REST, Spring Batch, Struts and Maven.
Hand-on experience on development of Web Services (SOAP and REST) using Spring Boot.
Familiarity with Microservices and various cloud related technologies – Spring Cloud, Docker and Kubernetes.
Familiarity with Messaging/Streaming Platforms such as Kafka
Familiarity with various client-side technologies – AngularJS, Bootstrap, CSS, HTML5, JavaScript, JQuery and AJAX.
Hands-on experience with various Application servers such as Oracle WebLogic, JBoss EAP and Apache Tomcat.
Excellent working experience working with major Relational Databases such as Oracle, DB2 and MySQL. Familiarity with NoSQL Databases such as MongoDB.
In-depth knowledge on Enterprise design patterns such as MVC (Model-View-Controller), Layered and other OO design patterns such as Command, Factory Method, Singleton and Observer.
Quick Learner, highly motivated team player with excellent organizational and analytical skills.
Technical Skills:
Programming Languages
Java
Distributed/Web Technologies
Server-side – Servlet, JSP (Custom Tags, JSTL), Web Services (RESTful and SOAP)
Client-side – Google Cloud Messaging, HTML (XHTML, DHTML), JavaScript (jQuery), AJAX, CSS, AngularJS, Bootstrap
Frameworks
Java/J2EE – Lambda, Streams, Swing, Collections, JDBC, Multi-Threading APIs, Java Persistence API, JAXP (SAX, DOM), JAXB, JMS
Third-party – Spring Boot, Spring Data JPA/Hibernate, Spring Batch, Spring Cloud, Struts, JUnit, TestNG, log4j, Ant, Maven, Quartz, SwitchYard, Apache Camel, Kafka
Web/App Servers
Red Hat JBoss EAP, Oracle WebLogic, Apache Tomcat, GlassFish
Operating Systems
Windows 7/10, iOS, Linux
RDBMS
MySQL, Oracle, DB2, Sybase, SQLite, PostgreSQL
NoSQL Databases
MongoDB
Tools
Red Hat JBoss Studio Developer, Spring Tool Suite, Eclipse, Subclipse, SVN, NetBeans, Toad Data Modeler, HeidiSQL, Maven, SoapUI, Google Chrome – Postman, Oracle SQL Developer, Splunk, BitBucket, JIRA
Software Architecture
Classical – MVC (Model-View-Controller), Client-Server, Layered
Modern – SOA, REST, N-Tier, Microservices
Cloud
Spring Cloud, Docker, Kubernetes
Other Technologies
XML (DTD, Schema, XSLT, XPath, DOM), UML (Unified Modeling Language), SQL (Structured Query Language), Triggers and Stored Procedures, Jasper Report, AOP
Work Experience
Bank of America Corporation, Charlotte, NC Sep, 2018 – Mar, 2020
Role: Senior Software Engineer
Project: RBPS
Description:
RBPS (Retail Bill Pay Services) is a Spring Boot based REST service developed for carrying out bill payments of the customers. It’s based on service-oriented architecture. This application consists of 5 major services.
1.Ebill Services - This service manages all electronic bills of customers.
2.Payee Service - This service manages all payees, i.e. the third parties, who generate and send bills to the customers.
3.Payment Services – This service manages all payments (CRUD operations on payment) for the customers.
4.Subscriber Services – This service manages all customers and their accounts.
5.Session Services - This service generates a session correlation Id, that other services use in their request to be able communicate with the target system.
Responsibilities:
Attending the daily stand up call (Scrum call) for updating the status of the previous day task and informing the new tasks for the current day in Rally. And bringing in any roadblocks to the team if there’s any.
The day to day tasks are mostly working on introducing new features to the existing services or enhancing the existing services.
Working mainly on the server side. Tasks mainly include adding new codes or modifying existing codes in various layers such as Controller, Validation, Service, Handler and DAO layers. Additionally, fixing any production bugs.
Oracle and DB2 used as the database.
Red Hat JBoss EAP used as container.
Environment:
Eclipse Oxygen, Spring Boot, JSON, Red Hat JBoss EAP, Maven, Java 7/8, Oracle, Oracle SQL Developer, SoapUI, Putty, Perforce, Bitbucket, Jenkins, Rally, JIRA and Splunk
Ally Financial Inc., Charlotte, NC Nov, 2016 – Aug, 2018
Role: Senior Software Engineer
Project: AcmUI
Description:
AcmUI (Ally Customer Master User Interface) is a Spring Boot based web application being developed for internal use of Ally. It’s based on service-oriented architecture. The key functionalities of the application are to manage Ally Customer info such as adding new customer info, editing/updating and deleting existing customer info. Customer info includes name, address (primary, secondary, mailing), SSN/ITIN, contact info etc.
Responsibilities:
Getting involved in the daily stand up discussion for updating the status of the previous day task and planning new tasks for the current day.
Working mainly on the server side. Tasks mainly include adding new services on the service layer. Switchyard, Apache camel routes and spring boot controllers/services used in various projects.
Also creating new DAOs as required. Spring DAO and Stored Procedure APIs used on DAO layer.
Oracle used as the database.
Red Hat JBoss EAP used as container.
Environment:
Red Hat JBoss Studio Developer, Spring Boot, Spring MVC, JSON, Red Hat JBoss EAP, Maven, Java 7/8, Oracle, SwitchYard and Apache Camel
T-Mobile USA, Inc., Bellevue, WA Jan, 2016 – Oct, 2016
Role: Software Engineer - III
Project: CASSINI
Description:
CASSINI (ContextuAl SubScrIber NotIfication) is a redesign on an existing MVS (Mobile Video Service) to address additional use cases from business through contextual overlay apart from data upsell. It’s based on service-oriented architecture.
1.Registration: Cassini Clients (Android devices) use this API to register themselves to Cassini Platform (it’s basically a RESTful Web Service), which makes them eligible for receiving any valid Cassini notifications in future.
2.Data Upsell: Customer has consumed all his high speed data and the data is throttled. Cassini Platform uses this API to send a throttled notification to the device and helps the user purchase more data if they are willing to do so.
3.PAH Approval: A non-PAH customer wants to use a new service (for example, vociemail2text or NameId). They need to get an approval from PAH for the desired service. This is API serves the purpose of getting an approval for a requested service from PAH.
4.Collections
a.Show Past Due: This is a job that runs every day at 4 am. It reads an input file and sends Past Due notification to eligible devices.
b.Stop Past Due: Past due notification is showed on a user device 3 times a day between 7 am to 7 pm. Stop Past Due is a separate job that runs in every 10 minutes. It also reads an input file, which has a list of Account Numbers eligible for receiving Stop Past Due notifications. If the user pays their past due, then this job sends a Stop Past Due notification to the device and they no longer receive Past Due reminders.
c.Brick: If the user does not pay his past due for 20 days, then this API comes into play and sends a Bricked notification to the user device, which basically leads to locking the device by showing an overlay on the device screen and does not let user use the device any more. This job runs at 5 am every day.
d.Unbrick: This API is responsible for unbricking if the user pays their past due.
Responsibilities:
Working mainly on the server side – Designing and Writing code for creating RESTful Web Services using JAX-RS (JSON being the payload). The Web service communicates with many other external systems such as DUS, NAP and EEIR for collecting required handshake info so as to respond to CASSINI clients accordingly.
Google Cloud Messaging (GCM) used for asynchronous messaging from Cassini platform to its clients (android cell phone devices).
Working on Service and DAO layers. Spring DAO and StoredProcedure APIs used on DAO layer.
Oracle used as the database.
Quartz used for scheduling jobs.
WebLogic Server used as Cassini Platform container.
Environment:
Jersey (JAX-RS), Google Cloud Messaging, Cryptography (AES, RC4), JSON, Oracle WebLogic, Maven, Java, Oracle, Quartz and Eclipse
AT&T Inc., Alpharetta, GA Dec, 2011 – Dec, 2015
Role: Software Developer
Project: OPUS Digital Life – Van Inventory
Description:
The One Point Universal System (OPUS) is a Cingular Wireless system that enables store customer service employees to effectively activate phones, assist customers with their mobile phone accounts, and perform Point-of-Sale (POS) activities. The application is primarily used in Cingular Wireless retail stores. The application can perform many functions. One of them is inventory function, which is accomplished by Inventory Control module.
Inventory Control module allows user to perform Inventory housekeeping related functionalities such as Adjustments, Pool Maintenance (Stock Reclassification), Receipt, Transfers and more. Given below are brief descriptions for each sub-module.
1)Adjustments: When a discrepancy between the actual physical inventory and that reported by the system arises, this sub-module allows adjustment to the inventory.
2)Pool Maintenance (Stock Reclassification): This sub-module allows the change of pools and pool types for serialized items from installable to non-installable and vice-versa.
3)Receipts: This sub-module allows users to update the system with inventory that was received against a purchase order.
4)Transfers: This module allows users to transfer inventory between stores.
5)Physical Count: This module is basically used to count the inventory items present in the selected store and then perform adjustments if required.
Responsibilities:
Attending Scrum calls for design and development discussions and update.
Implementing the AD (Application Document) and reporting the AD and UI design teams about any design discrepancies or gaps. Also worked on many enhancement projects.
Coding mostly Frontend and Service layer. Spring MVC used as the key web framework. JSP used for creating Views.
Working on Backend occasionally. Hibernate used for modeling data access layer.
Developing UT doc and Dev packages.
Additionally, bug-fixing, fine-tuning and performing enhancement stuffs to other existing applications as per the business requirements.
Using Linux commands for compiling, deploying and debugging the application on Linux platform.
Environment:
Java, JSP, Spring MVC, Hibernate, JQuery, AJAX, Eclipse, WebLogic, Oracle, Maven, Linux, DTO and WinSCP.
FedEx World Tech Center, Collierville, TN Jan, 2011 - Nov, 2011
Role: Software Developer
Project: 1Source Invoice Adjustment
Description:
A huge internal project of the company for automating the activities such as customer inquiry, invoicing, rating, disputing, and tracking down invoices/packages etc. Plug-ins architecture based; Client tier developed using Java Swing framework. SOAP/WSDL-based Web Services used on the server tier.
Responsibilities:
Working mainly on the frontend - mostly enhancement projects. Used Java Swing exclusively on GUI development.
Also working on DAO layer (Hibernate used) at times. Stored procedures used for good performance.
Oracle used as the database.
Supporting existing SOAP Web Services.
Additionally, supporting QA teams by fixing bugs.
Environment:
Java, Swing, Eclipse RCP, XML, Hibernate, SOAP Web services, SoapUI, Oracle
Trinity Millennium Group, Inc., San Antonio, TX Jan, 2010 – Dec, 2010
Role: Programmer Analyst
Project: Service New Brunswick (SNB)
Description:
A New Brunswick state government project written in COBOL in 70’s is being transformed into a Java based web application using internal transformation tools of Trinity. The newly transformed application processes and stores information of the residences (in New Brunswick, Canada) such as insurance, home and other properties. 3-Tiers (UI, Business & Data Access Layers) is the basic architecture of the application. Project Duration – 1.5 years; 5 releases – A through E; Test Driven Development (TDD) technique incorporated into each iteration.
Responsibilities:
Getting involved in design discussions, development, and testing of developed artifacts.
Coding Frontend (includes Struts action forms, action classes and JSP pages) and Business layer using Core Java. Struts used as the main Web framework.
Also working on batch programs – A Java program, which basically reads from one or multiple files (having plain or comma separated contents) and does not have any interaction with a user, and finally creates one or more reports in PDF format. Used Jasper Report for report generation.
Additionally, fixing application bugs reported by QA teams.
Hibernate extensively used for creating persistence layer. Oracle used as the database
Environment:
Java, Struts, JSP, Eclipse, Oracle, Hibernate, Jasper Report (iReport), JBoss, JUnit, Design patterns – Factory, Composite and Command
Education
Master of Science in Computer Science (MSCS) 2008 - 2012
Maharishi University of Management, Fairfield, Iowa
Bachelor of Information Technology (BIT) 2002 - 2007
Kathmandu Don Bosco College, Kathmandu, Nepal