HNHacker News
TopNewBestAskShowJobs

amzans

2,840 karma · joined August 9, 2016

submissionscomments
amzans··on Ask HN: What is your “I don't care if this succeeds” project?
Thanks for the input!
amzans··on Apple silicon M1 as-a-Service
I am getting an “ Oops, an error occurred!” message.

Update: I opened it with Chrome and it works fine. It’s not a “hug of death” as I initially thought.

It’s on Safari (iPhone 12 Pro iOS 14.4) that it’s always leading to the error above. In case it’s helpful for the website owners if they see this.

amzans··on Ask HN: What is your “I don't care if this succeeds” project?
Thanks for sharing! The blog post has a many helpful lessons learned on open source.
amzans··on Ask HN: What is your “I don't care if this succeeds” project?
Mine is a side business: https://panelbear.com/

I started building it for myself at first, scratching my own itch.

I don’t feel the same pressure as I had with my open source projects. I’ve been adding features when I feel the need for my own use (i.e. alerting system), or customers made a good point for why it’d be useful.

Also, I don’t work on stuff that nobody requested yet. For example, you can’t even change your account email yet.

So far it’s been fun working on it, and slowly getting paying customers. But it might take 1-2 years for it to replace my day job income-wise. That’s fine, it’s just about having the right expectations, and keeping up a sustainable pace.

amzans··on Tim Cook warns of adtech fuelling a “social catastrophe”
The full title is:

> Apple’s Tim Cook warns of adtech fuelling a “social catastrophe” as he defends app tracker opt-in.

But it was too long for the form on HN. If someone could suggest a better alternative please let me know.

amzans··on Ask HN: How do you find a business idea and motivation to leave the 9-5 grind
Every business is a roller coaster, no matter how small or big it is. The name of the game is: long-term thinking.

I've built several products over the past decade outside of my day job, including non-software products. Most of them failed financially, but that's the reality of it. For every successful story you hear, there will be 100s of failures you never hear about.

After talking with many founders who "made it", most of the time those successes came after years of struggle, and continuously learning and re-inventing the product. Once the success comes, the media will tell a very glamorous story, inspiring lots of new founders too.

What has worked really well for me: "scratch your own itch". Build something you wish existed, it's much easier to stay motivated and know what to build when you are your own customer.

No list of startup ideas can give you this, be observant and constantly get out of your comfort zone for inspiration. "Comfort" is a bubble which blinds you from the problems that need solving. I mean, it's right there in the word: comfort = problem-less :)

It also makes answering this question easier: "would you pay for the product yourself"? By scratching your own itch, you're also putting yourself in the shoes of your potential customers when it comes to evaluating the value you get from the product.

Also, if you want to escape the 9-5 grind, don't build something just for the money, it won't be fulfilling down the road either. Once it's financially successful, the last thing you want is to dread waking up each day to run your company.

Regarding your point on finding time, I personally work about 2 hours per day on my projects. It's surprising how much you can get done when you are in your best shape (physically and mentally). Look out for quiet spots too, I'm most productive when there's not much else going on, either early in the morning or late at night.

The most important thing: give yourself time to relax after work, last thing you want is to burn out. Enjoy time with your family, and friends (once the COVID situation is better of course). When you’re not working on your project, be present (stop thinking about what you will do next). Really take a break from it. I cannot stress how important this is, and I made this mistake far too many times.

In short: build a sustainable model for yourself that you can stick to for the long-term. If things get complicated, cut scope. If things aren't working out, pivot or move on to another project. Above all, prioritize your wellness and quality time with your loved ones. Time is your currency, you will never get it back.

amzans··on Show HN: 128-bit, roughly-ordered, URL-safe UUIDs
Thanks for the comment!

Yes, I'd like to clarify Timeflake (and many alternatives suggested) is NOT meant to be used for security.

There's an important note on the readme about this:

> Since the timestamp part is predictable, the search space within any given millisecond is 2^80 random numbers, which is meant to avoid collisions, not to secure or hide information. You should not be using timeflakes for password-reset tokens, API keys or for anything which is security sensitive. There are better libraries which are meant for this use case (for example, the standard library's secrets module).

amzans··on Show HN: 128-bit, roughly-ordered, URL-safe UUIDs
Thanks, I updated the comment to mention that the link is in the context of MySQL's case.
amzans··on Show HN: 128-bit, roughly-ordered, URL-safe UUIDs
For those interested, here's (IMO) a good explanation on why completely random UUIDs hurt performance, and can lead to database fragmentation issues down the road (on MySQL):

https://www.percona.com/blog/2019/11/22/uuids-are-popular-bu...

It's part of what Timeflake aims to solve, but there's plenty alternatives too depending on your exact requirements.

amzans··on EU Signs €145B Declaration to Develop Next Gen Processors and 2nm Technology
Interestingly, in German the word for debt - “schuld” - is the same as the word for guilt.

Having lived in Germany for 7+ years, I noticed there’s a strong sentiment against owing money in general. Odd, considering the crazy high real-state prices these days.

People also seem to save a lot, and consume much less than in other western nations I’ve lived at, or visited.

This may be causing broad economic issues as the money is there, it’s just not moving around as much [1].

[1] https://www.bbc.com/news/business-50213411

amzans··on No Cookie for You
> Does anyone happen to know of a service like this that is free (not self hosted) for non-commercial, low-traffic sites?

Panelbear is privacy-friendly, and has a free plan with 5,000 page views per month. Commercial use is allowed.

https://panelbear.com

Full-disclosure: I’m running this service. Feel free to ask me anything :)

amzans··on Choose Boring Technology
I just apologized if I reposted too often, I initially thought it was fine based on the guidelines.

(To clarify, I’m not the one who downvoted your comment above)

amzans··on Choose Boring Technology
Hey I'm the OP, the HN rules indicate that if a post didn't get enough attention that's alright.

https://news.ycombinator.com/newsfaq.html

  "If a story has not had significant attention in the last year or so, a small number of reposts is ok. Otherwise we bury reposts as duplicates."
I reposted it several times over the past month. I'm sorry if that was too much, now I know that.
amzans··on Choose Boring Technology
I actively participate in both communities for some time already. Not sure what is wrong with sharing my posts?

I do mention what I’m doing to build a product, if you find it interesting, great. If not, feel free to ignore it.

But that is not at all the point of the article.

amzans··on Choose Boring Technology
I do not think anyone has covered this topic in the context of choosing Kubernetes for building a one-man SaaS.

> Anyway it seems like you are deep into copying the stuff of others as Panelbear look a lot like a copy of SimpleAnalytics

I was unhappy with existing solutions, so I built my own.

amzans··on Choose Boring Technology
Thanks, just updated the article to clarify the context a bit better.
amzans··on Choose Boring Technology
Yes, I posted the article in the past. This time people saw it, and started discussing. That's about it.

I'm just trying to share the lessons learned while building a product, and if someone finds my product interesting, that's great, if not, fine too.

amzans··on Choose Boring Technology
Hey thanks for the feedback! I'm the author of the blog post. The topic has been influential for me, and I just wanted to share my perspective on it, specially in the context of a recent project.

I don't think any other article talks about Choosing Boring Tech in the context of Kubernetes, and building a one-man SaaS.

Could you please clarify what you found odd? I'm just curious.

amzans··on Choose Boring Technology
I tend to prefer tools that have: a) withstood the test of time, or b) I feel comfortable debugging it if my business depended on it.

My argument for battle-tested tools is, if they are still being used by a significant community even if no longer "trendy", they probably solve a problem well, there's lots of help online, and the ways in which it can fail are well known.

That said, I do try some lesser known tools if they help me ship the product. I just look at them as a risk factor until I understand them better.

amzans··on Choose Boring Technology
Kubernetes is used by thousands of companies, big and small, has been around for more than 6 years, and is well supported by various cloud providers. There's lots of documentation and forums online with plenty help.

It'd argue that there's more documentation available than for any home-grown deployment system.

That's why I consider it battle-tested for my purposes.

Also, the post explains that boring does not necessarily mean "old". It's about using what you know best.

amzans··on Someone attacked our company
As a one-man SaaS, Cloudflare has been invaluable for me.

I'm currently still on your free tier, but would be happy to pay when I need to.

Just wanted to say, thank you!

amzans··on Someone attacked our company
Additionally, be sure to check how your script behaves with SPAs and the browser history API. You seem to be binding to the browser history as-is, and might be firing lots of non-page view events.

It's not just a theoretical case, I saw this for many customers with Panelbear. Many JS frameworks use the history API in ways you may not be considering.

That's why I would recommend de-duplicating events on the client-side before sending them to your ingestion pipeline.

But that is DDoS matters aside.

amzans··on Someone attacked our company
Hey as a (way smaller) competitor of yours, I honestly feel you.

I understand you may not want my advice. But anyways, here it goes :)

I have dealt with similar issues too at my full-time job. We ingest data in the billions range too, and our costs are a lot lower than what you describe.

* On the public endpoint, can you move the first point of contact closer to the edge? You want to block requests before they even reach your ingestion pipeline. If not, add a few geographical Load Balancers with the sole job of accepting requests before forwarding them to your Lambda. Divert traffic at the DNS level using a geo routing policy on Route53.

* Are you also hitting DynamoDB for every request as part of your spam system? I found it quite expensive on-demand, unless you provision capacity. We used to pay tens of thousands per month for DynamoDB in the past, when a single Redis instance would have done it. Specially if it's temporary, non-critical data such as spam detection.

* Do you batch the incoming events before triggering SQS?

* How are your networking costs going? They tend to creep up in the AWS bills too.

It just sounds to me you clearly need something in-between the public endpoint and those Lambdas. But maybe I'm missing some info. Otherwise you're going to keep paying for capacity that a "traditional" server could handle, without costing you more for each request.

If you can't fight back, and don't want real requests to be lost, put a server at the battle-front, and buffer all raw HTTP requests into a queue made for this (like Kinesis). You can then process events and recover the data at your own pace. I did this in the past, and could handle 60k+ req/s with 2 instances on AWS. I used a simple Go tool to capture the traffic https://github.com/buger/goreplay

Also, at my full-time job we use Kinesis to buffer all analytics events, it's cheaper than SQS and handles billions of data points per month. This also keeps the ingest rate constant, but you seem to already do that with your workers.

Full disclosure: I'm Anthony from http://panelbear.com/ , and I just want to offer honest help.

amzans··on The Tech Stack of a One-Man SaaS
I think that shouldn’t cause much troubles in DO. I had it running for a while without the prometheus operator, and I didn’t have any issue.

In the beginning I was even running everything on a one $10/mo “cluster” (cheapest DO offers). Even Postgres and Redis, all inside the cluster.

As I got more customers, I needed something less risky, so added more nodes, and moved the database out.

But to be honest even the 1 instance $10 cluster was fine.

amzans··on The Tech Stack of a One-Man SaaS
I like my coffee dripped, preferably from my home country (Costa Rica).
amzans··on The Tech Stack of a One-Man SaaS
Regarding docker images, I use the image scanning feature of ECR: https://aws.amazon.com/blogs/containers/amazon-ecr-native-co...

The docs make it look really complicated, but it comes down to enabling the service on the Terraform config.

Also for app dependencies, I use bots to open PRs on my repo whenever an important security fix is published for one of my dependencies.

amzans··on The Tech Stack of a One-Man SaaS
In my case it's more that learning Heroku would take me longer than using what I already know well, Kubernetes on AWS.

So it wouldn't make sense for me to use Heroku (a tool I don't have much experience with), and pay more.

In terms of use of my time, to be honest I currently spend way more time sending emails, updating docs, and on "marketing" than on devops :)

amzans··on The Tech Stack of a One-Man SaaS
Hey thanks for the nice comment :)

About your questions:

1) Fathom, Simple Analytics, and Plausible are great. They have done an incredible work too. Panelbear has already most (if not all) of the features you might find in their offerings. However, I do intend to dive into more advanced functionality, while keeping it simple to use. I will be talking more about it when I feel confident about what I can deliver.

2) I launched in September, but only with a few posts here and here. It was also a lot more barebones back then. I try to release a new feature each week, and traffic has been slowly ramping up. I guess I just haven't had much time to promote it, but I plan to keep writing blog posts if there's something interesting.

3) I try to limit work on Panelbear to 2 hours per day. If I want to be in this for the long-term, it's gotta be sustainable, and fun. I try to leverage most of the tools I already know, even if unconventional like Kubernetes, to help me focus on shipping rather than learning a new tool.

Glad you like the design :) I took courses in design when I was studying, but I actually struggle a lot with it. It has helped me appreciate just how much work goes into a good design.

Thanks!

amzans··on The Tech Stack of a One-Man SaaS
They have been very supportive, and signed legally binding documents to allow me to work on this.

We're also hiring :)

amzans··on The Tech Stack of a One-Man SaaS
Yes, this is what I would also recommend.

You can get really far with the managed services from your cloud provider.

If you're already familiar with Docker containers, just that already gives you plenty of options. I think every platform now provides a way to just run containers behind a load balancer with a few simple steps.

Yes, maybe it's a form of vendor lock-in, but if your worry is acquiring customers, and growing a company, Kubernetes is probably not helping you in this case.

← PreviousPage 2 of 5Next →