Evgeny Tsvigun
Verified Expert in Engineering
Ethereum Smart Contracts Developer
Saint Petersburg, Russia
Toptal member since April 19, 2018
Evgeniy is a back-end developer with over ten years of experience, specializing in big data/fast data processing and machine learning. He's always in touch with the latest advances in the industry and continuously upgrades his skill set. His toolkit is centered around functional programming and scalable analytics engines like Apache Spark. Evgeniy considers the job done only when it has been tested, documented, and deployed.
Portfolio
Experience
Availability
Preferred Environment
Slack, Docker, GitLab, Git, PyCharm, Visual Studio Code (VS Code), IDEA IDE, Linux
The most amazing...
...thing I've coded recently is a Fuzzy C-Means clustering implementation as a Spark ML pipeline, using BLAS and fully compliant with Spark ML library guidelines.
Work Experience
EVM (Solidity) Smart Contract Engineer/Architect
Voice Group LLC
- Developed Solidity contracts for exporting existing artworks to EVM-based chains like Ethereum and Polygon and collaborated on integrating those with off-chain services, which enabled the company to go multichain.
- Established and generalized Solidity contracts testing practice using the Brownie framework, contracts upgradability testing, and gas-saving techniques among the engineering team.
- Researched royalties payout techniques of widely known NFT marketplaces and prototyped a payout tracking system.
- Researched NFT minting standards and tools in Solana blockchain and demonstrated their usage.
Software Engineer
- Introduced an internal Haskell-based distributed event processing framework to the ads integrity team, which enabled us to process 100M events per second and prevent fraud in real time.
- Ported existing rule logic to the real-time runtime environment, updated existing infrastructure, and enabled the team to write new rules more easily.
- Conducted and documented ad fraud research and introduced a number of automated traffic quality monitoring rules.
- Established an automated decisions logging format suitable for communicating automated decisions to customer-facing teams and helped support teams create new customer response templates.
Lead Scala Developer
Change Dynamix
- Designed, coded, and supported microservices for the collection and aggregation of network traffic data.
- Promoted anomaly detection analysis from its prototype stage into production.
- Adopted stream processing with Spark Streaming for rule-based traffic analysis.
- Performed ML-related research and development involving distributed clustering and anomaly detection on multi-billion-sized datasets.
Software Developer
Freelance
- Built automated phone and interactive voice response systems.
- Contributed to the mass-processing of scientific publications.
- Optimized ad placement in social networks, increasing ad campaign relevance.
Lead Software Developer
smorodina.com
- Communicated with client representatives, and collected and formalized requirements.
- Provided technical leadership to a distributed team of developers.
- Established the development process and introduced Scrum to the team.
- Wrote core GIS-related server-side modules of the system.
- Performed technical screening of candidates and curated the hiring process of new team members.
Application Security Analyst
Luxoft
- Reviewed Java backend code of web applications in search of vulnerabilities.
- Consulted developers to help them avoid security-related issues.
- Performed white-box and black-box penetration testing of major product releases.
- Introduced CI tools usage in automated security audit process.
- Conducted seminars on preventing security issues in web development.
Software Developer
Grid Dynamics
- Implemented distributed pattern discovery application for genome analysis.
- Led a remote team to completion of an RIA-front-end for a risk management and decision support system.
- Automated various applications deployment to cloud platforms.
Software Developer
Deutsche Bank LTD
- Maintained and updated an in-memory distributed cache for market stock prices.
- Coordinated schema changes with remote DBA teams.
- Provided 3rd-level support of market analysis software.
Experience
Distributed Rule-based Threat Intelligence System
I acted as a lead developer of the project, my input was designing and implementing the initial POC version with Akka-Streams, designing contracts and interfaces for the incoming arbitrary code, designing and implementing the Spark based version, composing rule code examples library in Groovy, continuous requirement collection and filing tasks and requirements for project modules and accompanying tools. I am quite proud of my authorship of the initial concept and system design.
Scala Rules Updater
Spark ML-based Hybrid Canopy-Fuzzy C-Means Clustering
http://jcse.kiise.org/PublishedPaper/topic_abstract.asp?idx=253Genome Pattern Detector
Our starting point consisted of a white paper by Andrea Califano, describing potential approaches to the task.
We picked Erlang and self-written routines for cloud deployment as our tools. At the moment there were no ready distributed analytics engines to be found, so the main technical challenge was creating efficient task and data parallelization and task intercommunication.
The final result got us some well-deserved cheers from the client: it was able to take packs of human genomes ( quite long sequences compared to most bacterial genomes ) as input and had near-linear scalability, i.e. 2 EC2 instances produced the result ~1.95 times faster than 1, and the progression kept for bigger resources.
My role covered initial research, task planning, collaborative algorithm design, deploy routines and communication to the client. This particular project made me proud of my planning and communication skills.
Sidekiq-Status
https://github.com/utgarda/sidekiq-statusTravel Guide Website
https://smorodina.com/GameJutsu
https://github.com/ChainHackers/GameJutsu• State channels and highly formalized game rules definitions.
• EIP-712 signatures for off-chain game state updates.
• Session keys to allow users to skip sigining every move with their wallets.
GameJutsu is partially based on Magmo's ForceMove whitepaper, and it's aiming at being more developer-friendly and easier to use. ForceMove is a great protocol, it's all science-like and strict—i.e., it's hard to make a mistake and use it in the wrong way—but also it is harder to start using ForceMove for a less prepared programmer. GameJutsu is a bit more flexible and allows for more freedom in client-to-arbiter communication, and presumably requires less sophisticated code in game definition.
The project started as an award-winning entry at ETHOnline2022 submitted by a team of five.
Ledger Support in Bonfida Token Vesting
https://github.com/BoozCoin/token-vestingEducation
Associate's Degree in Computational Mathematics and Cybernetics
Moscow State University - Moscow, Russia
Certifications
Artificial Intelligence Nanodegree and Specializations
Udacity
IBM Blockchain Foundation for Developers
Coursera
Big Data Analysis with Scala and Spark
Coursera
Parallel Programming
Coursera
CS110x: Big Data Analysis with Apache Spark
BerkeleyX
Functional Program Design in Scala
Coursera
CS120x: Distributed Machine Learning with Apache Spark
BerkeleyX
Functional Programming Principles in Scala
Coursera
CS190.1x: Scalable Machine Learning
BerkeleyX
CS188.1x, Artificial Intelligence
BerkeleyX
Skills
Libraries/APIs
Akka Streams, Spark Streaming, Web3.js, Backbone.js, Spark ML, React
Tools
Slack, GitHub, Git, GitLab, IntelliJ IDEA, Amazon Elastic MapReduce (EMR), GitLab CI/CD, Spark SQL, IDEA IDE, Asterisk, FreeSWITCH, Bitbucket, Apache Beam, Docker Compose, Cloud Dataflow, PyCharm, Amazon Kinesis Data Firehose
Languages
Solidity, Bash, Scala, Python, Java, JavaScript, TypeScript, GraphQL, Rust, Haskell, Erlang, Ruby, HTML
Frameworks
Apache Spark, Akka, Spark, Truffle, Hardhat, Jest, Hadoop, Presto
Platforms
Blockchain, Amazon EC2, Docker, Ethereum, AWS Lambda, Linux, Arch Linux, Amazon Web Services (AWS), Oracle, Apache Kafka, Amazon Linux, Visual Studio Code (VS Code)
Paradigms
Test-driven Development (TDD), Microservices, Microservices Architecture, Functional Programming
Storage
PostgreSQL, PostGIS, Redshift, Google Cloud
Other
Ethereum Smart Contracts, Akka Actors, Non-fungible Tokens (NFT), ERC-20, Smart Contracts, DApps, EMR, Amazon Kinesis, Cryptocurrency, Software Architecture, Decentralized Finance (DeFi), Forge, Cybernetics, Akka HTTP, Parquet, Solana, Artificial Intelligence (AI), Big Data, Machine Learning, Brownie, Architecture, Bitcoin
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring