11
21 Comments

Would any indie hackers want some free technical advice from a Software Engineer (6+ years)?

A bit about myself:

  • Graduated with a CS degree in 2014
  • Worked 2 years at a Software Consultancy
  • Have been working on Enterprise SaaS products for the past 4+ years
  • Promoted to Senior SDE in 2019
  • Tech lead for a team of 10 devs, successfully launched our product Q1 2020
  • Currently working as a Dev Manager for that same team
  • Launched several side projects in my spare time, including an iOS app, some web apps, and most recently https://gomobo.app

My strengths:

  • Applying software to various industries/domains - including real estate, finance, education, and entertainment
  • Building and mentoring a team of developers
  • Broad knowledge and experience on various CS topics - including Databases, React, AWS, Java, UI/UX design, etc.

Happy to answer any questions here or you can DM me on Twitter @jstnchu

  1. 2

    hi Justin, Shakil here. your DM is closed on twitter.

    1. 1

      wow, thank you for saying that, I didn't realize that was default set to off. I have opened them now!

  2. 1

    This is a long shot...but I am building API as a service web app. Essentially i give access to the API to the users. My question is how do I do rate limiting for each users based on their subscription tier. What is the best way to go about implementing this. I am solo developer so keep that in mind ...should I use serverless functions or deploy a standalone server ?? ...I don't know a thing about rate limiting....Any help would be appreciated..I am well versed in Node.js and some bash scripting.....I have used Digital Ocean and some AWS services in the past.. Thank you

    1. 2

      Heya, I'm also a software developer / SRE / operations engineer during my day job. There are several popular strategies for doing per user rate limiting. For a solo dev with a small project I suggest solving this at the application level. Usually this involves having your authentication layer increment a per-user request counter every time a user hits your API and then returning a 429 after the counter hits some limit. Note that you want the counter to exist outside of the application code, like in memcached or redis, so that as you scale horizontally the rate limit is applied consistently no matter which instance your users traffic gets routed to.

      I'm not much of a node programmer but it looks like there are some off the shelf packages for this approach.

      https://www.npmjs.com/package/redis-rate-limiter

      One downside of doing this at the application layer is that it doesn't scale well. It's not ideal to incur CPU costs that could otherwise have been spent serving your users just to tell aggressive clients to buzz off. When you get bigger you can spend the time / money to push this functionality into your load balancer but in the early days this should be plenty to get you started.

      1. 1

        Hi, Thank you....this was actually my first attempt ...but instead of redis I used memory storage and another time used a mongodb database itself (the overhead killed me)....

        I used this package https://www.npmjs.com/package/express-rate-limit

        I was wondering if there was a better solution especially now as I am planning to use serverless functions in the backend( I was planning to JAMStack this project).....Thanks anyways

        1. 2

          Rob's response above is excellent, tons of good advice there.

          I don't have much to add in terms of a server-less implementation.

          But if it were my project, I would have done something similar to what Rob suggested:

          • Persist user api usage data (Redis, MongoDB, etc)
          • I'd assume you are already storing the user's subscription tier with the rest of the user auth stuff
          • Get the user api usage data every time a request comes in (probably need to cache it in memory/Redis, to avoid a bottleneck at the DB)

          Can you elaborate on the overhead that killed your MongoDB attempt?

          1. 1

            ^^ this guy APIs :D

            One suggestion I would add with respect to handling rate limiting in the serverless world is to push it out of the application layer.

            Most serverless setups will leverage an API gateway of some kind which usually support rate limiting. Eg. looks like AWS API Gateway implements this via a feature called "usage plans".

            https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-api-usage-plans.html

    2. 1

      This comment was deleted 3 months ago.

  3. 1

    Hey Justin, I've launched a small GitHub site to create a community of tech people willing to spend some of their free time to have calls with people that need advice on your area of expertise.

    No money involved except donations that you could receive from the people you help.

    Let me know if you're interested and I can send you the link.

    1. 1

      Happy to check it out!

      1. 1

        Thanks!, any feedback is welcome

  4. 1

    Hi Justin,

    great initiative.

    Since you already posted your email, I just now sent you one too, I hope that's okay. :)

  5. 1

    Hey Justin, just followed you on Twitter (Lou Tromans)

    As soon as you accept I'd love to talk to you about https://www.spreadtech.online/ whenever you have time :)

    Thanks bro

    1. 1

      Just messaged you!

  6. 1

    Love the landing page for gomobo. What did you build your app in?

    1. 1

      Thanks! Most of the app is built with AngularJS, but the landing page is actually from a template I bought, but then I ended up not liking most of it so it ended up being mostly just custom HTML and CSS that I added.

      1. 2

        Nice. I am a fan of Angular myself. Followed you on twitter (danwilliamsltd) and will email with some follow up questions.

  7. 1

    Hey Justin. I’d like to chat if you’re up for it. Could I shoot you an email?

    1. 2

      Certainly! Can reach me at jchu231 (at) gmail.com

      1. 1

        Thank you! Sent you a note.

  8. 1

    This comment was deleted 6 months ago.

    1. 1

      Sounds good! you can email me at jchu231 (at) gmail.com

      The plan is to have players buy individual games (with promotional bundles). Once they own the game then they will essentially "own" the game.

Trending on Indie Hackers
Feedback on my (not yet published) about page 24 comments Vegans, vegetarians, and anyone with an allergy, food intolerance, or just a preference, I need you! 18 comments Open Sourcing my SAAS Starter Kit 12 comments A house in Germany is being sold as an NFT 9 comments Nerdogram - A photo sharing app for Github nerds 5 comments Free Python Books Went Viral on Hacker News 5 comments