0x202020
Joined 6 years ago
Joined 6 years ago
1) ($$m total, $$k/mo now) Server hosting! This started off as hosting game servers for friends in early high school. It expanded to friends of friends for awhile before I pivoted more towards crypto mining (yes I know, young kid with dubious ambitions). Lots of my first software experience was here. I wrote some software for switching the processes between mining/game hosting across the different boxes (raw processes on servers, the horror). Nowadays it’s winding down as just game hosting and some scientific computing rental to a few universities/their robotics clubs. It’s still slightly profitable but I have no interest in updating servers (CPUs from 2013-2015, GPUs mostly re-sold except for what a few people requested) and it runs everything via containers now.
2) ($$k/mo) Sports film review. I wrote the first version of this my first year of college which was a way to keep the stats book for basketball and football games and stitch the actions with the video footage. We had customers throughout ~20 states primarily high school but some colleges as well. In fact it still runs at a lot of them, but I’m not really connected with managing of it anymore. My co-founder still runs it and we rotate a few students from our alma-matter in as interns and occasionally juniors on it.
This became the basis for an esports version of the software that I created a few years ago. This time with CV to do all the gathering of stats and allowing for jumping around in videos and analyzing overall stats from the output. This started in Call of Duty for their then new professional league but expanded out to Halo, Rocket League and Valorant since. I still do some occasional retraining of the models but the product itself got acqui-hired by a larger company for which I still “consult”
EDIT: I’ve also had many more that cost me more money than they ever made, but I’m a big proponent of failing fast and iterating
The yearly release cycle, which may be ending soon, leads to bugs that re-emerge each year and features that appear and disappear. Sure, the different studios which produce the games need some room to innovate, but the inconsistent base set of features is incredibly frustrating. CoD games are one of the games I play the most, with the other being a game which is the complete opposite, Old School RuneScape, that has been built on for ~20 years.
I play the current game MWII with friends a few hours a day most days of the week. Multiple times per session my game crashes at random, something I can’t remember with any other major games with a top of the line PC. Like many other pieces of software, chasing other revenue sources seems to have made the quality of the product take a nose dive, with consequences yet to be seen. This is disappointing to me as someone who enjoys playing the game with friends, who has competed in open-bracket events at major tournaments over a span of a few years, and worked directly with the professional league and teams (CDL and CWL) for analytics and software.
I even tried using a Snapdragon phone dev board for awhile for something more than an RPi
I still run KEDA at home for managing plex, home assistant, some game servers and other of my own projects. But being the only one who is using the cluster is a different use case than getting RBAC, ingress and management set up correctly for a production cluster IMO. I’ve never had the sole responsibility or permission over a cluster before, so it was a daunting step I decided not to take for my own sake
On the other hand, my most played game is by far Old School RuneScape, which is a restore of a backup of RuneScape from 2007. The game has certainly evolved in style and content since the re-release, and I use a 3rd party client with an “HD” plug-in which adds more render distance, shadows, lighting and anti-aliasing.
We’ve rewritten most of the interactions with the older version of ES into a new service and use a self-managed OpenSearch cluster on Graviton instances and it’s the most stable Elasticsearch/Solr solution I’ve ever interacted with
The pattern exists in one repo with the other being all the duplicates, they’ve been in “it just works” for long enough that no one has changed them. Workspaces look pretty slick, I’ll have to check them out
I still use that setup for gaming, but I use a single Pro Display XDR for work now and I think the only time I might miss the extra screen space is probably Zoom
On the other hand the analytics/sales teams have many DS and MLEs, a DA is basically a “junior” for them, but they routinely have to reach over to an engineering team to do pretty basic SWE skills that they are supposed to cover themselves
2 and 3 I’ll answer to the “best of my knowledge” but on the professional level it’s something my team doesn’t handle (I do wish I knew more!). Features get merged to dev/stage/main and trigger blue-green rolling deploys based on whatever is configured. The deploy is handled through AWS CodeDeploy (not my choice, also not my teams jurisdiction) which handles ticket validation/testing/deploying to whatever k8s cluster/manual deployment rollover if needed.
I believe you can build ARM images from Docker, or at least I have a vague recollection of doing so for a Raspberry Pi, on a normal x86 machine
I would say I’m the bridge between the infra/DevOps teams and our back end team of 12 people and as far as everyone else on the team is concerned it “just works”. Still waiting for the first big time it doesn’t
An example from a previous job where we used a hand tooled NLP system was querying for doctors/dentists/optometrists and being able to take something like “dentist near me who is available in the afternoons and speaks spanish”. We would parse this user query into a few different queries that would run against a search cluster and database to return the filtered result set, or the closest output.
What would be the ideal way to prepare or tokenize this data for querying with an LLM? It’s partially text (match dentist, speak Spanish), partially geographic (near me, doing a geo radius of N miles from providers location, and part filtering (who meets all those criteria and has availability in a time frame). Is this a use case for large token sizes to be able to take in all possible providers? Or parsing a query more easily from human language -> SQL/other data store query language? Or perhaps figuring out another way to encode this data?