About me
I’m a software engineer with extensive experience in building and architecting large-scale web applications using different software stacks. My main focus is developing the best systems that are pleasant to work with for both developers and users. As well a have comprehensive knowledge of computer science, especially in a field of programming language design, type systems, algorithms, programming paradigms, and graphics.
You can also check some of my projects on GitHub: https://github.com/PunGy.
The most notable of them is the most recent one, a low-level reactive programming library: https://github.com/PunGy/fluid.
To summarize my expertise:
- Expert knowledge of OOP, FP and Reactive Programming.
- Comprehensive knowledge of different programming languages and building
complex projects with them, from the dynamic ones, such as Common Lisp and
JS, to highly static ones as Haskell and Scala, as well as low
level languages: the C/C++ and Rust. The full list:
- Fluent: JS/TS.
- Good level of knowledge: Go, Java, Common Lisp, Haskell.
- Comfortable with: C/C++, Scala, Rust.
- Good reasoning skills, extensive experience conducting researche, writing and presenting proposals, and collaborating with coworkers to find the best solution for comples tasks.
- I possess deep knowledge and a high level of competence in the area of UI systems. I have experience writing UI for an embedded TV device and a complete, full-fledged word processor, designing it from the ground up with a small team of architects.
- Extensive mentoring experience with groups of people, conducting learning courses.
Work experience
Yandex, Senior Software Engineer
- Oct 2023 - Present
- Moscow, Russia
- TypeScript, React, Reactive Programming(custom mobx), System Architecture, Graphics.
Member of the core R&D team, leading, designing, architecting, and building from ground up an absolutely new, the most innovative and efficient word processor: can open and edit a 1000 page document even on slow computers IN THE BROWSER.
https://360.yandex.ru/business/documents/. (beta)
Achievements:
- Leading development of desktop-version with Electron. Succesfully adopted interfaces of web/online-only application to work offline with operating system and local files, so the key logic of the system is the same in web and desktop.
- Have created a very powerfull and innovative way to access the state of selection by developing a domain-specific logic “language” on top of TypeScript.
- Developed a plugin-based DevTools framework together with a platform-agnostic graphics library, to access and print information of actively running applicaiton, as well as modify it in action. Similar to Pixi.js DevTools.
- Made a super-efficient search engine that can find matches in 1 million symbols spread across a highly nested tree of nodes in less than 300ms on slow computers, with fully asynchronous 60fps typing, without indexing.
EPAM Systems, Lead Software Engineer
- Oct 2021 - Oct 2023
- Kraków, Małopolskie, Poland
- TypeScript, React, Embedded UI, Java, Lexical
1st Project: UI of the Smart-TV box. It is a large Node.JS application working on emmbedded device and form a desktop-environment and working similary to Browser.
Participation: Architect and implement abstractions for working with asynchronous actions. Improved documentation and stabilization of core modules and increased test coverage. Organized and significantly improved the usability and performance of core utils used everywhere around the project. Supported and extended toolset of bash scripts for development (connection, mounting the code, debugging). Created a benchmark library.
2nd Project: The platform for improving the security state of customer services. Allows to plan the path of security checks, flexibly allocate resources and specialists, see progress in real-time, and receive feedback with complete confidentiality.
Participation: Stabilise development process after team restructuring. Manage, prioritize, highlight, and fix tech debts. Improved knowledge sharing. Unified and refactored the code, replaced the chaotic layout with a new specialized for the project system and created dozens of new abstractions and generic components. Perform a large refactoring of generating docx reports.
Sperasoft, Senior Software Engineer
- Dec 2020 - Sep 2021
- St Petersburg, St Petersburg City, Russia
- TypeScript, React, Node.js, Java
Worked on a platform for publishing games and was responsible for developing different services: store, profile, and SSO login page; each is a separate web application created using the BFF pattern and with custom SSR. I have increased the quality of the code base by applying best practices and TypeScript, tuning and improving SSR mechanisms. In parallel, I lead the development of the custom application for managing CD processes. Migrated webpack from version 2 to 3, significantly reduced the complexity of builds and moved dev builds to esbuild; as a result, improved considerably developer’s experience.
We also developed a landing website, where each page is a different application with unique styles in one mono repository. Content is populated dynamically via GraphQL. Improved and redesigned the mono-repository architecture and added new features and complex UI elements to the custom component library.
BuildSafe Sweden, Senior Software Engineer
- Aug 2020 - Dec 2020
- St Petersburg, St Petersburg City, Russia
- TypeScript, React, fp-ts, Scala
I have improved the code quality and consistency of the UI application by merging the same functionality of different libraries, decreasing the size of bundler and dependencies.I have improved the code quality and consistency of the UI application by merging the same functionality of different libraries, decreasing the size of bundler and dependencies.
Luxoft, Senior Software Engineer
- Aug 2019 - Jul 2020
- St Petersburg, St Petersburg City, Russia
- TypeScript, React, Go
Architect and drive the development of a tool for storing, managing and creating large datasets of video data to pipe them into the neural networks further.
In general, I was responsible for the entire product development cycle and preparing the PoC prototype for CES 2020. Conducted work between teams, managed to split the product into different projects and was in charge of design unification and code re-usage.
Andersen Lab, Software Developer
- Apr 2019 - Aug 2019
- St Petersburg, St Petersburg City, Russia
- TypeScript, React
Developed the interface of a complex internal CRM system
Hyperauto, Full-stack Developer
- Aug 2018 - Apr 2019
- Vladivostok, Primorye, Russia
- TypeScript, PHP, MySQL
They were migrating an extensive web catalogue of automobile parts into a complete online store. Develop the personal account section, user management and shopping cart. Improved the database’s consistency and stability by automating finding broken store items. Migrate old parts of the system to Docker and git, automate repetitive tasks with different Python scripts
Freelance, Full-stack Developer
- Jul 2016 - Aug 2018
- Vladivostok, Primorye, Russia
Developed services and web applications on different technologies and languages with and without frameworks (React, Express, Flask, Laravel)