1. Introduce yourself.
My name is Yahia Bakour and I’m the head of growth over at Stock Alarm. I’m a software engineer by trade but I also have experience in marketing and growth development. I’ve been interested in the stock derivatives world for quite a few years now and have enjoyed working within the space.
2. What are you working on?
Stock Alarm is a platform built by traders for traders. We provide reliable stock alerts for thousands of traders every day to help them make the best decisions and to help them prioritize their time. We allow users to customize their alarms according to their trading style. Whether you use fundamental analysis, technical analysis, or some mixture of both; you’ll be able to build your own strategy with Stock Alarm.
Our features include providing reliable CALL/TEXT/PUSH alerts on any stock or crypto based off the following metrics: price Limits, price changes, sentiment alerts, volume-based alerts, MACD, RSI, SMA, ema, gold crosses, death crosses, and much more!
We also provide special features such as trending news for every ticker, a discover tab where you can check out trending tickers in the stock alarm community, and stats to help you decide how to set your alert.
3. What motivated you to get started with the project and what are your goals?
I was originally a Stock Alarm user who gave them a list of suggestions early on and was an avid user of the platform. I joined the team late last year and proceeded to take on the responsibilities of growth and backend development.
4. What's your tech stack and what tools do you use?
Our tech stack consists of a Firebase backend, an elastic search instance, tons of cloud functions, and a swift client. Regarding infrastructure, we use GitHub for version control and to automate linting/tests on every PR. We have to update thousands of tickers every minute and have optimized our cloud functions to always ensure that our prices are up to date and our alerts always go through. We have plans to expand into the android and web markets very soon.
5. What’s your workflow from planning to the finished task?
Our usual workflow starts at our weekly standups, we prioritize what features need to be built first and proceed to divvy up the work among ourselves. We then use Slack, Trello, and Notion to coordinate our activities throughout the week. Once a feature has been developed and polished, we create a PR and the rest of the team reviews it. Afterwards, we proceed to the integration testing phase where we ensure that there will be no unintended side effects. We deploy at midnight (way outside of trading hours) and proceed to ensure everything works well in production.
6. What technical challenges did you face and what is your approach to solving technical problems?
We initially faced quite a few issues, to elaborate:
- We have to update our ticker list often to ensure that we index newly IPO-ed companies into our system.
- We have to crunch data sets to produce our technical indicators including SMA, EMA, RSI, MACD, and more.
- We have to update company meta data on a weekly basis including Logos/Descriptions/Categories/etc…
- Updating 10,000+ tickers every minute on the dot is much easier said than done, we have multiple systems in place to ensure that our data is never stale.
- Our system is well equipped to handle 3000+ calls/texts/push/alerts per hour without any discrepancies popping up.
- Right now, you can set hundreds of different combinations of triggers on our platform, testing all these combinations has proven to be a difficult task.
7. How is your team organized?
Our team consists of 3 engineers, I focus mainly on the development of backend services while the other 2 engineers alternate between client and backend dev work. We handle all discussions through slack and provide data to backup any arguments. We sync up on a weekly basis to discuss priorities.
8. How many hours a day do you work on the project on average?
On average we each put in around 2-5 hours a day of work on the project. We prioritize building a self-sustaining system such that if none of us can work on the project, it will continue to grow on its own.
9. Tell us about your best and worst days writing code.
Best days are the days when I am building things I’m genuinely interested in, I recently built a twitter bot that would automatically tweet out upcoming earnings dates, breaking news, and top gainers/losers of the day. Super fun to work on and build the architecture for. Check it out at (https://twitter.com/Stock_Alarm
Worst days are the rare days where a discrepancy pops up and I have to investigate what is going on with the architecture.
10. Where can we learn more?