Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "maybe losing clients"
-
I absolutely HATE "web developers" who call you in to fix their FooBar'd mess, yet can't stop themselves from dictating what you should and shouldn't do, especially when they have no idea what they're doing.
So I get called in to a job improving the performance of a Magento site (and let's just say I have no love for Magento for a number of reasons) because this "developer" enabled Redis and expected everything to be lightning fast. Maybe he thought "Redis" was the name of a magical sorcerer living in the server. A master conjurer capable of weaving mystical time-altering spells to inexplicably improve the performance. Who knows?
This guy claims he spent "months" trying to figure out why the website couldn't load faster than 7 seconds at best, and his employer is demanding a resolution so he stops losing conversions. I usually try to avoid Magento because of all the headaches that come with it, but I figured "sure, why not?" I mean, he built the website less than a year ago, so how bad can it really be? Well...let's see how fast you all can facepalm:
1.) The website was built brand new on Magento 1.9.2.4...what? I mean, if this were built a few years back, that would be a different story, but building a fresh Magento website in 2017 in 1.x? I asked him why he did that...his answer absolutely floored me: "because PHP 5.5 was the best choice at the time for speed and performance..." What?!
2.) The ONLY optimization done on the website was Redis cache being enabled. No merged CSS/JS, no use of a CDN, no image optimization, no gzip, no expires rules. Just Redis...
3.) Now to say the website was poorly coded was an understatement. This wasn't the worst coding I've seen, but it was far from acceptable. There was no organization whatsoever. Templates and skin assets are being called from across 12 different locations on the server, making tracking down and finding a snippet to fix downright annoying.
But not only that, the home page itself had 83 custom database queries to load the products on the page. He said this was so he could load products from several different categories and custom tables to show on the page. I asked him why he didn't just call a few join queries, and he had no idea what I was talking about.
4.) Almost every image on the website was a .PNG file, 2000x2000 px and lossless. The home page alone was 22MB just from images.
There were several other issues, but those 4 should be enough to paint a good picture. The client wanted this all done in a week for less than $500. We laughed. But we agreed on the price only because of a long relationship and because they have some referrals they got us in the door with. But we told them it would get done on our time, not theirs. So I copied the website to our server as a test bed and got to work.
After numerous hours of bug fixes, recoding queries, disabling Redis and opting for higher innodb cache (more on that later), image optimization, js/css/html combining, render-unblocking and minification, lazyloading images tweaking Magento to work with PHP7, installing OpCache and setting up basic htaccess optimizations, we smash the loading time down to 1.2 seconds total, and most of that time was for external JavaScript plugins deemed "necessary". Time to First Byte went from a staggering 2.2 seconds to about 45ms. Needless to say, we kicked its ass.
So I show their developer the changes and he's stunned. He says he'll tell the hosting provider create a new server set up to migrate the optimized site over and cut over to, because taking the live website down for maintenance for even an hour or two in the middle of the night is "unacceptable".
So trying to be cool about it, I tell him I'd be happy to configure the server to the exact specifications needed. He says "we can't do that". I look at him confused. "What do you mean we 'can't'?" He tells me that even though this is a dedicated server, the provider doesn't allow any access other than a jailed shell account and cPanel access. What?! This is a company averaging 3 million+ per year in revenue. Why don't they have an IT manager overseeing everything? Apparently for them, they're too cheap for that, so they went with a "managed dedicated server", "managed" apparently meaning "you only get to use it like a shared host".
So after countless phone calls arguing with the hosting provider, they agree to make our changes. Then the client's developer starts getting nasty out of nowhere. He says my optimizations are not acceptable because I'm not using Redis cache, and now the client is threatening to walk away without paying us.
So I guess the overall message from this rant is not so much about the situation, but the developer and countless others like him that are clueless, but try to speak from a position of authority.
If we as developers don't stop challenging each other in a measuring contest and learn to let go when we need help, we can get a lot more done and prevent losing clients. </rant>14 -
So I guess one of our clients suddenly switched to a different website service... Without being told. I went to their website and it's so not what I worked on. I still have pending tasks for it, but I guess not anymore.
I think it's the same case with another client from before. -
Needed money for my company, not enough clients to support business on SaaS alone. Took on a 5k / month job building a platform that competes with my SaaS (more niche, less generic). Also sign up new client who that company's owner is part owner onto my current SaaS. Win / Win?
I do a lot of custom work to my platform to fulfill their needs, which is why I ran out of time for the 5k / mo project. I did these customization for free. Losing money to keep client, but also improving my system.
Work gets busy, I need to drop the 5k project. Client is upset I am working more on his other company (he is not majority owner). I return 1 month of funds to the owner and say I cannot continue.
Owner threatens to make other company that he is part owner stop working with my software if I do not complete project. Blacklisting...great. I agree to work with an overseas developer to do it and PM it for 3 months at least. Making nearly nothing from it (now 1k / month for PM), working nights to deal with India, losing sleep...
Other company suddenly folds due to conflict of egos with that SAME owner. Users drop from 16 to 1. I drop the project, no more strong arming me. Everything is a loss, all effort and money lost for nothing. Bad bet..however...
Owner becomes 100% owner of the other company, and of the software company. I transition him to PM his own project, he still uses my software because It doesn't, nor will it, ever do what the one he is building does. Also, partners from previous company break off and use my software again. New Client. #profit.
But holy hell was it stressful in the interim. People's business tactics are disgusting. Stay calm, play it neutral. Win. Sometimes you have to do what you don't want to do in order to succeed...at least for a little bit.
I was so scared that how he screwed his partners he would screw me over as well if I built one of the modules I have planned for my System, but haven't done yet.
If I did it for him first and then built my own (totally diff codebase) I really didn't want to run into any legal issues considering the schematics he has now are mine, but I didn't finish that part of the system for him. He is obivously highly competitive. Even though he wanted me to, and still does, want me to run his company for him.
Who knows, maybe in the future. To be CTO / COO of two SaaS CRM's in the same space may make sense. But I will never sell my software to him or partner with him. Too much drama. Avoid the drama. Be careful out there fellas.
If you are a creator, people will take advantage of you in every way imaginable. Read the fine print, read the people, document everything. Don't put yourself at risk.