top | item 35356054

Command line functions around OpenAI

325 points| beigebrucewayne | 2 years ago |kadekillary.work

302 comments

order

roenxi|2 years ago

Being efficient at writing code can barely make someone a 5x engineer. A team of people who write code effectively is easy to do.

Hyperproductivity in software is all about deciding what problems to tackle. Richard Hipp isn't worried about chipotle restaurant orders in golang, he's worried about how to store data reliably. That isn't a coding puzzle that ChatGTP is likely to help with. Either ChatGTP can do the whole thing itself (not yet the case) or it is a minor productivity boost because the hard part is articulating the problem.

Writing code quickly really isn't a challenge that high performing software engineers need to tackle. ChatGTP is a cool tool, we're all going to be using things like it in a few years, it'll change everything. But it won't make any old engineer a rival to the big names in software engineering.

nkingsy|2 years ago

I briefly worked with a software engineer who was making about a million dollars a year.

I mentioned that an approach would be a lot of work. His response:

“It’s just typing. Typey typey type (makes fingers on keyboard gesture).” Absolute lightbulb moment for me.

To become a senior engineer is to realize that the code writing part is inconsequential as long as there are no technical unknowns in the work.

It’s freed me to try out huge sweeping changes just for fun and generally detach from my code. Sometimes I delete large, intricate changes so quickly and ruthlessly that my colleagues have to ask me to reopen them.

We aren’t paid to write working code. We are paid to grow harmonious systems. Working code is table stakes.

b7r6|2 years ago

I'm aware that I'm in the minority here, but I find that investing heavily in being able to type fast and handle the tools well actually changes what code I write and not just how quickly.

The faster I've gotten at moving code around, the more subconsciously willing I've been to try something with a modest probability of working out, and more importantly the easier it's gotten to throw away a draft that isn't working out and try again.

LLMs haven't made it into my coding workflow yet, but I can see how they could be useful and the trend seems to be that they'll be in most high-octane workflows at some point.

austin-cheney|2 years ago

Define “efficient at writing code”. I find that for many people this means something primitive and absurd like typing faster or remembering things better.

Being efficient in the perspective of writing new automation so you don’t have to do the same manual things again can easily make someone a 10x (or greater) engineer. This typically means writing your own tools and not hoping some third party package or framework will do it for you.

Conversely the same is true. If a 10x engineer is in an environment where they are prohibited from writing original tools they will just be average or much worse when their motivation is destroyed.

angarg12|2 years ago

I discussed my experience using ChatGPT in HN before and I was accused of being skeptical. But it isn't true at all, I think LLMs are a wonderful tool that will change software development. However I'm not worried about losing my job.

As you say, I find the act of writing code is hardly the bottleneck to my productivity. One of the best case scenarios, LLMs become the ultimate high level language. In that case, Software Engineer roles would switch from coding to more of a mix of old school Software Architect, PM and entrepreneur.

By the way, I find interesting to run the argument of "coding is not the bottleneck" in reverse. What if you design an organization so that coding is the bottleneck? How transformative would LLMs be?

nicpottier|2 years ago

I mean saying that using ChatGPT will make you one of the most elite coders in the world is a pretty high bar no?

I have been skeptical about all this, but decided to play with using ChatGPT for coding a task I had. It wasn't perfect, either in workflow or in final results but what was clear was that not adopting it will very quickly make you lag behind your peers.

I think the additive bonus is especially high for senior devs who are fast, in that those will be faster in grokking the generated code and better at guiding it to the right solution.

I guarantee you that in five years anybody who cares at all about their productivity will be using it constantly in their workflow, probably much sooner.

SkyPuncher|2 years ago

I agree with your sentiment. I've generally advanced in my career by being good at deciding what problems to solve/not solve.

The problem is many, many people are not in a position to advance that way. I've worked in startups where you're almost always given an ambiguous problem and rewarded for meaningful outcomes.

Many people are working as part of team/projects where the general problem and approach are already determined for them.

jmathai|2 years ago

Oddly, I am most productive when I have time to be slow. I make 10x better decisions about what to do, how to do it, and in many cases why NOT to do it.

This isn’t very conducive to corporate work though. It’s about timelines and features promised to customers.

I find I’m 10x more productive in the long term on projects I’m a sole developer on or when working with a small knit team. And I don’t measure that in lines of code or number of features.

I wonder if ChatGPT can help there.

furyofantares|2 years ago

> Either ChatGTP can do the whole thing itself (not yet the case) or it is a minor productivity boost because the hard part is articulating the problem.

What a ridiculous dichotomy, or course there's plenty of room in between. The hard part might be articulating the problem, but the other part takes time. Make that part not take time and you can do more of the hard part.

brundolf|2 years ago

I think code-generation is a red herring. I'm more interested in things like:

- Explanation/research ("how does this work?")

- Code analysis ("tell me if you think you see any bugs, refactoring suggestions, etc in this sprawling legacy codebase")

Things that feed into the developer's thought process instead of crudely trying to execute on what it wants

conradev|2 years ago

Even further, the big names in software engineering will likely figure out how to use these models far more effectively than any old engineer.

Fabrice Bellard is utilizing transformer models for lossless compression, for example: https://bellard.org/nncp/

Zach_the_Lizard|2 years ago

Writing code quickly may not help the mythical 10x engineer, but it might help a 1x engineer become a 5x engineer.

In relative terms, the unaided 10x engineer is now only a 2x engineer as his peers are now vastly more productive.

That's huge.

zeroonetwothree|2 years ago

> A team of people who write code effectively is easy to do.

Based on my experience, you’d be surprised how hard it is sometimes. I have a team of 10 engineers that failed to ship a basic CRUD UI after several months (and it wasn’t even close to done). Eventually it got taken over by one individual eng who finished it in two weeks.

agentultra|2 years ago

Can't agree more.

The problem isn't generating code. It's articulating a functional specification with enough precision and clarity that you can solve for the unknown, which is the program that satisfies the specification.

I agree with the conclusion that tools like ChatGPT won't be replacing programmers any time soon. And it won't be helping us to write programs until it can properly reason about the information it is trained on and prompted with. The problem with natural language is that it is often too imprecise. When you get to concurrency or optimizing data layout an LLM isn't going to understand anything about the problem space and the training data probably won't contain enough examples to produce something remotely plausible let alone good or elegant.

Writing, thinking, and asking the right questions will still be important for quite some time. We're not in the age of having a magical genie in our computers that can do all the work for us... yet.

Although using it as a procedural generation tool for fake data is nice... still not as nice as writing a property test with generators and shrink... but as a little time saver for quick prototyping, neat.

fendy3002|2 years ago

Uh no, ChatGPT is good as being a better (contextual) search engine, a rubber duck that explain code to you (which stil bad but keep improving), and a mid-level code generator junkies that can generate crud operation, unit tests or transpile code between language.

All of it will reduce mental load for senior devs and enable them to tackle more problems or more difficult problems.

kodah|2 years ago

I think reaching peak optimization as an engineer is a mix of:

- Knowing or having control of the tools you use

- Knowing what problems are most important to revenue and which are the greatest risk

- Knowing the language well enough to plan ahead without much labor

When a company I worked at mandated an IDE it took me a while to be productive beyond typing speed. When I discovered my company had support for generators, I was no longer spending forever on boilerplate REST code. When I know my test harnesses well it's easier for me to prove functionality in a smaller feedback loop.

mejutoco|2 years ago

> But it won't make any old engineer a rival to the big names in software engineering.

This stood out, so I looked it up, and it seems Richard Hipp is 61 years old. I guess it is more about the "any" than the "old". Or maybe old engineers are engineers doing it the "old way" (pre-chatgpt)?

kamaal|2 years ago

>>Either ChatGTP can do the whole thing itself (not yet the case) or it is a minor productivity boost because the hard part is articulating the problem.

Telling any AI system what to do will be the biggest problem. A lot of toy like algorithm problems can be easily stated. Stuff like inverting binary trees, sorting, and your myriad different Leetcode stuff is the easiest thing to do here.

Real world software has if/else statements peppered all over large code bases/domain logic. Lots of IO exceptions, lots of domain specific logic, all of this is nearly impossible to dictate in words. And even more you will eventually need some concrete way of describing things, which in all honesty will look a lot similar to code itself if you have to get it right.

Modifying code will likely be even more harder to describe in talk than in text.

cmrdporcupine|2 years ago

Came here to say this.

Over my career, the higher up the pay grade I went, the less actual code I was writing and the more it was figuring out what to do, what's priority, how the existing code all fits together, evaluating risk, and how to make the right surgical incisions to accomplish the goals.

Glorious and quite rare is the moment when a problem is clearly written up by a PM and the codebase is greenfield or clear enough that just pumping out code is happening and taking up my day.

Most senior software engineers are less programmer and more analyst.

dmix|2 years ago

I think the headline was being tongue in cheek. It probably generated more clicks than “5 clever examples of using ChatGPT via CLI for programming and data science”.

Still a good post and reply.

toss1|2 years ago

Yup: Privates talk skills, Sergeants talk tactics, captains talk strategy, but generals talk logistics.

Slinging code is skills & tactics at best. It can only have a small multiplier.

ericmcer|2 years ago

The most direct example of this to me is in video games, there are 10s of thousands of failed games with amazing art and coding behind them, but then weekend projects like Flappy bird, Vampire Survivors and Wordle make it big. They just were lucky enough to find the right angle, a team of 100 PHDs working 10X as long would find less success.

SuoDuanDao|2 years ago

Maybe I'm misunderstanding your last sentence - but if churning out boilerplate is something any old engineer can now have an AI do, won't it up the chances that someone previously overlooked makes a brilliant call about what problem to tackle and actually has the resources to execute on that call?

ninjapenguin54|2 years ago

Good points. I feel obligated to tell you that it is spelled, ChatGPT not ChatGTP.

quadcore|2 years ago

Indeed it's not about what you type, it's about what you don't.

BenoitP|2 years ago

I'll add that programmers don't produce code. They produce business guarantees. And their main tool to do so are:

* Understanding the value proposition as a human, often as through a conversation; often with hidden criteria that you'll have to uncover

* Making sure the code respects the value proposition. As reading other people's code takes more time than writing it, ChatGPT won't help that much here.

----

One development to this story I'm anticipating for though is connecting ChatGPT to formal proof systems, and making sure it has sufficient coverage with 'internal thoughts' that are logic-verified (by opposition to killing the problem big-data-style). Sort of like the internal monologue that we have sometimes.

I say short and medium term we're sort of ok; but I don't know about 10 years from now.

hyperthesis|2 years ago

Iteration speed helps.

That said, the real work is insight away from the keyboard.

I think your "what problems to tackle" is overlapping management or business strategy - though yes, it absolutely is the greatest multiplier.

Alex3917|2 years ago

> Being efficient at writing code can barely make someone a 5x engineer.

In a winner-take-all economy, usually the winner is the person with the ability to do something the slowest.

Not always, but usually.

germandiago|2 years ago

But if the support tool gives you the chance to iterate faster you will find the solution faster. And the bulk of every solution takes time to code.

cod1r|2 years ago

is it me or did he just misspell chatGPT 3 times and nobody noticed?

charles_f|2 years ago

I vastly read that as a wacky joke though.

senko|2 years ago

Wow. 210+ comments and maaybe 10 of those actually talk about the article!

(yes, I've read them all because I can't believe almost everyone missed the point)

The point of the article is actually neat: a small shell (Fish) script to send query to ChatGPT or DALL-E and get response back in the terminal. As a terminal user myself, this is really nice! (I rewrote it for myself in bash which I use, but used the curl command virtually as is)

The post itself is hilariously over the top (1000x c'mon), quoting 50 Cent and including statements like:

> Unfortunately, due to inflation — real and imagined, 10X just won’t cut it anymore. We need bigger gains, bigger wins, more code, more PRs, more lines, less linting, etc...

Either people really need to be pointed out the sarcasm these days, or everyone's just philosophising about the title (I'm willing to bet it's the latter).

dang|2 years ago

Yes, that's certainly the effect of linkbait titles, which is why HN's guidelines call for changing them:

"Please use the original title, unless it is misleading or linkbait; don't editorialize."

If anyone suggests a better title (i.e. accurate and neutral, preferably using representative language from the article), we can change it.

asciii|2 years ago

> everyone's just philosophising about the title

It's so easy to bait with a #x in a title, and especially when defining in terms of engineer (also an elusive term at times).

roenxi|2 years ago

> (yes, I've read them all because I can't believe almost everyone missed the point)

That says almost everything there is to say about the article in 1 comment; and even you've sent most of your time discussing the title and meta-issues.

People aren't missing the point, it just happens that programmer productivity is more interesting (hence the link bait title, I suspect). The article stands on its own without comment.

quasarj|2 years ago

I couldn't figure out how to replicate the gpt_data one, how did you replicate the "string join" part? I'm not exactly sure what it was supposed to be putting in the json. I mean, obviously the full data in the second parameter, but I'm unsure how to encode that..

ChrisBland|2 years ago

Writing code is the basic 101 of our industry. Anyone can write a loop or an if statement. With todays computing power, for most applications even poorly written code will run and will execute quite fast. What makes someone a 10x (and i hate that term) is the ability to take requirements, or better yet, a vague idea given to them by the business and turn that into software that benefits the end user and makes the company money. The 10x engineer gets to the 'why' that you are building something, not the 'how'.

daveslash|2 years ago

RE>> Anyone can write a loop or an if statement. <-- Respectfully disagree.

I had an intern a few years ago -- recent college grad in CompSci. I tried my best to lightly mentor him. One day I was talking about the diff between a compiled language and scripting, mentioned REPL. To demonstrate REPL, I opened up both the windows CMD prompt and the Chrome Developer tools. I mentioned that with a REPL like the Chrome Tools, it's trivial to do FizzBuzz in JavaScript. I explained the problem to him and asked him to take a stab at writing it. This wasn't an interview question, just a discussion and a mentoring opportunity.

He couldn't. What he said next blew me away, coming from a CompSci graduate "Oh, loops, yeah, I never quite understood those. Like, for loops and while loops - I never really got that". I asked if he meant recursion, cause that can be tricky. No - he really could not write a for loop in any language. I wasn't going to shame him and I walked him through it, but I was disappoint. ಠ_ಠ

[Edit: Spelling]

Edit 2...Before I start claiming that CompSci programs are letting students down, I have to consider that the claim that he had a BS in CompSci may have not been accurate. I did not check or verify his transcript. The more I reflect on it, I think he may have had a degree is Web Design and we got pressured to add him to our Software Eng. team because the hiring manager (and his actual mentor outside of work) passed him off as a "Web Developer". Now that I think about it... that seems more likely....Edit 3: It was driving me crazy so I dug up the resume in my inbox ... it was def CompSci, listing C++, C#, Java, and SQL as technologies and data structures and algorithms as courses taken... I'm not sure what to think...

zuzuleinen|2 years ago

"The 10x engineer gets to the 'why' that you are building something, not the 'how'."

It's a pity that our interviews are all biased towards the "how"

uncletaco|2 years ago

At what point did we stop making fun of that 10x engineer thread and started taking it seriously? Who forgot that 10x was a silly little thing that made zero sense in the real world?

lolinder|2 years ago

As far as I know the 10x number was made popular by Fred Brooks, not a meme, and it has pretty real applications:

> Programming managers have long recognized wide productivity variations between good programmers and poor ones. But the actual measured magnitudes have astounded all of us. In one of their studies, Sackman, Erikson, and Grant were measuring perfor- mances of a group of experienced programmers. Within just this group the ratios between best and worst performances averaged about 10:1 on productivity measurements and an amazing 5:1 on program speed and space measurements! In short the $20,000/year programmer may well be 10 times as productive as the $10,000/year one.

He goes on to explain that because the primary cost in software development is the overhead of coordinating minds, a company is far better off paying for just a few really good programmers than they are 10 times that number of mediocre ones. Whether or not there's such a thing as a 10x programmer in isolation, this seems pretty self-evident and valuable to keep in mind.

jrvarela56|2 years ago

There are obvious examples of 10x performers in every creative endeavor. Why would it be any different in software engineering? There are people who find bugs 10x faster than others, design stuff that's 100x easier to maintain, increase morale of a team vs being an energy drain, make changes faster without breaking stuff, etc. There are a lot of ways one can become 10x more effective than another at building software.

linsomniac|2 years ago

Some of us never did...

I often think of the Gene Hackman line in Heist: "I try to imagine someone a little smarter than myself, and I try to imagine what he would do."

It's not a level playing field, there are people who are just way more efficient and effective than the norm. Whether it's drive, focus, creativity, or knowledge (usually a combination of them), there are people who solve more problems and solve them better than average.

I don't know the literal number, but some folks are just better at it than others.

Perhaps you are just in a bubble and haven't met one?

I was at a conference once talking to a recruiter, when he stopped mid sentence and literally ran after one of these 10x engineers that had walked past.

barrysteve|2 years ago

There is some truth to the idea and most skills have a hierarchy/normal distribution/metrics/quality ranking that reveals partial insight into one's output.

John Carmack is definitely 10x or 100x (or 1000x) compared to me on low-level graphics programming, just factually, not that it says much about either of us.

But the '10x programmer' idea is soaking up and refueling some fanaticism. Let's all double down on the concept of high performance, for no particular reason we can agree on.

cryptonym|2 years ago

Unfortunately people thinking they are overall worth 10 to 1000 times their co-workers exists.

anthomtb|2 years ago

I worked with a guy who was reputed as a 10x engineer.

After about 6 months on his team it became apparent that he was very good at communicating to his management, very good at writing excess complexity into his code, and very good at preventing the developers he was leading from taking on large or impactful projects.

My takeaway was that he was more of a "turn-everyone-else-into-1/10X" developer. I jumped onto a different team as soon as the opportunity came up (as did most of the folks who worked with him).

AlwaysRock|2 years ago

The article is named after a 50 Cent album. I don't think its taking 10x very seriously.

edgyquant|2 years ago

Maybe the 10x engineer isn’t true, but I’ve worked at companies where I was on a team and my output was equal to the rest of the team combined. So if there isn’t such a thing it must mean that there are 1/10X engineers and they’re prevalent.

avgcorrection|2 years ago

The “Mythical Man Month” book mentions something about “10X” or something, not necessarily in those terms. And people think that it’s a classic book (for whatever reason).

matheusmoreira|2 years ago

Can you link to that thread? I'm having difficulty understanding how programmer productivity is supposed to be measured and compared. Can't imagine what a "10X engineer" is supposed to be. The article says a "1000X engineer" is just a person with a GPT-4 command on their terminal.

ip26|2 years ago

It seemed ridiculous on the face of it, but with time people started to find kernels of insight in the idea.

The idea itself has a certain sultry allure. That probably helped keep it wedged in the back of the mind long enough to find those kernels, rather than being immediately forgotten.

esperent|2 years ago

> First off, you’ll need an OpenAI API key. You can get this by going here and signing up.

Note that you'll also need to be from a Western country, or at least have access to both a phone number from one and a VPN. And if you want a plus subscription, you'll also need a US credit card - not stated anywhere but I've been totally unable to sign up for plus with either Irish or Belgium cards, it just immediately flashes "card declined" every time with no further info. There's about a 0.1s delay between clicking the pay button and getting that message so it's not querying my bank.

sebzim4500|2 years ago

I don't have a US credit card and a plus subscription I haven't had any issues.

FWIW I am using a UK debit card. It's hard to believe they would have reason to block cards from Belgium or Ireland.

jeanloolz|2 years ago

Signed up and subscribe with spanish card without any issues.

sebdufbeau|2 years ago

I signed up with no problem using a Canadian credit card

theelous3|2 years ago

Used an Irish card about 12 hrs ago, no problem.

jakkos|2 years ago

I used a UK card and it worked first time.

aero-glide2|2 years ago

Sign up for the api, they only start charging end of month.

irrational|2 years ago

Why are you trying to pay for it? Let procurement at your company figure it out. You wouldn’t pay for your IDE or any other tools, would you? The business should be paying for any tools they want me to use.

Madmallard|2 years ago

High level engineers solve the right problems quickly and put everything together in a resilient fashion. GPT4 may help them do that more quickly but they probably already will use copilot and templates and past project material and various generators for anything tedious.

10x engineering comes from someone who is trying to "be a better developer" actively for many years. Most people who just use the tools to create the product won't ever become that much better. They will just become more knowledgeable. It is the same as any natural skill. You can play piano for years and never really get better. Or you can try specifically to do hard work of improving your technique, theory, and performance ability directly. It will be way more emotionally taxing to do so, but the end result after years of doing this is that you're vastly better than most. Not everyone can even do this. You definitely have to be in a growth mindset and not particularly stressed emotionally at the outset and during the process.

My coworker at Amazon was just making macros nonstop for all these things he wanted to automate within his workflow. He would focus specifically on the hardest problems that we haven't solved first and everything else around it would just spring up together rapidly (I don't even know how he did this). He ended up being heavily involved with AWS and later went to Netflix.

AdityaSanthosh|2 years ago

I'm interested about the macros automation. Could you point me to any resource?

artursapek|2 years ago

I've found ChatGPT very useful as a "desk buddy" who I can turn to and ask about obscure things. It's quickly replacing my Google/StackOverflow in my workflow.

I was working on a .pkg MacOS installer and could not figure out how to get my background image @2x.png to render on a retina display. Turns out I needed to create a directory with the .imageset extension. My attempts at searching for a solution online never led me to this, but ChatGPT immediately knew what to do when I described my problem.

It's also tremendously useful as an interactive manpage. I've found it's much faster to ask ChatGPT how a complicated CLI tool works than trying to read the dense --help output to find what I need.

It can even have a conversation about A* pathfinding, and how best to implement it with different nuances. It's crazy.

I wonder how employers will handle this trend, which is happening so quickly. Is it OK for an employee to get advice on their work from ChatGPT? Is it OK to commit AI-generated code? Is it OK to show internal source code to an AI to help them find a bug or refactor it? There are security implications here, and ethical questions. I think most sophisticated companies will only adopt this kind of tech when they can self-host it, or at least have some kind of guarantee that their employees are using a dedicated, isolated model.

With that said, I'm sure many people are already making heavy use of this for their work (as are students). It's already an out-of-control phenomenon.

Aperocky|2 years ago

10x engineer obviously do not do 10x work, because 10x work usually means 10x bugs.

10x engineer cut the implementation complexity from 10x -> 1x, and then proceed to do that, while still satisfying business/product intention.

Generating 1000x code is more like being a -1000x engineer.

solomatov|2 years ago

What the articles like this miss is that we understand pretty well how ChatGPT writes code. But what about maintenance, and particularly debugging? How would it make these tasks. And we know that these things take much much more time than writing code.

blagie|2 years ago

I find ChatGPT is pretty helpful for debugging. A big chunk of debugging is missing stupid things, and for debugging, it's like having a second set of eyes.

It's almost useless for high-level design and architecture. Those tasks do take more time than writing code, but they're super-charged by rapid prototyping, which ChatGPT excels at. For example, right now, if I'm picking between three libraries, I can have working versions of my code implemented in all three in a few minutes, and built out a bigger mockup in a few hours. I can make a more educated decision from there. In the olden days, that'd be a few hours and many days, respectively.

It also does really nicely for code reviews, which results in better code. That also speeds up maintenance and, later, debugging. That's especially true in domains I'm less familiar with.

Some maintenance, it excels at. I'm the author of a major piece of open source infrastructure, which is widely used, well-architected, but every technology used is obsolete (JQuery, older Python web frameworks, legacy database, etc.). I feel like I could rewrite the whole thing in React+Node+etc. in a few weeks. There is close to zero architecture work -- it's mostly having GPT write -- or sometimes just translate -- code piece-by-piece.

I don't feel like GPT-4 obsoletes software engineers as it's used yet, but it does really raise the bar on what's possible to build.

manojlds|2 years ago

Which is why I still believe proper developers will still have jobs :)

GPT is just Spreadsheets in a way. Lot of companies had business users and SMEs create contraptions based on Excel and then when it's a hairy mess or a rube goldberg machine, there are "digital transformation" projects that are done to make them proper apps.

realusername|2 years ago

Especially that code generators are pretty old, ChatGPT is very late to the game. I see all this people spending time to create a landing page with ChatGPT whereas in reality you can just install Wordpress and it even looks nicer.

elif|2 years ago

GPT is a much better debugger than coder in my experience. It is a drop in replacement for googling random linux errors too.

"I'm getting this error <error> with the following code. Please add log statements that will test for all the things that could be going wrong <code>"

Saved me about 15 minutes yesterday. Not only does chatGPT generate the probably causes of the error, it knows how to test the code for those errors. The human doesn't even have to read the error message anymore.

krsdcbl|2 years ago

Plain and simple: Feed the code it produced back into it and ask it to modify the sections needing maintenance or changes, or just tell it the issues you're having and ask it to explain/debug them.

yosito|2 years ago

A lot of people seem to be hung up on the title and totally missing how useful this tool is. People are right that the tasks that you're having this tool do aren't tasks that a 10x (or 1000x) developer would do. But what they're missing is that this is exactly why you can use this tool to multiply your productivity. If you don't have to spend your time writing silly scripts anymore or converting JSON to yaml or whatever other yak you're shaving, your time is free to spend on other stuff, making big decisions, solving truly hard problems. And that's how you become a 10x developer.

Thanks for this article, I found it very inspiring.

californical|2 years ago

It possibly enables you to build the wrong thing, 10x faster.

Do you think the company will let you just have fun learning for the other 90% of the time that you can free up? They’ll just expect more output. Being able to write code 10x faster will likely not free your time enough to become a 10x problem solver.

ugiox|2 years ago

One can also decide to just be a https://1x.engineer

conor-|2 years ago

10x being real or not aside, if there's a 1x-type they certainly don't do many of the things in this list in my experience and certainly not:

>Writes code that others can read.

>Reads the Docs.

>Updates the Docs.

In my experience, half of the differentiation between above average and solidly "1x" or middling devs is reading documentation and obtaining a deeper understanding of the tools, language, platform they're developing on top of.

superb-owl|2 years ago

There seems to be a lot of dissenting opinion on how these tools will affect software engineering jobs.

Those of us that have deep architectural skills, are able to deal with ambiguous requirements, balance UX with technical limitations, etc, will be safe for a good while.

Those of us that were trained in bootcamps to crank out MEAN/MERN/etc apps might be in a bit of trouble.

I say this not to disparage the latter group--many are great engineers who do great, reliable work. But it's ultimately rote work, something LLMs excel at.

There is a huge tranche of SWEs who are going to become redundant soon. Lots of them gave up careers as teachers etc for a more lucrative career in tech. It's unfortunate.

lordnacho|2 years ago

Question is whether you have to go through the bootcamp stage to become an architect? Like many skills, you often start with the simple stuff.

simonw|2 years ago

AI-assisted programming tools have already increased my personal coding productivity to the point that they've made me more ambitious: I'm building whole projects that previously I wouldn't have committed to, because they would have taken too long (just past my "worth-it" threshold) otherwise.

Wrote about that here: https://simonwillison.net/2023/Mar/27/ai-enhanced-developmen...

xnx|2 years ago

I didn't believe in 10x developers until I met a 0.1x developer.

Clubber|2 years ago

I would argue there are -1x developers because regular developers have to go back and fix/refactor/rewrite the code later, thus create a net negative.

I've always been curious what people feel the baseline of a 10x is (i.e. 1x). Is it a fresh developer out of college or what?

bluGill|2 years ago

Will I get anything more out of this? As a 10x engineer I can expect to make at most double what a normal 2x engineer (1x engineers mostly get out of engineering in my experience) makes when I get to the tail end of my career.

I like to improve my engineering skills. However I also like to take nice vacations, do wood carving, play mandolin, go for long walks in the park, see my kids grow up, and all the billions of other things people do in life. There isn't time to do it all: time spend becoming better at one is time stolen from the others.

nerdponx|2 years ago

Wouldn't a "2x" engineer then be a 1x engineer, and a "1x" engineer <1x?

intelVISA|2 years ago

No point putting in more than 1x for somebody else's yacht, you have to build your own vision and sell it.

juujian|2 years ago

Don't get me wrong, this is neat. But the only reason why this works is because there is one million tutorial out there who use this data for teaching new students. The bigger issue is edge cases, stuff where there is no precedence. This output is a starting point for something, but it does not even get you 3% of the way there unless you work for a teenager who is into basketball anecdotes.

throwthrowuknow|2 years ago

It’s also trained on code and books. The knowledge is in there, it just needs more RLHF to improve its abilities. There’s a good chance it can handle those edge cases by combining the information it has in different ways.

tomas789|2 years ago

My experience with code assistant is strikingly similar to my current experience with Vim. Sometimes, it makes me slightly faster. Other times the experience breaks down spectacularly on previously simple things. And last but not least, it is difficult to get rid of it.

intelVISA|2 years ago

10x is a mindset, identifying real problems and solving them in a simple* way with novel solutions.

*most people can solve problems effectively but, imo, it takes true crafts(wo)man to solve it -simply-

It's not a skill you can grind per se, although many try that fruitless path.

usrbinbash|2 years ago

Okay, let's talk about a theoretical figure, called the "1000x novelist", a very productive author who uses advanced AI to write novels really fast. Clearly super productive, because novels get written so very fast.

Now, here is a question:

George R.R. Martin has been writing on the 6th book of "Game of Thrones", titled "The Winds of Winter" (TWoW) for over 10 years. It still isn't finished.

What do you think, which will sell more copies: TWoW, or all novels of the 1000x novelist combined?

sillysaurusx|2 years ago

The latter, of course. That’d be like pitting an army of Stephen Kings against him.

Their net worths show it: $65M for Martin vs $450M for King.

notjoemama|2 years ago

I tried chatpt and asked a few questions about doing something specific in a Rails project. It was so specific that I had already found the sources online that were avaiable. It summarized the sources into directly actionable steps. At first I thought that was odd and unhelpful, but perhaps I expected too much. So then I tried giving it a prompt about setting up the devise ruby gem in a new rails project. That's one of those tasks that it helps to be familiar woth once and you can promptly forget; you'll rarely return to authentication in the lifetime of an app after its done and secure. It again presented me with the exact actionable steps for setup. I reviewed the gem's GitHub readme and found the response to be correct.

As far as I can tell, chatgpt performs the action of finding and simplifying the information needed to take the next step forward, with caveats for a lack of understanding unless asked and the potential to be inaccurate or wrong. But that's all it does at the moment. No better than asking the "devise expert" on my team how to setup devise from memory. Kinda cool experience, but I doubt it's a titanic shift because it doesn't have the depth of sematic meaning you and I do.

Denzel|2 years ago

> As far as I can tell, chatgpt performs the action of finding and simplifying the information needed to take the next step forward [...] But that's all it does at the moment.

ChatGPT's output is certainly limited by its input. If you ask questions that can be answered by finding and simplifying information, then that's the answer you'll get. However, if you treat ChatGPT like a functioning software engineer, describe the problem space, explain the requirements, and define the boundaries, then ChatGPT will do much more. From that point on, you can ask it to explain why it chose a certain data structure, or to adjust an implementation approach, among other things.

With 15 prompts in 2 hours, I was able to pair program a novel 200-line program in Go that used AST parsing, command execution, pattern matching, file parsing, and custom data structures for specific data processing. All to solve a problem one of my teams experienced in the industry. ChatGPT wrote 99% of the code; I tweaked 2 or 3 lines because it had problems correcting an error in a regex (most likely due to the fact that ChatGPT sees tokens not characters). The code compiled, ran, and produced the exact result I wanted.

Researching, prototyping, and writing this code by hand would have taken me a few days probably. That's why the project sat on my TODO list for months

gremlinsinc|2 years ago

I often find myself delving into vendor code that is public methods but not necessarily advertised in their documentation.

I'm working on trying to figure out lang chain to basically feed it all my vendor and node module code and their respective docs, so basically hallucinating goes way down and the info is as fresh as my cron job to rebuild the langchain embeddings.

I'm doing this for laravel, filamentphp, livewire, alpinejs, vuejs, nextjs, react, svelte, typescript, and PHP docs as well, mostly just the docs... I'll probably work on limiting the info to the most important things or just docs for some of the things...

I'm then planning on having gpt agents specifically tuned to write unit tests another to write code, another to review the code another to run and validate the tests, another to model data and create migrations, etc ...

naked chatGPT can do a lot, adding custom embeddings changes it into a master of x topic and levels it up 10 fold.

eschneider|2 years ago

My money is on "die trying."

giantg2|2 years ago

"Become a 1000x engineer or die tryin"

Easy, source out your ideas and work to a team of 1000 people (aka become a subdivision manager).

Arubis|2 years ago

The 10x engineers I've met don't write 10x more or better or more well-targeted code.

They enable ten other engineers to double their output.

"10x engineers" are a leadership position, not a development position.

barrysteve|2 years ago

50c had a mil' in the bank and was still on the grind. Increased productivity doesn't mean freedom from more work.

This article is beautiful and effective. Thank you for the information!

The culture around GPT at the moment is verging on fanaticism.

When car companies close down and people lose jobs, it's sad for the die-hard followers, but most people don't care so much. This closure of trivium-level programmery is being met with a ramp up in fanaticism and repetitive doubling-down on preset views. So odd...

Zetice|2 years ago

Ok, dumb question, but does the API skip over the whole, "Thanks for asking that question, here's what I found:" stuff I keep seeing in ChatGPT when I ask it to generate non-text responses?

Even when I ask it the "generate a 10 row csv containing sample chipotle restaurant order data with headers" prompt, I get "Sure, here's an example CSV file with 10 rows of sample Chipotle restaurant order data, including headers:" at the top...

macromaniac|2 years ago

Are you using the API endpoint or browser chatgpt? I tried it 5 times via API and it works and then 2 times via the browser and it doesn't work. They are different models.

If you are using the API try lowering the temperature mb?

throwthrowuknow|2 years ago

Add: I only want the CSV, don’t describe what you are doing.

jollyllama|2 years ago

Suddenly, the wisdom of the whiteboard interview dawns on me.

asb|2 years ago

I've been enjoying using aichat for command-line chatgpt access https://github.com/sigoden/aichat (it supports both an interactive repl mode and you can invoke it with your query directly from the command line like the helper used in this article).

elif|2 years ago

Not mentioned in post this but occured to me by reading:

I think I will start changing my functional prompts to require a JSON format in responses so that various aspects of the response don't need to be manually parsed, and requests can be more reliably piped to subsequent requests.

gremlinsinc|2 years ago

> Not mentioned in post this but occured to me by reading:

> I think I will start changing my functional prompts to require a JSON format in responses so that various aspects of the response don't need to be manually parsed, and requests can be more reliably piped to subsequent requests.

that adds more characters though so maybe hits token limits faster, I was thinking about how to have better contexts then found out about langchain and creating a sort of long term memory using vector databases. still trying to figure this out, but once I do, I think it'll be amazing what I can do with it.

beigebrucewayne|2 years ago

I had other examples where I request the output in Markdown and it acts accordingly—definitely a nice feature.

noncoml|2 years ago

Am I the only one that doesn’t get it?

I tried GPT and it’s unable to write anything but the most simple code from simple requirements.

As a tiny bit of complexity and it’s lost.

Are people at work dealing with tiny code bases with well defined requirements?

fastball|2 years ago

I don't know what kinda code-bases you work on, but I think there are many more potential factors which determine how useful GPT might be besides "tiny and well-defined". I won't try to enumerate them here, but as an example if you are working in a much more / entirely functional way, you can think of your entire code-base as tiny and well-defined, even if it is composed of 1000s of functions. Can think similarly if the arch is microservices.

fwungy|2 years ago

It's often that little edge piece of script that kills productivity. Something you need but off your beaten track that takes a few hours or days to figure out. That's ai coding will shine.

m3kw9|2 years ago

Using Gpt is more like trying to get to point a to point b, it allows you to move faster, but you still need to decide what paths and modes of transports to take. So overall it could 1.5x you

ArenaSource|2 years ago

One subtle bug in your code is all it takes to go from 1000x to 0.01x

malborodog|2 years ago

Anyone know best way to punch up his function a little so it tees >> out both the q and a to a file? Like history but for chat gpt.

42throwaway5832|2 years ago

this + fish...if someone installs them via installer rather than building from source, is that a security risk? Meaning, is fish so powerful that a compromised version of fish could scrape / intercept GPT comms and either prime GPT networks or disturb them?

synergy20|2 years ago

does not work for me:

    { "error": { "message": "The model: `gpt-4` does not exist", "type": 
    "invalid_request_error", "param": null, "code": "model_not_found" } }

krsdcbl|2 years ago

gpt-4 is in closed preview right now, you'd have to register on the waitlist to use that specific model (3.5 is publicly available)

synergy20|2 years ago

change gpt-4 to gpt-3.5-turbo worked, gpt-4 api is only for beta testers and you need be on the waiting list to get approved.

I tested the scripts and they work really well, esp like the image generation script. However unlike the web-browser the scripts does not keep the context, which is not great.

is there a way for shell script to maintain context session somehow?

meindnoch|2 years ago

That's not even a 1.5x, sorry.

recursivedoubts|2 years ago

if you want a vision of the future, winston, imagine a half-wit shipping generated code they are incapable of understanding, modifiying or debugging into production, forever

zabzonk|2 years ago

while stamping on your face

electrondood|2 years ago

The 10x trope needs to die. It's unhealthy.

Lapsa|2 years ago

this is getting lowkey annoying

Dave3of5|2 years ago

Ha we'll I'm becoming a 10,000x engineer !

...

..

.

10,000x shitter !

ar9av|2 years ago

TL;DR: another ChatGPT article

vrglvrglvrgl|2 years ago

[deleted]

joenot443|2 years ago

If you want people to look at your project, make a Show HN post. Promoting your stuff on unrelated posts isn't really encouraged.

spyremeown|2 years ago

Spoilers: the future is actually kinda just ok-ish. GPT is used in almost all professions but akin to Google. Nothing really changes, we come back to these threads and articles every couple years to look back and realize how plain stupid and hopeful humanity really is sometimes.

dmix|2 years ago

Adding a major new tool that is “used in almost all professions” is a pretty big deal even if it’s only used as productivity software, which IMO is still far too short sighted of its potential (a simple chat interface is just the baby steps before we figure out all the API driven usecases).

What was the last time we could look back at old HN threads and say that? Bitcoin?

tester457|2 years ago

What you describe is a huge change.

maerF0x0|2 years ago

+1 to all the comments about deciding what problems to tackle.

My nuanced 2c on it is that every line of code you write is a liability. Part of what revolutionized pricing mechanisms was FOSS and SaaS, which are 2 strategies of amortizing the cost of development across many many people. Every line you write for your company is a line with amortization across exactly 1. So first consider the value/cost tradeoff of FOSS and SaaS to see if you can compete. 1000x might be simply glueing together a few free/cheap systems which would have cost your company quarters. Putting in nice interfaces/adapters means you can easily cut them out if they become a regrettable decision.