Harleen Serai
4 min readMar 12, 2024

Back To Coding

Getting back to coding has been challenging and delightful. When I got on the management bus, I didn’t think I will ever look back. But here I am, spending more time writing code than docs, and loving it! In this article I will share why and how I got started.

TL;DR

  • There is so much open source code to get you started
  • ChatGPT is a better hands-on teacher than most books
  • ChatGPT is the pair programmer that you never thought you needed
  • The sooner you start coding, the sooner your start learning
  • Dream big but start small

The longer version

Why do I want to code again? It could be because the slowdown of the past few years in tech which meant reduced management opportunities, or it could be me getting older, or it could be the hectic pace of management life. It was probably all of these things. Unlike a manager, a coder has the power to manifest what others can only imagine. Also unlike a manager, a coder doesn’t have to influence others to build for them. Through small blocks one can build lego castles! I wanted to code again to feel a sense of power. To be able to solve my own problems through available technology.

What do I want to build? The availability of Large Language Models has again opened up problem areas that existing technology couldn’t optimize further. Eg I use multiple productivity tools to stay on top of the tens of information channels that feed my household. Each productivity tool needs continued time investment, and they do not talk to each other! And instead of saving me time they create anxiety, FOMO and the general sense that I am always behind. Instead of reducing my mental load, they add to it. Leaning on another human is the best productivity hack, and that is not an option available to all esp women and parents. I would love to have a EA or better yet a CoS helping me run my household but I cant afford that. And so I decided to build myself an assistant. Here are the questions I asked myself:

  1. If I had an assistant on speed dial all the time, what tasks will I hand over to them?
  2. What data will I need to train them to do those tasks well?
  3. How do I gather that data?
  4. How do I keep my data safe?
  5. Can I build a framework/method that helps other do the same?

Where do I start?

Below are a tips on how I got started

  1. To dip my toes back in, I did a few puzzles from the advent of code. They were a lot of fun and a source of reassurance. All I had learnt is still in there.
  2. In parallel to step 1, I also started nailing down the first use case for my assistant. This can be tricky as you want to narrow down to something that will add value and is relatively easy to build. I did a few tests with ChatGPT to ensure it can do a good job with my potential prompts and data.
  3. Next, I decided on the stack I wanted to use for my assistant project. This was not straight forward and I investigated a number of technologies. Should I use Python? Rust? React framework? Maybe I should start with just training my own GPT first? In order to explore all these areas, I installed vscode and played around with a few different open source chat projects on Github (eg).
  4. My life runs on my phone, and my assistant had to run on my phone. So I decided to lean into my familiarity with iOS. It also meant that I simplified my stack to iOS (core data and other native capabilities), Swift, SwiftUI and ChatGPT API. I delayed deciding on server side technology and it’s added complexity.
  5. Swift has evolved in the last 6 years and there is big uptick in functional programming concepts. ChatGPT was a big help in learning these new concepts, nailing down the syntax and getting started quickly. I also looked at a number of open source projects on github to learn the basics like how to call ChatGPT api, how to integrate with google calendar etc
  6. Swift UI was also a bit of a learning curve i.e. the move from imperative to declarative UI building. The order of the operations on the UI element matters. It took me double the time to get a basic app up (2 textboxes and a button) but I am glad I stuck with Swift UI.
  7. It wasn’t all sunshine. I was stuck on a dependency/cocopods issue for a whole week before I reached out to a friend to help me. Lesson: It is good to have friends that are skilled in the technology stack that you decide on!

Stay tuned for my next update next month! In the meantime, I would love to hear from you if this post was helpful.

Harleen Serai

I am an engineering manger in silicon valley, passionate about good leadership and diversity in tech. I am an avid reader and my favourite genre is fantasy.