Why isn't anyone signing up?

Posted on .

Four years ago, we wrote a post right on this very blog about how our growth was exponential. Indeed, things looked rosy back then, when we were beset with unbridled optimism for the growth prospects of IMGZ. After all, getting four users in one day (up from zero) can only rightly lead you to extrapolate to trillions of users in a month.

Since then, though, things have flattened out. In four years, we managed to retain a measly 30 users, 5 of which are friends and family, and the rest I'm not even sure if they even paid anything, because IMGZ costs like $10 a year so I really need to squint to see any money in the bank.

Meanwhile, server costs keep climbing. Our crumbling infrastructure costs a pretty penny to maintain, and lately we've been hit by an additional calamity: Spam bots decided to abuse our signup system, and rack up email provider bills for emails sent to sign up. This increased our hosting costs tenfold, from $2/mo to $20/mo.

Finances

Now, I'm no accounting wizard, but if you make $5/mo and have to pay $20/mo, that doesn't sound like the first number is larger than the second number, so the situation sounds dire. Sure, we could all go get some high-paying job at a fancy FAANG firm, but then we'd have to make the compromise of having to hide how hostile we are to our users. At least the amount of hostility towards them wouldn't change, but that's a small comfort.

Instead, we need to take drastic measures, and do some dreaded product development. It seems like that dark day has come, where we need to talk to our users.

Instead of finding some people who use IMGZ, we have to find users who don't use IMGZ and ask them why not. The rationale behind this is that the users who use IMGZ are already paying, so they have no more money left for us to extract, while users who aren't using IMGZ are a veritable font of untapped potential that can increase our valuation by $100.

P R O D U C T

So, we're doing the best thing a developer with zero social skills can do to reach out to customers: Writing a blog post.

Dear non-customers, why aren't you using IMGZ and paying us for the privilege? Is it the copy that tells you to get lost and never sign up for the service? Because we do mean that, but apparently some people have stuck around long enough to get Stockholm syndrome and now quite enjoy the experience. Is it the subpar image delivery? We could do something about that, but it sounds like too much trouble.

Please email us at, well, [email protected], since I never bothered setting up an imgz.org email address, and tell us why you aren't using the service. I'm sure that, out of the three people who read this post, at least one will bother.

I don't know if we're planning on doing anything with the feedback, but, if it sounds good, why not? It might be fun to add some nice new features.

Okay well see you around!


AI-powered privacy-preserving ads

Posted on .

After a massively successful hiring campaign, which was propagated far and wide in social media, we had our pick of the litter (or, in US English, "trash") for our Chief of Artificial Intelligence Science Officer position. After filtering candidates based on relevant traits such as age, marital status and naivety, we finally settled on our new CAISO!

He came in with some fresh new ideas, most of which were rejected outright, and we quickly got him working on the next big thing. IMGZ has been growing exponentially, and, despite all the problems that come with growth, our focus is LASER-focused on one thing: Money. We want to make lots and lots of money, as much as possible, as fast as possible. Our motto is "At IMGZ, images come first, after money".

Given this imperative, we got our finger on the pulse of the webiverse, and realized that, if we were going to make money, we couldn't rely on people paying us money for services. That's just not the way the web operates. We needed to take a page from the book of Facebook, Google, Amazon and AltaVista and innovate, so we sat down with our new CAISO and thought long and hard about how AI could aid us in our monetization strategy, and finally came up with a radical new monetization model:

Ads.

Ads

Ads on the internet are not new. They've been around for at least two years, and people are getting tired of them already. They aren't so much getting tired of seeing ads, which are always relevant and nigh-magical in their pinpointing of the exact thing you're wanting to buy at any given time, but they're getting tired of the sacrifices needed to achieve this accuracy.

They're getting tired of the constant invasion of privacy by internet giants, who impinge on people's rights to sell them exactly the right thing at exactly the right time.

At IMGZ, we believe that AI can help. Help the users preserve their privacy, help the advertisers present their products in a respectful manner, but, most importantly, help us make lots of money.

We present to you:

Privacy-preserving ads.

Privacy-preserving ads

Privacy-preserving ads is a brand-new technology, from the innovative free-thinkers of IMGZ. We dared to ask the question "how can we monetize the free trial?". The obvious answer was "ads".

However, tracking the user and placing some relevant ads next to the images as they viewed them was too invasive, and protecting our users' privacy is the third most important priority for us.

We thought long and hard, and, leveraging our latest hire, we quickly came up with a design for an ML-powered pipeline:

  • The uploading frontend ingests images and sends them to a Kafka queue.
  • If the image belongs to a user on the free trial, Kafka forwards the images to a distributed worker pool for deep learning processing with a custom Keras model.
  • The Keras model performs saliency detection to find the most important parts of the image.
  • Once the most important parts of the image are identified, we send the image back to Kafka for forwarding to the next step in the pipeline, categorization.
  • A second Keras model performs label extraction on the image, to find a few categories that the image belongs to (such as "woman, dress, smiling").
  • The next step processes the image, selecting the best ad for the category and stitching it into the salient parts of the image.
  • The image is stored and forwarded to the CDN for serving.

After lots of back and forth, we finalized this plan and realized we couldn't be bothered to do any of this and just wrote three lines of OpenCV to detect faces and slap our logo on them:

You will notice that you can't tell who this guy is, perfectly preserving his privacy. In fact, we're sure you didn't even notice this is actually a girl.

That is the power of AI.

The power of AI

With the help of our engineers, we managed to take this solution from an average of 68 seconds per image to near real-time. As the free-trial user uploads an image, detection and advertization runs in a few milliseconds, ruining the image nearly instantly and resulting in happy advertisers and users who retained their privacy.

For example, try to recognize even one person in this photo, where the photographer did not obtain model releases:

You'll find that you can't! You may, however, get an inexplicable urge to sign up for IMGZ, which is exactly the intended effect of the subtle advertising.

Of course, while trial users enjoy the full suite of privacy-preserving tools IMGZ has to offer, paid users will be subject to no such annoyance. Their images will be uploaded and served entirely unchanged, as a thank-you from us to their money.

Epilogue

Of course, none of this would be possible without the help of one man:

He's still on the trial account, as he hasn't paid for an IMGZ account yet, but he'll have to when his trial expires.

We hope that this short article has given you some insight in the pioneering research that goes on at IMGZ in the fields of both privacy and monetization, and maybe you'll implement some of these ideas in your own companies, for only a modest fee to us.

Enjoy, and don't forget, the signup link is here.


We're hiring!

Posted on .

A few weeks ago, we wrote a massively successful IMGZ systems architecture article that ended up going viral (note to editor: are we still allowed to say "viral" in 2020?) and upending the world of image hosting. Here we were, a small newcomer, poised to take on the giants of the multi-billion-dollar image hosting industry with our new, innovative and daring business model of charging people for services.

As you can imagine, all the media attention caused our user count to skyrocket, and our subscription graph started exhibiting the familiar "hockey stick" pattern that every VC in Silicon Valley wants to be hit with:

Rather unsurprisingly, such an influx of new users caused a deluge of new content being uploaded to the platform. We estimate that, with our current level of usage, up to a thousand images could be getting uploaded to the service every year.

Naturally, we immediately sprang into action to preserve the reliability of our infrastructure, and quickly drew up a scaling plan that would enable the service to withstand its newfound popularity. This is where our foresight when designing the service paid off, as the hosting provider we use let us quickly perform the necessary changes and provision an extra gigabyte of disk space.

One thing becomes clear

However, one thing became clear: We could not sustain this breakneck pace for long by ourselves. This was never more obvious than a few days ago, when we realized we were close to failing to meet our uptime guarantee for 2020, and had to take the service offline for a few days to bring our uptime down to what we promised.

This event highlighted that there is just too much to do in a fledgling startup that aims to become the next MySpace, and even more to do in one that specifically wants to avoid becoming the next MySpace. If we were ever to realize the IMGZ vision and change the world, we needed more people.

We're hiring!

If you're young, passionate about creating software that changes the world and don't know what "3x investor preference" means, you're exactly who we're looking for! You have the opportunity to join an innovative, fast-growing company with a modern technology stack.

At IMGZ, we don't just want to serve images, no. The values of IMGZ are far loftier than that. At IMGZ we live and breathe images to the point where our values can only be communicated with an image:

In talking with various prospective hires, one thing became abundantly clear: Nobody joins a startup for the money, they do it to get rich. With this in mind, we found the perfect balance of the "early startup employee" compensation package: 50% stock, 50% equity, 0% salary.

That's right! We can maximize the potential of your stock by doing away with a significant company expense: Employee salaries. This way, your stock is much more likely to be worth a lot more (and you have a lot of it, since our packages start at three trillion shares per employee! That's a big number).

Everyone we discussed this with loved the approach, and it makes intuitive sense: Name one Google employee who became a millionaire from their salary. We bet you can't, yet all of us know the name of that cleaning lady who was given Google stock and now she has "VC" on her CV, you know the one we're talking about.

Interview process

Like any self-respecting Silicon Valley startup, we can't just settle for any old 10x rockstar developer who wants to join. Firing people is expensive, you know? That is why we have prepared a thorough, six-stage interview process.

We pride ourselves on being a pragmatic, practice-driven development team, and we want to see how you perfom in real-world scenarios, so you will be given a feature from our product roadmap and will be asked to develop it to your satisfaction. Afterwards, we will use this feature in our product and see how users like it. If they do, that will be a point in your favor.

Of course, we can't really know if you developed the feature yourself or paid someone on Fiverr to do it for you, so for the next stage of the interview we will ask you to invert a data structure on a whiteboard. None of us knows how or cares enough about what you're doing, so we'll pretend to not like random things about your solution until you're on the verge of tears, to evaluate how you fare against the ever-changing requirements that come with bad leadership.

If you pass the whiteboard interviews without cracking, we'll introduce you to everyone on the team, making sure you have at least eight hours of one-on-one time with various staff members, often more than once. This is just so we get to know you better and see what you're like in social situations.

After wasting a few days of your time and ours, we'll finally adjourn and haphazardly email each other about you, mostly trying to remember which applicant you were from flaws in your appearance. We'll then round up all the notes and observations from your technical interviews and summarize everything we know about you into one list.

For the final decision, we'll look at the list and evaluate you purely on your technical merits, trying to confirm the judgment that we've already subconsciously formed based on how much you are like us. If you are too different, we're sorry, no matter how good you are technically, we'll pass. In this company, we value one thing above all others: Diversity.

Apply today!

If the above sounds appealing, excellent! Reach out to us at [email protected] to get the ball rolling, and you might soon be "working" for the best image host in the world, IMGZ!


The architecture of IMGZ

Posted on .

Every day at work, hundreds of customers ask us "can I get a large cappuccino?". Later, we go home and use the money to narrowly avoid starvation while working on IMGZ, the best image host, in true Silicon Valley spirit. We thought that some of the architectural challenges we faced while building the service would interest others, and decided to write about them to help our readers and change the world.

If you aren't familiar with IMGZ, it's an image host with a twist: You pay to host images, thus ensuring that we always have your best interests in mind and won't turn into a social network. In essence, we flip the traditional "startup giving away VC money to users" on its head, and take money from users. If that sounds good to you, you can sign up on our home page and we'll only be mildly surprised.

At IMGZ, we're passionate about two things: Serving images, and speaking about ourself in the plural so it doesn't look like it's the one-man sideproject it is, and we don't even really care about serving images that much. Today, though, we're going to talk about the former, and take a deep dive into the technical details of serving more than one million bytes of images per day while maintaining the elusive "nine fives" reliability guarantee we're loved for and usually uphold.

Architecture deep-dive

Our architecture is pretty simple, a fairly run-of-the-mill, scrappy-startup SaaS architecture which you've no doubt seen countless times before:

Architecture diagram

While designing the IMGZ storage and serving model, we wanted scalability and reliability to be our foremost concerns. After months of designs and grueling research, we ended up designing a Kafka-based georeplicated image processing pipeline over a multitenant, distributed, resilient microservices architecture, where metadata about each image is kept in a georeplicated MongoDB instance, and with images themselves stored in DynamoDB on AWS, ensuring scalability and low latency.

When we realized we didn't have investors to impress, we trashed that plan, as it sounded like too much work. We realize that architecture design nowadays is mostly aspirational, but at some point a startup needs to come to terms with the fact that it doesn't have ten million users right now, it probably won't have ten million users soon, and it'll likely never have ten users. Instead, we stored the images in a small Postgres database (yes, the actual image data itself), with a small Django app handling the business logic. Sexy.

When the user uploads an image, we process it, create thumbnails for displaying in various views of the website, and store it along with its metadata in the database, at least in theory. When a user requests the image, the request first goes through our CDN, which fetches the image from our server and then caches it forever, so each image is only served by us at most once. For our CDN (for serving, caching, georeplication, etc), we use CloudFlare's free tier, which is excellent. We ensure that we'll always remain in the free tier by providing a paid service nobody would actually ever pay for.

The hardware

This is the heart of IMGZ:

Servers

Images, just like the one above, are the heart of our service, but let's not digress. The hardware is a $5/mo Hetzner VM that serves ~10 other projects, so it's pretty beefy. As our favorite proverb goes, "you don't need lots of resources when all your content is static and you can get someone else to serve it for free".

We're pretty confident in our ability to scale our infrastructure in the event that more users join the service, as our VPS provider has a button we can press to make the server larger, solving all scalability problems once and for all.

Moral of the story

This article was a bit boring, wasn't it? That's by design: Your architecture doesn't have to be exciting to work, especially in the early stages of a company. Doing the easiest thing that works (taking care not to paint yoursellf into a corner) is often the best way to start, since you usually don't even know where you'll end up.

To summarize, our architecture follows the tried-and-true Silicon Valley approach: Build the simplest thing you can, by piggybacking off of everyone's free tier, while they hope you one day become successful and pay them exorbitant amounts of money in return. The strategy to outsmarting them is simple:

Just make sure you never succeed.