Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What's the best way to monetize actual programming?
100 points by throwaway34135 on Feb 16, 2022 | hide | past | favorite | 117 comments
I feel that I was lucky early in my career. I got a job at an early-stage startup which bootstrapped with agency-style work. I got a generous share in the company, so pumping out high quality work products very much directly contributed to my own interests. I worked a lot, but at the end I was rewarded very well for this when we had an exit.

Since then I have failed to find an incentive structure which actually rewards programming. I've worked inside of standard agile teams, and typically I can handle the tasks which management can prepare for work within a matter of a couple days if not a number of hours. I'm not incentivized to excel in these environments, since I'm not rewarded more for producing output faster than the rest of the team, and there's social consequences for making other programmers "look bad" and increasing management expectations.

In principal I would be happy to just finish my tasks, and then spend the extra time working on projects which interest me, but due to IP clauses in contracts, it's not possible to do this during the many unused work hours without causing issues.

I have tried freelancing, but it seems that most clients want to have a time commitment. So basically they want to have someone acting as an employee, but only for several months vs. a long term commitment. So the same problems arise as you have with the FTE situation.

Currently I transitioned into management, just because I was so bored having to find ways to stretch several hours of work across multiple weeks. I'm a fine enough manager, but it seems kind of silly since I have much more unique value I can add as a programmer of my experience relative to what I can do as a manager.

So basically I am a very prolific programmer, and I am capable of producing a very large amount of value per time on the keyboard. It seems like there must be some way of monetizing this skillset, but I have yet to find it.



I guess you already know, and you're asking exactly because you know.. But programming does not create value, it creates programs, which may create value..

Programming is a skill sure, but it does not create value, it creates programs.

Programs may create value, so, the valuable skill is not really being able to create a program, but being able to find some problem, whose solution creates value.

Programming may be required if the problem can be solved by a program, or if a program can solve a problem so much better or faster or cheaper that there is additional value in employing the program..

I'm a programmer, I love programming, but I'm entirely aware that actual programming is not what makes the money. If I had _the_idea_ pop into my head, I'd probably start developing prototypes, that's where my skill would be best applied at that stage.. If they showed promise, I'd likely start full-time development on it, but I'd be looking carefully for the point where I'd be able take on additional programmers and focus more on _the_idea_ and what's around that, I'd definitely hire marketing and leadership too, since those are also not my core competence.. I realize that means that my obvious core competence (programming) is unused, and that's true, my main role would be to try not to screw it up.. Nobody got rich on technical excellence, it's half the time not even a requirement for success.


A penny saved is a penny earned. Many programmers are employed to automate tasks and reduce labor requirements. That adds value to the organization. You are splitting hairs by saying "the program" vs "the programming". You are a wizard that casts spells to make people's jobs easier. What exactly that means depends on the management. Once a job becomes easier they can either pay fewer employees to do the job or they can take more clients with the staff they have. That's not my decision. My job is to add value to the enterprise by reducing labor costs.


The parent's point is that you don't make money by casting arbitrary spells, you make money by solving problems for people. You happen to solve them by casting spells, but they're not paying you for the spell, they're paying to make the problem go away.


Exactly, and the value gained by solving the problem is going to be larger than the value of the spells that did it. Nobody is going to pay more money for a program than they're going to make from having that program.


> Nobody is going to pay more money for a program than they're going to make from having that program.

Maybe not intentionally. Unintentionally, though, it happens all the time!

Like I've worked on several games for small companies that failed to find an audience and didn't sell well upon release, as well as large new initiatives for large corporations that either never fully materialized or were made to sell with a couple of clients in mind that never ended up signing the contract so those projects ended up getting discarded after the corporation had me put several months of work into them.

Thankfully I've also worked on programs that have had a lot of impact as well.


True, it was vaguely worded..

Nobody pays for software with the intention to pay more money for a program than they believe they will save or earn from the services of that program.


There are exceptions. Mostly in the realm of regulations. Sometimes you pay for programming that you simply have to do by law, even if you don't actually want it.


Except division of labor means people are paying people for the actual casting vs any other task. Therefore if you can cast the spells of 4 people that adds actual value directly.

Plenty of other things add more value, but replacing 4 or more people at 200k a pop is already significant money.


You can cast all the spells you want, it's great knowing spells.. but they're ultimately only as valuable as the problems they solve. Any old wizard can cast spells..

But knowing what to cast the spells at.. finding the thing that NOBODY ELSE IN THE WORLD thought as a target for spellcasting, that's where the money's at, that person can then get "fu" rich by casting spells OR by just paying some run of the mill wizard to cast spells. The ideaman gets the money. Sure, you can be both a wizard and ideaman, and that increases your changes, I'm just saying the idea part is the tough part, not the spellcasting.


Ideas are a dime a dozen - it's the execution, the idea, and luck that gets you rich.


Yeah but most engineers shoot to short or take to long on automating that thing. Most useful automation takes large standards bodies and decades of coordination. When we are placed in profitable companies it's easier to produced more value than you consume, but I'm not sure making another pet project that I give up halfway through necessarily is. However, I am seeing some evidence if you do build out beginnings in certain fields the knowledge and understanding of that fog of war on the experimental mediums. Think vr programming, the tooling is not great, maybe just diving in there long enough to be brought into a vc back company building out that tooling.

OP, Have you tried getting to some conferences and talking to people, seeing if you can somehow further their goals. Sometimes passion is found in enabling and enriching others with more pointed goals.


> Programming is a skill sure, but it does not create value, it creates programs.

Economic value is created when a human being spends man-hours to produce an artifact that other people need and thus are willing to pay for. Programming is a form of working, as is designing, researching, building, plumbing etc.

The artifact of programming (ie the program) is the value you create by working.

Programs do not by themselves produce value because. if that were the case we would all run "programs " 24/7 on our computers and produce infinite value. Programs help other human beings produce value by putting in the man-hours in a more efficient manner than without the program


>Programs do not by themselves produce value because. if that were the case we would all run "programs " 24/7 on our computers and produce infinite value.

Web shops, they're programs running on a computer 24/7 making money doing a job a person could do, they cost next to nothing.


Only a little bit, the idea is what creates the majority of value, not the actual work put in.

The man-hours spent are irrelevant.

If someone is doing strip mining by men with shovels, the value they create is not the price of the mined material, but the value that that material brings when it's put to good use.

If someone comes along start doing strip mining by truck and bulldozer, they will spend a fraction of the man hours, and yet create orders of magnitude more value.


With all the respect, but you've got your economics wrong. That's alright though, i don't mean to be disrespectful by saying that. The bedrock of prices is human time spent (yes there are exceptions, but they are just that, exceptions)

> If someone comes along start doing strip mining by truck and bulldozer, they will spend a fraction of the man hours, and yet create orders of magnitude more value

They only reason the truck guy would create orders of magnitude more value is that, in genreral, the rest of the people would work manually. The truck guy would sell the volume of mined materials at the market rate and the market rate is based on manual labor. The truck guy has an advantage. When everyone gets a truck though, his advantage will be lost. He will make as much money as the others and prices will drop because suddenly everyone has a truck and it cheaper to mine because way less manual labour is involved


It's entirely okay for you to have that point of view.

I disagree though, he wouldn't sell at a market rate, he would sell below, and enough below that market saturates at his own price, this either increases the market size or new markets based on the wider and cheaper availability of his product emerge.

Recognizing what to do is the most important.


Whether they would sell below market rate is subject to strategic, legal and even political factors.

However, bare in mind there are math involved here.

If the market sells 1 ton of iron for 20$ (manual labour) and I manage to get a truck I could either sell 1 ton for 20$ as the others and make more profit than them, or I could sell, let's say 1 ton for 10$. This is a strategic move that would squeeze the competition, but it means I sell more product for less money than others. It's not 100% the correct move for every company at every buisness sector.

There are even more agressive moves, selling goods bellow cost in order to squeeze out the competition. There are even less companies that can pull this off.

At the end of the day, technological advantages are ephemeral and are meant to be used (by whichever strategy) while the competition hasn't caught up yet. When the competition catches up prices inevitably fall (unless there is a cartel of course but that is another topic)


You sell 1 ton for $20, and I sell 1 ton for $10 but thereby increase the demand (for my cheaper iron) more than double, I'm not only going to outsell you in "tonnage" but also earn more cash than you. My cheap iron will make people make things out of iron like never before, things you wouldn't even consider back doing with $20 iron.

The scalability of software greatly amplifies this point.

It's not the work being done that creates value, the work must be done, sure, it can be done by anyone.. Most programmers have the technical skill to build billion dollar products, and some of them do (mostly for others), and yet, most of us are not "fu" rich, because we've not had the idea for what to build with those skills.


> It's not the work being done that creates value, the work must be done, sure, it can be done by anyone.

If you have a great idea, can you covert it to money without working? No. Maybe, you might say, you can sell it to smdy else, thus you made money. Ok. Does this person who bought your idea made any money without putting in any work? No.

I challenge you to become rich by making up a lot of great ideas and doing none of the work. Go ahead.


I can do the work, easily, but I can't come up with an _actually_ good idea, which is my point to begin with.

Work = Easy. Good idea = Hard.

Ideas are not good just because someone who has them think they're good, there are lots and lots of bad ideas, and for most of them, their owner is under the illusion that they're good.


Largely I agree with you, except that particularly in software, ideas are a dime a dozen and good executions of ideas are much harder to come by.

However, the market is full of popular, poorly implemented ideas. So I guess you're right.


Since you said "economic value" specifically, I'd have to say that the man-hours are only one of the factors that could determine value. Strictly speaking, economic value is determined by supply and demand. Man-hours are a cost and help determine the shape and position of the supply curve of a given good or service, but the demand side is almost completely independent of how much effort it takes to produce something. Instead the demand curve will be shaped the culmination of individuals' marginal utilities (the perceived value of the next additional unit of a thing) for the good or service in question. On a more philosophical note, value is entirely subjective, but the equilibrium price model is compatible with value's subjectivity and gives us a powerful paradigm for understanding why some things are more "valuable" than others


>if that were the case we would all run "programs " 24/7 on our computers and produce infinite value.

Ever heard of bitcoin mining? j/k :D


Haha, yeah I thought of it as soon as I typed the words :D I know you are joking, but seriously speaking, it is only a single class of programs out there and does not necesserily create value, most people would run that at a loss

So technically speaking, yes some programs can, under certain conditions, be ran 24/7 and make value :D


With this explanation I'm not sure how managers add value. If you asked me previously, I'd say they pick what problems we solve but since I'm apparently in charge of that as well. What do they do exactly?

The way I see it is I'm like a contractor. If you want me to put a purple roof on the house you are building, fine but don't come crying to me when nobody wants to buy it.


I think in most orgs managers are supposed to _extract_ value, not to add.

The best image could be of the relation between a singer and their manager: some singers do everything themselves, others will benefit from someone focusing on maintaining a stream of money flowing in.


I will answer you question by answering a similar question. (i.e. argument by analogy ... yes, yes, I know)

"I'm a pianist. I'm good at it. How to monetize piano playing?"

Well, first off, someone has to listen to your music. Playing for your own ears is nice and all, but if nobody else can hear your music, then it's not going to generate income.

Second, that music needs to be the kind of music that someone appreciates/needs/values. If you're into weird experimental random-generator-style music that nobody else enjoys in practice, chances are you won't be able to monetize it.

Finally, even if you manage to get good music to the ears of people who want to listen to it, it needs to be delivered in a manner that actually generates income for you. This may require a significant investment to begin with. Do you sign up with a record label? Do you create a channel and monetize via ads? Do you rely on donations? Do you create a company to manage your music?

I realise I have answered exactly zero of your question, but I think talking about music seems to make sense, and suddenly exactly the same problem with coding elicits a "yeah but...". So the point I'm making here is that there is no yeah but in reality ... all the above that applies straightforwardly to music, also applies to coding.


If you find work for a small hedge fund, writing algo-trading code, that might be one of the most satisfying ways you can monetize code.

If it's a small company, it means you'll be hands on, but also expected to work very, very hard. Compensation is directly linked to how well your code performs, this is especially true if you're in a latency-sensitive environment, like market making / HFT.

However, these jobs tend to only existing in a few locations in the world (Chicago, Boston, NY, London, Hong Kong, Singapore, and maybe a few other places), and they're rarely advertised via normal channels. You're gonna have to make best friends with some actually competent recruiters and get on their short-list, and wait for a call.

Alternative might be to look at crypto trading startups. There are a few well-funded crypto "hedge funds" out there that are attempting to develop market making strategies in that space. You may also find that a lot of exchanges, big and small, have semi-secret market making offshoots that do a lot of prop trading on their exchanges, both to keep the order books full, and to skim profits.

Sports betting is the same, a lot of market makers in that domain are secretly owned by the same people that run the exchanges.


> However, these jobs tend to only existing in a few locations in the world (Chicago, Boston, NY, London, Hong Kong, Singapore, and maybe a few other places)

This is changing as of late. I started an HFT gig a few months ago and it's 100% remote.


Would you like to describe some of your history and day to day life now? Its so far away from what I do I'm fascinated what HFT job entails.


Well, it's not really all that different from any other programming gig, just very low-level. If you have enjoyed systems or maybe embedded programming in the past, you're probably at least a decent candidate.

It's a lot of fun overall, but still, not 100% of the time, for instance you have to interact with dozens of different protocols, all of which are braindead in their own special way. People skills are also more important than a "pure tech" kind of role.

I did have some trading experience already, which probably helped but is not required. It probably did help paper over some softer spots I had on the technical side, though :)


Thank you :)


No one wants to pay you a load of money to do something you like :-)

They might pay you to do something they don't like or something that can make you a load of money. You need to get into something lucrative e.g. funded startups, Banking or any business field where they are lacking technical skills that can be applied to their particular issues.

In the past I've been involved in banking, startups, domestic utilities supply, national gas infrastructure. The work was interesting but you need to pick up the domain knowledge to become interesting to clients.

People don't want someone to do programming, they want someone to make them money or solve their problems.


If you’re that good pick a niche and go consulting. No doubt you have a professional network that can attest to your ability. Go to conferences and share war stories.

If you like that you can just keep going. There are people who charge $50,000 a week. Or you could make it known you want to confound a startup. With lots of management experience and well out of the ordinary programming skills that’s a plausible use v of your time.

Why not try FAANG/MAGMA if you haven’t before?


I concur. Consulting is probably a great path. You might not program all that much, as you'll be focused on solving the problem, but you can get paid a lot.

Here's a great playbook from patio11 on this topic: https://training.kalzumeus.com/newsletters/archive/consultin...


Thanks, I will take a look!


Thanks

Do you mean trying to get a job as a SWE inside FAANG/MAGMA? I guess my concern would be that although the pay is good, it wouldn't really solve the QOL issues. I.e. my impression is that the work isn't necessarily more interesting when you're talking about companies with thousands and thousands of developers, and if you want to advance it would have as much to do with jumping through the right corporate hoops as it would have to do with actual value creation. And I'm sure if anything the IP shackles are much much worse.

But I could be totally wrong, that's mostly speculation and maybe those companies are very good at finding ways to allocate resources to where they can produce the most value.


The IP shackles are worse, for sure, but as a single datapoint, I started a job at G a few months ago and I've very sincerely never been happier. I wouldn't say the work is profoundly more interesting than the work I was doing at other startups, but as an iOS developer, time in Xcode is time in Xcode, and thus far I don't see myself getting bored.


Are you referring to the uncle bob martins of the world who mostly do classes? Surely not 50k a week doing implementation work right?


Well that’s just the point: implementation is not worth fifty thousand dollars, but the solution to a business problem probably is.

“Consult”ing with problem-havers and working out how to make the problem go away.


> Or you could make it known you want to confound a startup.

How would one go about that effectively?


I think it's called MAMAA instead of MAGMA these days.


Honestly any 5-letter acronym will work at this point.


Alphabet shall now be know a a24z.


3 * A --> Alphabet, Apple and what's the third A?


Alcoholics


Amazon


Of course I must have had a bad day… Thanks!


Reframing your perspective may help you here. In your post, swap out all mentions of "programming" with "building construction", take a step back and try to formulate and advice for a construction builder who turned into management.

Sure enough, there are certainly many differences to be found between construction and programming. But testing the details of the method of comparison is besides the point. The idea is to do it on a high enough level which is good enough to drive a point home:

Both construction and programming happen in a broader context. There are reasons why you write code or lay bricks. e.g. you derive satisfaction from the act of making leds blink in certain patterns, you leverage your expertise to scratch your own itch e.g. build your own RSS reader, or solve a problem other people have which you think is worth your while e.g. you build a teaching platforms for students to get access to learning resources. Or in construction: school buildings, library buildings, campuses and so on.

That last part is key. Nobody is going to use code or build walls they have no need or want for. You don't get paid to erect walls or scaffold controllers. You are paid to cater to someone else's need or want. You could directly go to the consumer as a business owner; or you could do it through someone else's business as an employee.

We tend to look at technology as a separate industry distinct from other industries. But that's not exactly true. SpaceX is an aerospace business, Netflix is a movie rental business, Amazon started out (and arguably still is) a book shop. All the cool technology they have developed is subservient to core business goals which are anything but technological.

> It seems like there must be some way of monetizing this skillset, but I have yet to find it.

Looking at programming as a skillset you want to monetize in it's own right, you will always end up at consulting gigs as a freelancer or employee, doing work for disparate customers, problems, industries, etc.

Far more interesting: What's an interesting problem space I would like to get into, providing solutions, and building out a career, through my programming / management skills?


It's quite unusual to find agency work which rewards good programming. Most agency work involves adding unnecessary complexity and bugs to keep the client coming back for fixes... Then after some time the client becomes dependent on the agency... At that point you can take longer and longer to implement features to bill more and more hours. It rewards bad code. Most software agencies sell labour hours, not quality software; so they optimize for maximizing lock-in (via poorly written code and/or contracts which allow them to retain ownership over the code); this later allows them to maximize billable hours.

I've worked for companies as a software engineer where the CEO insisted on using a third-party agency to host and develop part of their software... When it would have been trivial to develop everything in-house and to host it ourselves on Amazon EC2... I told them it was a bad idea but most of these CEO types are too dumb to understand... I since learned to keep my mouth shut and let them make their mistakes. It's not my business. My goal since then is also to maximize my billable hours.


I agree that this is how the industry works, intentionally delivering garbage to be able to sell more billable hours. But is it the only viable strategy?

What would it take to compete with high quality work instead? Where your repeat business doesn't come from fixing everything you did wrong, but it comes from your reputation of getting it right the first time around?

In a market where there's a surplus of consultants but a shortage of programming problems to solve, it makes sense to milk every client you can find dry, but that's not at all the kind of market we're in. You'd make as much money doing four six-month projects for different clients as you would milking a single one for two years. Or more, since you'd get better at it with each project you complete and may be able to ask for a higher rate, whereas churning out garbage one year after the other teaches you nothing and sets you apart from nobody.


The only area I could find where this 'clean and maintainable code' approach is appreciated is in open source. In open source, it's not about money (it's rarely the primary motivator); it's about meeting goals so developers try to be extremely economical with their limited free time.

I don't think it's possible for the commercial software industry to optimize for good code so long as engineers are paid hourly and the industry has monopolistic dynamics which externalize fanaticism and internalize complacency.

To make it work in a commercial context, developer remuneration would have to be based on results (over a medium to long term of at least 6 months) and there would need to be a genuinely competitive environment where everyone has equal opportunity to prove themselves to the market (not prove themselves to management). It has to be tied to user feedback somehow. This is pretty much what happens in open source but would be hard to implement in a commercial setting.


Yes, you'd probably need to either do fixed cost projects where developers get a share of the profits, or simply giving them bonuses on completion of each project to give a financial incentive to do more projects faster. But then again each project has a marginal cost, so it may still make more sense to do as few as possible, even in a market where demand exceeds supply.

But if we're going to screw the customers, why not gold plate everything instead? Even if the developers aren't rewarded with money, doesn't that make for a much more pleasant work environment? If the objective is taking as long as possible to accomplish the task, isn't it more rewarding to build a sparkling jewel than a ball of mud? It may even be somewhat less unethical, since the customer at least gets a quality product out of it, instead of garbage.


≥ there's social consequences for making other programmers "look bad" and increasing management expectations

This isnt that serious, is it? At my previous job (a large company) we even had one so-called 10x programmer (which some people claim doesnt exists, but I saw him with my own eyes), and it wasn't such a big problem overall. He was assigned more difficult tasks or more tasks, and that was it. (Although yes, his salary wasn't 10x).


It depends of the context, as usual. It's usually not a problem for me, but sometimes I ask some of my clients that they do something technical on their part so I can continue my mission. Then someone at their IT department says it can't be done, or say it will take <very long time>, cost <lot of money>, etc.

My client arm wrestle with them for a bit, then turn back to me and ask if I can do something anyway. So I charge them to do the task that can't be done, and it doesn't take that much time or money.

But I learned to do that with gloves, and tons of ass licking, because it does make the other party look bad.


If you work 40 hours a day and you feel everyone around you is moving in slow motion and you need to fill your day with extra stuff just to give everyone else a chance to catch up then you probably aren't supposed to be working a salaried job. You are supposed to start your own company.


> You are supposed to start your own company

This is not always good advice. Maybe you suck at marketing. Maybe you suck at coming up with things people like. Maybe you suck at raising money. Maybe you don't have any network at all. You probably want either a few of these qualities to bootstrap off of, or, start off as a millionaire, before starting a company.


Maybe you have bills to pay, no generational wealth to act as a safety net, and live in a place whose social safety net has been designed to heavily favor employees of large businesses.


For the record, I don't think that's as big a deal. Aside from the generational wealth thing, which I am certain biases the founding type, some of the best founders came about because they had nothing to lose.


anecdata


How do you get the clients is my biggest issue.


All work I’ve done that earned me raises was not fed to me by managers.

I spend a few months knocking out work that’s fed to me and I use that time to understand the business and the code base and where they’re not playing nicely at a high level.

Once I understand the code and the business, I generate and argue for my own work. If I’m successful with this, the evidence of my contribution is plentiful and I get rewarded.

Pretty soon my code is legacy and my days are filled up mentoring, debugging and reviewing other peoples contributions, which effectively lets me focus on only the tricky bits and identify dev ex rough patches.

My own limited coding time is filled smoothing out the dev ex of my system. This is basically the top of the heap as far as I’m concerned. If you get bored, rinse and repeat with a larger problem space or bigger org.


Maybe you should renegotiate those IP clauses or find a new job that doesn’t have them. It seems to be the main blocker for you to do what would make you happy.


How would one sell that / do jobs like that actually exist? I'm trying to imagine the conversation where I would suggest that without the framing that I should be allowed to work on my own projects on company time because I'm not being productive with most of my working hours.


In my experience, if you find a client/company who truly values your skills and ability to deliver, then as long as your "side projects" are not a legal conflict of interest, nor getting in the way of your ability to deliver for your client, they won't care. Actually, many are interested to hear about the other things I get up to in my spare time.


I should note that you may be required to make a legal declaration about this. Depends on the size of your client/terms of contract.


I only have 5 years of experience as a dev, but I just never was offered a contract where I couldn’t create side projects on my own time and on my own equipment. I never worked for a company that wanted to have IP of everything I did. So these jobs certainly exist.

When I worked in an office, the “own time” and “own equipment” were pretty much the same, I would work at night at home on my side projects.

Now, with remote, the “on my own time” is more blurry. The OP mentions the they can deliver code quickly. I understand that they could fully deliver what their peers, bosses, PMs, company expected in less than 40 hours a week. And that would free them time to work on their project if not for the IP clauses. On a job without that IP clause, I imagine no one will care if they were working on their own project at 3pm if by 2pm they already delivered what is expected for the day.

In my case, I usually work on my own projects in the morning, sometimes I start a little bit late, but I get the job done and all is good.


> Now, with remote, the “on my own time” is more blurry.

It's definitely more blurry now but I think there was a blur without remote work too.

For example, you might work at an office and come home but then think about a programming problem you had at work at 9:30pm. Not so much sitting at a code editor but your mind is occupied with the problem and potentially you even solved it on paper so you can output the code tomorrow "at work".

Or maybe during your lunch break you're mentally churning through some problem you were stuck on 2 days ago because that's how your brain operates.

This is why the idea of working long blocks of set hours is so strange to me in this field. I often solve very complex problems when talking a walk, showering, nearly falling asleep or the second I wake up. None of this is "on the clock time" in a traditional 9-5 job but very important work happens during these after hour times -- often times it's uncontrollable because your brain has actively running background tasks that finish when they want to finish.


I’ve had at least one job where the employment agreement actually mentions intellectual-property exceptions. So, I just brought that up with the recruiter/HR person and they whipped out a form where I describe my existing project. Someone (a lawyer?) reviews it to make sure I’m not competing in the same field as the company and everything was good.


I would argue that this is likely another point in favour of switching to consultancy first - just limit yourself to, say, 3 days a week of client commitments and you should be free to spend the rest building something you think might sell.


Consulting gigs tend to be flexible with regard to side projects. Just convince them that it won't detract from your ability to get their work done, and that the IPs are distinct and have no overlap.


If you have to work slow on purpose to avoid making others feel bad... find a different job? Plenty of companies out there that need someone productive and/or don't care if one is faster or better than the others.

I mean don't take this the wrong way, but your post reads a bit like you're humblebragging about how good a developer you are. I think you know the answers to your question already.


I have had this experience inside quite a few companies by now between full-time employment and freelancing. It's entirely possible I'm just landing in the wrong companies, but if so I have yet to find a heuristic to understand which jobs would not present with these issues.

It's not my intention to brag, and in fact I am quite embarrassed to speak about this predicament publicly which is why I have posted this anonymously.


- Build your own tools to allow you to do your work faster than anybody else.

- use your knowledge to troubleshoot broken systems, companies that are in trouble are utterly price insensitive


Have you heard of a guy named Paul Graham?

Obviously the advice “start a start-up” has some caveats, but this is Hacker News, I mean this whole site/community started with the idea that “hackers” should just start start-ups, for similar reasons to this.


Similar experience

The good news is there is nearly unlimited demand for programming work. However, you have to filter it very carefully, learn how to market yourself and become very selective and specific about what you want to do.

Pick a very specific niche which is specifically designed to be highly profitable, low custom work and doesn’t involve whole cloth creative agency work (trust me; you don’t want it).

Strongly recommend finding a simple, repeatable system or workflow that allows you to constantly come into contact (in a valuable, engaging way) with your target audience (people who are going to pay you to do stuff).

This can be a podcast, community, dinner series, workshop, roadshow, summit you organize. The objective is to make it valuable for you to be constantly reaching out and getting in touch about something OTHER than selling that person your services.

I also recommend designing or developing your own IP. Create your own stack or best practices, turn that into a brand and go promote it. Try to only get work applying that exact stack. You don't want a disconnected stream of random work with no narrative. You want to anchor your consulting work or business in some fixed constraints so it becomes repeatable.

Furthermore, you should be very specific about what work you want. You probably don't want to be doing end-to-end full stack "from zero" development. You would be better off applying some repeating system, taking over maintainance of running systems or selling your own IP.

Find a community or start one where your target market hangs out and make yourself useful, visible and valuable. Learn how to select clients and stack retainer revenues. Quality over quantity.


Interesting. Which route did you decide to take?


It’s very difficult to get paid a multiple of your colleagues in the same role even if you’re multiples more effective. It’s more possible to command a high day rate as a consultant, so long as you can give people confidence you’re able to deliver.

Another option is fixed price, fixed scope builds. You price in line with the rest of the market, then build it fast and pocket the profit.

Both of these, however, require a lot of work that is Not Programming. You’ll need do some sales, some client management, some project management, etc. That’s the gig, but these things can be fun too.

The big factor is that you’ll be 100% exposed as to whether the high volume of code you’re putting out is all truly effective. Your clients on the above kinds of projects don’t care how much code you wrote and they may never see your PRs. They care if their thing does what they wanted it to do. You have to deliver value, not just code. That can be exhilarating, just make sure you’re ready for it.


What is stopping you from selling projects (instead of your time) as a freelancer? E.g. you agree on a price and date for you to deliver software X with features A,B,C ? If you finish the job quickly, you can run multiple such projects in parallel, thereby earning a multitude of what someone slower would earn.


Join an open source consultancy like Igalia, Collabora or RedHat. There is basically infinite work in open source.

PS: some resources: https://github.com/fossjobs/fossjobs/wiki/resources


I would advise working for a small company. Small company's usually have a backlog of unrealized dreams and if you're careful you can take on extra projects which interest you. Small company's have plenty of downsides like lack of clear career path, lack of HR resources (like guidance on how family leave works), lack of clear roadmaps, etc. but flexibility is an upside and that can help you keep your job in the role you want.

Just my two cents, coming from someone who has worked mostly for small companies but often observed big companies through the lens of a consultant.


Can you elaborate on "very prolific programmer" and "very large amount of value per time on the keyboard"?

On an agile team once, I was anticipating a vacation before a larger project came up and for whatever reason I completed a bunch of work tasks in a couple days. The PM at the time had said that work was supposed to last the team a couple weeks before the larger project kicked off. So I get the social/team consequences of just pumping out a lot of quality work. That work mostly languished until my return because nobody really had time to oversee it getting thru the process to being deployed to production.

As you know there are a lot of other elements than programming needed to deliver a software product. Analogies usually fall down with any close inspection but I'll use one here. If we replace software development/programming with house construction/wall assembly and someone was very prolific with wall assembly and wanted to monetize that skill-set it sounds kind of odd. Usually someone would be a carpenter and be able to work on walls, staircases, trim work, roof trusses, decks, etc. Someone prolific with just wall assembly skills can't really build a house for a company where it is safe and profitable and it doesn't really make sense to have someone like that on staff because they are doing a very narrow part of the overall job.

The software development job market doesn't really work that way either where a specific skill, like time on keyboard and programming, is an entire job by itself.


"The software development job market doesn't really work that way either where a specific skill, like time on keyboard and programming, is an entire job by itself."

I think this varies a lot. I can be as prolific I like to in my current role, but our team is a bit of a "special case" in the sense we are all acting as individual contributors in a number of mission critical core libraries. For me the dev cycle is mostly about programming, closing tickets, updating unit tests, and releasing. We deploy modules to products, but don't have production systems ourselves. If bugs emerge in production they return to our desk for fixing, but the interval between doing a release in project X does not stop me from progressing in project Y.

I guess we are chugging quite a lot of added value for the org - it's not obvious from the paycheck, but the environment is surprisingly low pressure (we try to hire only high performers hence everyone is trusted). Low pressure from the point of view I can work at the exact velocity I like, that is, and have not heard complaints so far.

The whole setup was "instigated" by a few high performing programmers in the org years ago and since it has produces continuous value ever since I suppose nobody wants to change it much. I presume this is quite atypical, though.


If you are actually so prolific of a programmer and no one around you can keep up, you are probably in the wrong type of company. If you want compensation for your work, look into an Algo-trader or HFT finance shop. They pay vast amounts of money for prolific programmers that are able to output large amounts of high quality code. FAANG as well, but they have a lot of people working on normal crud apps to. The top end finance shops pay a lot to work on hard problems.


Hah, I hear you, and the funny thing is the more I get paid the less I feel they keep me busy. My first job was by and large the most stressful.

Sometimes we'll get an interesting bug that requires a pretty involved deep-dive, but I definitely spend a lot of time twiddling my thumbs, too.

I've heard with WFH, some devs are multiplexing multiple jobs simultaneously. Seems effective, if not somewhat unethical and potentially stressful if one job suddenly requires a massive time investment.


Have you read Developer Hegemony by Erik Dietrich?

I wish I could tell you it has the full solution to your problems. I don't think it does, but it's well worth the read, because it does such a good job at mapping out the problem space that we have.

His proposed solution is to form what he calls "efficiencier firms", software consultancies that work from a directive of making the client's business more efficient, rather than working from specs like "this button should be blue". I think that's indeed how software developers should operate, but I don't see how you sell that idea to clients, who like you said, expect someone they can treat like an employee and just tell them to shut up and make the buttons blue. They'd take a very big risk to give you money and wait and see what you come up with.

There's also the problem of execution. We have to get a reputation for consistently successful software projects on time and on budget. Which I think is possible given all the tools and literature, but I feel most developers are never get good at it because they are stuck on a few death march projects for their entire careers.


I think algorithmic trading (Stocks, Crypto, NFTs) is about as close as you can get to being paid for raw programming. You can arbitrage anything in demand, like game consoles and shoes, by using your programming skills to spot opportunities and snipe inventory. There are a lot of new p2e games that I think you might be able to apply programming skills to. You can build a small sass or tool that interests you.


I am actually in a similar situation. I work at a big, well known and well paying company (so the salary itself is not the issue). I am just so much more productive as everyone else, for instance it happens often that I produce a lot and then feel like I am overloading my team-mates with pull-requests etc.

What I am struggling with most is that I don't have any incentives to give my best and I'm oftentimes simply bored, because there are not enough high visibility projects for me to work on. I've tried picking-up bits and pieces that are left behind and need to get done, but this does not create any visibility for me and is not valued by others. And I am too tired of stretching things out just so that I have something to do during the week. So like OP I would also like to find a way to be paid for projects and not the time I put into implementing them.

I would be happy to connect with anyone else in a similar situation, email is in the profile.


Three options spring to mind:

- Start your own company, either products or services

- Join a startup that is generous with equity, as an early employee

- Join a worker co-op (not that many of these generally, but IME they're overrepresented in software)

You basically want skin in the game, from the sounds of it, and employment generally doesn't offer this (intentionally).


I've never heard of a worker coop. That's an interesting idea. Are there any software ones that are especially well known?


I don't believe so, because pretty much all of the household-name software companies are VC-backed and worker coops are not equity-based so they don't get VC backing; as such, they tend to be SMEs. I've known a couple of people who founded worker coops though.

There's a list of coops here that I just found: https://github.com/hng/tech-coops


A salaried remote job is perfect for your skillset. You can get FTE market rate, but have plenty of leisure time.

You can try to convert they leisure time into more money, but I'd recommend putting it into yourself and something you enjoy. It's like halfway being "retired" while still making big money.


If you feel so underutilized maybe you're at the wrong company. The concept of the "10x programmer" has been widely discussed and according to conventional wisdom it is just the sort of unicorn that the FAANG's are supposed to be eager to hire and willing to richly reward.


I've been in similar situations (without the early career exit) but never resorted to stretching out a days work into weeks--that sounds mind-numbing. Instead I would sometimes find creative, challenging ways to get the job done in a more 'complete' or exhaustive/automated manner.

But anyway getting to the core question. Without venturing on your own, working at a large company with strong technical leadership and a deep individual contributor (IC) career path has been my approach. Note that the 'individual' isn't the kind of solo 10x dev, but more like some of that AND the ones that level-up teams and the company. I tried at smaller startups but 'top-out' in around 2-years and either have to go into management or another company.


Dude, first fix your humility problem. I don't understand why people here give you any advice besides: "stop thinking of yourself as a half god".

Ever heard of team playing? You basically want to scratch your balls because you finish tasks faster? wtf?


I was thinking today about programming as I'm onboarding at a new client right now and coming up to speed with their product/codebase.

Programming is so little about typing code, at least if done right. It is really about making decisions: product/api design choices, system architecture choices, code organization and patterns, etc.

The actual typing of code can be done by anyone who can follow clean examples and operate development tools. This arguably should get automated away someday.

IMO, the best way to monetize good development skills is to float between product and tech lead -- not actually writing much code.


I am incentivized by the software that is to be built and not by the money offered. I feel that if someone is motivated by money to create software we will just end up with more Microsoft and less Linux.


If someone is going to tell me what software to write then they are going to pay me for it. That’s what “work” is for.


my take on this: if someone makes money from my work I feed I should get a fair share...


Do regular SWE jobs not pay enough for you? I don't understand the point of this question at all. Join an early stage startup and negotiate for a bunch of equity.


Find another company to work for. Not making people look bad for being less productive is absurd, and there will be many high performance teams where that is not an issue. Shoot for more prestigious companies, and there will be rewards for productivity. Either that, or find an early stage startup where you can help set the tone and culture.


Team up with someone who knows a valuable business well, and who can inform you about what problems to solve with your code?

It seems you have a much-needed talent, but software is only half of software business; find your complement (some people use meet-ups, others MBA programs to meet their co-founders).


Consider startups. The pay is worse but you actually get to work hard instead of doing pretend work.


We’d hire you at my family office, and cheerfully pay per project if you preferred. Or hourly + some upside, depending on the project. Drop me an email if you’d like. Tech stack that is most needed: JS, Rust, and devops skills.


There's also the "I have 6 jobs, I am becoming a millionaire" route.

[0] https://news.ycombinator.com/item?id=30352322


Bug bounty sites? I have no personal experience with them but sounds like what you want in theory.

Update: Sorry I guess "bug bounty" isn't the right term. I meant sites like bountysource.com


Build a project which can give out value to other people, that way it will benefit and help people in which if they find it useful, they will pay for it.


How about creating some software/systems that are subscription based? With growth of user base there will for sure be new feature requests.


What about gig work? If you can do it super fast, you can take a lot of jobs at the same time and multiply your earnings.


I guess part manager part coder would be a good fit. Work along side those you assign tasks to.

edit: work from home?


You could write and sell an info product. For more ideas on business/tech: https://cxo.industries


Maybe working at a prop trading firm?


Definitely. If you have the skills, working in a strong fund is the best way to get pay that scales with your contribution.


If being a good programmer equalled being able to write an algorithm that prints money, everyone would be doing it.


There are plenty of well rewarded functions within prop trading that _aren't_ quant trader. Although exactly how correctly remunerated these roles are varies a bit by firm.


This problem inspired me to found Supersynchronous.

While I’ve been more of a product leader than engineer, my best friends are engineers and we’ve had many long talks about the experience.

After serving as an agile coach, SaaS founder, and doing lots of freelance web dev/digital agency work, I came to the same conclusion.

How is there not a model for harnessing the genuine power of programming?

The other answers I’ve seen here are ones I’ve said myself many times before, but they’ve just proven unsatisfying.

So here’s the conclusion I came to:

We need a new business model design explicitly to achieve this outcome.

I ground it in intrinsic motivation:

(Some) engineers love building things that help people

That’s the beauty of a small startup, as an engineer you are proximal to the user.

You don’t just get to build something helpful, you get to feel when it’s helpful. You get rich feedback, you can use your intuition.

So my question was - could we create even more intimacy between engineers and the people they help in a way engineers enjoy?

At first that might sound scary. We’ve all faced the overwhelm of engaging with users who don’t “get” the process.

So the key is to edit the context.

First, we rule out “growth at all cost.” The engineer needs full autonomy to regulate the pace at which they engage with the user.

So at the entity level we’ve made the decision to never sell - meaning no investment capital, no board with a vested interest in overriding the engineering experience.

That also means we need to edit the alternative model - a service company. The engineer must have decision making power over whether or not they want to keep working with a client. We put that into our agreement with each client.

We’ve already fired our first few clients that weren’t a culture fit. It’s amazing. Our engineers now work with companies and people they want to work with.

Once the engineer has autonomy and real control over pairing with users, something magical happens - they get really excited about the novel problems they uncover and just dive in. The productivity is ridiculous.

And we keep it at 80% WIP.

Here’s the technical innovation that has enabled this: Coda.io

It turns out sophisticated low/no code tools enable computational thinkers to solve business problems so fast they can even design internal products in real-time with the user.

Talk about feedback loops.

The emotional payoff is incredible - we’ve literally had users on calls cheer, cry, and say they feel like they have hope again that their work won’t always be a grind.

If this all sounds a bit unbelievable, you aren’t alone. Every engineer who has joined our team has gone through a journey of testing “wait, is this for real though?”

I’m not sure if we’d be a fit for you or you for us.

The wisdom you’ve gained, and that you seem to still have your curiosity and heart, makes me so curious to get your take on what we are up to.

Everything we are doing is so new most of the time my answer to questions are “I don’t know” but I’m having the most fun of my life figuring it out with our team.

My info is in my about section.

Good luck on your journey!


Same situation here..




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

Search: