12
19 Comments

Reality check: Am I an inefficient developer?

I’ve been in web development for 7 years, taking on senior and lead roles, but I’m starting to question my abilities.

It hits me when I see indie hackers online building entire projects in days, and a website selling SaaS template claiming what I think would take me 3-5x longer could be done in just 22 hours. Tasks like setting up auth, protected routes, a landing page, and webhooks seem to require much more time than that for me. If that would take me only 22 hours or so, I would never even consider buying a boilerplate. I think just setting up ready boilerplate would take me 22h alone 😄

This has led me to self-doubts: Am I so much inefficient, unskilled, or are these expectations unrealistic? Would love to hear if you’ve felt the same way or how long these tasks would take you.

Curious to hear about your experiences and whether you’ve faced similar doubts.

  1. 7

    Career coding and startup coding are fundamentally different. In startups, the focus is on making things work quickly due to high risk and the need for fast iteration. The quality of code, security, and performance can be secondary, as the goal is to get to market and attract users. In contrast, career coding in established companies emphasizes code quality and thorough reviews to ensure security and performance. This process naturally takes longer.

    Feeling doubts when comparing yourself to the rapid development claims online is normal. Remember, the context of your work involves considerations that many rapid projects overlook, like scalability, security, and maintainability. Your focus on quality is a strength, contributing to your professional growth and the delivery of reliable products.

    Efficiency is important, but so is the context of your coding environment. Your experience and approach to coding are valuable, especially in a professional setting where the stakes are higher. Keep learning and adapting, but also appreciate the depth and quality of your work.

    1. 3

      Thanks for your support. Well put. While I understand these differences, subconsciously sometimes blame myself for using the wrong focus in a different setting. It really helps reading such comments when they resonate with my thinking.

  2. 6

    TLDR: These expectations are unrealistic.

    Without seeing your process, no way to really tell if you're inefficient or not 😅.

    However. Writing high quality bug-free apps takes a very, very, very long time. Indie Hacking has sort of devolved (imo) into this process of how fast can you crank out a landing page in front of some CRUD app or wrapper around an AI prompt. A lot of people have found ways to streamline an optimize this process and appear to be developing insanely fast.

    Comparing yourself to this is a recipe for impostor syndrome.

    I would argue, these apps generally don't have depth (not a bad thing, maybe even an intentional thing). For example, https://remoteok.com/ is a really popular example of a successful indie SaaS. But, this app is incredibly simple when you break it down. Most of the work is the community filling out the data to be rendered. There isn't complex data sharing or security concerns, it doesn't have difficult domain problems to solve, it doesn't have (or need) a myriad of technical features other apps need: configuration, preferences, keymaps, tooltips, onboarding, documentation, etc...

    I work on an app that allows user to share data between each other. That data can be shared as read, write, or public. It also uses numerous joins across different tables to expose (or not expose) numerous different types of data based on that share/invite. Just figuring out how to safely structure this in Postgress / my backend took me weeks of studying, experimenting, and planning. (BTW, I got it wrong and had to go back months later and rebuild the schema) - This also impacts the time it takes me to setup something like Stripe. Because it's not so much the API, its integrating something like a subscription model into my Pro authorization role. If all I had to do was embed a Stripe form to make a one-time payment that would take very little time relatively.

    Not to mention the time it takes to make these features discover-able, how to use them, and market them to users. Some devs already have some social media following where they can immediately get users, feedback, reviews, etc... This is normally not the case, and is an example of seeing the 1% in this position and never seeing the 99% who aren't.

    For context, I work at a fortune 100 company, I have a pretty extensive Github. I'd like to think of myself as skilled / efficient 😅. And it has taken me yearssss to build a really decent SaaS.

    1. 2

      Thanks for your support and for sharing your experience. That does resonate with me, but you've put it very well. Appreciate telling your story. Pieter is probably one of the most well known indie hacker out there, hard to not compare with his speed and polished processes. But when you think about it, it took him dozens of failures to learn the skills: https://twitter.com/levelsio/status/1457315274466594817/photo/1

      p.s. Your GitHub looks very nice, I also do BJJ; Oss 💪

    2. 1

      Every webapp is a CRUD app.

      1. 2

        To be really specific. Not exactly. Because not all web apps perform data storage.

        To clarify what I mean in this context. A web app where the code is primarily a wrapper in-front of CRUD operations. Versus an app that is primarily logic, ui interaction, solving domain-based problems, etc....

        For example. The editor portion of one of my apps has 100s of lines of custom Markdown parsers, syntax highlighting, data sanitation, etc.... and very few lines for reading / updating the db. - Compare that to a basic form that renders a table of those form entries. That might be primarily CRUD operations.

        1. 1

          Whether your data structure lives in a database, a flat file, or as a JSON blob in LocalStorage, you're still Creating, Reading, Updating, and Deleting entries to maintain state in a UI.

  3. 4

    A good friend of mine who works as a senior developer for a DeFi company told me once that the only difference between him and the worst person on his team was the speed at which they could submit merge requests for deliverables.

    This friend is also now so hyperspecialized in React and Vercel deployments that it would take him months to deploy a full-stack application on bare metal and even more time to tie together ESP APIs, payment processors, optimize for SEO, architect initial database schemas, etc. Yet he's a borderline savant in his area of expertise.

    Why? Because the skillset of an indie and the skillset of a senior dev working with a sizable team are totally different. I would suck at my friend's job and he would suck at mine. He doesn't have to consider how to start projects from scratch and I don't have to consider how to implement highly complex Figma designs with preexisting components once every 6 months.

    Apples to oranges. Have heart, Edgar!

    1. 2

      Thanks for sharing, and support. I agree - different skillset, different needs. Just sometimes hard to cope when comparing myself. Probably that's a wanna be solopreneur within, and I just need to gain those skills to make him happy.

  4. 3

    TLDR: I focus on what I can control, and I feel better.

    When I was building TROT KIT (4 months of work, felt way too long) I stumbled upon the same copy, and I thought to myself the same thing. Then I continued working on shipping my project.

    I think these comparisons in aggregate are useless anxious thoughts. It's more a matter of calming your mind and keeping your pragmatism.

    I've seen some pretty bad devs. I once worked with someone who edited his local node modules to fix a bug in production. I also worked with some great ones, Ph.D., staff engineers, some of whom were crazy workhorses who had better and more output than an entire team of mediocre devs. One could pick either of these to compare yourself if you wanna boost your ego or get discouraged. In either case, it's useless.

    I think a fair thing to do is to strive to improve, relative to how you did yesterday. That's within your control and pretty straightforward. Figure out what you don't understand and learn it methodically, and then build based on it. If you meet someone along the way who is worse, help them out. If you meet someone better, try to learn from them.

    It's reasonable to assume that if you do that you'll get far on the mid to long term.

    Good luck!

    1. 1

      That makes total sense. Thanks for cheering up!

  5. 3

    A lot of it could be new tools and shortcuts you are not leveraging. As someone increasingly long in the tooth, I am seeing things supercharge over the past 10 years - and even more so now AI has been mainstream adopted...Perhaps do some research on that area.....Also, dont take this the wrong way, but some people get overly precious about their technical skills so subconsciously dismiss less elegant but quicker solutions - be careful not to fall into that trap......Oh, and one final thing - remember we live in a time when clicks are currency and reality never got in the way of that for a lot of people who know that nothing sells better than hope, so some may well exaggerate their achievements!

    1. 2

      Thanks, I think that makes sense. Maybe I also got rusty working in big teams and enterprises, and "building the indie way" skill will come with time as I do more and more personal stuff. Perhaps a "move fast and break things" attitude also helps to shave lots of dev time... But you're right, need to get better at finding shortcuts overall and 80/20 rule.

  6. 2

    I completely understand that you may have self doubt, even I had it at the beginning of the journey especially when comparing yourselves to others online.

  7. 1

    I would second what everyone says about startup coding being different. One of the most important skills to learn is understanding what exactly is the MVP, and how it can be delivered in the minimum possible time and effort.

    Far too many engineers that have worked for big, big companies just cant think pragmatically, and thinking pragmatically its one of the most important skills when it comes to quickly scaling up projects and infrastructure. To some degree, its an acquired skill, and the more you do it, the easier it gets.

  8. 1

    Part of the problem is also in how the tech has evolved over the years. A php laravel setup actually has an insane amount of things already figured out for you but the devex isnt that good, while the new tech has a better devex, you still have to figure out a lot of things yourself to start making it work smoothly.

  9. 1

    Efficiency in development is a multifaceted aspect that goes beyond mere speed. It's about how effectively you utilize your time, resources, and skills to deliver quality results. It's natural to have moments of doubt about your efficiency, but it's crucial to approach it with a balanced perspective.

    Ask yourself:

    Are you consistently delivering high-quality work?
    Are you meeting project deadlines without compromising on quality?
    Do you actively seek to improve your skills and learn new technologies?
    Are you able to adapt to changing project requirements efficiently?
    Do you collaborate effectively with team members?
    Are you open to feedback and constructive criticism?

  10. 1

    Will echo the career coding != startup coding. Could not agree more. Would also guess that many have tried multiple projects and have gravitated toward a similar stack and structure (CRUD, stripe, etc). After a couple of iterations you could have a boilerplate app that has all that and then the 22hrs is just honing toward the specific product. I’m a python native so have gradually built out a flask boilerplate, with basic routes, container, functionality, etc ready to go.

  11. 1

    Feeling uncertain about your coding skills? Take a reality check: Assess your productivity, seek feedback from peers, continuously learn and improve, streamline your workflow, and stay adaptable in the ever-evolving tech landscape.

  12. 1

    This comment was deleted 2 months ago.

Trending on Indie Hackers
Here's how we got our first 200 users 30 comments What you can learn from Marc Lou 20 comments Reaching $100k MRR Organically in 12 months 18 comments Software Developers Can Build Beautiful Software 13 comments Worst Hire - my lessons 11 comments How to Secure #1 on Product Hunt: DO’s and DON'Ts / Experience from PitchBob – AI Pitch Deck Generator & Founders Co-Pilot 6 comments