PosCalc is an application to calculate the real time position the firm currently hold. • Migrated existing application into a cloud base micro service with Spring Boot 2 and Docker. • Changed the team to start practice Agile methodologies by having a self-organizing team, work with user more closely and deploy the application more frequently (2 weeks spirit). • Continuously deliver the application with higher test coverage ratio (increased to 90%) with Junit5 and cucumber and automated the deployment by GitLab scripts. • Moved existing local cache to Hazelcast and partition the position message in Kafka which scales the applications. • Redesigned the reconciliation process into event sourcing structures in Hazelcast cluster which greatly reduced the computation time from an hour to 5 minutes. • Developed a support runbook with Python Jupter Notebook and Kotlin for the backend module which greatly reduced the operation error by refactor daily task into different Jupter modules.
2018-6 - 2019-3
Tradelog is a trading application that facilitates sales & trading operations for synthetic trades for order capture to pre-booking operations. • Reviewed the process with traders, which changed from manual to STP. Increased the trade volume from hundred trades monthly to few hundreds trades daily. • Redesigned the application to event based programming models by CQRS design pattern and Micro-service. It processed the trades asynchronously and completed in milliseconds. • Rebuilt the user interface from excel VBA to Web (Server push, Angular JS, ui-grid) which greatly enhanced the user experience with real time trade information. • Developed a Chabot and integrated with Symphony to buy & sell the orders automatically with FIX message and retrieve market data from Bloomberg API.
2016-10 - 2018-6
Celine is a basket trading simulation system that aggregated BnS and LnB positions and calculated exposure per trade. • Rewrote the UI in Python Jupter Notebook from excel VBA which allowed the trader to define their own set of parameters and explored the data with pandas. • Developed custom python modules (Pandas and Numpy) to support Jupter Notebook. • Use Java multi-threading and collection to do the simulation of the basket trading. • Refactor existing project with Java 8 functional programming, stream and lambda, which improved the implementation time of new feature by 30% and introduced behavior driven development which resulted in no regression errors for each release. • Performance tuning on the application by studied the slowness from Kibana, code refactoring, e.g. changed recursive to dynamic programming and GC optimization. • Worked with Traders closely, supported and provided solution to any issues in a timely manner.
2016-10 - 2018-6
4SF is a Stock Borrow and Loan System, which allow front office trading with a real-time position management and accurate trade entry tools. It automates the full trading lifecycle, inventory management and enables traders to increase the trading volumes. • Collected the requirements from traders, effectively managed their expectations, estimated the effort required and prioritized the requirements. • Integrated with internal trading system using Tibco RV, REST WebService, FIX, Bloomberg API, Reuters electron API & Fidessa, which allowed the trading desk to manage the Securities positions (Equity, ETF, Bond, SWAP) in single interface and precede Equity CA event. • Took a technical leader role to design the system architectural. Studied the tradeoff of each framework and incorporated to company system architectural. • Built Behavior Driven Development with JUnit, in memory DB H2, Cucumber, Spring Boot that provided end-to-end test coverage 90%. • Integration the application with OAuth2 & Angular JS which allowed the traders & support to manage the application based on their role. • Re-architected the existing JBoss 4/5 applications to stream base multi-threaded application (Collection streams and fork/join pool) from scratch, which outperform existing application by 200%. • Re-wrote the ant scripts into custom Unix, Python & Gradle Script in order to integrate with Bamboo, udeploy and sonar to support continuous integration. • Studied Java GC to locate the memory usage and tune the performance of the system by reduced Object Creation, for example, Object pool and pre-allocation of Object.
2015-3 - 2016-10
Flamingo is a fund management system that allows traders to manage fund subscription and redemption. User can subscribe, redeem the funds and viewed the details of funds online. • Went through all the requirements with the traders, sales and middle office. Demonstrated system new features and enhanced the system from their feedbacks. • Implemented Flamingo using Scala and Play Framework with CoffeeScript, Angular JS for the frontend. REST WebService as the communication channels between frontend and backend. • Practiced Test Driven Development, must implement the test cases for every requirement which ensured high code coverage test ratio and enabled us to deliver new, features to production each week and responded to the market in a timely manner.
2014-11 - 2015-3
Synthetic Swap System
Synthetic Swap System is a Swap Trading System that covered whole trading life cycle, from Pre-Trade (Pricing), Trade (Order Management), and Post Trade (allocation). It enabled the traders to hedge the position effectively and create Synthetic Equity position in low latency manner. • Developed automated Straight Through Process for Direct Market Access (DMA) and Regulatory Reporting with Tibco RV, JMS, JBoss, FIX protocol and Fidessa. • Transitioned team from traditional waterfall style development process with post development testing phase to an agile process based in Test Driven Development and automated testing with minor post development validation of previously run tests. • Re-architected OMS into Java 8 and disruptor patterns, which reduced the processing time of each order by 50%. • Build integration test case and test framework by implemented JUnit, XMLUnit and Spring Test Listener. Ensured high-test coverage (>90%) with Maven, Surefire, FailSafe.