Ask HN: What's the best way to monetize actual programming?
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.
124 comments
[ 2.6 ms ] story [ 183 ms ] thread- use your knowledge to troubleshoot broken systems, companies that are in trouble are utterly price insensitive
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.
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.
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?
Here's a great playbook from patio11 on this topic: https://training.kalzumeus.com/newsletters/archive/consultin...
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.
How would one go about that effectively?
“Consult”ing with problem-havers and working out how to make the problem go away.
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.
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.
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.
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).
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.
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.
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.
PS: some resources: https://github.com/fossjobs/fossjobs/wiki/resources
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.
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
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.
> 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
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.
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)
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.
However, the market is full of popular, poorly implemented ideas. So I guess you're right.
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.
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.
Ever heard of bitcoin mining? j/k :D
So technically speaking, yes some programs can, under certain conditions, be ran 24/7 and make value :D
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.
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.
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.
Plenty of other things add more value, but replacing 4 or more people at 200k a pop is already significant money.
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.
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.
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.
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.
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 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).
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.
"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.
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.