Get Paid To Train Magic
Tags: python, startup, gcp, database
Published: 2021-09-25 02:11:54

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/izcj2yyjb10szcsxn58k.png)



Grab a wizard mind bomb             

Let's talk about magic training in old school Runescape.

In old school [Runescape](https://oldschool.runescape.com/) 
a typical way to train your magic level is to use a high alchemy spell. 

The High Alchemy spell turns an item into gold pieces (denoted as gp in Runescape's currency). 

You find the item that will return the most profit based on the player economy. In order to optimize your magic training generally you train at a loss and that is normally accepted. 



### Loss Scenario:
The item you buy is 500gp, a nature rune is 200gp, and when you complete the high alchemy spell it turns the item into the average market value of 680gp.
* Your cost is 700gp
* Your return is 680gp
* Your loss is -20gp

 
### Gain Scenario:
The item you buy is 500gp, a nature rune is 200gp and when you complete high alchemy spell the average market value of the item is 750gp. 
* Your cost is 700gp
* Your return is 750gp
* Your gain is 50gp

The market is dynamic and can change in an instant though so you have to watch and find items that will be ideal to gain a profit. This can be a full time job in itself if you really want to commit to it. 

But not with my new startup that eliminates the guess work and saves you time 

##[hialchemy.com](www.hialchemy.com) 

Hialchemy is one of the first movers in the virtual fintech world. Actually Hialchemy coined the term virtual fintech (all puns intended). 

I sort the top 100 items with the highest return value based on last purchase price. Or sort on item name, price whatever you desire. We always show the most recent Nature rune price to help you gauge how much they will cost. 

![Screen Shot 2021-09-24 at 9.53.20 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6sh48pw4ixfbcns9v1tk.png)

Or you can search for any item and see its return value. On top of that it calculates the cost, experience and time it will take of the number of alchs you want to perform!

![Screen Shot 2021-09-24 at 9.53.44 PM](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ku9jg1lfsnto3gwxl6ab.png)
 

## The Tech Stack

### Frontend: 

[Streamlit.io](https://streamlit.io/) a really cool python library I found that helps create data tools really quickly to put on the web. It was the quickest way to make an MVP for me so I chose this and focused primarily on the backend.

### Backend: 


#### Databases/Storage:
The primary database is NoSQL Firebase. The reason I chose this was because it was something I never used before and wanted to explore how it worked. It is a NoSQL document storage database. 

I use GCP buckets for historical json storage of daily snapshots of data.

In addition I send all my data to BigQuery from Firebase (there is a direction built in connection). All my data is transformed using [dbt](https://www.getdbt.com/). The data that gets fed into the frontend is actually transformed data from dbt! 

#### Orchestration: 
Pub/Sub is the main method of orchestration for all data. Where all my data Pipelines are built in Python and trigged as cloud functions. They are simple json requests to pull api data or publish data in firebase or a gcp bucket. 

#### Deployment:
I use primarily Terraform to deploy everything, there are some pieces that I use cloudrun for that was easier to setup than Terraform. 

#Whats Next? 

- More frequent purchase updates 
- Create an API using FastAPI 
- Publish a deeper dive into the tech stack
- Rewrite frontend in Flask (maybe a javascript library?)
- Move backend historical data from gcs bucket to Postgresql

 
Credits: 
I am a big 10k diver fan and took inspiration from his threads for this post. https://10kdiver.com/twitter-threads/