No, there is a threshold for the amount of subscriptions/SaaS I tolerate, and it’s basically a tiny handful of them and they’re occupied by streaming services etc. So your feeling is right, when it comes to me at least.
The App Store model of small one-off payments works for this use-case. But no matter how useful a web tool is I don’t think I’d ever sign up for a small monthly fee for it. The ”mental overhead” of that is absolutely massive.
Sadly even one off payments for web tools are a poor UX since there is no central broker to take care of it. Next time I visit I (maybe a different browser etc) it’s a hassle.
I’d much rather just use a worse tool that is free. Because SaaS fatigue is real. Sorry hobbyists and startup dreamers I’m not paying money for your SaaS. Not because it’s not good enough but because it’s nearly impossible to be good enough to make me go through a subscription process. Even as an older person who can afford it and is used to paying for things, I’d much rather waste hours of my own time than pay a subscription. Importantly, I’d also much rather pay $100 once than $5/mo even if I don’t foresee using it for more than a year.
Make it an App Store app and you can easily get $10 from me though, is the sad reality of it.
Why is there no standardized e-ID in the US? How much money is wasted by different authorities and businesses having to reinvent the same wheel over and over? I have used the same auth for doing my taxes or checking my prescriptions or signing into my bank for 20 years.
From my experience in the US, UK (see https://en.wikipedia.org/wiki/NO2ID ) and Canada there is a cultural aversion to government ID. I believe it's the same in Aus and NZ, so it may be an Anglophone thing.
The current US administration is known for illegally deporting permanent residents and has stated intent to deport natural-born citizens. It should be self-evident why a centralized ID system under the control of the executive branch is a terrible idea.
Because without thoroughly-enshrined protections for identities, an e-ID system provides an avenue for the government to effectively de-person undesirables at will, by removing their ability to use banks, sign contracts, access healthcare, etc.
US government is deporting undesirables at will right now without any of that. On the other side of the world, where id is mandatory and e-id is used for everything that makes sense, the city hall gives free heroin injections to addicts as a last resort therapy and provides for illegal/undocumented homeless people so they don't shit on the street.
Neither of those prevents somebody from stealing bicycles zo.
"The world" runs on _features_ not elegant, fast, or bug free software. To the end user, there is no difference between a lack of a feature, and a bug. Nor is there any meaningful difference between software taking 5 minutes to complete something because of poor performance, compared to the feature not being there and the user having to spend 5 minutes completing the same task manually. It's "slow".
If you keep maximizing value for the end user, then you invariably create slow and buggy software. But also, if you ask the user whether they would want faster and less buggy software in exchange for fewer features, they - surprise - say no. And even more importantly: if you ask the buyer of software, which in the business world is rarely the end user, then they want features even more, and performance and elegance even less.
Given the same feature set, a user/buyer would opt for the fastest/least buggy/most elegant software. But if it lacks any features - it loses. The reason to keep software fast and elegant is because it's the most likely path to be able to _keep_ adding features to it as to not be the less feature rich offering. People will describe the fast and elegant solution with great reviews, praising how good it feels to use. Which might lead people to think that it's an important aspect. But in the end - they wouldn't buy it at all if it didn't do what they wanted. They'd go for the slow frustrating buggy mess if it has the critical feature they need.
Almost all of my nontechnical friends and family members have at some point complained about bloated and overly complicated software that they are required to use.
Also remember that Microsoft at this point has to drag their users kicking and screaming into using the next Windows version. If users were let to decide for themselves, many would have never upgraded past Windows XP. All that despite all the pretty new features in the later versions.
I'm fully with you that businesses and investors want "features" for their own sake, but definitely not users.
Every time I offer alternatives to slow hardware, people find a missing feature that makes them stick to what they're currently using. Other times the features are there but the buttons for it are in another place and people don't want to learn something new. And that's for free software, with paid software things become even worse because suddenly the hours they spend on loading times is worthless compared to a one-time fee.
Complaining about slow software happens all the time, but when given the choice between features and performance, features win every time. Same with workflow familiarity; you can have the slowest, most broken, hacked together spreadsheet-as-a-software-replacement mess, but people will stick to it and complain how bad it is unless you force them to use a faster alternative that looks different.
You've got it totally backwards. Companies push features onto users who do not want them in order to make sales through forced upgrades because the old version is discontinued.
If people could, no one would ever upgrade anything anymore. Look at how hard MS has to work to force anyone to upgrade. I have never heard of anyone who wanted a new version of Windows, Office, Slack, Zoom, etc.
This is also why everything (like Photoshop) is being forced into the cloud. The vast majority of people don't want the new features that are being offered. Including buyers at businesses. So the answer to keep revenue up is to force people to buy regardless of what features are being offered or not.
> You've got it totally backwards. Companies push features onto users who do not want them in order to make sales through forced upgrades because the old version is discontinued.
I think this is more a consumer perspective than a B2B one. I'm thinking about the business case. I.e. businesses purchase software (or has bespoke software developed). Then they pay for fixes/features/improvements. There is often a direct communication between the buyer and the developer (whether it's off-the shelf, inhouse or made to spec). I'm in this business and the dialog is very short "great work adding feature A. We want feature B too now. And oh the users say the software is also a bit slow can you make it go faster? Me: do you want feature B or faster first? Them (always) oh feature B. That saves us man-weeks every month". Then that goes on for feature C, D, E, ...Z.
In this case, I don't know how frustrated the users are, because the customer is not the user - it's the users' managers.
In the consumer space, the user is usually the buyer. That's one huge difference. You can choose the software that frustrates you the least, perhaps the leanest one, and instead have to do a few manual steps (e.g. choose vscode over vs, which means less bloated software but also many fewer features).
Agree WRT the tradeoff between features and elegance.
Although, I do wonder if there’s an additional tradeoff here. Existing users, can apparently do what they need to do with the software, because they are already doing it. Adding a new feature might… allow them to get rid of some other software, or do something new (but, that something new must not be so earth shattering, because they didn’t seek out other software to do it, and they were getting by without it). Therefore, I speculate that existing users, if they really were introspective, would ask for those performance improvements first. And maybe a couple little enhancements.
Potential new users on the other hand, either haven’t heard of your software yet, or they need it to do something else before they find it useful. They are the ones that reasonably should be looking for new features.
So, in “features vs performance” decision is also a signal about where the developers’ priorities lay: adding new users or keeping old ones happy. So, it is basically unsurprising that:
* techies tend to prefer the latter—we’ve played this game before, and know we want to be the priority for the bulk of the time using the thing, not just while we’re being acquired.
* buggy slow featureful software dominates the field—this is produced by companies that are prioritizing growth first.
* history is littered with beautiful, elegant software that users miss dearly, but which didn’t catch on broadly enough to sustain the company.
However, the tradeoff is real in both directions; most people spend most of their time as users instead of potential users. I think this is probably a big force behind the general perception that software and computers are incredibly shit nowadays.
Perfectly put. People who try to argue that more time should be spent on making software perform better probably aren't thinking about who's going to pay for that.
For the home/office computer, the money spent on more RAM and a better CPU enables all software it runs to be shipped more cheaply and with more features.
I think the key to doing text sanely in programming is separating "text" from "international text" or "user text".
"Text", can be e.g. the characters that make up my xml node names. Or all the names of my db columns etc. You still have to worry about encodings and everything with this data, but you don't have to worry that there is a 10 byte emoji or a turkish upper case i. A key property of it is: you can, for example, run toUpper or toLower, with a default culture. It has symmetric transforms. It can often be assumed to be the ASCII subset, regardless off encoding.
Then on the other end you have text what the user enters. It can be anything (so may need validation and washing). You may not be able to run "to lower" on it (although I'd be tempted to do it on an email address for example).
The key is just knowing what you have. It's unfortunate that "string" is usually used for everything from paths to user input to db column names etc.
That’s unfortunately what’s so wrong with Unicode, while I do appreciate a lot of its improvements. It’s not enough to have a global locale, but even a local per-string locale is not enough. The locale should be in-band, i.e. part of the text, so it can be switched like in a state machine
> you don't have to worry that there is a 10 byte emoji or a turkish upper case i
Excluding all emoji is silly but feasible (except for actual thorough custom validation and error handling of all inputs), but excluding some uppercase and lowercase letters because you don't feel up to the task of processing them is demeaning lunacy.
Again, I'm now talking about "known" text in the programming context. Text that is neither user-input, or presented to a user. (E.g. column names. builtin function names in my toy spreadsheet. Whatever).
Obviously for text that is both user-input and then displayed back again to users, you are in the other category. Apart from protecting against rendering mishaps and security etc, you probably just want to preserve what they write.
But that was my point: 90% or more of the text you do is likely in the first category. And very rarely do you even have do deal with text in the second category.
If you want a separate language type for programmatic identifiers upon which all operations are defined in a culture-independent way, (a) good luck getting people to use it reliably, and (b) good luck with the numerous places where you have to convert back and forth and thus need all the information you're trying to not need.
Your XML files start with `<?xml version="1.0" encoding="utf-8"?>`. If they then cannot actually support common UTF-8 sequences such as emoji or CJK characters, then your system is bugged, and you should fix it.
I have almost no hope that this is a matter that has a technical solution.
The GDPR shows that law - even if not global, and even if not widely enforced - is pretty good at getting people to act. And most importantly, it will make the largest players the most afraid as they have the most to lose. And if just a handful of the largest players online are looking after peoples privacy then that is a huge win for privacy.
Doing what this demo shows, is clearly a violation of the GDPR if it works the way I assume it does (via fingerprints stored server side).
The canary should be when the administration starts suggesting any economic indicators for the rest of the year are really due to the last administration and have nothing to do with this administration.
“
Trump was quick to blame his Democratic predecessor, Joe Biden, for any setbacks while telling his Cabinet that his tariffs meant China was “having tremendous difficulty because their factories are not doing business,” adding that the U.S. did not really need imports from the world’s dominant manufacturer.
”
He also posted on Truth Social today, blaming Biden for the economy.
This space seems like one of those areas where it would be really hard to break in because their whole selling point is having had hundreds or thousands of people record and annotate an enormous amount of voice input, which I assume has to be hand polished for every single exercise?
I'm sure some part of it could be automated these days, or some parts even use voice synthesis, but I'm sure it would take basically an army of people hand-crafting it for the experience not to be very janky in the end.
There are numerous examples of people who appear to be intelligent, witty. Maybe they hid their darker sides (be it some authoritarian, populist, racist or otherwise objectively bad tendency). But they did hide them. But then something seems to change and they quite quickly descend into being very unlikeable. And it's not just always "ideas". It seems to permeate their entire being. The transformation includes going from being "likeable" in a broad sense, to very abrasive personalities even when you factor out their views. It's really scary and depressing. We only notice this in some really high profile cases (Musk, Notch, a few politicians...), but I'm sure there are thousands of less visible people who have done this transformation without anyone noticing but their close friends and family. While I might sound like RFK Jr: I'd really like for someone to go to the bottom of what causes it.
> We only notice this in some really high profile cases (Musk, Notch, a few politicians...)
I attribute this to the amplification effect of social media has on the output from these famous people.
But at the same time I blame their slide into madness on social media because for both Notch and Musk (and I would also add JK Rowling to this list) it all started with disproportionate amount of genuine hate from well meaning individuals for stating opinions slightly outside the Overton window. I think the "twitter mob" is frankly more to blame than the people themselves, because without it, all three of them would still censor their public outbursts more than they do now after the dams of hate against them have already broken and there's no lower depths they can sink to.
That's why I think it's important to be polite even to the assholes.
Do many people hobby code with that entrepreneur mindset thing? Or sit down to play guitar thinking they want to make a hit and feeling bad if they just noodle some cover songs? What a miserable existence that must be. How do you get that way? Should we blame LinkedIn or what is it?
I will preface this by saying that, I decided to stop pursuing a job as a software developer because my 2 years of work experience mean nothing in the job market.
Now that I ended up finding a job as a waiter (of all things) I finally enjoy learning new things again. Before, I would get chronically stressed researching the job market, gathering keywords from job openings, consuming Udemy courses at 2x speed, using AI to plan the project and scaffold it. I was writing projects to save my life, because my finances are just that bad.
Surrendering and giving up the pursuit of work made all this mental load go away, and ironically made me progress in a personal skill level faster than anything else. I can now learn deeply. I can tinker with code to my heart's content. I can see all the warnings. I can research why this and that happen, without feeling like I have to "sigma grindset" every second.
Perhaps when the storm is gone with the whole "AI is gonna take our jobs" and the market demanding every keyword match, and I feel more confident in myself I'll try to get professional again. Or not. All I know is that I love programming.
This also depends heavily on the field, some sciences need particle accelerators and mass spectrometers, meanwhile we can get by on a $200 pc and free wifi. This means you can bypass a lot of traditional university/lab structures.
In all seriousness, being able to pinpoint what is causing the possible stress / load and making choices to get rid of that is pretty amazing, props!
Though as for the job market, I’m sure the AI hype will blow over but I don’t think it’ll remain silent for long, there’ll be another nonsensical trend within reach.
Tech needs to keep innovating to keep investors happy and keep investing. That’s why it’s going this AI bubble route. Cause they don’t have any groundbreaking innovations at the moment but want to keep the investors they got when the web was newer and was worthy of the real hype.
> Tech needs to keep innovating to keep investors happy and keep investing.
It's nice to think that this is just a "tech" problem but unfortunately this is a wider problem in the rich world - it just so happens that "tech" has been the answer for finding huge economic growth for the past few decades. The whole economy is addicted to tech growth at this point (including your 401k if you have one, those of your your friends and neighbors).
I am a firm believer that the brain has finite resources. It is fundamentally no different than a muscle, in that, the muscle has resources at its disposal, and using those resources causes them to deplete faster than they can recover. This means, that at best, you can optimize how you use your brain, similar to how you can optimize how you use your muscles. You can train, to get "more" out of your brain, similar to muscles. But at the end of the day, there is only so much your brain can do. I have found, through fairly good time keeping, that I can do ~6 hours of deep work in a 9 hour period. Maybe 7 in a 12 hour period. This is the amount that puts me at the edge of burnout, and requires no other commitments in my life. 4-5hours in a 7.5 hour day is sustainable. Others may be able to do more, or less than this, but many people are fooling themselves if they think they are doing good work that is also deep for more than this, for more than say 4 weeks at a time.
That said, if you can find ways to use very different parts of your brain... well, then you can squeeze out more performance. In the same way that in the gym, if you find exercises that isolate different muscle groups, you can squeeze more sets in throughout your workout.
I have seen this with people who can produce a lot of output, they tend to not do the same thing all day, but find ways to work on unrelated projects. So, I'm not terribly surprised that you have an urge to code now that your brain is focused on non code related things for a large part of your day.
>I have seen this with people who can produce a lot of output, they tend to not do the same thing all day, but find ways to work on unrelated projects. So, I'm not terribly surprised that you have an urge to code now that your brain is focused on non code related things for a large part of your day.
Funnily enough, I do still code for the largest part of my day (10am-10pm, with lunch/dinner breaks + 1 hour of gaming/Reddit), simply because I'm starting my hotel job in 2 weeks, making me technically still unemployed.
I went through this exact thing. I became so depressed and stressed out during my last real software development job, after making it to a pretty respectable senior software engineer. I quit as a life saving decision, and now it seems that those 5+ years I put in just don’t matter, as I had been getting to the final hiring stages and then getting passed up constantly. In the other hand, I have been able to get into graphics programming, painting, 3d modeling, etc, because I don't have to come home and force myself to learn the new frontend/backend framework, I have a lot less stress and I have no desire to get back into the hamster wheel of the tech world. I love creating and building, it gives me a reason to live, I now know that I was preventing myself from this very important life satisfaction, which led me to my huge career impasse/quitting my job. I think some of us are just not built for the hyper optimization and materialism of the modern corporate tech world. I err personally more toward the artistic side, and that quality is not appreciated by the vast majority of recruiters and hiring managers. Like you, I am hopeful for the future, but I also no longer hold the delusion that I can find life satisfaction through the job alone, as I so naively pursued before. It’s so much harder to measure success when its not based on those simplistic metrics like company status or income, but maybe that’s because it never should have been the concern. :)
Because having your own product is something that on paper sounds extremely rewarding. If you do it well, the maintenance might be less than the work you put in your actual job.
Some people want to break out of the cycle, and you can't really blame them for it when the economy is hurting working people (ofcourse excluding that writing software is relative to other jobs a cushion job)
What other jobs have you had? I have been a photo lab assistant, a sign maker apprentice, a graphic designer, an insurance agent, a financial advisor, a construction worker and manual laborer, an inner-city math teacher, a software developer turned manager turn developer, now at the staff level.
Software is the most cush job I have had. More money for less work. Better perks. Less stress overall. Constantly learning, yes. Often frustrating, yes. But having financial resources beyond what the other jobs could provide is a thing. Other jobs I could leave at work, sure, but others I couldn't. I would never go back to being a public high school teacher; that shit was the suck. So was selling stocks. Software is a dream in comparison.
100% - my friends who have only ever written code think it's a "hard" job in the objective sense. That among all possible jobs, it is on the difficult side of the spectrum.
I've been an EMT, a line cook, a dishwasher, a waiter, sold insurance, and worked on political campaigns. The easiest of all those is 10x harder than the hardest day of writing code.
It's frustrating at times, sure. There's office politics, sure. We probably have to deal with a disproportionate percentage of weaponized autism, sure.
But it is a cushy job and the "money per unit of effort" metric is off the charts compared to basically every other job I can think of, and definitely every other job I've ever had.
I don't have much experience in jobs like those, but a family member who jumped between whole different professions for years does. He always got bored of them because, at least according to him, all of them had one failing: you learn everything you need in a couple of months or so, then it's pretty much just getting better at doing those things repeatedly.
Eventually he tried out programming and found there's no real end to the amount of things to learn. It was the only job he found that he wouldn't get bored on. He only eventually left because of bad bosses.
I think that might be the factor that makes it hard vs easy compared to others - that for a lot of people, continual learning (which they thought they'd left behind when they finished school) is why it might be harder than the other jobs ones you listed. Though I know I'd find those ones harder for other different reasons.
Yeah, I definitely agree with you. Any time you see someone saying how hard it is to write code as a job, you can tell they've never had a "real" job. I grew up working on a farm every day - I would take programming every day of the week. Even on the days when I'm frustrated or dealing with difficult people, it's better than hard physical labor which wears down your body, is fairly gross (lots of poop!), and doesn't even pay 1/2 of what programming does.
That is from the viewpoint of the top 10% earners if you look at the european market or small / local business than you are looking at people doing the job of multiple departments and getting blamed if something does not work or for their salary if everything works.
And the salary is most of the time lower than anyone from the HR or Marketing department whose job if you are unlucky you also have to do because the tools they use are too complicated for them.
And if take the freelancer / remote work market into consideration everyone wants to pass all the work to the lowest bidder and some of them get lucky with skilled workers whose salary may be in the median considering their location after substracting the share of the middleman.
> Software is the most cush job I have had. More money for less work. Better perks. Less stress overall. Constantly learning, yes. Often frustrating, yes. But having financial resources beyond what the other jobs could provide is a thing. Other jobs I could leave at work, sure, but others I couldn't. I would never go back to being a public high school teacher; that shit was the suck. So was selling stocks. Software is a dream in comparison.
The problem is: there exists a very specific group of people who do software development as a job who are really passionate and idealistic about software (that's why they actually got interested in software development and decided to do this professionally). For these people, the whole "politics" about software devlopment, bullshit project management processes, not being allowed to make use of their full potential and skills, and office politics is (thus) hell on earth.
I thus very plausibly do believe that exactly for people who are incredibly passionate about software development, other jobs (that are outside their passion) can actually (paradoxically!) be more convenient.
Seems reasonable that you would struggle with the opportunity cost of your time when you're writing software for fun since you could also be working towards a greater goal of launching something that might make money.
Software is relatively unique because of the multiplying effects of software (without banking on a moonshot) unlike, say, carpentry or strumming a guitar. So the opportunity cost can be even higher.
You should always be cognizant of opportunity costs because they're always in play. And I can see that getting away from people, especially if you haven't already achieved your financial life goals.
I feel similar when I try to play a game in my 30s. It feels like a huge waste of time compared to something that would advance me towards my aspirations. But I think that's just part of being an adult. Just be aware of the trade you're making.
I still don't get it. What I want to do is make software as a hobby that can never be sold. If I start writing some boring SaaS software instead then I'm losing my opportunity to do what I like?
I think it must basically be a funamental question of goals/aspirations to begin with. I never had an aspiration to be e.g. wealthy, retire early, or make very senior positions within my company. Is that the difference?
This is a reaction that I had for a time, until realizing that outside of just "some people are different", there is also the wider protestant work ethic putting work at the center of their life, and assigning a moral value to productive work.
I'm describing it in too vague terms to be appropriate, and most people might be thinking it in that way, but I genuinely think there's a part of it in a lot of the "I did this paid service as a weekend project" mentality.
I had my own company previously and I found it hard to detangle that commercial mindset from hobby coding. I’m employed now and find it much easier to code purely for fun.
If I played guitar professionally then I’d probably find it hard to not think about new pieces in the context of a gig-worthy repertoire.
This ignores the fact that people are motivated by different things. If you're someone who thrives on the intrinsic 'do this for the love and joy of it' motivation then you should absolutely just write code for the fun of it. But not everyone is like that. Some people need an extrinsic motivator to drive them to do things - that's usually money, or praise, or a punishment for failing. There is nothing wrong with either approach. Neither is better.
While it's not wrong to be extrinsically motivated (it's not morally wrong, or a value judgment), it's definitely worse and more fickle (it will produce worse results in most cases). Intrinsic motivation is much more likely to lead to long-term growth even in the face of adversity and in general be more resistant to changing circumstances.
Important to note that it's not a dichotomy as long as you're not an "extremist" of either side. Build for yourself and a big market. Take pride in competing at a high level. If you view "hustling" as an 'all work, no play' experience, you're engaged in absolutist thinking.
Many people think that they just have to write some code and execute it publicly and they'll somehow be provided for. That can sully recreational coding since it makes it hard to see that it will most definitely not be directly profitable without a lot of non-coding labour.
Doing business is demanding, you've got compliance and documentation and code needs to be intelligible to other people and finances and marketing and planning and customer support and all that domain knowledge that allows you to catch more than one or two paying customers because your solution works in most of a sector of society and so on.
With this in mind you'll have an easy time seeing that your for fun, recreational project is not a business and that you can't think of it as one until users are starting to force you to by being so many or offering money for additional services.
Sure. I used to enjoy playing the Sims until I had that gut realisation that I was trying to get them to grind out better lives, when I should just spend that time doing it for myself.
I also bought Shenzhen I/O, because the idea of being able to program in a game seems fun. But after reading more, I didn't end up playing it because it would involve too much study of how the in-game computers work, and I'd get much more long-term satisfaction from studying real assembly languages etc.
Some of us do. The hobby may consist of simulating the professional experience, but to a limited extent and on our own terms. For instance in my own case, I play an instrument -- the double bass -- and I perform sporadically. When I practice at home, I'm aware of the qualifications and competency of a professional bassist, I measure myself against those standards, and try to keep improving.
This doesn't detract from the pleasure of playing, at all. If anything, it gives me some structure and motivation. And I still don't mind noodling for a while when I need a distraction that doesn't involve a screen.
But I only count the money that I make, because I have to report it. ;-)
Coding is a small but very fun part of my business. I code for fun because I can afford to, but most people need to put bread on the table, so they must remain competitive.
I do both of those, it's a constant battle in my own head. I'm always reminding myself that it's ok to make music just for my own enjoyment, and that don't need a potential monetary angle for some hobby.
I'm not justifying this mindset, which preceded LinkedIn. I don't like it.
>Do many people hobby code with that entrepreneur mindset thing? Or sit down to play guitar thinking they want to make a hit and feeling bad if they just noodle some cover songs?
I absolutely do. Money and power is a great motivator. I don't feel bad about any of it. I took my shot and continue to do so.
>What a miserable existence that must be. How do you get that way? Should we blame LinkedIn or what is it?
It was not. I made some good side money. I always joke that I program to feed my computer habit. The benefit of it is you actually code like you are making a product, and there is usually a big skill difference between someone coding for fun and someone coding to make an actual sellable product; it's the 80/20 rule. That last 80% is what separates the good from the great. Like Jobs said, "Real artists ship."
The big difference for me is that what's actually fun (hard technical problems like e.g. writing an OS kernel, a db engine, a path tracer, an LLM from scratch...) is mentally challenging, and might progress your career, but it's not actually in any way sellable.
To make something sellable, you usually have to make it not-so-technical and not-so-complex. Simply because of the time constraints of hobby work and solo work. Your effort would go mostly to the market analysis and your product would need more polish meaning that for a personal project, it would usually be trivial (You can sell a shopping list iOS app, but you can't easily sell a 5 year hobby project making an OS). The sellable OS would be a 500 man-year product. What yo do by coding a kernel for 5 years is possibly that you can improve the product that is yourself.
So unless you actually enjoy the goal of marketing/selling/running a business, then the Shopping list iOS app won't be a good hobby.
>The big difference for me is that what's actually fun (hard technical problems like e.g. writing an OS kernel, a db engine, a path tracer, an LLM from scratch...) is mentally challenging, and might progress your career, but it's not actually in any way sellable.
I'm not saying it's worthless by any means. I assume this would be the baseline. The benefit of making an actual sellable product is you learn how to finish, which is often a lesson not learned from hobbyists. It's fun to work on new tech, but if someone never learns how to make a product that can ship, their value in an organization is probably more limited than someone who can.
>Your effort would go mostly to the market analysis and your product would need more polish meaning that for a personal project,
It's the polish that's valuable, I couldn't care less about the business side of it, leave that to business people.
Let's use your example of working on the Linux Kernel. If Linus just made a kernel and said, "this is great!" we never would have had the GNU/Linux revolution. It was packaged and installers were created and distributions were made and it was eventually able to be installed pretty easily by anyone. That's making a viable product, that is finishing.
>To make something sellable, you usually have to make it not-so-technical and not-so-complex.
Sort of, you have to make a not-so-complex wrapper so other people can use it. The complexity is still there, but you have to abstract it so devs without that knowledge can use it. I feel that if no one else can use it, where's the value?
“The definition of genius is taking the complex and making it simple.”
Another simplistic example is I'm working on making a custom domain specific model. Getting it to infer properly is great (getting there), but the value to the company is to make it fast, wrap it in a usable API, get it to log useful errors, and integrate it into our software. The first is the fun part, the second is finishing to make it useful. That's value.
> I can teach someone who knows how things work how to glue libraries together when/if we do need it, but I can't teach someone who glues libraries together how to make their own things; it's simply not worth the time or effort because it's effectively like starting from scratch and I may as well start with a complete junior in that case.
I just want to point out that this goes beyond an argument explaining how hobby projects can be useful and enters the territory of personal attack. I presume you mean that whatever they made is substandard in some way ("[gluing] libraries together" is nonsense criticism; everything in software is someone's abstraction) but I don't see why you would think that.
For any given singular project "gluing libraries together" is not a particularly interesting critique, but as a default way of doing things it is very relevant to the resulting skill levels of people as well as their respect for quality. I have enough experience with former coworkers to understand which attitude results in which and it's with that backdrop in mind I've written the post. I stated my assumptions pretty clearly and why I've made them as well.
I absolutely think gluing libraries together is a substandard default way of working that leads to poor results, by the way. "[...] everything in software is someone's abstraction" is a cop-out that ignores the massive gap that exists between finding the lowest level you can execute (in many cases an OS call that cannot be split up into a smaller part, or calls into the lowest API you can find like OpenGL, Vulkan, etc., where we have to play by a driver's rules) and executing a function in a library that calls a library that calls a library that calls the OS or the like.
Taking on the cost of countless layers of function calls, potentially manager code, etc., just because "everything in software is someone's abstraction" is, to use your phrasing, a "nonsense" excuse for poor work and not taking ownership of the code that will execute.
I have a former coworker that elected to use a tokenizer/parser library that clocked in at about 6k lines of Rust code, where I personally decided to simply write one in about 600 lines (in Odin, which probably is considered more verbose). The 600 line one was faster, used less memory and naturally was easier to understand (easy enough to understand for someone who literally had never written a tokenizer/parser before to use and extend). It's defensible to use a library for a tokenizer/parser, of course, because "everything in software is someone's abstraction", but do you see the problem here where we get worse software and no one ever learns how to make better things if everyone just decides to `cargo install` readymade solutions?
I'm not saying that my colleague could at that moment have written the Odin solution in this case, but he would certainly be more likely to if he implemented things from scratch as a way of practicing, or decided to otherwise take ownership of the code that runs in work projects.
> I stated my assumptions pretty clearly and why I've made them as well.
The first yes, the second no. If you had a reason for the assumption, I think it would not be an assumption.
> I have a former coworker ...
One might assume you are thinking more about your former co-worker than you are about Clubber. They could make that assumption because you describe in detail an actual instance of what you complain about in the absence of any other such description in Clubber's comment.
Should they assume that? Even if they have reasons? Even if they're right? What does it add to the discussion?
I think you could have made a good point about their assessment missing the mark because I agree that the skills you write about are improved by "finding the lowest level you can execute" more than "coding to make an actual sellable product". Still, they might consider the latter to be no different from the former (the former is certainly a more precise description, regardless). Your story about the co-worker is a good one on that topic. It's unfortunate that the assumptions make your comments easier to dismiss.
You've made a whole lot of assumptions in that reply, all from 10 sentences. Maybe ask some questions next time instead of making assumptions that fit your preconceived notions. Your intuition is a bit off.
I think I was about as charitable as your post deserved, and I stated my assumptions clearly. You can either address them (and the bigger point) or choose not to.
The App Store model of small one-off payments works for this use-case. But no matter how useful a web tool is I don’t think I’d ever sign up for a small monthly fee for it. The ”mental overhead” of that is absolutely massive.
Sadly even one off payments for web tools are a poor UX since there is no central broker to take care of it. Next time I visit I (maybe a different browser etc) it’s a hassle.
I’d much rather just use a worse tool that is free. Because SaaS fatigue is real. Sorry hobbyists and startup dreamers I’m not paying money for your SaaS. Not because it’s not good enough but because it’s nearly impossible to be good enough to make me go through a subscription process. Even as an older person who can afford it and is used to paying for things, I’d much rather waste hours of my own time than pay a subscription. Importantly, I’d also much rather pay $100 once than $5/mo even if I don’t foresee using it for more than a year.
Make it an App Store app and you can easily get $10 from me though, is the sad reality of it.
reply