ChatGPT will lie to you
7th of July, 2025
We're all new to using LLMs in our Engineering workflow. One lesson I've taken from my experience is that, ChatGPT will lie to you. So how we can we work with a tool that lies to us?
A software engineer with expertise in React, and React-Native development.
This website is my personal blog, where I catalogue things that interest me.
If you're looking to hire, or contact me, message me on Linkedin.
We're all new to using LLMs in our Engineering workflow. One lesson I've taken from my experience is that, ChatGPT will lie to you. So how we can we work with a tool that lies to us?
Web scraping is a way to collect data on webpages across the internet. See something on a webpage that you want? Take it, scrape it. This tutorial is going to use Puppeteer, a NodeJS tool specialised for web scraping, and automation.
90% of us don’t go past the first page of Google search results. From living within a career where the quality of search terms resolving your queries is a measurable correlation to your overall skills, you, the question asker, begin to embark on a journey to increase efficiency, and reduce pondering. It is either the answer, or it is not.
Us as humans tend to focus on negatives rather than positive, that’s an artefact of our monkey brains focusing on survival. Although it may feel like it at times, code review isn’t a question of survival, it should be constructive criticism to improve the codebase, and it’s maintainers.
Monorepos are a great tool to use when you have code to share across many different repositories. For example, if you have a web, and native app which can share code, creating a 'common' or 'shared' repository can keep your code DRY. Otherwise you're going to be abusing copy and paste in a way Larry Tesler won't be proud of.
We’ve all been here. You’re looking for a new job, and you’ve aced a couple of interviews. They now ask you to do a take-home technical test, no worries you think, I’m a great developer. Then you look at the test... It’s 10 hours worth of work. You cringe, you cry, you wonder if it’s worth your time.
During a release, one of the tasks you’ll need to do is bump the current version. Generally by incrementing the patch number (assuming semantic versioning). Then you’ll create a git tag, but why do we? It’s easier to read. That’s it. It doesn’t provide any hidden benefit, it’s just a more readable way to find a specific point in time of your codebase.
At the end of the day, no test is perfect, we can only aim for perfection. However we look at three different programming tests - PR review, Pomodoro timer, and the hands-off test. Then delve into the how, and why of each. Keeping in mind feedback is critical, ask the developers who took the test what they thought about it.
Now that we’re able to make promises, access the result, and handle rejection. We’re in a stellar place to start to tackle some more complex situations we may find ourselves in. Such as having a series of Promises to make, but not caring about the result. Or needing each Promise to resolve. The Promise API provides us four distinct methods...
A promise is an object which will return an asynchronous (think not at the same time) result. The classic promise use case is fetching data from a remote server. You have no idea how long it’ll take for the data to come back, you’re just promising Javascript that it’ll come, along with some code to run when it does.
Once upon a time I stumbled across an article chronicling a machine learning algorithm using the Harry Potter series as input to write it’s own chapter. Enthralled by the pure oddity of what a machine’s understanding of language and creativity turned out to be, I was intrigued to do something similar...