Senior Consultant Resume
Downtown, NyC
SUMMARY:
- 5 years of experience of Big Data, including Cassandra, Hadoop, Spark, MapReduce, HDFS
- 16 years of programming skills in Java, C/C++, JMS, SQL, Web Services, XML/XSLT, Spring, Hibernate
- 16 years of designing, installation, maintenance, performance tuning, coding skills on database, including DB2, Oracle, SQL Server and Sybase. 15 years of working experience through the full life cycle of software development from gathering requirement, technical specification, system design, detail design, coding, integration, documentation, testing, deployment, and maintenance.
SKILL:
Programming: Java, C/C++, XSL, XQuery, XML, Jason, JavaScript, VoiceXML, Bash Shell, Scala, Python
Databases: Oracle, DB2, Sybase, SQL Server, PL/SQL, Stored procedures, Coherence, Oracle Golden Gate, Cassandra, Hive, HBase
Applications: WAS, WebLogic, WebSphere MQ, TIBCO EMS, Solace, SOA, Spring, Hibernate, Murex, RAD, FIX, Jenkins, GIT, Hadoop
EXPERIENCE:
Confidential, Downtown, NYC
Senior Consultant
Responsibilities:
- Joined Core Compliance Division. Build Data Lake platform with Hadoop ecosystem, Java data pipelines, Hive, Pig, Impala, HBase etc. which receives around 1TB data per day feed files from front office and middle office plus data enrichment from Citi Cloud. Provided interface for downstream applications to consume data for analysis, machine learning and generate regulation reports. ETL Data into Hive with partition, bucket strategy, with Avro, Parquet format.
- Build an advanced data platform to drive its Communication Surveillance functions by acquiring and analyzing unstructured electronic communication data from different systems. The unstructured and human nature of this data presents an exciting and significant technical challenge to extract features that will add meaningful context to trading behavior.
- Using Spark, Kafka, HDFS, Sqoop, Flume, Avro to build out ETL pipelines to deal with a large set of data and how properly flows into Hadoop ecosystem.
- Scala programming on Spark 2.x on RDD, DataFrame, DataSet API. Launch Spark on YARN with performance tuning by specifying submit parameters. Changed Spark default Java Serialization to Confidential . Handle Data Skew Adaptively using dynamic repartitioning
- Store JSON data from Citi Could API into MongoDB and facilitate unit test and development. Write Java code to read and write object towards MongoDB.
Confidential, Midtown, NYC
Senior Consultant
Responsibilities:
- Joined FXALL front office team, developed high - frequency/low-latency transportation layer framework on Solace which is a hardware based messaging system. Developed Direct/Guaranteed messaging, Request/Reply, PUB/SUB, Queue/Topic, Sync/Async
- Developed Simple Binary Encoding ( Confidential ) message encoding/decoding. Confidential is intended to represent all FIX semantics. Used Confidential for internal message exchange on top of Solace transport and multicasting market data. designing and developing low-latency messaging system with minimal variance by applying following strategy: 1. Copy-Free; 2. Native Type Mapping; 3. Allocation-Free; 4. Streaming Access; 5. Word Aligned Access; 6. Backwards Compatibility
- Leveraged java 1.8 feature including NIO, Lambda Expressions and Streams, etc.
- Create Gradle build script. Integrate Gradle with Bamboo to create automatic build and deploy release package into repository.
- Develop state machine, timeout monitor service to enhance Advanced Negotiation Engine and Advanced Matching Engine based on non-block NIO socket communication.
- Set up Docker in Linux box, running and managing Docker container, creating and distributing Docker images. Leverage Docker Compose and Docker Swarm.
Confidential, Middletown, New Jersey
Lead Engineer
Environment: Coherence, Cassandra, JPA, GIT, Oracle GoldenGate, OSGi, Grid Computing, Agile, Scrum, XSLT, OSGi, Big Data, NoSql, API, Distributed Cache, Coherence, Felix, Solace, Linux, FreeMarker, JSON, Odysseys, REST API, Apache Kafka, ZeroMQ, Spark, SQL Queries
Responsibilities:
- Joined Atlantis Scrum team, followed agile methodology. Analyzes, designs, programs, debugs and modifies software enhancements and/or new products used in local, networked, or Internet-related computer applications.
- Interact with users to define system requirements and/or necessary modifications. Develop initial load, real time change processor load, repeating load for MyAtt Uverse, Member Profile System. Use JPA, Odysseus to persistent data into Cassandra
- Transfer, Convert, Integrate large volume data from classical oracle data source, non-structured file systems into Cassandra data cloud center. Configure Cassandra Snitch, Gossip, Replication. Design Key Space, Table, Primary key, Partition key.
- Developed High-Volume / Low-latency messaging on Solace, with Request-and-Reply Messaging, Point-to-Point Queue Messaging. Developed Message Selectors, Durable Subscriptions, Message Transaction, Message Persistence. Use message system to implement real time update for L3 Cassandra cache. Define Solace scripts to create client, VPN, bridge, Entity queue.
- Use Rally to manage Agile projects. Use Git to manage source code. Use CodeCloud to review code. Use Jenkins to create QC/Production release. Write production deployment instruction in Wiki page. Support QC/Production deployment. Trouble shooting production issues.
- Using Spark core to define resilient distributed dataset (RDD). Integrate Spark with HDFS and Cassandra. Using Spark Steam with Java 1.8/Scala to calculate real time market data against position. Using Spark SQL to allow user to do Ad-Hoc query. Using Spark MILib to perform operations like correlations, hypothesis testing, machine learning e.g. clustering, classification, regressing. Using Spark GraphX to analyze and manipulate graph data and perform graph computations in order to calculate store level, city level, state level, product level, catalog level user click numbers.
- Using JAX-RS under Apache CXF developed REST Web Services API, configure REST JSON Provider, implement REST Web Services, and create Java REST clients
- Write complicated SQL Queries. Performance tuning on oracle database by index, explain, partition, temp table etc.
Confidential, Warren, New Jersey
Senior Engineer
Responsibilities:
- Confidential Deal Processor, which is C++ Autosys job to query database to retrieve new incoming message and generate Deal
- Developed Web Services on WebLogic to provide Data. Developed 2 level Cache solutions.
- Developed Web Interface to manage deal confirmation, settlement by using Spring, Hibernate and Google Web Kit
- Write complicated SQL Queries to do production trouble shooting and analysis. Performance tuning on oracle database by index, explain, partition, temp table etc.
- Planning, configuration, administration, performance tuning, disaster backup of Hadoop Cluster using HDFS commands. Configure name node, secondary name node.
- Develop MapReduce jobs using Java, Maven, Eclipse to calculate capital risk/market risk based on large volume data following Monte-Carlo Simulation based Var Model. Implement advanced MapReduce, like Partitioners, Combiners, Comparators etc.
Confidential, Skillman, New Jersey
Senior Consultant
Responsibilities:
- Joined the Global Data Service R/D department. Lead top priority project: ThirdParty, which acquires corporation financial period data from European data vendor. Leverage Java multiple threads, J2EE Session Bean, Message Driven Bean, state machine work flow to develop fundamental framework, which stores and calculates Corp Information, Core Value, Section Value etc.
- The main components are an acquisition task, a new timer process to match or create Fundamentals periods and store Fundamentals data in the BDAP database and the existing DPFA republishing framework to publish data to Equities Fundamentals for use in client-facing apps.
- The acquisition task is based on the BLADE architecture, as most of the newer acquisition processes are. The task uses PERL to reformat a large data record into a small record containing only the fields that have value to Fundamentals processing. The “small” record is stored in the processing queue table of the BDAP database (Oracle). For each record, the acquisition task invokes an existing Web Services to get any company metadata that may be useful for Fundamentals processing. Acquisition also creates a package in Content Repository.
- Use JBOSS Server to build the Company Info timer process, which runs a configurable number of threads on a configurable subset of BDAP Fundamentals middleware servers. Period Extractor handle all Period Clash, Period Creation, Work Attribute update, generate Message Driven Bean as Datapoint Extractor to handle data calculation, data comparison, data restatement, data update logics.
- Use Tibco EMS/JMS to build DPFA mass republishing framework to optionally compute DPFA core, optionally perform data validation and publish data to Equities side, present value added data grid to Terminal customers.
- Design Acquisition, Preprocess, Publish data model, processing flow, state transitions and class diagrams.
- Fix the bugs and enhance features of Confidential BDAP workflow system, which supports State Bypass Action, State Machine Action, Startup Action, Router Action, Split Action.
- Handle high volume data set, large files. Straight Through Process, work flow system.
Confidential, New York, New York
Lead Developer/Team Leader
Responsibilities:
- Joined the production team of V3. V3 is a software solution used by the nation's leading retirement, health and group benefit organizations. V3 offers capabilities for public retirement & health agencies, multi-employer benefit organization, Taft-Hartley trust funds, and third party administrators.
- Implement CRM module and Workflow module. All services accessed through Spring Orchestration layer. Each service consists of an interface class and an implementation classes. Services are injected into business rules via constructors. External/Enterprise applications access services exposed through axis as web services. Developed Base Classes, Services, Components, Static Utility Classes. Support and guild client development for SAG pension and CRM application.
- Implement Data Model. Developed customized data dictionary to allow storing extra information about business entities and attributes in the database and to allow storing extra information about business entities and attributes in the database.
- Defined Catalogue (Meta model), including Entity and Attribute to drive behavior and UI.
- Developed Indirect Referencing, by which generic columns are used to store relational s and help consolidation of data model patterns. Implement Data.
- Defined Virtual Columns which is used to customize data model and yet keep it consistent across clients.
- Handle large volume data using Java collection utilities. Implement data cache. Do concurrent programming with producer consumer multi-threading model.
- Using Confidential framework to dynamic mapping the data from Web Service to Java object.
Confidential, Jersey City, New Jersey
Software Architect, Technical Lead
Responsibilities:
- Lead eMoney project for Confidential Block. eMoney automates the cash transfer between bank and brokerage accounts. With eMoney firms can create customer ACH profiles; edit and verify bank account information; initiate, verify and check status of money transfers, and create check requests, automated funds transfers and periodic payments.
- Lead functional /technical design review various design documents, including activity diagram, user cases, functional specification, database schemas, architecture design, etc. Use UML, Visio, Microsoft Project.
- Develop workflow system (on WebLogic server) to implement Business Process Modeling. Develop Business Rules engine to support Business Decision and Business Logic. The money transfer profile should go through the Micro Deposit verification. The money transfer should go through Treasury Review, Margin Review, and Money Laundering Review. If users submit transfers after work hour, we will put the request into Next Day Queue. If BL server generates error, we will put the request into Error Queue. If it is future transfer, we put it into Hold Queue. Depends on the transfer type, we chose CLED, MACH, DIST, GLEN. Used MAMS to sell money market fund and margin fund.
- Maxit is an n-tier, web-based application that integrates with multiple sources of data to capture the input data. The input data feed is done on a nightly basis via an FTP server. Most of the data comes from the Confidential interfaces that in turn collates and standardized the data sent by the back office providers (NFS, BETA, ADP and Pershing) and also independently from the various brokerages/correspondents. Some of the input data is received from the users and administrators, through the GUI. The Calculation layer comprises of the Validations, Corporate Actions, Transaction Processing and Tax Rules. The application processes the incoming transactions applying wash sales and corporate actions and presents various reports to the end user.
- Take a lead role in the Maxit project. Implement Single Sign On, Transaction Process (Multithread Java process to calculate the investor tax information), Struts front end dash board (display the market value and gain and loss).
