Hacker News new | past | comments | ask | show | jobs | submit | ihid's comments login

Exactly. Thank you. Also, I'm using the new thing to keep exercism funded. But even if I wasn't, your post would be entirely true!


Hello. You'll get an email after a day telling you about it, and you'll get a banner after you've submitted a couple of exercises :)


I've replied to this further down. Exercism is a nonprofit - we have no shareholders. We've had many large organisations donate to us (including Mozilla and Google) who have vetted all this.


Thanks, yeah. New product will hopefully mean I can keep funding and growing exercism. They're very synergistic and will support each other.


> And other times, you're doing something really good that's just not going to get you paid.

This. I feel that this has been missed in the thread a little.


Hello. Blog post author and Exercism co-founder here.

Thanks for all the comments, especially those kind supportive ones. I've replied to a few, but I thought it would making a couple of general points for context.

1. I feel something that's missed is that if Exercism just continues to help tens of thousands of people per month and has no-one working full-time on it in the future, that's not the end of the world. Our donations cover server costs (thank you, donors!) so there's not an existential threat. And our wonderful volunteers keep our content growing and up to date (we've added a dozen new languages already this year). For most of Exercism's existence, it has had no paid staff. Me and Erik having to become volunteers again is ok - it just means things will improve slower.

The blog post was written as an update to our community, and our community has been on this journey with me over the last few year. They've seen us go from zero money, to raising over $1M in donations and hiring people, to not having follow-up donations and having to let those people go. They have a lot of context that's maybe not seen by people new to the story. The post is sad, because Erik, who's well loved is leaving, and because the last couple of years haven't financially gone in the direction we'd have liked it to. But the post is not me complaining.

Exercism hasn't been financially successful during the last 18 months, but it's fulfilled the core part of its mission by helping hundreds of thousands of people. And it will continue to help people moving forward.

2. Our aim is to get people to learn a programming language and then to get on with their lives. It's actively not to monetise people. That's important, because it changes the model a little. We don't expect people to stick around month-after-month doing stuff (one person said that having 70k MAU is terrible - but you can also see it as totally expected - you sign up, learn, leave - that's the point). Which means having some recurring Premium offering doesn't massively work. Nearly all the people who donate are also contributors, power-learners (learning multiple languages), or people who feel aligned to a world where something like Exercism exists, and want to ensure it continues to do so.

So the only real end-user model is to charge an upfront fee for using Exercism, which actively goes against the mission and doesn't honour the commitment under which people have contributed.

3. To all the other monetisation ideas, thank you for them. I appreciate you all wanting to help. We've considered and experimented with lots of them over the years. We've not found one that fits well yet but maybe/hopefully that'll change in the future. I have areas I will continue to peruse and am hopeful about.

4. There are numerous threads on server costs, and while I appreciate the opinions there, saving some cost there wouldn't massively shift the needle. Our donations cover our server costs. Hiring good developers and other people costs a lot more money than the ~$3k/month we'd save. I'd also say that there's some general under-appreciation of the complexity of running student's code in 73 programming language sandboxes in real-time. Exercism is a lot more complex than a webserver/database model - we have over 400 GitHub repos. I'm certain some ops gurus would be able to do a better job at building a server infrastructure than I've done for less money, but the one I've built works with basically zero maintenance and not having to be on call 24/7/365 is something I need/value.

As I said in my blog post, I'm going to take a couple of weeks out now, and come back hopefully re-energised to keep building Exercism, and the new project alongside it, which hopefully will help keep Exercism funded. Thank you again for all the support, ideas and well-wishes.

---

Changelog: - Added "For most of Exercism's existence..." to the end of that paragraph.


Sorry for the additional unwanted advice, but have you considered a pay-what-you-want pricing for the upfront fee?

You can set the minimum to zero and a default above your target, and perhaps ask only after a short free trial period. I heard that it often yields better results than we would expect.


hello @ihid - would love to support Exercism through the Insiders program as your site is great resource for developer education! Is there a way you can provide PPP (Purhasing Power Parity) pricing for people outside of the U.S. and Europe? For example if you use this PPP calculator https://ppp.jackmcdade.com/ and compute PPP pricing for the Philippines, $10/month feels more like $20.88. If you want to recalibrate it, the PPP Pricing would be P4.79. Thanks in advance!


It's also worth pointing out the Exercism isn't for coding newbies - it's for developers learning new languages. This often gets missed.


Shouldn't that make it even easier to monetize? I appreciate the resolve to keep things free for those who can't afford to pay, but a lot of your users are presumably actively employed making 6 figures.

You could follow the Sublime Text model and basically have an honor system—if you're actively employed making more than $X, please pay us. If you're not, you're welcome to use it for free!

The Tech Resume Inside Out [0] uses this model (though not on the honor system) for similar reasons.

[0] https://thetechresume.com/


Yes. Good idea.

Another thing. There are several podcasts who have a free feed and paid one. Sam Harris’ Making Sense comes to mind with their free feed and a paid one for full access to all content. But they understand not everyone can pay. If one is unable to pay, they can simply email to ask for a free annual membership.

Pay what you want albums on Bandcamp are another example of a sliding scale. Suggested price $10, but artists can define their minimum.


I think this is a major selling point. If developers could upload their CVs, exercise could package together the users yoe + industry experience with the users learning veracity + main language. I think that would be a solid product that hiring people would pay money for.


We're paying ~$1k/month for all our webservers (which is a dozen ECS instances). They're handling about 3,000 requests per second (but that does sometimes massively spike to tens of thousands if not more).

We're paying ~$1k/month for all our tooling servers (so the 150 different test runners, representers, analyzers that are used to check peoples code. There's >=1 of those running every second). Bare in mind, we're running student's code in over 70 languages here. Each is a docker container (often many gb large) - so we pay for HDD too.

The biggest actual cost is the database at $2k/month. We have about 600 queries per second, and around 10MB per second (spiking to 47MB per second) of read throughput. It's an autoscaling database, but AWS determines that it's at the level it needs to be, and if I turn that down, performance suffers (I've tried).

Beyond that, all the other individual services are ~$300/m, so quite small amounts, but for things we rely on (e.g. caching servers, a shared filesystem amongst all those servers, and other things).

$1.2k on tax is also fun.


Thank you so much for sharing your costs! I was very curious to see what the real expenses for AWS services look like, as I've always assumed AWS is massively overpriced.

From the numbers you've provided, it seems like your total cost is around $5.5k, so I assume the remaining $2k is attributed to traffic.

Everything looks quite reasonable, except for the database and traffic costs. I've run MySQL servers handling 150k reads/sec and 50k updates/sec with no issues, even on very cheap machines (around €30 per month). Years ago, we were serving over 100 million pages (of heavy content) per month, and we didn’t even bother looking at traffic statistics because, here in Germany, it’s hard to hit the traffic limits that most hosting providers impose.

That being said, AWS is less expensive than I initially thought. At the same time, I’m confident you could reduce your hosting bill by up to $2k without even leaving AWS by setting up your own database server. Moving away from AWS entirely might be challenging, as managing a fleet of about 30 servers would likely take one or two days of work per week (I'm managing a dozen mostly idling servers and I work one day per month on them). When your hosting bill reaches $30k, I'm very sure it would be cheaper to hire someone (hint, hint ;-)), that moves everything to dedicated servers and manages them.


I was curious, so I just checked on one of our customers (I work at a small MSP in the UK) by way of comparison and we have on chugging along happily at more than double those numbers on a $288 Linode dedicated CPU instance. And we're only on that size for ease of disk space handling as the database is several hundred GB. CPU is basically at zero, it's the disk IO that actually gets you on some of these busier databases (from my experience).

RDS is extremely expensive. All managed databases are.

That said, it's a trade off of convenience and being in the AWS bubble, and weighing up the pros/cons of separating out services. Data Transfer is another thing to consider too of course. Sticking your database elsewhere might cost more in egress traffic communicating with it from your other AWS infrastructure. If you're all in on other AWS services, sometimes the RDS price is just worth it when it comes to the total price. Sound like this might be the case for your setup.

I hope you do manage to work things out. The service you have is great.

PS - Side note on RDS sizing. You might already know but sometimes it's worth increasing the storage size on gp3 type storage above 400GB (if you haven't already) as you get 12,000 IOPS baseline against 500MiB/s throughput[0] when you have that much storage. That's 4 times the below 400GB baseline performance but you only pay for the additional storage cost. It can make a difference if you're IOPS constrained or trying to deal with bursty traffic but want to use the smallest instance size possible otherwise to save costs.

[0]https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_...


A part of me is tempted to say 'maybe some cost reduction in cloud bill is possible' but for the scale you operate at and cost you already have, I feel like refactoring the revenue model is the greater strategic 'bang for your buck'


I don't want to armchair ops your decisions, but maybe do consider moving to some dedicated Hetzner servers, at least for the runners. You can probably reduce that cost tenfold relatively simply.


Move everything to Hetzner (or the like) at double the capacity that AWS has on average and you still spend about 10% of what you spend on AWS.

That is how stupid costly AWS is and 99% of people using AWS are wasting money like there is now tomorrow.


Problem is Hetzner has such stringent user verification its tough to get hosting on there.

You don't even need to use Hetzner, I'm actually quite surprised they are spending 2k on DB. For the env isolation i understand they need ec2 but...

it shouldn't cost anywhere that amount, for instance I have 3 million users on a $40/month digital ocean VPS with just Django + Postgres and I have far more reads and writes.

for env isolation you could spin up a $5/month VPS and shut it down when idle


Sure Hetzner ist just one example. Many provides sell at about 5 to 10% of AWS prices.


Eh? It's not "tough" to get hosting there... It's super easy if you use legit details and live in a country they are allowed to do business with.


> 99% of people using AWS are wasting money like there is now tomorrow

Why do you think that is? Are that many people that dumb or are there other reasons they use managed cloud?


AWS will charge for network traffic, both in and out. Would need to calculate what is cheaper.


The runners take some code and return text, right? That shouldn't be too much traffic, hopefully.


Not to be that guy, but I'm pretty sure that these volumes (talking about ECS and database here) could be handled quite well by a few dedicated $100/mo servers, provided the code isn't hugely unoptimized. So I'm sure you could save (very conservatively) half your budget when going on-prem. That said, it probably won't help you much overall, I would imagine.


I've mentioned this before on HN, but we had a single postgres machine primary read/write server that did 4k QPS 24/7. It had DDR ram as storage on a PCIe card, of course, but this was before "SSD" was a thing. It was for a site that hosted portfolios of images, for both people in the images and people who took the images, and such. The front end data (the images and text) was, iirc, 3TB. Sometimes we'd need a server in a new location, so a locked metal briefcase was carried from the DC where the front-end data lived, to our offices, where one of our "IT" people would then carry it on to the new location and offload it to those servers in that location.

Anyhow that database server was probably ~$35,000 all in. That's 5 months of your current AWS spend. One of the things i did during that time was take a 2 generation newer server, a $35,000 1u Dell with 512GB of ram, and mirrored the postgres database into tmpfs and enabled replication, then we set that machine as primary. The new machine didn't break a sweat. So much so that one of the things me and the (really very awesome and nice; Hi, Chuck, if you're out there!) DBA did was set postgres to use no more than 640KB of memory, then ran the entire site, with 4k QPS, on that postgres instance with 640KB of memory (not counting the 280GB of tmpfs storage, of course!), just to prove it would work. It did - although some of the bookeeping queries (not sure what they're called) were taking a very long time, and would have had to be refactored to use less temporary memory, and such.

anyhow my point is, there are people out there that can do things cheaper, or faster, or more efficiently than whatever you got goin on right now. Your statistics on "per second" usage and the like don't sound too demanding. If you could squirrel away $500/month for a few months, and you ask around for someone that can rack metal and has peering, there are people (including me) who could get you co-lo in <16U[0] with redundancy, where your only monthly infra charges would be the co-lo fees.

[0] Old, extremely beefy, but large servers are generally 4U, but dirt cheap for what you get. Ex: 80 thread, 512GB RAM, 8 SAS bay HP server, $800 shipped. And i bought those 6 years ago. However: 5950x, 128GB RAM, 24 SATA port can be had for <$2000 (i'm guessing based on what i paid a few years ago), and that's roughly equivalent in power (kernel compile takes 3 seconds longer on the 5950x but it uses 1/4th the power at the wall). The reason i tagged on <16U is because at most you're gunna need 4x4U, two "front end" and two "back end" machines, with duties split and everything redundant in the rack. I haven't looked in a while to see what's available on ebay as far as more density, but for sure 16U or less!

The issue becomes: how do you find someone who knows how to do all that, that is willing to work for next to nothing because they believe in the ngo/nfp? Maybe there's a tech forum that people like that read, who knows.

good luck, and thank you for doing things to help other people. I hope it all works out in the end.

email in profile.


RAM as storage for DB? So data loss on reboot? Sounds like very specific use case.


https://en.wikipedia.org/wiki/Fusion-io

maybe i misspoke - at one point there was battery backed DDR ram they used in PCIe, but by the time i came around they were using Fusion IO PCIe devices, which i guess were NAND flash, not DDR. or, alternatively, that is how it was explained during onboarding - "it's like DDR on a PCIe card, so the iops are 1000x that of SAS 10k drives"

unless you're talking about our experiment of tmpfs - then yeah, the use case was "genewitch heard bill gates say 640k should be enough for anyone; here's a super beefy machine to test that theory; theory tested." We didn't run the site live on that machine for more than 10 minutes or so, we switched it back to the fusion-io backed server immediately. It was a proof of concept about one of the things we could do with these new servers - read replicas with the DB in tmpfs for extreme speed and no IO blocking.


We're not really part of the "leetcode industry". People have used Exercism to learn new programming languages for a decade. We've deliberately not wanted to become a place of competition or a recruitment space. We've always focused on helping people learn based on their intrinsic motivations.


Sorry you are right, what I posted isn't fair. I should have read more into it.


No problem. Thanks for acknowledging that! :)


Thanks :)


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

Search: