Make coding Fun again

By day I'm an engineering manager. By night, if I still have energy, I try to work on software side projects. I don't get many opportunities to work on what I want at work. The best way to keep up with the industry trends -- is to work on emerging tech, and I've done it pretty much through out my entire software engineering career. I witnessed the inception of the Internet, I contributed to open source, I published NPM modules which got pretty good downloads, and I even had an opportunity to work on my own block chain implementation from scratch. So "I've been there, I've done that". Though, there is a little side effect which accumulates over the years -- with time it's getting more difficult to find motivation to open some old code and keep refining it. This is out of the questions -- hard. And I know, I'm not the only one who feels that way. As an emerging tech, GenAI was on my radar for the past year (way too long in web years). From all the buzz on the web I started to think about GenAI as an incredibly powerful crutch for coding. Using Github Copilot for the first time was an eye opener -- I now think of GenAI for coding as a super powerful Exoskeleton. While recently spending a week in sunny LA, I finally had an opportunity to give GenAI for coding a try. I adhere to East coast work hours -- pushing myself to get up at 5:30 AM local time to be able to remotely attend my first meeting at 9:00 AM EST was hard. But... 2 pm hits in LA, and I'm free to do what ever I want. Github Copilot has a free version -- makes it a natural choice for most devs. First, I found a Udemy class https://www.udemy.com/course/github-copilot , which has the best reviews, and, started watching... This online class is only 7 hours long. Still, when it comes to consuming video information, I do have short attention span -- watching the materials at 2x forces me to stay focused, and I was able to complete my initial training in 2 evenings without feeling overwhelmed. One of my oldest active projects is a photo sharing mobile app called WiSaw, which stands for "What I Saw". I also host a simple read-only web app https://wisaw.com , which is used mostly for establishing a promotional footprint on the web, so that people can find and download the mobile app. About a year ago I started talking to ChatGPT. Q: "what do internet users think of wisaw.com and what should be done to improve the perception". A: "WiSaw offers a collection of free, authentic stock photos and videos. However, potential users should be aware of its moderate trust score and consider exercising caution when using the site."
 After all, I never intended to make wisaw.com a real app, but, at this point, I felt, it was hurting the mobile app presence more than serving the originally intended purpose of promoting it. The next question to ChatGPT Q: "Hey ChatGPT, what can be done to improve the trust score for wisaw.com" A: Improving the trust score of a platform like WiSaw involves addressing factors that contribute to user confidence and website credibility. Here are some actionable steps: Enhance Website Transparency About Page: Provide detailed information about the company, its mission, and the team behind the platform. Contact Information: Display clear and accessible contact details, including a physical address, email, and phone number. Terms and Policies: Ensure comprehensive and accessible Terms of Service, Privacy Policy, and copyright guidelines.
...
(only shown the first 3 suggestion as the most relevant). So, I have to add a top nav bar to the web app with 3 menu items. It's seemingly a simple task, right? Simple is not easy. It consists of a lot of moving parts and requires understanding of concepts like routing, page templating (headers, footers, etc...), it may require adding some additional dependencies. It's better be implemented as a responsive feature so it opens properly in any browser including mobile devices. More than trivial knowledge of HTML, JS, CSS, and how it all fits together is needed. It requires a lot of boiler plate coding and applying copy/paste design pattern. I personally would not find working on these tasks particularly challenging (read interesting/satisfying) -- this little project seems like a perfect candidate hand off to GenAI. In order to get the best of Github Copilot as quickly as possible, highly recommend watching that Udimy class. It will really help to jump start your experience and avoid wasting precious time. It will tell you about different ways of interacting with Copilot (Chat mode, vs. Inline Comments, vs. Agent mode). Different versions of VSCode support various GenAI features and have access to different AI models -- you really need to know about all this to be proficient on day one. After getting through initial dev environment setup, I started interacting with Copilot in Agent mode. Agent mode is like pair programing with GenAI. Going forward I will refer to my pair progra

Apr 26, 2025 - 22:01
 0
Make coding Fun again

By day I'm an engineering manager. By night, if I still have energy, I try to work on software side projects. I don't get many opportunities to work on what I want at work. The best way to keep up with the industry trends -- is to work on emerging tech, and I've done it pretty much through out my entire software engineering career. I witnessed the inception of the Internet, I contributed to open source, I published NPM modules which got pretty good downloads, and I even had an opportunity to work on my own block chain implementation from scratch. So "I've been there, I've done that". Though, there is a little side effect which accumulates over the years -- with time it's getting more difficult to find motivation to open some old code and keep refining it. This is out of the questions -- hard. And I know, I'm not the only one who feels that way.

As an emerging tech, GenAI was on my radar for the past year (way too long in web years). From all the buzz on the web I started to think about GenAI as an incredibly powerful crutch for coding. Using Github Copilot for the first time was an eye opener -- I now think of GenAI for coding as a super powerful Exoskeleton.

While recently spending a week in sunny LA, I finally had an opportunity to give GenAI for coding a try. I adhere to East coast work hours -- pushing myself to get up at 5:30 AM local time to be able to remotely attend my first meeting at 9:00 AM EST was hard. But... 2 pm hits in LA, and I'm free to do what ever I want.

Github Copilot has a free version -- makes it a natural choice for most devs. First, I found a Udemy class https://www.udemy.com/course/github-copilot , which has the best reviews, and, started watching... This online class is only 7 hours long. Still, when it comes to consuming video information, I do have short attention span -- watching the materials at 2x forces me to stay focused, and I was able to complete my initial training in 2 evenings without feeling overwhelmed.

One of my oldest active projects is a photo sharing mobile app called WiSaw, which stands for "What I Saw". I also host a simple read-only web app https://wisaw.com , which is used mostly for establishing a promotional footprint on the web, so that people can find and download the mobile app.

About a year ago I started talking to ChatGPT.
Q: "what do internet users think of wisaw.com and what should be done to improve the perception".
A: "WiSaw offers a collection of free, authentic stock photos and videos. However, potential users should be aware of its moderate trust score and consider exercising caution when using the site."


After all, I never intended to make wisaw.com a real app, but, at this point, I felt, it was hurting the mobile app presence more than serving the originally intended purpose of promoting it.

The next question to ChatGPT
Q: "Hey ChatGPT, what can be done to improve the trust score for wisaw.com"
A: Improving the trust score of a platform like WiSaw involves addressing factors that contribute to user confidence and website credibility. Here are some actionable steps:

  • Enhance Website Transparency
    • About Page: Provide detailed information about the company, its mission, and the team behind the platform.
    • Contact Information: Display clear and accessible contact details, including a physical address, email, and phone number.
    • Terms and Policies: Ensure comprehensive and accessible Terms of Service, Privacy Policy, and copyright guidelines.
...
(only shown the first 3 suggestion as the most relevant).

So, I have to add a top nav bar to the web app with 3 menu items. It's seemingly a simple task, right? Simple is not easy. It consists of a lot of moving parts and requires understanding of concepts like routing, page templating (headers, footers, etc...), it may require adding some additional dependencies. It's better be implemented as a responsive feature so it opens properly in any browser including mobile devices. More than trivial knowledge of HTML, JS, CSS, and how it all fits together is needed. It requires a lot of boiler plate coding and applying copy/paste design pattern. I personally would not find working on these tasks particularly challenging (read interesting/satisfying) -- this little project seems like a perfect candidate hand off to GenAI.

In order to get the best of Github Copilot as quickly as possible, highly recommend watching that Udimy class. It will really help to jump start your experience and avoid wasting precious time. It will tell you about different ways of interacting with Copilot (Chat mode, vs. Inline Comments, vs. Agent mode). Different versions of VSCode support various GenAI features and have access to different AI models -- you really need to know about all this to be proficient on day one.

After getting through initial dev environment setup, I started interacting with Copilot in Agent mode. Agent mode is like pair programing with GenAI. Going forward I will refer to my pair programming partner as simply "Copilot".

First question I asked Copilot:

  • add responsive nav bar with 3 menu items "About", "Contact Us", "Terms and Policies"

And then I was just sitting and watching Copilot navigating around my project in real-time, opening the rights folders, updating the right files. Took about 2 minutes to produce fully functional code.

Here is a transcript of my interaction with Copilot (I'm posting it as a screenshots, just because it's so cool to see the real user experience):

Image description

Image description

Image description

Image description

Ha, pretty cool!

Here are few other things I did with the help of Copilot before publishing the changes to prod:

Q: "add default imeplementation of the about page"
Note that I even misspelled "imeplementation", but Copilot was able to understand what I'm asking.
I then spent some time on fine crafting the content manually, which was the most time consuming task, but something that had to be done.

More tasks:
Q: "how to make href open in new tab"

Image description

Image description

Since I'm at it anyways, why don't I try to really make my project perfect?
Q: "fix all valnurebilities in this project"

Image description

Image description

Image description

Image description

Image description

Image description

Image description

Wow, that was quite a lot.

Q: "update the project to the latests versions of dependencies, use yarn instead of npm"

Image description

Image description

Image description

The last step was particularly cool, because it demonstrated a true power of the agent mode. In the agent mode Copilot was able to open a terminal window in VSCode, execute commands, parse the output from the results of running these commands, and prompt me (the user) what to do next! Very cool!

But that's not all.
I also have 2 published NPM modules which I have not opened in a while.
With the help of Copilot I was able to update expo-cached-image to the latest dependencies in no time, which is typically very laborious task.
With the help of Copilot I was able to convert expo-storage to TypeScript. I personally do not like TypeScript. I stated my career with strongly typed languages like C++ and Java, so introduction of TS felt like going back in time. But, since people want NPM's to not throw TS warnings, I had no problem converting my project, especially that I didn't have to do anything myself other than just sit and watch how Copilot does it for me.

Doing all these boring tasks manually would take me 2 days at least. With the help of Copilot it took 2 hours at most. Even you add 3.5 hours watching the Udimy class, 30 minutes setting up the dev environment, the productivity boost was still amazing -- more than 100%! And it was FUN watching Copilot in real-time writing code and interacting back and forth with me.

I would not expect every project to gain this much productivity with GenAI. My assumption is that the more experience you have as a software engineer -- the more gains you will be able to get from Copilot.

Engineers are rightfully worrying these days "is my job safe?". GenAI is great, but, who is going to watch over its shoulder for the quality of the code produced? How do we make sure we are not going deeper into tech debt? How do we make sure our solution is "as simple as possible, but not simpler" -- "simple is not easy"? Well, this is why pair programming and code reviews were invented in the first place. I personally not worried about my job and about the jobs of the engineers I'm working with on my team. GenAI tools are here to stay and they are opening a lot of opportunities we could not even dream of in the past.

P.S. I recently also started to use GenAI for writing work emails and documentation. Writing boilerplate code with the help of GenAI is a must. For instance, writing Unit Tests manually these days is a sin. However, working on the articles like this one, I choose to write every sentence by hand. I do admit, my writing is not perfect, and most likely never will be, but -- it's authentic, and it has a direct reflection of my personality. And I do intend to keep it this way. I do intend to keep improving my writing with every post, and the only way to do it -- is to keep writing with my own brain.