Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

What about something like sql queries or Google sheets formulas with odd edge cases. I remember searching Google for 5 - 20 minutes for how to do that specific thing in SQL while with ChatGPT I can almost get the answer immediately. In even stronger constrast Google Sheets formulas. Also Regex etc.

I know SQL well enough to understand whether it looks correct, and I can immediately test it, but queries with different joins, aggregates, group bys can become difficult.

Main productivity boost is of course copilot auto complete. I usually know what I need to write, but copilot just does it faster for me. Doesn't make any off by 1 errors accidentally etc.

E.g. I know I have to write a for loop to do something with an entity, aggregate some data, I know exactly what I should write, but it's just that copilot does these 12 lines of code in 2 seconds, compared to me typing it out. And doesn't make weird typos or errors.

I do backend and frontend, even things like starting to write a component, it is able to fill in a lot of boilerplate to React code.

I start writing useEff --- and it will know what I likely want to do, will fill in rest of the 12 lines of code.

It's an enormous productivity multiplier to me.

I start writing an API endpoint, it usually knows how to do the whole endpoint based on what I name the route, and how other endpoints have been filled immediately.

All of this is quite amazing to me. Especially with side projects, I feel like I can dish out so much more.



I need to start looking into this.

Clearly, I need to add CoPilot to my VSCode setup.


Yeah, mind you I do full stack dev with popular frameworks, libraries, I think it works very well under those circumstances. If it was something like game dev with obscure libraries or libraries where API constantly gets changed with each version, it might be worse, but funny thing is that it can also reduce need for using those libraries if you just need simple functions, you might be holding them in your codebase what copilot generated, e.g. leftpad fn. It is easier now to do function leftPa... and let it finish than install the library.

So in theory if you keep fns like leftPad in your repo and it's so easy to do, it would be more future proof, secure, and flexible for the future.

You know you can write "export function le" in TypeScript and it will give you

    export function leftPad(value: string, length: number, char: string = '0') {
    return value.padStart(length, char);
}

Although this here is imperfect since it didn't add types, so still room for improvement. It didn't add types maybe because it wasn't passed the context about being in the .ts file

But I don't have to context switch to Google, or install the library just for this fn.

Or "export function capi..."

Would go to

    export function capitalize(value: string) {
        return value.charAt(0).toUpperCase() + 
    value.slice(1);
    }


Any CRUD related boilerplate, like let's say I want to do notes,

I start typing type Note = ... It will autofill the usual fields/types for me, which I can then edit to my use-case.

E.g it autofilled

    type Note = {
    id: string;
    title: string;
    content: string;
    }

And then I write const validationSchema = ...

If I have yup imported, it will give me:

yup.object().shape({ title: yup.string().required(), content: yup.string().required() });

Again, I would tweak it a bit to my usecase, if needed, and then I will write

const handleCreateNote = ...

It will give me:

    const handleCreateNote = async (req, res) => {
        try {
        const note = req.body as Note;
        await validationSchema.validate(note);
        const createdNote = await NoteService.create(note);
        res.status(201).json(createdNote);
        } catch (error) {
        res.status(400).json({ error: error.message });
        }
     }

Then I tweak it if needed, and it can create similar handlers for other CRUD actions.

E.g. here my first though is that I probably want to not use try catch, and not throw. And maybe return 422 with exact validation information.

But once I give it an example of how I want to do it, it would be able to follow it for other endpoints.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: