Greg Solo

Experienced Software Engineer

Web and Game developer. Immigrant. Entrepreneur
Competent in designing and scaling systems from ground up

Telling stories through software for 15 years,
hoping to craft a better future

Professional Skills

These are some of my tools of the trade: languages, frameworks, engines, libraries, and paradigms


TypeScript, React, Redux, Vue, Jest

Web Platform

HTML/CSS, Canvas, LESS/SASS, Animations


Node.js, Nest.js, REST API, MySQL, TypeORM


Unity3d, C#, Gameplay/AI, Unity Test Framework


ECS, CloudFront, Route53, API Gateway, Terraform

System Design

SOLID, Design Patterns, Clean Architecture


Git, TDD, CI/CD, Agile, Iterative approach


Tech Leadership, Mentorship, Consultancy, Forever Learner

Work Experience

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

Staff Software Engineer at Ro

NYC | Nov 2020-Present

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.

Lead Software Engineer at Intent

NYC | Sep 2019 - Oct 2020

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.

Lead consultant at Buildit @ Wipro Digital

NYC | Apr 2018 - Sep 2019

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.

Senior Software Engineer at ZS Associates

Evanston, IL | Oct 2016 - Mar 2018

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.

Lead Software Developer at Astrafit

Kyiv, Ukraine | Apr 2014 - Oct 2016

Led a team of developers to design, build, and maintain the real-time dress fitting tool and variety of supporting custom eCommerce services.

Lead Software Developer at Bluembo

Kyiv, Ukraine | Mar 2013 - Apr 2014

Designed application architecture and led a team of developers in building a social network.


Kyiv, Ukraine | Jan 2011 - Mar 2013

Led a team of engineers in a gamedev studio that built and published the simulator game “My Food”

Software Developer at Various companies

Kyiv, Ukraine | 2006 - Jan 2011

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!

  • All
  • Unity3d
  • Web/JavaScript
Death at the Door
Death at the Door
My project for 2022 js13kgames jam. Was a nice test-drive for my little "game engine", turned out way better than I anticipated!

View source on github
Play on
Civ 6 inspired turn-based game with procedurally generated maps
My current project: Civ 6 inspired turn-based game with procedurally generated maps

View source on github
Watch land generation in action
Tower Defense game where you have to stand tall against hoards of blood-thirsty enemies!
Queen's Towers
Tower Defense game where you have to stand tall against hoards of blood-thirsty enemies!
Play Online on Simmer
View source on github
Try to balance your character between caring for your  little sister, anger and falling into despair
Dark, emotional visual novel that tells a story of two kids trying to find their mother in the town torn apart by the war

Play it on
State Machine turned out to be quite complicated :)
Life Simulation
Inspired by Seb. Lague's simulation, I decided to build something similar. Animals get hungry, hunt, look for a partner and die with no player control
View source on github
Watch hunting demo
Prototype of a turn-based game built with TypeScript
Turn Based Game Prototype
This is a prototype of my turn-based game built with TypeScript. In my series of articles (see below) I polished it a lot but functionality is the same
View source on bitbucket
View unfinished (but more groomed) code on GH
Pirates! (3d)
This is one of these "dream too big 3d RPG" projects

Player finds themselves in Caribbeans during the Golden Age of Piracy. Gold, mysteries, treacherous sea, and incredible adventures await!
Numbers Game
This was my little challenge "Can I build a full game in 6 hours and 0 budget?"

View source on github


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

Recent Articles

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

Building a Game With TypeScript. Instant Locomotion
Building a Game With TypeScript. Pathfinding and Movement 6/7. Instant Locomotion

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
Building a Game With TypeScript. Pathfinder
Building a Game With TypeScript. Pathfinding and Movement 5/7. Finding the Path

In this installment, we are going to use Pathfinder we prepared last time and build a path on our actual Grid

Read more
Building a Game With TypeScript. Pathfinder
Building a Game With TypeScript. Pathfinding and Movement 4/7. Pathfinder

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 themselves

Read more
Building a Game With TypeScript. Graph and Priority Queue
Building a Game With TypeScript. Pathfinding and Movement 3/7. Graph and Priority Queue

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 Player

Read more
Building a Game With TypeScript. Highlighting Locomotion Range
Building a Game With TypeScript. Pathfinding and Movement 2/7. Highlighting Locomotion Range

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 recursive

Read more
Building a Game With TypeScript. Pathfinding and Movement
Building a Game With TypeScript. Pathfinding and Movement 1/7

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
Building a Game With TypeScript. Input system 3/3
Building a Game With TypeScript. Input System 3/3

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.

Read more
Building a Game With TypeScript. Input system 2/3
Building a Game With TypeScript. Input system 2/3

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.

Read more
Building a Game With TypeScript. Input system 1/3
Building a game with TypeScript. Input system 1/3

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!

Read more
Available for collaboration

Have a project in mind?
Happy to help!

- or -