When The Sea Is Too Rough to Sail, Repair The Nets: A Software Developer's Perspective
In my earlier days as a software developer I used to think progress meant visible movement. A new repository. A new feature. A new commit and push. Deploy. If I was not shipping something, I felt like I was standing still.
Every developer eventually experiences rough seas. Clients disappear. Requirements change. Projects stall. Motivation drops. The exciting startup idea suddenly becomes a bug fixing marathon. The codebase that once felt beautiful starts feeling like a maze designed by a sleep deprived version of myself.That is when the fisherman quote started making sense. Not as motivation. As maintenance.
Technical Debt Is a Torn Net
Developers have a funny relationship with technical debt. We know it exists. We know it is dangerous. We know we should deal with it. Then we immediately create more. Just one shortcut. Just one quick fix. Just one temporary controller. Just one helper function.
Three months later the project feels like ancient ruins. Then we say the sea is rough. Meanwhile our nets have holes everywhere.
So now my slow seasons look different:
- I write tests.
- I improve architecture.
- I clean repositories.
- I create documentation.
- I build reusable components.
- I sharpen tools.
- I repair nets.
Nobody Posts Refactoring Screenshots
Developers post launches. Developers post dashboards. Developers post beautiful interfaces.
Nobody posts:
- "Spent six hours reducing duplicate code."
- "Finally fixed architecture from six months ago."
- "Added documentation future me will appreciate."
Yet some of my biggest leaps happened in invisible work.
The sea was rough. So I stayed on shore and repaired nets.
Without further adue, these are nets I had to work on:
1. Thato Babusi Website - thatobabusi.co.za Website
This website used to run on Laravel 10 version and has now been upgraded to Laravel 13. A challenge that was approached with the intention of building a framework for doing the same for other older legacy projects. For the record, I strongly disagree with the train of thought that the only correct upgrade process is to go to 11, 12 and then 13. Take the road less travelled and slay the dragons along the way and go directly to final boss.
Besides the upgrade, I undertook:
- Major refactoring of the backend admin dashboard.
- Removed unnecessary activity log table and reduced execcisve logging.
- Switched my database from MySQL to a more smaller and appropriate option of SQLite3.
- Added a new visual onscreen DB Browser.
- Added Github workflows for quality assurance testing steps during the deployment process.
- A better bash deployment script for various project.
- Frontend restructuring of the website that includes;
- Blog pages now have a infinite load more.
- Improved search page.
- Removed stale Twitter feed component that used to display my tweets in real time.
- Affiliate links for Cloudways added.
- Upgraded to Bootstrap 5.
- Added Bootstrap timeline component to the About Me page that can toggle by criteria.
- Added options to Download as PDF, HTML, Word or as is on screen to the My Resume page.
- Expanded the My Portfolio page to now include Teamwork, Solo, Frontend, Backend, SEO, Packages and API. This includes previews, photos, details and links to the projects.
- The services on the My Services page have also been updated as per what I currently offer. But do consider asking directly if you do not see something you need because I have the right tools in place to consider out-of-the-normal-scope services.
- Lastly, I had to upgrade the Contact page too to try and better handle the spam coming in. A HoneyPot package is needed for this as the bots have found a way through.
Some if, not all, of the new systems I am building follow closely the following re-usable components.
2. EdensFrequency Website - EdensFrequency Online Website
3. Laravel Expense Manager Application Website - Laravel Expense Manager
4. Laravel Real Estate Manager Application Website - Laravel Real Estate Manager
5. Home Media Manager Application - Personal Home Media Manager
6. Home Studio Tools Application - Personal Home Studio Tools
7. All Kasi Proposal Website - All Kasi Website Showcase
8. Laravel 13 Packages - An ever growing collection of Laravel 13 packages. Currently including Link To Repos (Some are private):
- Laravel 13 Cheat Sheet Link (public)
- Laravel Activity Log
- Laravel Cloudways Deployment
- Laravel CoreUI Admin Dashboard Link (private repo)
- Laravel DataTables CoreUI
- Laravel Documentation Reader
- Laravel Repository Helpers
- Laravel Visual API CRUD Generator
- Laravel Visual API Generator
- Laravel Visual DB Generator
I have a lot more cooking at the moment. But the intention was to;
- Clean up the hard disk by removing stale projects
- Identify old projects that I never got back to and either chop them or mordernise them
- Document everything
- Make sure all has relevant tests and are compatible with the latest tech stack.
By doing this, I have not only salvaged projects from the past 13 years but have also ensured ground work for a smooth future journey.
Take time to stop, think, assess and find problems or challenges and address them today and you will instantly see the benifits.
Fix your nets.