When I speak about some of my past experiences, and the pain they bring, I feel like people's eyes glaze over.
I dont think until you've spent upwards of a year on something at 10+ hours a day.... you could ever really relate.... thousands of hours, almost HALF the time they say it takes to master something, and then nothing comes of it...
I can just say I look back on those times of my life with appreciation but also, damn does it hurt. The pain never really fades too much either. Despite all my successful projects, all my fingers in many pies, all my current success... I can't get back those multi-year projects. They were certainly required for learning, but I just feel sad and melancholy when I think back.
Easily over 1,000 hours (~2 hours ~5x day per week for ~2 years) invested in to the app. I learned so, so much, and fell in love with the Swift language, but that app never saw the light of day.
Instead, I developed skills that have made me a much better programmer. And, fast-forward to the current day, I could effectively re-write the entire app - from scratch - in a weekend, due to the evolution of Apple's platform dev tools and APIs over the last ~7 years + the mountains of Swift code and packages I've hacked and honed away at over the years.
This type of project should be celebrated. Programming is (can be) art. Art can be made just for you, as a creative outlet.
You can't justify to your family, kids and other "stakeholders" that you spent thousands of hours developing apps just for learning new subjects. In the least, you need some kind of successful activity to grow out of it.
Besides, some parts of a software development project do involve learning, but a huge portion is drudgery. Solving edge cases, doing customer support for repetitive issues, solving that last pixel that is not quite right.
Making apps is great, and it's a sign of maturity to have a concern for how well received it will be.
Professional data is expensive, and one-person companies are not on the radar of data vendors and exchanges, who try to make big contracts e.g. with national banks abd brokerages, who then make that data available to their customers via Web portals. The quality of financial data isn't very good even if you pay a lot.
If your project had been a startup, you would have had to check whether your assumptions apply ahead of building out your front-end and incorporating, ideally: "Can you build it for an acceptable price?" (factoring in the data licensing cost) & "Will they buy it for the price (+ your margin) that you can build it?"
This sort of outcome based thinking where you fret over past projects in hindsight with knowledge you didn't have when you had to make a choice just isn't worth bothering with. Most projects fail, most businesses do, that's just how it goes. I remember reading a blog from an ex finance guy where he pointed out that nobody was ever fired for accidentally making money from a bad trade. In our results based culture it's pretty easy to forget that we really only control the process.
10 years.
I learned valuable lessons (like knowing when to stop!), but they were long, loooong lessons.
I still haven't really let myself think about it too much...
Would you recommend that people don't take up a year+ long project unless they are sure they won't regret it even if nobody uses it?
If you're building "for fun" go ahead, with the 100% conviction that you don't need/want it to make money.
For starters, nothing I ever do is JUST for "enjoyment" or "learning", explicitly, by itself, as some kind of standalone pursuit.
Everything I do has to have some kind of meaning behind it, even if the meaning is small, such as "I wonder if I'm smart enough to do ___?"
So to answer your question, the projects I did were not for the primary reason of enjoyment and learning, but not because I was focused on some monetary end goal, and moreso because that's not how I approach anything in life.
In this particular example, I was working with my business partner, the end goal was monetary, but also was a sort of "magnum opus" style project that was insanely difficult (algorithm wise) as well as an extreme creative pursuit (of which I'm very creative). So my creative energy was what powered me, and my endless pursuit of problem solving puzzles and challenges also motivated me.
I loved every second of it, at the expense of my health, relationships, etc.
The gist of my message I think is for me, there is no other way. I have to have the perfect harmony of meaning + creativity + problem solving + a single person I "vibe" with very very well. If those ingredients are right, I can achieve focus and motivation levels that are just absurd. I mean literally from 5am to 9pm i coded without moving out of bed, including weekends. I gave up all fun, entertainment.
I notice other people are drawn to the pursuit of knowledge simply for the sake of learning, or knowledge acquisition. That's not me though, and if the only purpose is to just pursue information I could have never done that simply due to the massive amount of energy required (and I have done year long projects... maybe 6-7 times now. Luckily some of the other ones were really successful)
I would absolutely encourage anyone take up a year long project if they're able, simply because I don't think many people possess the certain configuration in their mind of how to motivate themselves to have that much energy. It almost doesn't feel like a choice (to me). I dont wake up and go "well I guess I should spend a year on this." It is a hyperfocusing deep powerful energy, like a calling or life purpose, where the only thing that makes sense is to do it. AND....... if a person has this, they should absolutely never ignore it.
So yes, I would say any person who has even a hint of a calling, absolutely do it, and not focus on outcome.
Let me tell you my trauma then, with the hopes that it will give you some comfort/consolation...
It is one thing if users don't use your application/project. But, when it is more out of your control, it hits harder.
I was young, I spent all my nights and even my whole summer holiday thinking/coding. I dreamed about the success or career it will bring with my friend.
Then it was a success and we were generating some ad revenue, which was great & much needed for two university students. The money was absorbed by our lives like water dripping onto dry soil. The morale was high, there was an air of optimism for the future!
It was an android app, and one day, I woke up with my friend's call. He was literally crying because the google algorithm deleted and banned our account, without any explanation or recourse. You are right that it never goes away, I can still feel the pain.
After that, I remember walking up and down a popular and long street with my friend, without speaking much and trying to process "end of the adventure" feeling. Not related to google we had other human/life problems in our lives and the simple hope we thought we built for ourselves was also gone. I was heartbroken and lost all my enthusiasm for mobile development.
I still wonder what would happen if I could continue down that path, with initial little success, enough money to survive as a student, and an opportunity to build upon that... It is just a parallel universe now. Google could delete our app, but guide us to the right path. If I could know the rules, I could continue and be a good citizen in google's walled garden. While spammers can always found a way, and find motivation with their low-effort tries... google lost a developer with good intentions. I don't think it had any effect on the algorithm or overall corporate strategy.
On the bright side, this event thought me to never trust a business partnership where I can not shake hands with a human that I trust and who geniunely wants my success/not treat me as some replaceable number. (Also insert some rant about why AI overlords can be harmful and why human history created law-based order with human judgement...)
I think it happened over 10 years ago, I can't even pay money to use a Google service now :) I don't change my email, just so that it reminds me this lesson. But if I was a scammer/spammer I would find many solutions to circumvent google AI. I tried contacting via forms when I couldn't pay for a service and when I felt like doing so. Surprisingly, in some cases I could even reach some people via these official channels. Alas, they are powerless, they had to give template answers. I assume the last word is spoken by the Algorithm, and I'm banned for life :)
Overall, It is the first time I wrote about this online. I hope it helps a little. I should also say that I have no hard feelings for people working at google, they brought us great value over the years. But the brand of the company will always remind me those days, and I will always upvote when someone criticize google :) (What power do I have as a little, disposable developer? ;) ) And, no you can't escape by changing your name to Alphabet or Alphabet soup...
I launched a much simpler iOS app, and eventually got up to around 1000 DAU organically, but ultimately closed it down because I had 1 IAP to remove ads for like $1.99 or $2.99. I was making maybe $70 a month or something, and dealing with bug reports. SwiftUI was not mature enough yet to use, so I was still using UIKit and I would constantly run into really hard to fix edge cases.
The thing that made me throw in the towel was when Google claimed I was clicking my own ads and stopped serving them, effectively cutting off all revenue. It made me realize I'd worked so hard to build this thing, and it was all at the whims of these tech giants. Apple gets a 30% cut (this was before they dropped it to 15% if you are doing under x amount per year "because COVID") of every IAP, I make peanuts from ads and Google can turn those off for no reason with no way to appeal.
I also wasn't trying to make a bunch of money off the app, but I needed to justify spending my time and energy on it and I just couldn't.
This draconian buyllshirt is baffling
Why can Google simply allow developers to register a list of $Revenue_Excluded devices and/or IP ranges and/or locations? You will inevitably use your own app and many ads are almost impossible to NOT click accidentally when scrolling. Moreover, testing in real life is important. There's also the (small) chance an advert might actually be interesting and you legit click-thru as a potential customer.
Instead, you basically cannot use your own app.
What good does this do for anyone, except for the Google devs/mgrs who insist on this kind of fundamentally stupid policy? Is it really that hard to do it even a little bit right?
If I did get an ad payout, it was likely < $100. I honestly don't remember, I've put so much of this out of my mind.
But I think such judgements are human constructs, mirrors of the biological imperative to put 'our offspring' out there in the world, these things we have gestated so long. Why should they not acquire a life of their own?? - we ask - gaining us ongoing wins in their own right, and contributing their threads to the future?
Is serving that imperative the moral, the ethical, even the simply enjoyable pinnacle of endeavour? For some of us, yes. I'm not judging it. But for some of us .... strangely, no.
I'm about a year in building an asset tracker (https://jch.app), but it's nowhere close in functionality or ux.
Incredible work, amazing dive into the journey, and excited to see what comes next in rewind.ai too ;)
It's just that an app can be published, documented, and archived easily like this while "all that time I spent cutting and welding weird bike parts" can't, unless you do it all on youtube, which a lot of people do, and that does serve some purpose but does also kind of miss the point a bit trying to turn a passtime and personal persuit into some kind of product with a goal other than itself.
Anyway, I don't mean to suggest there is anything wrong with a post like this. You don't sound like you're complaining or upset, just what you said at the top "I just want to document this somewhere somehow". Most of my own github is just the same.
This premature adjustment of judging criteria is probably not so useful, obfuscating the actual outcome. In this case, it would be easy for the author to be ashamed of such "wasted" effort, when the more appropriate reaction would be appreciation for the lessons learned. And the lessons learned on a project like this are immense.
But then the mobile apps became a thing so I started working on a native app as well...that was just too much..I burned out and got bankrupted as well so I would advise against giga projects. At some point it becomes just too much work...
I learned a lot but the waste is just not worth it. The time is too important to reinvent so much.
Now I work only on "small" projects only(max 6-12 months)
Any chance it's open source?
I've been toying with open source idea for a while - if I decide to shelf it, I'll open-source it, heck with it, some one will benefit for sure. And a lot of crapware sellers, which charge 20-50-100k EUR just for install, will be very unhappy (if not out of business).
If you cannot launch a basic version (minus everything else you want to add) consider shelving it.
I've built many projects/products over the last 20+ years. 2 or 3 took off significantly, others have thousands of users but no sustained revenue stream. One that has become a profitable business (it launched with the "weekend build" version and has built up from there over 7 years).
I know that I've been deceiving myself with "but we can't launch that when this or that is not working or not implemented..." and got carried away.
"fail fast" is a good advice, but at the same time scary to face the reality that after 5 years, there might not be anyone who really needs it or can pay for it. Scary.
Like what are the security measures?
"where the money is stored".. that one. In a nutshell, 99% of people (HN crowd including) do not understand, what is money in a bank, imagine it like some kind of electronic vault, which you as a client can access securely and transfer it (semi physically). Money in a bank does not exist. An IT guy would say "it's bits and bites, nothing more". A finance guy would say that it is a web of collaterals and liabilities. Simple example: 100 clients each open accounts with a bank and deposit 100 EUR; bank has 10'000 EUR assets and 10'000 EUR liabilities (it owes 10K to its customers); bank deposits that money, say, with TARGET2 interbank gross-settlement system (which again has accounts with other banks), so its clients can make/get credit transfers. So, as soon as money is deposited, it gets transferred to other parties, pledged, lent or invested - it is almost never "in the bank". So there's little to steal. Even if you do, the trouble is that somebody's asset is typically another party's liability (and vice versa), i.e. stuff is recorded by different actors - and all that can be traced back, you can't hack into all of them. Hence, stealing bank's funds without a trace is close to impossible. Keyword - "close" ;)
If I may ask a question - how did you do it?
“Encrypt your data using FileVault - Apple FileVault works with Rewind. With it enabled your data is encrypted.”
Is there anything Rewind does to make Apple FileVault ‘work with Rewind’? Or is this the general disk encryption that works for everything and anything? Serious question. I want to use rewind but this may be interpreted as gratuitous.
Same feeling when reading “only relevant text-based data is sent to the cloud and is encrypted in transit.”
Does ‘Encrypted in transit’ refer to standard TLS encryption? Again, serious question. Rewind looks great, I just need to be able to trust it.
But reading the details in the official Privacy Policy at https://www.rewind.ai/privacy says:
“[We collect:] Information Generated by OpenAI. As part of Rewind AI’s integration with OpenAI, we may also collect the outputs generated by OpenAI, such as the audio transcription summaries of your audio recordings and any other data generated by the OpenAI integration”
So “no cloud integration is required”, but my audio is shared with OpenAI !?
While at https://www.rewind.ai/privacy-first it says: “What happens when you search in Rewind? All recording data stays local.”
Which is it please? I want to trust Rewind because it looks great, but these incongruities in explaining what is happing with user data make me hesitate.
Audio is locally transcribed on your machine. And you have full control over when you want to record audio (ie, only have it turn on with meetings), and when it comes to screen capture Rewind can exclude apps you select (such as 1Password, incognito windows, etc)
All that being said, we are also working on letting you toggle to using a local LLM. Our CEO @dsiroker did a demo of our Windows app with Llama 2 on stage with Intel's CEO at their recent conference: https://twitter.com/dsiroker/status/1704188923336085657
Their most public statements only apply if you use the product in a very restricted and clearly unintended fashion.
But this guy is now behind Rewind.AI so he probably knows a bit about shipping! Kudos for sharing your journey
Scraping based ideas hit this issue. Ideas that attach to a single platform API too: X (formerly Twitter) killed many startups who relied on it's API.
This probably generalizes to "What are your dependencies, how risky are they?"
Which then covers people who rely on SEO rankings, or a single Instagram account for their entire business.
I reported a handful of bugs/suggestions. Never heard back from the developer.
Congrats on the project! Even if not launched!
I'm a backend dev so I've focused on that mostly and haven't created an app but I can honestly say that things I've learned have not only made me a better programmer but allowed me to shine at some jobs where others didn't have a clue.
Keep going - if that's what you want - but wear your accomplishment as a badge of honour. Feel free to connect with me as well.
I built a working concept of a mobile app and pitched it with a friend to FUTO for one of their grants. Project got declined, and the 2 months I spent developing it in every spare moment ended up going nowhere.
The failing to land a grant kind of killed enthusiasm. Project still builds, and oddly it’s still a viable concept. But it remains locked away in the confines of my SSD. :|
Is this then a good idea for a VC or YC funded company?
From a startup project point of view, this project has way too much functionality (ui activity), without much user-base. No doubt a cool engineering project though - nicely done.
p.s. I never wrote this message :P
I was wondering if maybe the state of data feeds has changed, seems like there are so many competing data feeds now - https://docs.openbb.co/terminal/usage/guides/api-keys
but one does wonder if they are same quality as expensive professional feeds like bloomberg, keeping up with splits and ticker changes etc.
Market data is extremely complicated and I've seen so many get fooled into thinking it's easy. It's understandable, if you can google any stock and get the price, you'd assume the data is free or public domain or something like that right? Maybe a small fee at most to power an API to get it. For those wondering, it tends to go like this:
You look into it and it's not quite so simple... the exchanges, like most financial services, are stuck in the past... but theres a cool website called IEX that is "revolutionizing" market data and can provide stock data for fairly cheap.
It looks like your idea might work, until you realize something is off with IEX's data. The prices aren't very accurate. Well it is accurate actually, only for stock trades that take place on IEX. Not NASDAQ. Not NYSE. Turns out the price of a stock that users expect is actually the last trade across ALL of the major stock exchanges.
Surely there is a way to get the "consolidated" price that reflects all exchanges? Not just IEX's measly 2% of volume? There's what is called the "consolidated tape" which is just that. Wait just kidding. It's "consolidated" but requires you enter into agreements with two separate organizations called CTA and UTP, also known as SIPs (security information processors). These are the only companies allowed to license the data, so they set the prices extremely high, starting at thousands of dollars per month.
Well, maybe you could deal with that if your app gets enough traction. There's more though... you can't actually get the data from CTA or UTP. You have to have a "vendor" do it for you, and pass on the data. The vendor is essentially a wrapper around the SIP that handles distributing the data to end-companies (not end-users, because realistically very little individuals can afford this, and vendors aren't too interested in dealing with individuals). Since the vendor focuses on the distribution, you'd assume their API would be top-notch. Instead you can tell it's built upon layers and layers of technical debt and edge cases. Oh well.
So, you then pay for the licenses from the SIPs, and the data from the vendor. You are now burning at least 10k a month. You get your first user, and they complain they can't find "SPX", the largest stock index in the world. Oops. It turns out indices, futures, options, and other securities, are all separate SIPs. You have to deal with even more backwards organizations to get licenses for each type of security. Don't forget the vendor wants another couple thousand for each SIP, more if you need realtime streaming or historical charting. Maybe just get indexes since they are popular? Indexes are once again spread across tens of organizations, depending on who owns the IP for the index. At this point you give up and just focus on U.S. stocks for now, until you get more funding.
Then one day, you are selected for a "random" audit by the SIP. They ask for personal information on every user you have, and claim that some users are actually financial professionals (such as a CFA or stock broker). They try to fine you 50x the price you expected because some users happen to have the same names as professional traders. (They charge a massive amount per professional trader vs per "ordinary" person) You have to deal with explaining what that even means and why it's important to your users to try to avoid this fine. Maybe your application was used on TV, or over the phone, or even on an elevator. There are different licenses for that. Ridiculous? Well, the SIP is authorized by the SEC to distribute the data, and enforce it. You have no upper hand in any negotiation.
To be continued in blog post someday maybe
FWIW, your new project already has some good traction. I've heard about it before (not sure where, but I 100% remember seeing it)
> But, I started to get an idea of why there aren't great apps from indie developers focused on the stock market: getting quality financial market data is a nightmare. The good data you need for commercial use will cost $2,000/mon to start.
>I wouldn't ship an app with unreliable or inaccurate data. It never met my quality bar.
Stammys data challenges really resonated with me as I work to solve this problem for betting markets (instead of stock markets) with my new startup wagerapi.com