Details
-
AboutTech utopist, fond of muffins. JavaScript Developer && User Interface Designer
-
SkillsJavascript, HTML, CSS, PHP, Python
-
LocationLondon
-
Website
-
Github
Joined devRant on 5/12/2016
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
-
When I opened my digital agency it was me and my wife as developers, I had no savings and I needed to get long contracts ASAP which luckily I did straight away.
Lovely client, had worked for them before as a consultant so i thought it would be a breeze. Let's just say the project should've been named "Naivete, Scope Creep and Anger: The revenge".
What happened is that when this project was poised to end I naively thought I would be able to close the job, so I started looking for a new full time consultancy gig and found one where I could work from home, and agreed a starting date.
Well, the previous job didn't end because of flaws in my contract the client exploited, leaving me locked in and working full time, for free, for basically as long as he wanted (I learned a lot the hard way at that time) and I had already started the new agreed job. This meant I was now working 2 full time shifts, 16 hours per day.
Then, two support contracts of 2 hours per day were activated, bringing my work load to 20 hours/day.
I did this for 4 months.
The first job was supposed to last one month, and I was locked into it, all others had no end in sight which is a good thing as a freelancer, but not when you are locked into a full time one already. I could've easily done one 8 hours shift and two 2 hours jobs per day, but adding another 8 hours on top of it was insanity.
So I was working 10 hours, and sleeping 2. I had no weekends, didn't know if it was day or night anymore, I was locked in my room, coding like a mad man, making the best out of a terrible situation, but I was mentally destroyed.
I was waking up at 10am, working until 8pm, sleeping 2 hours until 10pm, working until 8am, sleeping 2 hours until 10am, and so on. Kudos to my wife for dealing with account and project management and administration responsibilities while also helping me with small pieces of code along the way, couldn't have survived without the massive amount of understanding she offered.
In the end:
- I forcefully closed the messed up contract job and sent all the work done to another digital agency I met along the way, very competent people, as I still cared about the project.
- I missed a deadline on my other full time contract by 2 days, meaning they missed a presentation for Adobe, of all people, and I lost the job
- The other two support contracts were finished successfully, but as my replies were taking too long they decided not to work with us anymore.
So I lost 4 important clients in the span of 4 months. After that I took a break of one month, slept my troubles away, and looked for a single consultancy full time contract, finding it soon after, and decided I wouldn't have my own clients for a good while.
3 years since then, I still don't have the willpower or the resources to deal with clients of my own and I'm happily trudging along as a consultant, while still having middle of the night nightmare flashbacks to that time.2 -
That sinking feeling when you use ES6/Webpack/Vue on personal projects and have to work with ES5/jQuery/Angular (and no task runner) at your regular job...8
-
So, plans for 1.916496 years?
- Dominate Vue.js
- Finish 2 personal projects
- Buy my gaming rig
- Buy my track day car
- Remortgage current flat
- Expand my agency
- Work less
- Rant less
Not exactly in that order.3 -
This is something I'll never forget.
I'm a senior UI engineer. I was working at a digital agency at the time and got tasked with refactoring and improving an existing interface from a well known delivery company.
I open the code and what do I find? Indentation. But not in the normal sense. The indentation only went forward, randomly returning a bunch of tabs back in the middle of the file a few times, but never returning to its initial level after closing a tag or function, both on HTML and JS.
Let that sink in for a minute and try to imagine what it does to your editor with word wrapping (1 letter columns), and without (absurd horizontal scrolling).
Using Sublime at the time, ctrl+shift+P, reindent. Everything magically falls beautifully into place. Refactor the application, clean up the code, document it, package it and send it back (zip files as they didn't want to provide version control access, yay).
The next day, we get a very angry call from the client saying that their team is completely lost. I prove to the project manager that my code is up to scratch, running fine, no errors, tested, good performance. He returns to the client and proves that it's all correct (good PM with decent tech knowledge).
The client responds with "Yeah, the code is running, but our team uses tabs for version control and now we lost all versioning!".
Bear in mind this was in 2012, git was around for 7 years then, and SVN and Mercury much longer.
I then finally understood the randomness of the tabs. The code would go a bunch of tabs back when it went back to a previous version, everything above were additions or modifications that joined seamlessly with the previous version before, with no way to know when and so on.
I immediately told the PM that was absurd, he agreed, and told the client we wouldn't be reindenting everything back for them according to the original file.
All in all, it wasn't a bad experience due to a competent PM, but it left a bad taste in my mouth to know companies have teams that are that incompetent, and that no one thought to stop and say "hey, this may cause issues down the line".4 -
So, I move house with my amazing, already configured and stable router with built in VPN, DDNS, Port forwarding and DHCP addresses.
Received ISP shitty router at new address and want to use as modem only, so I go read the manual.
"Bridge mode requires you to configure your other router with PPPoE and the ISP's credentials"
Landline is not working, so I cannot call the number to retrieve my password. After 2 days of waiting, engineer visits, installs master socket, dial tone yaaay.
Call number to get password, automated voice message has such a bad sound quality that I cannot figure out if it's saying F or S, and there are two of those letters.
Put ISP router in bridge mode, set other router to PPPoE and put credentials, nothing. Try with F and F, S and F, F and S, S and S... Nothing. Put it back to dynamic IP address, it works.
I resign myself and manually configure everything I had on the good router to the ISP one. A few issues with my server and DDNS, but hey, internet works.
Start missing the other functionality, try the password idiocy again. Nothing.
Next day, go to work, talk to a colleague that lives close and has the same provider: "I just put it into bridge mode and it worked".
Go back home, bridge mode on ISP router, Dynamic IP on good router, no credentials. It works.
Why do I always overcomplicate stuff?4 -
A meeting where the client's UX evangelist kept interrupting her CEO and our team's developers when trying to discuss an issue. Her reason? "I'm bored and you talk too much".
-
The wife, the dog, the commute, the chatty colleagues, the phones, the cars, the peoplethe keyboardthecommentsthefunctionsthebadlywrittenvariablestheinternetfacebookreddittwitterlinkedinblogsdesginsrslyauotshlmtscsjvaarcstipaaaaaaaaaaaaaaaaaaaaaaa devrant1
-
Saw a CSS troll post, here's a general development troll post.
Replace every semicolon (;) with a greek question mark (;) in your colleague's code and watch the compilers, runtime environments, and your colleague scream.5 -
A woman sends her programmer husband to the supermarket.
"Bring a carton of milk, and if they have eggs, bring 12".
He returned with 12 cartons of milk.2 -
Cleaning up code...
var screenshotPanel = $(this).parent().parent().parent().parent().next().next();
Kill me now.5 -
My first job. Hired as a designer. It was me and a backend dev (PHP). Company wanted us to build their e-commerce website, but the backend dev had no eye for design or front end chops, fell onto me, so I learned it on the spot.
I also did the mistake of trying to prove myself too hard and ended up doing IT, network and user support, user training, phone sales and helping the print team on designs, on top of my already taxing responsibilities, for 18k/year.
In the end, the company moved offices and I was tasked with finding and installing a new server, IP phone system, and organising the desks following a carefully crafted and approved plan. Spent the weekend doing that (had some friends that didn't even work for the company join as they knew of my struggle) only for the bosses to arrive on Monday, decide they didn't like it, and just said "change it", ignoring the plan entirely. I then left without having another job lined up and never looked back.1 -
- Hmmm, react is not as difficult as I thought. Good tool, let's use it.
- Hmmm, Vue is amazing, let's use this instead, much easier.
- Hmmm, Angular 4 is out, let's retire to a deserted island and sell coconut water for a living.10 -
Number of lines on ONE of the javascript files in the project I'm tasked to convert to a modern, modular, component-based web app: 3022.
There are 6 of these.11 -
Late project stage, obscure bug. Think to myself "What's the difference between parentNode and parentElement in javascript?"
Find out both are the same, but parentNode works everywhere with any element and parentElement doesn't. Let's refactor then.4