These are some of my tools of the trade: languages, frameworks, engines, libraries, and paradigms
Throughout the years, I have had a chance to help build many projects in different industries: entertainment, health tech, ad tech, retail, e-commerce, etc
Led a number of business-crucial initiatives, including the overhauling of an internal pharmacy management tool resulting in scoring 95% customer satisfaction rating.
Developed the strategies and designed systems across the technological stack.
Improved the stability and maintainability of the internal application responsible for the management and shipping of hundreds of thousands of highly regulated healthcare products by establishing architectural best practices, rigorously increasing test coverage, and upgrading underlying technical solutions.
Leading by example, continuously mentored and supported senior software engineers across the organization.
Architected and led the team of software engineers in the development of enterprise-level full-stack tools allowing `Intent` to target, bucket, and manage two billion annual users into 16 million configurable permutations.
Led cross-functional iterations with Product, UX, and internal stakeholders, leading the development of full-stack enterprise tools controlling billions of annual unique page views.
Evangelized best practices, convincing a 13-year-old engineering department to adopt TypeScript and Clean Architecture.
Earned a pivotal position in post-COVID-19 restructuring to develop multiple enterprise-level and customer-facing products.
Collaborated cross-functionally with delivery leads, engineers, and creative technologists to help clients evolve and make the next ambitious step in their digital journey using modern full-stack frameworks and tools.
Successfully established, led, and taught enterprise training program aimed to hire, educate, and prepare for client-facing consultancy job junior frontend developers.
Maintained and extended enterprise front-end library, created new components for various enterprise projects, trained and mentored several engineering teams in adopting best practices.
Organized company-wide training courses teaching advanced frontend-development concepts and practices.
Migrated Angular and React codebases to Vanilla JS/Web Components.
Led a team of developers to design, build, and maintain the real-time dress fitting tool and variety of supporting custom eCommerce services.
Designed application architecture and led a team of developers in building a social network.
Led a team of engineers in a gamedev studio that built and published the simulator game “My Food”
Developed innovative and rich interactive websites and apps
Allow me to share with you some of my pet and hobby projects. Don't hesitate to drop me a note if you have any feedback!
A few words from some wonderful people I have the privilege to work with
"I highly recommend Greg to any company looking for strong technical leaders who not only knock down complex problems, but who invite others into their wake, upskilling whole teams in the process."
- Isaac Woodruff Eng Manager
"I cannot recommend Gregory enough and I am certain that he will be a great addition to any company. If you have the opportunity to work with him, consider yourself lucky."
- Jimmy Muller Software Eng
"Greg has exceptional technical skills suiting his deep understanding of web technologies. On top of that, he created and led a series of training courses for developers to help fulfill the extended demand for high-skilled talent within the company"
- Lucio Codeghini Studio Lead
"He is one of those rare Software Engineers who are born to be a programmer. It was fun and productive time for us. You would be lucky to have him in your team."
- Mikhail Vazhenin Lead Software Eng
"Greg proved to be a strong leader, able to form an efficient team. He understands perfectly UI and is focused on building high-performing and stable systems. Has a strong ability to foreseeing future issues and always can provide a solution on how to avoid them."
- Yevhen Veremeiev CEO
"I never heard “This programmer is magnificent!” so often about anyone. I’ve seen programmers who were possessed by self-improving, but Greg's speed of learning and depth of the mind was a nice surprise to me."
- Paul Tyutyunnik UI/UX designer
"An experienced programmer. Builds architecture from scratch. Always dives into the needs of the customer. He follows the novelties in the programming. Willingly shares knowledge with colleagues. Talented leader, able to motivate and organize a team. Has excellent time management skills"
- Andrew Bobkov Lead Software Eng
I love sharing my ideas and findings with the community. When I have free time, I combine them into blog posts. Here are a few most recent ones
We successfully incorporated our Pathfinder but something is still missing. Our Ships... well, they don't move. In this post we are going to finally see some locomotion!Read more
In this installment, we are going to use Pathfinder we prepared last time and build a path on our actual GridRead more
The time has come for us to build our own Pathfinder. In the last post, we prepared utilities that will help us. Today we're jumping into the algorithms themselvesRead more
In the last article, we spent our time highlighting `Nodes` in configurable `range`. Our next step is calculating the path Ship can take from its current position to the one chosen by the PlayerRead more
There are many ways how we can set up a locomotion range. One of them is by introducing the idea of “neighbor”: a property of the Node that references all nearby Nodes. With this reference, it becomes very easy to determine range by recursiveRead more
Last time we spent an entire chapter crafting our own Input System. In this Chapter, we finally start to make our game feel like a game. And we will do this by allowing Ships to find their path and move along it.Read more
In the last article, we introduced OnclickComponent, an abstract class that serves as a “bridge” between notifier (GameInputComponent) and actual receivers.
Today we are going to add one such receiver to our happy family and, of course, cover GameInputComponent with unit tests.
Welcome back, reader! Last time we configured the Node entity to listen to click events on the body DOM element.
While this gave us what we wanted: a way to be notified when the event occurs, it was far from being efficient.
We can do better, and in this installment, we are going to discuss how can we refactor our code with more sound architecture.
We spent the last chapter talking about Ships: we learned how to draw them utilizing our little Render system, talked about conflicts and teams, introduced a few helpers like Color and Fleet.
But so far, the game was rather… dead. Sure, we rendered quite a few elements but our Players have no way to interact with the game. The time has come to fix this unfortunate overlook!