When you start programming in the Adult Entertainment industry, things start to get a little tricky. A lot of systems you used and took advantage of with previous apps are no longer available to you. It's mainly different sites TOS prohibiting you using their service when associated with explicit material, or something like cannabis related.
Let's take emailing for example! There's tons of email services like MailChimp, MailGun, SendGrid and many others. But the problem is, we can't just choose the best option, or the cheapest option. We have to first see if the service would even allow for sending out any adult related content. I'm not talking about emailing porn, I'm simply talking about transactional emails like a password reset email. A simple all text related email, but it happens to be coming from "some_explicit_domain.com". So in this case, we might use something like "yourfunadultsite.com" or sometimes something even less direct like "6E92119A91B70F8BEDCC2720C69CE1CB.com". Those usually end up leading us to high bounce rates, and spam reports though.
That's before we even start talking about using the service. Once we find a service that allows for sending stuff out, we have to be extra conscious about bounce rates. When people sign up for these type of sites, no one wants their personal email attached. So what do they do? They use a throw away email. This means we now have a member we can't send specials to, we can't email for billing issues, we can't contact to say we need to go down for some server maintenance. We have this person giving us money that we don't have an easy way to contact. Another thing is a lot of people will just use a fake email that doesn't exist. This would raise our bounce rate and potentially get us banned with the service we chose.
Well, you can't just choose any host, that would be too easy. The host has to be cool with what you're selling. Luckily most hosts these days are; however, that wasn't the case just 10 years ago.
The tricky part these days comes with the sheer amount of data. A small company with a few thousand videos could have something ridiculous like 9PB of data... yeah, that's a P... (7 * 10^15). Could you imagine trying to make a backup? Now think of what a larger video company would have with hundreds of thousands of content files...
Amazon now has these devices called AWS Snowball that they ship you. You plug in to your physical server and copy your data, then ship the device to a new location. Unless you're working with massive physical data, this is not something you'd really ever come across.
As well as the hosting, you have to look at the CDN. It's common to have users all across the globe for your sites. You want to make sure latency and connection is as fast as possible because if it takes someone longer than a few seconds to load your videos, they will move on quickly. I mean, there's no shortage out there 😛. A CDN will help that out, but you have to be sure your CDN allows for that. They are basically making a duplicate copy of your site and spreading it all over the world.
Once you find a CDN, you have to consider what your traffic and bandwidth look like. These types of sites are such high traffic and high bandwidth that it gets expensive REAL quick. If you take a look at Cloudflare, you'll see the $200/mo plan (per domain). Since these sites are generally based around multi-tennant apps, you'll run 30+ sites off the same app easily. Oh, then you need Load Balancing, Rate Limiting, and SSL?
With so many things that are a challenge with this industry, why even work in it? Well, there are also some really great things (I'm talking about the dev side). For example, learning about Machine Learning stuff which could allow you to build a video recommendation engine. You watch a video, and then based on how long you watched it, which actors are in that video, maybe the types of things (we'll just call them tags) are in the video. Maybe also taking in to account how many people have commented on the video and what the average star rating is. With all of this data, we can now build a system that says "You might enjoy watching these videos as well...". Pretty much any video site you go to like youtube, or twitch, they're going to have some system that says because you watched video X, you may like video Y.
Me personally, I hate the way youtube does it. I checked out one football video to see what people were talking about, and now all the videos recommended are sports related. They must not know me though since I don't watch sports. This is a tricky problem to solve, but not impossible. That's the sort of challenge you get with stuff like this.
Also dealing with videos, you have to be concerned with video encoding. Most companies shoot the content in 4k these days, but not everyone can watch in 4k. Most devices won't really show a difference between 1080p and 4k anyway. So might as well save some bandwidth by showing a different quality version based on the user's device. We take a single video, and turn it in to several different files from a low res 420 to full HD 4k.Then by using HLS streaming, we can stream the right version to you based on things like your connection, screen size, etc...
Some decent video encoding services are Coconut, Zencoder, Bitmovin, and Telestream. So far Coconut seems to be the cheapest as well as providing a very nice API. Nice APIs are hard to come by in these industries.
Now, I've only dealt with the adult video industry, but the cannabis industry is running in to a lot of the same issues. It's legal in a lot of places now. Way more than it was 10 years ago. That means there's a new thriving industry to build awesome new apps. For example, I saw a site that had grow stats for different people. Each day it showed the humidity, temperature, soil saturation, sun light, and tons of other unique data for each day a plant was growing. Building a system that sends data to a site through an API is something a lot of developers never get to work with.
Sadly, because that industry falls in line with the "gray" area, it also gets a lot of the same stigma. When I worked in the poker industry a few years back, it was also in the same line. You could have a poker app, but it had to be hosted in Nevada, and only played by people with a Nevada based IP.
Have you worked in any industry that has some unique challenges? Share your experiences!