Freelance Software Developer (Java, Kafka)2020 - 2020Wirecard AG
Technologies: REST APIs, Hibernate, Spring, Oracle Database, Camunda BPM, Apache Kafka, Java
- Participated in the implementation of a large scale middleware project aimed to integrate multiple systems in order to streamline customer onboarding and transaction processing at Wirecard and its partners.
- Designed, implemented, and optimized all business workflows in the Camunda workflow engine.
- Integrated customer and transaction screening with an external KYC / AML system via SOAP.
- Used agile methodologies and was frequently the point of contact between the business and the entire development team.
Freelance Flutter Developer2019 - 2020Freelance
Technologies: Node.js, React, Firebase, Redux, Dart, Flutter
- Participated as an independent contractor in the implementation of the smoQuit Flutter app for iOS and Android (https://smoQuit.eu).
- Integrated Redux and Firebase in the Flutter app and managed the data using Flamelink.
- Implemented onboarding, authentication, diary, course modules, user setting etc.
Team Lead Data Engineering (Java)2017 - 2019Holidu
Technologies: Amazon Web Services (AWS), Docker, Hibernate, MongoDB, Redis, PostgreSQL, Elasticsearch, Apache Kafka, AWS Athena, AWS S3, AWS DynamoDB, AWS, Redshift, AWS EC2, Kubernetes, REST APIs, Spring, Java
- Led a team of four developers and data engineers responsible for all the user interaction data ingested by the Holidu search engine for vacation rentals.
- Designed and helped implement a tracking data pipeline utilizing Java, Spring, Kafka, DynamoDB, Redis, Flink, and producing messages in Elasticsearch, AWS S3, and Redshift. It is capable of validating, enriching and reindexing the events while maintaining the ability to pause and replay them at any stage of the pipeline.
- Optimized the property rankings for over 10 million monthly users in collaboration with the Data Science team with significant conversion uplift over the base.
- Provided access to processed data through REST APIs in order to serve some of the key website features such as property recommendations, sense of urgency, popular regions, filters, market data, and many more.
- Helped establish the use of Kubernetes running in AWS within the company as the main production environment.
- Created from scratch and maintained multiple Elasticsearch and Kafka clusters.
- Enhanced and maintained an automated bidding tool for keywords on Google AdWords based on apartment availability.
- Profiled extensively and optimized the search speed of the engine which reduced it overall by 40% with code and data storing improvements.
- Coordinated with the senior management members the vision and timeline for the team’s key objectives every quarter.
Technical Lead (Java)2014 - 2017360 Treasury Systems | Deutsche Börse Group
Technologies: XML, JSON, Financial Information Exchange (FIX) Protocol, Python, REST APIs, Hibernate, Spring, Oracle, Java
- Led a team of six developers responsible for the development of a low-latency Java (Spring) based distributed financial trading system focused on high-frequency forex trading. It started from a POC (proof of concept) but is now one of the top trading tools in 360T’s portfolio and is actively used by some of the largest corporate clients and asset managers.
- Developed a configurator of auto-execution rules for stop, limit, market, algorithm, single, and multi-leg FX orders and options.
- Connected the application to the various pricing sources including streaming and RFQ sources for automatic and on-demand execution.
- Designed and implemented role-based user access with multistep approval options.
- Integrated the possibility to create two different environments—one for asset managers and one for corporate clients. The entire application is modularized in order to allow the enabling and disabling of different functionalities.
- Designed the database schema in an append-only fashion to facilitate auditing and avoid concurrency problems.
- Oversaw project planning, estimation and implementation, stakeholder identification, and management, risk, and opportunity assessment.
- Used agile (scrum) methodology with release cycles every four-to-five months.
- Communicated handovers with the QA and support teams.
- Mentored junior developers and performed code and design reviews.
Senior Software Developer2012 - 2014360 Treasury Systems | Deutsche Börse Group
Technologies: Python, Finance APIs, REST APIs, MongoDB, Oracle, Spring, Java
- Developed, in a team, a Java-based FX pricing tool for liquidity providers. It allowed them to become market makers with the ability to keep or auto-hedge positions.
- Integrated low-latency Java-based pricing adaptors to FX market participants for receiving quotes and sending execution requests through FIX and XML APIs.
- Implemented connectors to the clients' APIs for automated deal export for both the market takers and the market makers.
- Maintained direct relationship with 360T’s clients in defining specifications and coordinating testing and sign-off procedures.
- Fulfilled the role of a site reliability engineer with tasks including production crisis management for five months.
Software Developer2011 - 2012OpenBet
- Worked in a team responsible for providing software and support to the high transaction platforms of the largest UK eCommerce websites in the sports betting and online gaming industry, Paddy Power.
- Implemented a "Top Bets" feature that displayed the most popular sports betting markets for the day.
- Implemented bet validation on the back end which ensured that it is impossible to accidentally duplicate the bets.
- Improved the data retrieval speed from the IBM Informix database by optimizing the tables and the queries.
- Maintained communication with the client during the process of defining requirements and QA phase.