Stateless Ethereum Researcher
2019 - PRESENTSelf-employed- Created a proof of concept, did extensive testing, and published research on the effects of switching from hexary to binary Patricia-Merkle tries in the current Ethereum implementation.
- Created a proof of concept, did extensive testing, and published research on different block witness formats for Stateless Ethereum (Merkle multi-proof serialization).
- Created a stateless Ethereum witness specification proposal that later became the official specification draft by Ethereum Foundation. Coordinated efforts on improving and working on this specification.
Technologies: Design, Protocol Design, Google Cloud Platform (GCP), Docker, Pandas, NumPy, Ethereum, GoTurbo-Geth Core Contributor
2019 - PRESENTSelf-employed- Rebased new changes from Go-Ethereum onto our codebase. Kept our codebase up to date with upstream within one or two weeks.
- Implemented a library for pre-processing blockchain data before inserting it to the database, resulting in up to 40x improvements in the DB insert throughput.
- Rearchitected staged sync, allowing for the writing of tests for uncommon networking scenarios like blockchain unwinds of different kinds, interruptions from the OS (like SIGKILL), and semi-consistent DB state.
Technologies: GNU Make, CircleCI, Google Cloud Platform (GCP), Docker, React, BoltDB, Lightning Memory-Mapped Database (LMDB), Ethereum, GoR&D Consultant
2019 - 2019Self-employed- Implemented MongoDB autocompletion for Metabase in Clojure.
- Implemented an ETL pipeline from a production MongoDB cluster to Amazon Redshift, making sure that we aren't transferring any PII or other sensitive information.
- Profiled and implemented optimizations for a MongoDB cluster, resulting in 99 quantile of some frequent requests to drop from 5 seconds to 0.1 seconds.
- Helped to debug and fix an issue with DNS cache poisoning of one of the telecom providers in Africa.
- Did proof of concept, research, project estimations, and risk assessment of supporting KaiOS in the client's app's portfolio.
- Developed a Kubernetes template to run Grafana and Prometheus in AWS EKS for monitoring metrics for different environments.
Technologies: Metabase, Clojure, Redshift, MongoDB, Amazon EC2, Node.js, Go, KaiOSCore Team Tech Lead
2018 - 2019Status.im- Reengineered ClojureScript based rendering of the chat formatting with Objective-C for iOS and Java for Android resulting in 50x performance improvements for long messages.
- Set up an iterative release process with releases strictly every two weeks, resulting in easier collaboration between Engineering, UX, and Marketing because the release dates were fixed.
- Handled and facilitated the bug bounty program and worked with external contributors, providing feedback, code reviews, and explanations resulting in 3x higher success rate of contributions.
- Implemented Android Strongbox and iOS keychain (encrypted by Secure Enclave) support for the "save password" feature.
- Fixed bugs and contributed to the third-party libraries that Status.im used, including React Native's Android 9 bug fixes, memory corruption in Realm.js, and various improvements to the react-keychain module.
- Improved the CI system by switching our builds to Fastlane and (for iOS) Codesigning.guide approach.
Technologies: Ethereum, Instruments, Java, Objective-C, Gomobile, Go, ClojureScript, Fastlane, React NativeOPay System Architect
2017 - 2018Opera- Implemented an independent system for tracking the outgoing vs. ingoing volume, connected to PagerDuty and a kill switch, and helped catch three misconfigured cashback promotions without losing money.
- Picked the tech stack and architected, deployed, and delivered the first public version of OPay initiative in time with a team of five people.
- Scaled OPay to 2,000,000 monthly active users and implemented HA mechanisms and optimizations that helped it to stay healthy during Christmas and Black Friday promotion campaigns.
- Prepared OPay to successully pass PCI-DSS audit and security audits. Mentored the team about secure development practices.
- Implemented the E2E test coverage of all happy scenarios in the OPay service, resulting in almost no bugs being found in the main use cases during the first six months of the service being live.
Technologies: React, Node.js, PCI DSS, PagerDuty, GitLab, Amazon Elastic Container Service (Amazon ECS), AWS ELB, GoR&D Tech Lead
2016 - 2017Opera- Developed news reader apps for iOS and Android for the Indonesian market with a team split between Sweden and China.
- Released the news reader app to the App Store and Google Play with crash rates of less than 1%. My team and I were supporting them for the first four months.
- Developed a social login (Twitter, Google, Facebook) for Opera Sync, coordinated to roll it out in three mobile browsers and a desktop browser.
- Implemented four proofs of concept for other projects and demoed them to the executives. Two of them were approved to build a market-ready version and one was released.
Technologies: Crashlytics, C++, Rx, Swift, Objective-CMobile Tech Lead
2013 - 2016Opera- Developed the new tabs UI for Opera for iOS using 3D transforms.
- Designed and implemented a performance monitoring system for mobile browsers on iOS.
- Improved the startup time of the iOS Opera Mini on iPhone 4S from nine seconds to three seconds.
Technologies: Crashlytics, Fastlane, Chromium, Objective-C++, Objective-C, JavaCTO/Co-founder
2012 - 2013Flexymind- Developed a hiring program through free education courses for graduate students. Hired the initial team of three junior engineers for ourselves and recommended six more people to other startups in the same incubator.
- Mentored the engineering team of junior developers using code reviews, lectures, and direct one-on-one feedback.
- Together with the team, released three edutainment games for children for Android within one year.
- Hired the designer/artist team and the art director. Helped coordinate work between them and the engineering team.
Technologies: Cocos2d, Android SDK, OpenGL ESTest Automation Lead (SIP protocol)
2011 - 2012RingCentral- Led and coached a team of three engineers to cover over 1,000 test cases with an SIP/RTP automation framework.
- Implemented a Python-based test automation framework to write tests for SIP and RTP.
- Conducted five trainings of the test automation framework for the outsourced teams.
Technologies: Ubuntu, RTP, Wireshark, SIP, C++, PythonFull-stack Developer
2008 - 2011Agnitum- Developed a test automation framework for testing Windows applications based on PyWinAuto and VMware vSphere private cloud products.
- Developed an automated workflow system for Jira that could have conditions. Helped to formalize and automate the whole release process, including steps for QA engineers' acceptance tests, marketing and social media releases, and developers.
- Developed the back end for a suspicious file analysis system. Optimized storage using deduplication techniques based on the file's hash values. Integrated it with local antimalware tools and VirusTotal. Created a dashboard for malware analysts.
- Developed an analytics system to funnel and organize download referrers from Agnitum's web store and show them as a dashboard in Jira.
- Implemented a crawler to find suspicious files on the internet (usually small executable files with names based on some pattern).
Technologies: C#, Perl, VMware vSphere, Pywinauto, Flask, Tornado, Python, MongoDB, Jira, Jakarta EE, JavaC# UI Developer
2006 - 2008A Russian Insurance Company- Implemented a reporting system for the insurance CRM based on Microsoft Visual Studio Tools for Office.
- Implemented the UI for the internal CRM tool, including auto-completion in multiple places that reduced the number of typos in the documents.
- Implemented an infinite scrolling collection view for Windows Forms.
- Rewrote some parts of the app in XAML/WPF, improving the render speed by 2x.
Technologies: LINQ, Subversion (SVN), Visual SourceSafe, Windows Presentation Foundation (WPF), Windows Forms (WinForms), C#Embedded Developer
2006 - 2007Baltic State Technical University- Implemented a USB HID stack for the blood monitor using macro assembler for PIC microcontrollers. That allowed us to connect this device to Windows machines without specific device drivers.
- Implemented client apps for desktop Windows and Windows CE for the blood monitor.
- Implemented a USB device driver for Windows Mobile 5.0 using HID protocol for the blood monitor.
Technologies: Windows CE, Windows Mobile, C++, C#, Assembler