Skip to main content

Command Palette

Search for a command to run...

Be a good citizen using AI in open-source and the workplace

Updated
5 min read

I am frustrated, I think a lot of people are frustrated.

This is a memo I want to share as I’ve written these thoughts in several messages and calls and pub chats.

People are ruining companies and open source.

This applies to any collaborative environment, I do not care how you use AI on your own personal hobby project. Perhaps it applies if you have users in production.

All my points apply to any work you do. This could be a PR, a config change, a new 3rd party tool, a word document, an email. All work may or may not have AI assistance these days.

Implicit trust

My primary point is that when you do work there is an unspoken agreement that you understand what you did. You also understand why you did it. What you did works, compiles, runs, works when doing basic exploration.

When you use AI to help you work - if you do not understand what it is doing, why, or have not FULLY done your due dilligence you:

  • Insult whoever you show the work (PR reviewer, email reader, customer using your app)

    • You expect THEM to do the due dillegence on behalf of you - you break things, they report it, then you vibe another solution without doing the due dillegence. you get the point.
  • Will not learn the product or grow as an asset to the company/project.

    • In the age of AI one of the benefits is that you should have more focus on product. Learn and understand the code, architecture AND business. There is no continual improvements, or human ideas that are the next moonshot for the company if you’re not at a baseline understanding what work the AI is doing for you.

    • You also are expected to learn from you mistakes - an outage is okay, but understand the root cause, and fix the culture that allowed it to happen in the first place. A vibe coded solution or feature means you will NEVER learn and are doomed to making the same mistake over and over again. As the complexity increases over time with new features, you have exponentially more outages, issues, loss of quality.

We are all guilty of taking shortcuts.

‘Oh this just changes the text on the page, I don’t need to compile’

Maybe this change was inside a YAML file and you run into the norway problem. What I mean is there are side effects of things you can never account for, no amount of ‘that is probably fine’ will get you by.

In the age before the AI boom, good citizens would do this 1% of the time.

I am now seeing the opposite - this is 99% of the time, and I am really sick of it.

The illusion of expertise

As models get better and better, they write code that looks well structured, seasoned and pragmatic. You see a PR and it looks great - merge it, then the most basic things break.

Before AI coding, you could get a rough guage of skill from looking at submitted code. Now it goes out the window.

We are moving to an engineering culture that favours personal reputation over code. Its really hard to guage if a perfect sounding patch is thought out, tested, had its due dilligence or not.

You might pull a collegue aside and ask them how to define an array in their primary language they get paid well to write - and yet there is no answer.

Do better. Do not submit code you do not fundamentally understand.

If you DO NOT understand code that agents have generated for you, you might see it as magic. You might think the model is therefore smarter than you, and as such its a perfect change. DO NOT DO THIS AT ALL COSTS.

No excuse for being spoon fed

I see it everywhere online, work chats - all of it.

People ask other people questions, without trying ANYTHING yet.

Open Source maintainers, online ‘helpful’ people or experts are NOT your unpaid personal staff engineers.

Did you even TRY to ask an agent your question?

Did you even TRY to play with the technique you’re asking about?

I’m not saying you shouldn’t ask for help, or be active in communitys - again, everything is shifting to reputation rather than code speaking for itself.

My advise is to exhaust ALL options before asking - and demonstrate what you’ve tried.

Are you submitting an LLM generated message to a human? Did you read the message before sending - or are you insulting the receiving party?

Closing loose ends

Finishing things is everything. Do not let AI get you 95% of the way there and move on to the new shiny object.

Please follow through and get it DONE. Not mostly done. Done.

You die by a thousand cuts with unfinished work.

Close the loop!


I don’t know the solution to these things, we’re seeing volume of slop, and work that is plain lazy, and its not good enough. Do better.

On the upside, for good citizens are able to self service and deep dive with no barriers easier than before.

I personally see this when I am able to fix issues inside of the Bun source code, Open Code project, OS diagnostics, remote servers, Azure configs the list goes on.

Please self reflect - its easy to fall into the traps of modern engineering, which also says that its easier than ever to stand out.

567 views

More from this blog

L

Luke Parker (Hona)

13 posts

Luke is a Senior Software Engineer, an expert in .NET and Vertical Slice Architecture. With a passion for sharing knowledge, he loves educating the developer community with thought-provoking blogs.