Using Gemini for Application development

All


Introduction

This article describes the usage of Gemini to help write code for an application like Python or JavaScript. That’s a hands-on experience with Gemini for programming for the last few weeks, writing tools (small – not large scale ones).

When discussing here, Gemini for programming, I mean almost as a Pair Programming in XP (Extreme Programming), when two developers combine efforts in one box to deliver results.

In other words, it deals specifically with AI-assisted engineering (or programming), where the user develops together with AI that assists the development, does not replace it or overlap. In this case, the decisions at a high level are given by the user, which is then complemented by troubleshooting. The ideas originate from the developer. 

This article does not specifically concern Vibe coding, which concerns the full development of an AI tool.  Neither this article nor any other discusses or implements formal verification for LLM, i.e. Vericoding in any capacity.

This approach here is purely empirical and should not be taken as more than an experiment on building applications, not large applications (disclaimer).

I will divide this article into Good Practices vs Potential Issues , see below:

Disclaimer

Disclaimer: I have not benchmarked Gemini thoroughly to statistically show its features

Good practices

  • Interact with Gemini as a same level of knowledge – not more, not less
    • Why not more: it can make mistakes, and if the user assumes it knows more than you, you won’t necessarily review the code
    • Why not less: it can omit or be verbose (over-verbose), complicating the answer, expecting a certain outcome
  • Establish rules and guidelines
    • use a certain mode
    • use certain indentation
    • use certain architectural aspects (components)
  • Establish a stable code – a version that is reliable to go back to. That’s an anchor.
  • Work with Gemini combined with GitHub – for saving and updating, versioning.
  • When getting into a local maxima – where the AI keeps guessing on a loop – you will be better-off completely disengaging and fully working by yourself.

Issues:

  • Gemini seem to forget previous code settings – after a few iterations
  • Gemini seem to omit/disregard previous code settings – let’s say: use certain environment variables
  • Gemini seem to be particularly struggling with JavaScript, and much better with Python, possibly given discussions online – no benchmark to prove this true, however.
  • Gemini is excellent in some problems, but goes into local maxima in some aspects – meaning it will get stuck
  • Gemini will rewrite completely segments even if you just add a feature
  • Gemini will omit some parts, either by mistake or not.
  • Gemini will tend to send just sections, which is convoluted sometimes on merges and comparisons.

Next steps

It sounds very exciting to boost the development of applications with Gemini, which potentializes the development speed and delivery as long as the notes above are taken into consideration.

As I understand, the tool just helps reach a path of building the application. This specific approach contrasts with a flail approach, where no specific goal is defined 

Conclusion

This article discussed Gemini for usage of application development.

We covered deploying an application in GitOps, the integration process, and troubleshooting paths. We also looked at examples of what to expect in the audit logs.

I hope this article helps you understand these tools and how they manage clusters and application deployments.

Leave a comment