Spring 2020 - Current
Some of the first pieces of software I have ever written are the foundations of my trading algorithms. I currently have a live crypto trading algorithm running 24/7 utilizing the Coinbase API. I am in the process of building my second alorithm that I hope to launch in mid to late 2025.
Trading with automated software is a game that requires a specific mix of skills to be successful. Not only do you need to have the range of knowledge required to build highly performant, multithreaded, error-resistant, and data-backed code, but you also need to know how to trade in the financial markets. Through my algo trading journey, I have followed many traders and studied the fundamentals of trading, including technical analysis, price action, options contracts, futures, and much more. I do a lot of manual trading to better understand what can be automated and what cannot be. I am happy to say that overall, I am a profitable trader.
The range of markets out there is staggering, but one that has always found my interest is Defi or Decentralized Finance. Cryptocurrency and the many applications and opinions about it are very interesting to me and have become a hobby of mine. I have invested in liquidity pools through Sushi Swap and Uniswap on many blockchains, including Ethereum, Polygon, and Base. I have also built software that interfaces with the blockchain to automate my investments. Though challenging and incredibly volatile, these markets are incredibly fun to be a part of.
Building software that handles money increases the stakes of an unhandled error or an untested function that starts going rogue. It is best practice anyway when developing software to never ship untested code, but building the entire testing and deployment pipeline from scratch means you and only you are responsible when it fails. To ensure my algorithms only behave as intended, I have an extensive unit testing suite that runs within my CI/CD pipeline with GitHub Actions. This flow also builds my code into a Docker image that is tagged and pushed to an image artifactory within Google Cloud to be pulled into my compute VMs using Docker Compose. This way if I have a faulty image I can quickly boot up the previous version and address any issues.
You can't build a profitable trading system personally or with a computer without data. Getting the right data and interpreting it the correct way is the key challenge that I face when building and understanding algorithm performance. Backtesting a strategy correctly to remove bias and interpreting the results can be very time-consuming and tedious, but it is critical to building a trading system that works and is validated to make money. There is a fine line between a profitable trading system and a very good money-losing machine. It is hard to know which you have until you have properly validated it and proven its money-making potential.
Getting a profitable algorithm is a feat, but it is only half the battle. Bringing that algorithm to be production-ready and then feeding data out to useful dashboards to ensure it is making correct decisions is the second challenge. For this reason, I have built a series of dashboards to monitor my algorithms and test new ideas manually to continually improve and adapt to changing market conditions. I have built a web app using Svelte and SvelteKit and a mobile app using React Native. Both use Trading View's lightweight charts library to build meaningful and useful data visualizations to make accurate decisions.
If you want to put me to work solving the biggest pain points for your business, reach out to me here, and let's talk!