Sr. Full Stack Java Developer Resume
Somerset, NJ
SUMMARY:
- 8+years of experience in developing, testing and maintaining java web and desktop applications within the Banking, Energy, Telecommunications and Education domain.
- Experienced at developing content rich, responsive and dynamic user interface using HTML5, Bootstrap, Angular 4, TypeScript, AngularJS, Three.js, JS, JQuery and various other tools and libraries.
- Experienced at developing and implementing distributed algorithms as scalable applications using multithreading, low level synchronization and constructs like Threads, locks and java concurrency framework and high level constructs like Actor based AKKA framework.
- Experienced at developing operating system agnostic desktop applications on java using QT Jambi consisting of splash screen and the main dashboard window.
- Expertise in developing base modules, architecture level application framework and business logic implementations using J2EE technologies, Spring MVC and Hibernate ORM.
- Experienced in working with various modules of spring framework like Spring MVC, Spring Data JPA, Spring Expression Language, Spring Testing, Annotations.
- Experienced at deploying applications using CI tools like Jenkins and CircleCI on AWS(Amazon Web Services) EC2 instance and cloud in general.
- Experienced at using IDEs like IntelliJ IDEA, IntelliJ Webstorm and Eclipse. Also strong Development and deployment experience in Apache Tomcat and JBoss.
- Experienced at using version control tools SVN and Git and repositories like Github.
- Experienced at using collaborative tools like Slack, Asana, JIRA, Outlook, Lync and TeamViewer.
- Experienced in doing requirement analysis and prototyping in an Agile Environment, researching and setting up a base project with incremental modular developments and brainstorming at client meetings on various collaborative tools.
- Team building and leadership experience including collaboration with cross functional distributed teams.
- Excellent verbal and written communication skills with extensive experience in client presentations and stakeholder management.
TECHNICAL SKILLS:
Java Technologies: Java8, Spring Framework, Project LOMBOK, Spring MVC, Spring Data JPA, Spring JDBC, J2EE, EJB, JDBC, JSP, Servlets, JSF, JDK8, JAXB, log4j, Jersey, Design Patterns, JTAPI, JMS
ORM Frameworks: Hibernate, JPA
Testing Frameworks: JUnit, Mockito, MockMVC, SpringBootTest, Spring Testing Framework
Languages: Java, SQL, HTML, CSS, JS
Continuous Integration: CircleCI, Jenkins
Build & Release Tools: Maven, Gradle
Frontend Frameworks: AngularJS/Angular2/Angular4, Typescript, Bootstrap, Thymeleaf, JQuery, Ajax, Highcharts JS, SVG, Three.js/WebGL, Font Awesome
Web Services: XML, DOM, XSLT, REST API, JaxB, JSON, JAX - RS, Jersey
Database: Oracle, MySQL, PostgreSQL, Sybase
Servers: Apache Tomcat, JBOSS, Glassfish, IBM Web Sphere
Cloud Platforms: AWS (Amazon Web Services), CORBA
Version Control Tools: SVN, GIT, Github
IDE Development Tools: IntelliJ IDEA, IntelliJ Webstorm, Eclipse, Net Beans IDE, Notepad++
DB Tools: SQL developer, MySQL workbench, JDL, JHipster
Operating systems: Windows, UNIX, LINUX, Ubuntu
Document Management: Office 365, Google Docs
Other: MS Office Suite
PROFESSIONAL EXPERIENCE:
Confidential, Somerset, NJ
Sr. Full Stack Java Developer
Responsibilities:
- Developed core backend modules and integrated the business logic implemented using Spring Framework, Spring MVC, Spring JPA, JPA Entities, Hibernate, JPA Mappings.
- Created Scrum meetings on Slack for regular brainstorming sessions on feasibility studies, requirement gathering and rapid prototyping outcomes.
- Planned the architecture of the application and its deployment pipeline post hardware requirement gathering and feasibility studies.
- Used Project LOMBOK based annotations to make the code clean, readable and maintainable.
- Involved in creating the Build and Deployment scripts for the application using Gradle
- Designed a multi-platform responsive UI framework for the solution using Angular 4, Typescript, HTML5, Bootstrap, JQuery, JS for showing the warehoused data along with time stamped meter readings in paginated table format.
- Designed component wise structure of the Angular4 application while creating custom pipes, components, services, dependency injecting services.
- Used Highcharts.js components to display percentage electricity consumption of the total, average consumption as graphs, display various other interactive analytics on the UI - all performed on the warehoused data.
- Wrote a bash script on Linux based Raspberry PI that would take regular snapshots of the electric meter, run the OCR engine on it, derive the various components of power, timestamp the result, build the final message and do an HTTP POST to the REST endpoint located on the server running on AWS cloud using curl unix utility tool.
- Created the database schema for the solution based on the MySQL RDBMS integrated with the application through the Hibernate ORM and Spring JPA.
- Created initial UML diagrams for Entities creation using JDL JHipster.
- Implemented Project LOMBOK based annotation to generate logger Slf4j field for logging.
- Wrote unit tests to verify consistent performance of helper methods, controllers, services and other spring components using Mockito, JUnit and Spring MockMVC following Test Driven Development practices.
- Wrote Integration tests using SpringBootTest and DataJPATest to assert data consistency at repository level and overall application consistency with respect to expected data.
- Constructed a continuous delivery pipeline using Gradle, Github, Jenkins and the AWS instance running Apache Tomcat server whereby any checkedin code to Github gets picked up by Jenkins for auto build and auto deploy of artifact to tomcat server.
- Completed the project delivery successfully well within the timeline and conducted the final live project presentation for the stakeholders.
TECHNOLOGY: Java8, AWS EC2, Hibernate, JDL JHipster, MySQL, Angular 4, Typescript, Spring Framework, Spring MVC, Spring JPA, Project LOMBOK, XML, Gradle,Linux/UNIX, Bash script, REST web services, AJAX, Bootstrap,HTML5, JUnit, Mockito, SpringBootTest, DataJPATest, slf4j, Jenkins, Intellij IDEA
Confidential, Dallas, Texas
Sr. Java Developer
Responsibilities:
- Created a network configuration file that defines parameters like network topology in terms of neighbor list, the coordinator node, backup/snapshot recording intervals and location of memory dump file on each node in the distributed system.
- Used primitive concurrency constructs like Threads, synchronization, locks, conditions, thread safe data structures blocking queues to implement intra-process multithreading required to establish scalability of the distributed system and request handling capability of each node.
- Wrote Gradle script to build an executable artifact that can be deployed to all the machines in the distributed system.
- Used Spring BOOT to create beans out of each incoming connection on each socket.
- Wrote Mockito and JUnit test cases to verify data consistency in each thread in a process.
- Wrote a basic server that receives connection requests and messages in a format from clients and scales well as the clients increase/decrease by using each thread to handle a particular socket.
- Used java server and client sockets to establish networking within nodes in the distributed system.
- Designed, developed and wrapped the core application in window based GUI layer using QT Jambi that shows the progress made by each process as a progress bar, a field to enter the coordinator, a file chooser to select the configuration file, a download button to download the state files, process wise transaction hysteresis after the final state recording is done, acquired token by each process.
- Implemented chandy-lamport algorithm to implement global snapshot recording in the interval and frequency mentioned as parameters in the config file.
- Coded Suzuki-kasami and Raymond tree algorithms to implement token based critical section execution exhibiting mutual exclusion that comprised of reading and parsing a 5MB text file.
- Implemented a 3-phase-commit-protocol using hub topology that enabled cohorts and coordinator recover from failures and restart from exactly the same state at which they failed using transaction files and local state histories in a file.
- Migrated the application to Actor based AKKA framework that abstracted much of the complexity of low level synchronization at the same time making the existing code base more readable, debuggable and maintainable.
- Used the same message format for inter-process communication in the AKKA model as was used previously in the low level model.
- Refactored the code using Project LOMBOK to achieve an optimistic bug-free migration to AKKA.
- Used java streams and lambdas to write multithreaded constructs for file parsing, socket creation at incoming requests.
- Used GIT for version control and Github as a repository.
TECHNOLOGY: Java8, QT Jambi, Akka, Gradle, Spring BOOT, Linux, java.util.streams/function, java.util.concurrent, lambdas, java i/o, Project LOMBOK, GIT, Github, Intellij IDEA
Confidential, Jersey City, NJ
Sr. Full Stack Java Developer
Responsibilities:
- Designed and developed a responsive and optimally feature rich login based web page using AngularJS, JQuery, HTML, CSS, Bootstrap and Confidential internally developed web components and widgets.
- Saved user sessions in GS managed cookies to ease login. Also enabled username and password remember features.
- Implemented login and logout feature using AngularJS and Confidential authentication service which is a REST based authentication service used internally by apps developed in GS.
- Designed the dashboard using GS widgets, Bootstrap, JS and AngularJS, like table to display user specific task histories with task statuses, progress bars to show script execution progress in real time, drop down menus and input fields to select scripts and parameters, panel to display real time elaborate messages and logs while task runs in the server.
- Wrote Gradle build script to manage dependencies and build the deployable.
- Developed backend using DTO, Spring MVC, Spring JDBC, java process builder and Sybase.
- Used java process builder to execute bash script in unix environment for data loading.
- Created controller endpoints where requests from AngularJS were intercepted and handed over to lower layers of the application and where periodical polls by AngularJS http promise were intercepted to check script progress.
- Implemented business logic at services layer to initiate script execution and relay polls results.
- Wrote unit tests using JUnit and Mockito as a part of TDD practices.
- Used SVN for version control and source code management and collaboration.
- Maintained user state information, progress histories and task statuses in normalized tables in the Database.
- Wrote custom queries using Spring JDBC to pull user histories and state information once user logged in and tie the Sybase DB to the other layers of the application.
- Enabled logging at various methods using log4j. Also enabled heartbeat messages sent to AUTOSYS.
- Linked the application to AUTOSYS for automatic start and termination of the application.
- Participated at regular scrum meetings for discussion over UI improvement and feature addition to the application.
TECHNOLOGY: AngularJS, HTML, Bootstrap, GS-Widgets, JQuery, JS, Spring MVC, Spring JDBC, Spring BOOT, log4j, Sybase DB, SVN, Jenkins, Java, Eclipse
Confidential
Sr. Full Stack Java Developer
Responsibilities:
- Created database triggers, views and stored procedures in DEV environment to conduct performance, load and stress tests for 52 bash scripts that generate Excel reports directly from Sybase PMDB using ISQL unix utility.
- Performance, Load and stress tested these reports by running the scripts at various time of the day and week to fetch the maximum amount of data which directly depended on the number of transactions settled each day as a part of Sybase DB version upgrade project.
- Verified data consistency with PRODUCTION dump at specific dates after running scripts from AUTOSYS as a part of load and stress testing.
- Migrated java based reports and 100+ unix bash script based to a new PRODUCTION server as a part of script migration project.
- Tokenized and changed configuration parameters like DB table names, fields, unix utility paths, output file locations, source staging files etc as a part of the migration project.
- Verified consistency of migrated scripts with respect to the data fetched and the reports generated by running them on DEV on top of the latest database dump from production servers.
- Actively participated in weekly scrum meetings doing requirement analysis, planning, allocation and progress checks for migration of around 425 bash scripts responsible for generating various transaction, valuation, collateral and position reports.
- Used SVN for version control and to checkin/checkout and pull changes to local code base.
- Revised and updated the documentation on Confluence about the GEYSER multithreaded CDS Eligibility service and various Australia regulatory reporting components like the GSAM Eligibility service, DSP, BDM, eTask, PMDB Autosys, PMDB Reporting and the overall process of the following types of regulatory report generation: Transaction, Valuation, Position and Collateral.
TECHNOLOGY: SQL, UNIX Bash, Sybase, isql, J2EE, Spring Framework, Atlassian Confluence, SVN, Jenkins, Eclipse
Confidential, Dallas, Texas
Sr. Full Stack Java Developer
Responsibilities:
- Designed and developed the regular user/non-admin template using AngularJS, HTML, Bootstrap, CSS, JS and JQuery where users can view, search books by authors, owners or name, checkin and checkout books.
- Implemented non-admin user registration, addition and authentication using Spring MVC, Spring JDBC, Java POJOs, MySQL, normalized tables to store user information.
- Wrote unit tests using JUnit to assert user information and activity consistency.
- Used SVN for source code management and collaboration and Eclipse for development.
- Used log4j for logging user activity like search, checkin and checkout attempts.
- Wrote Gradle script for dependency management, building and deploying the artifact to Apache Tomcat server running on a local instance of the department.
- Conducted requirement analysis on regular scrums with teaching faculties on usability and data.
TECHNOLOGY: AngularJS, Java, jQuery, JSON, HTML5, CSS3, Bootstrap, Log4j, JSON, Web services, Gradle Build, Apache Tomcat, MySQL, Spring Framework, Spring JDBC, Spring MVC, SVN, Eclipse
Confidential, Plano, Texas
Lead Software Integration Engineer/ Java
Responsibilities:
- Enabled a CORBA client to call an OSS EJB by Generating IDL from the EJB remote interfaces
- Generated stubs in the client implementation language using a CORBA IDL compiler and linked them with the client.
- Generated CORBA-friendly EJB interface from EJB-friendly IDL and coded the EJB
- Wrote a CORBA wrapper to implement the IDL which will delegate CORBA client calls to the EJB.
- Deployed the EJB and wrapper.
- Created and compiled RRU specific IDLs to be linked to remote objects.
- Obtained a reference to an ORB in the J2EE environment and Queried the ORB for its registered Naming Service.
- Used CosNaming service to obtain a reference to a remote CORBA object.
- Coordinated with team in deploying packages to OSS.
- Worked on PERL scripts for setting network, DUL and RRU parameters in Solaris environment.
- Helped Sprint pull 733 SITES ON AIR in Q4’2012 which constituted 73% of the total ON AIRS in the next quarter with 5420 man hrs of work while leading a team of 20 engineers.
- Generated, configured and managed XML based scripts using Confidential proprietary BSIM tool on Oracle Solaris systems as a part of ATT LTE integrations. Also created and configure PERL scripts for eNodeB setup, configuration and t-shooting.
TECHNOLOGY: J2EE, EJB, JavaIDL, JavaORB, CORBA, JMS, OSS-RC, Alarm monitor, SVN, Lync, Solaris, PERL, XML, BSIM
Confidential
Assistant System Engineer/ Java
Responsibilities:
- Did Requirement Analysis for various Integrations using webMethods.
- Installed and configured webMethods components like IS, Broker.
- Configured WebMethods Broker for publishing and subscribing relevant documents.
- Involved in the configuration of the WebMethods JDBC adapter to access database.
- Designed and developed webMethods interfaces to handle inbound and outbound.
- Built business flow using webMethods flow services.
- Monitored the flow of data from SAP to webmethods.
- Used webMethods deployer to migrate webMethods components from one environment to other.
- Regular interaction with team for knowledge transfer and gathering requirements to increase overall productivity.
- Mapped objects across various heterogeneous systems to facilitate uniform data access.
TECHNOLOGY: Java, WebMethods Integration server, webmethods, JDBC, SAP flow
Confidential
Application Developer - Java
Responsibilities:
- Created UML diagrams to breakdown initial requirements into use cases
- Designed the MySQL database schema and tables in collaboration with the development team
- Used Servlets, JSP and JSTL to create a dynamic UI design for a rich user experience
- Developed the background modules using Java and related technologies on Eclipse
- Implemented the course reporting module which provides Excel reports of student course schedules
- Involved in JUnit testing, application debugging, trouble shooting errors before deployment and documentation for the work done.
- Deployed the artifact in Apache Tomcat server.
TECHNOLOGY: Core Java, JSP, JSTL, Servlet, MySQL, Eclipse, Apache Tomcat
Confidential
Application developer - Java
Responsibilities:
- Part of the development team during the requirement gathering phase
- Used Avaya JTAPI SDK to implement call objects models which are stateful java classes.
- Tested call objects like IDLE, INACTIVE and connection objects like INPROGRESS, CONNECTED.
- Implemented call model transition states, events and requests.
- Created model classes that record caller ID and other call related features.
- Used Eclipse to develop the code and deploy it to PABX server.
TECHNOLOGY: Core Java, JTAPI SDK, Eclipse