Hello Indie Hacker Community,
This is my inaugural post and in my first post I would love to hopefully provide some valuable lessons that I have learned form being a software engineer working on an extremely critical system in the energy sector (Oil & Gas Transportation to be specific).
At my day job I work on our commercial application that enables local utility companies to purchase natural gas and eventually supply it to your home! I have learned a ton in fact I am learning daily, but I hope these few lessons will help you when planning, building, and deploying your indie hacker projects!
Without further ado...
The biggest pitfall that I see developers fall into is trying to make everything perfect. In reality perfection is just a myth, your code will only be as good as the person writing it. Do not mistake this lesson with me justifying bad code, but the main point is do not pressure yourself by feeling you need everything to be perfect.
For example, the team I work on we have a lengthy process before code actually goes into production we have multiple code reviews, QA testing, pre production testing, integration testing, smoke tests, etc.
We really hammer in on testing, but do you want to know a secret? Bugs in Production still happen. After a certain point it does not matter how much testing you do, how many scenarios you try, there will still be problems to fix.
No one is perfect, no one can anticipate every scenario, every edge case, or other oddity that may happen. Due your due diligence, test then test again and maybe test again after that, but when production issues do happen and they will do not beat yourself up over it just put your head down, tackle the issue, and take it as a learning experience.
Perfection isn't real and expecting perfection from yourself is like jumping off a building and expecting to fly... it just isn't going to happen.
Natural gas transportation is not an easy business to understand. Between industry slang, valid business scenarios, and federal regulations (sigh). When I get a task or am designing a new feature it is so important for me to understand the entire problem not just the surface level issue. Time is money and not understanding the problem that can lead to mistakes that are avoidable, unnecessary, and costly.
Wasting your man hours is essentially setting money on fire at least if you set the money on fire you'd have warmth.
How dare you assume that you can execute if you do not understand the problem. Once you think you know it, try to teach if you can teach it effectively then you understand the problem.
Documentation is king. Documentation isn't just for large corps or teams it is essential even for a solo founder. There is no possible way you can remember everything, documentation is so helpful when needing to refer back to old code, the details of how your app should work, or even how data is modeled in your database.
Documentation can be in the form of code comments, text files, or diagrams. It doesn't matter how it is documented as long as it is documented in a way that is readable, accessible, and helpful when you need it. You will save tremendous amounts of time and effort later down the road if you will just document.
Over a 1/4th of all natural gas in North America is accounted for in the program that I work on. People rely on this program for heat in their homes and fuel to cook. There is not a day that goes by that my mind doesn't think about that and in turn it has made me more conscious of every line that I write and decision that I make, it has made me a better developer.
If you will take on this mentality that what you are building matters and is important and you truly mean it your decision making will change for the better. Take pride in what you do and what you are building treat it like the world depends on it because one day it might. Making the right decisions now will better prepare you to help the world in the future.
I thank you for reading this far. If you would like for me to write more lessons that I have learned then let me know over on twitter @blakerunyon_io. I am on this journey with you becoming an indie hacker any tips for me would be greatly appreciated.