Skip to content
Go back

AI as companion

Table of Contents

Open Table of Contents

AI is a productivity tool.

Without a doubt, LLM models are productivity gain tools; they enable many people to gain new knowledge and reduce repetitiveness; of course, if the user hasn’t verified the result, it can be disastrous. In this passage, I will discuss how I am utilising LLM models to aid in learning, building, and utilizing them as my advisor, designer, offshore labour, and senior developer.

How did I see LLMs?

If you know me personally, I am not a huge fan of LLMs. Because it takes away my ability to learn or do many tasks from scratch, it helps me build muscle memory and knowledge. With that said, I also despise vibe-coding or tab-driven development; I think it is somewhat irresponsible not to check the quality of work before accepting it, like LGTM. However, I have never resisted using one.

I think LLM is a great search engine which allows users to ask a simple prompt and gather much information in one conversation, and I think LLM models are automation on steroids!

How I use it

But the problem remains the same: I don’t want to automate my thought process. I feel that tabbing to finish a line of code is taking my brain away from me. I no longer think, but accept the outcome. I hate it so bad that I always turn off autocompletion. Instead, I always go to the LLM chat and discuss the project and get guided like an advisor, then I will “pair-program” with the AI model. I have done many projects like that, and that’s how I learnt Swift and Clojure!

But soon after graduating from college, with the poor economy, I wasn’t able to land a job or an interview. I have decided to take LLM with another approach, rather than seeing it as a threat that steals my job, I now see it as an assistant.

Currently, I use it at my internship and for app development. I am using Claude Code to help discuss how to solve problems I have never encountered. For example, creating a horizontal scrolling calendar in my productivity app. I have seen a post and gist here and there, but with the help of Claude Code, it showed me how the UI is made, but there is a problem.

This horizontal calendar has a number of days hard-coded and only supports up to 3 months; this is bad. The solution I have suggested is to use a sliding window to dynamically append 2 more weeks whenever it has reached either end of the array. I put my knowledge from practicing LeetCode and combined it with Claude Code to create a horizontal calendar.

Aside from using it for UI logic, it helps to do things I am not good at. Since I am not a designer, I only know how to implement the work from a designer; now I have a designer with me. Of course, the accessibility and copywriting.

Did I just vibe code? No, I didn’t because I went through the suggestions line-by-line before implementing, and I adjusted the code. Moreover, I let it be my senior dev and taught on topics such as UI custom views, how to use the DeviceActivityMonitor Framework from Apple, and lastly, I asked it to critique my code and refactor it with me.

Do I fully trust the LLM? Hell no! When in doubt, always head over to Google and look them up or open the Swift documentation to verify it. LLM is helping me, not spoon-feeding me.

Where is it going?

LLMs are here to stay, just like a search engine and autocomplete. I believe LLMs can be a force for good, they can be a great companion for learn, for guiding, for doing errands, especially for solo dev, or less experienced developers like myself. We can outsource things we are not good at, but never outsource thinking. We, as human beings, must have critical thinking and the foundation knowledge because users don’t care about code or programming language; they care about the experience and the positive outcome of the product.

As many have said, I will be using LLMs for my work, but for leisure programming projects, I would rather learn through struggles.


Share this post on:

Next Post
Multitasking is a lie and why you need Time Blocking.