Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Colleague put this up on their team's channel today :
" I'll be working from home today, ad hoc task is in review, will be opening a PR for backend changes [ ... ], yesterday was mainly spent on setting up gcp on my local and fixes towards gcp deployment. "
Wait, what? did you just set up the entire GCP on your local [machine]? I wouldn't mind giving you a whole week off if you needed it; if I were your manager.3
Oh, I've pulled a lot of all-nighters. I love doing hackathons. I find myself most productive when I work on something in a single stretch. I have ADD that way. If I leave a project mid-way, that's probably the last time I'll be working on it; unless someone comes to me and reminds me about it.
Other than attending organized hackathons, I go on personal hackathons. When I'm in the mood to code something up in my free time, I just find some stupid, random idea to code and code it up overnight. (Oh, I have a very long list of projects that I can complete over the weekend)
Other times, I'll just be in the mood as I'm working on something and then lose track of time (and other bodily calls like hunger) as I finish it.
If my weekend looks very peaceful without any distractions, I put my hand in my project bowl and pull something up to finish it off over the weekend.1
Team Lead (not my team, thankfully) sends outs a team-wide message (in their exact words):
"please DM me with the task link if you are adding any new tasks in Jira. This is to make sure that i am aware of any ad-hoc task coming up in the jira queue and also to make sure that all the task are following a common template."
Interpretation : "I'm just too lazy to look at each jira issue after the last one that I followed up on (which is my job BTW). So I'll add some extra work for you to explain everything to me on DM"
Way to go for killing productivity. ¯\_(ツ)_/¯
Thankfully, this is not my team. If they were my team lead, I'd be super furious. I'd even report it to upper management. I'd even offer to do their job and let them do mine. I think their job just got so easy if everyone was to go report to him like that.3
My terminal (Tilix) didn't have a header bar for a quite a while now. I had grown to live without it even though I missed looking at the terminal title to figure where I was.
Today I my hand accidentally hit F11 and I was in for a surprise. I actually exclaimed aloud in the office.
I waited to test, confirm and verify that the header bar itself was not a bug before I facepalmed myself2
junior developer raises an issue saying that there's an application deployment error on one of their dev clusters.
sysadmin asks them to go back and look at the error logs and come back with the problem.
they come back saying, "No space left on device"
sysadmin takes a look at server. finds this :5
when you have 6GB worth of unused kernels on your machine and your machine is desperately crying for MOAR storage space!5
I've never ever fully completed a side-project like I envisioned it to be. If I had, I'd have my own company already. It's mostly because I didn't have the time (no, that's a lie; or just an excuse). It's mainly because I haven't been motivated enough to see it through to the end. My motivation life-span ends when I get distracted by something else and in the end ends up like the Commit Strip.2
Back in the days when I knew only Windows, I used to be a Microsoft fan. I wanted to use only Microsoft products. I had a Hotmail email account that Microsoft acquired. I used a version of Windows and Microsoft Office (even though I didn't know at the time that it was pirated). I wanted to be a Microsoft Student Partner (MSP) and promote Microsoft everywhere.
Fast forward to now (or maybe to the time after I got introduced to GNU/Linux), I started hating Microsoft solely for the reason that they had a price-tag on everything. Later on, when I got to open-source software, I hated Microsoft for making all of their software closed-source. When I decided to move out of the Microsoft environment, my next favorite was of course, Big Brother (Google, if you haven't gotten it) - Gmail, YouTube, Google Drive. My personal information was the price to pay for the services even though I wasn't OK with that fact.
Then again, I realized that you could actually have your own stuff if you had the know-how. Compile / host your own software on your own systems. Oh, then I went on a compile spree. That's when I realized I didn't need any of these corporations to own my data. Today, I try my best to keep my data in my control and not some corporations who gives me free stuff for the price of my data and personal information, no thanks.4
I used to love mozilla as a community. The mozilla foundation loved the community and always listened to their voice. Of recent, they've started to turn a deaf ear to the community's voices and have started moving the agenda for a corporate culture. They slowly killed many amazing projects that was mostly run by the community (RIP Firefox OS) and started focusing on more corporate-oriented lobbying and agenda (*cough* Pocket *cough*). I feel that the company is slowly moving toward becoming less of a (community-oriented) foundation and more of a corporation. That path is dangerous and not one that I expected mozilla to take.
Another company worth mentioning was OwnCloud which got forked into Nextcloud because they didn't care about the community enough and put the enterprise customers and their needs ahead of the community's. The disappointed founder of the OwnCloud quit and forked it into NextCloud with the right controls for the community and the users to always be put in the first position.24
3 days when I had to complete documentation for an audit. I only returned to my room to shower and change clothes for the next day. That too I left at 8AM and returned at 09:30AM.
2 days when I had to complete setting up the office network over the weekend. Note that this was over a weekend.
And this is without counting the many hours I've spent semi-working at hackathons. I've gone up to 60 hours without sleep, coding the shit out of my brains.2
I have multiple (in no particular order) :
Nextcloud : It was an idea that I had in my head as well - to take on corporations like Google in the space of personal cloud. Be free, open-source and put the users in charge.
Gitlab : The most open and transparent company that I've ever come across. And they work 99% remote. They've got features that no other players in the space have. All while putting users in control.
Fediverse social media - Mastodon, GNU Social, Diaspora (soon) : For taking a major step in the direction of putting the users in control of their data; all while enabling a decentralized social network.
Ruby : An open community and building a programming language that runs a lot of software of the world.
Python : The oldest thriving community that has a special place in the development community (and my heart)
A developer couldn't get a application performance monitoring (APM) tool to trace his application. They claimed that their libraries and their configurations were alright and that the APM tool was non-performant.
The developer then argues with sysadmin that the APM tool can't trace the application and that there's nothing wrong with the application or the configurations. When sysadmin questions whether the developer got the tool to work anywhere, they say, "No" and head off to make it work at least in one place. They come back saying that it works on their development environment (which is their local machine). Sysadmin claims that the system configurations on the server instances cannot be matched by the development environment and there could be a lot more factors to be considered for the problem. The sysadmin asks to prove it on a server instance on one of the test environments and then they'd agree that it is a problem with the tool. They also argue that this is not the only application that uses the APM tool and the tool happily traces other applications with no issues.
The developer tries the same configuration on a staging instance and fails. In order to make it work, they silently uninstall the existing version of the APM tool and then compiles an unstable branch of the tool. It finally works with this version.
They go back to the sysadmin and show that it works on the staging environment, but does not on production. After banging their head on the wall for a while, the sysadmin figure that the tool had been swapped out for the unstable branch that was manually compiled. When questioned, the developer responds, "It works with this version on staging, so deploy the same version on production"
WTF? You don't deploy an unstable branch to production. Just because you can't make it work on the stable branch doesn't mean that it is the problem with the tool itself. There's a big difference between a stable branch and a non-stable branch. How would you feel if the sysadmin retorted by asking you to deploy the staging branch of your application to production?
At my previous company, we used tools from all over the place. We switched between tools at will. Sometimes, some team would decide to use some tool while the rest of the company would use something else. The worst part was that there was no Single-Sign-On (SSO) either. Everyone would need to have an account on all of these said tools. It was chaos.
I realized that being integrated into one environment (even though would have the cost of a vendor-lock-in) was the best option to have because in that case, we wouldn't have to deal with operational hurdles like having integration from one tool to another. They would just come baked-in with the whole environment. That's how GSuite (formerly Google Apps for Work), Atlassian and other players succeeded - they gave a complete suite of services / software that integrated well with each other. You could jump back and forth between services without having to bother about integration with other tools. They'd all be there wherever you wanted them to be. Even cloud providers so that opportunity and built on it - Amazon Web Services (AWS), Google Cloud Platform (GCP), Kubernetes (in itself).
Another example is a company that used Jira, Confluence and Hipchat but for some dumb reason used Gerrit for their code review / hosting. Eventually, they realized that managing the integration with the Atlassian tools was far more expensive than getting bitbucket and migrating completely into the Atlassian environment.
It's always the integration that matters. Everything else is secondary.
Big-time Microsoft fan who claims they've been using licensed versions of Windows since Windows 3.0. Still has all old versions of Windows on different machines / hard-disks. They use only Microsoft Surface devices. They still use Nokia Lumia (with Windows Phone 10). They were working with an organization that used Office365 for enterprise email and collaboration. They used Microsoft Teams for team collaboration when the rest of the organization was comfortable with Atlassian tools like jira, confluence and bitbucket.
One fine day, news spreads that the organization is moving into GSuite for enterprise email and collaboration. They are devastated. They quit citing personal and family reasons, but we knew the real reason.24
Junior dev requests for sudo access on a server instance for some package installation, gets it, figures out how to open the root shell - never goes back. They do everything on root.
Fast forward to production deployment time, their application won't run without elevated privileges. Sysadmin asks why does the application require elevated privileges. Dev answers, "Because I set it up with root" :facepalm:15
While teaching theory is actually good, it doesn't mean that there is no room for any practical education either. Students needs to be exposed to modern programming languages like Python, Ruby while at the same time be trained in the pioneers of programming like C, C++, Java. It is only then would they be able to make informed decisions on who they really want to be. If you had one practical lab session on C and Java and then the rest of the semester about HTML, students would end up moving away from programming.
Concepts like programming and networking concepts should be included whereas ancient technologies like programming micro-processors (x386, x486, etc) should be excluded. Who programs x386 and x486 micro-processors anymore? While the understanding of how micro-processors and other low-level components in the computer systems work is very essential, doing practicals on them isn't really a good use of students' time, energy or effort.
My dad used to be a Marketing Manager. He used to make a lot of presentations et al for his meetings. We got our first computer in our house when I was around 7 years old. It was first Windows 95, but I wasn't fortunate enough to even touch the machine. My dad was very protective about the machine. He himself would not use it unless he had to complete some work overnight. For me, it was an absolute wonder as to how and what that thing in the bedroom sitting on the desk next to my parents bedside was. I used to hide and peek around the door sill when my dad was working on it. He became a bit more lenient with the Windows 98 and let me and my sibling play DOS games under his supervision for a limited time.
Over time, I managed to look over his shoulder for the passwords - both BIOS and OS user passwords and started logging in myself. By now, my dad would let me sit on the bed near him when I looked curiously as he worked. Then I had to figure how to connect to the internet and surf the web. And there folks is how my journey with computers began.4
I'm a terminal-guy. I prefer to live inside my terminal. When my family sees me with the green-on-black, they think I'm up to some nasty stuff like hacking / cracking emails, facebook, bank accounts, etc. Only people who understand to look at the terminal realize it's just a few monitors and log tails running. Sometimes, maybe elinks or vi running as well.7
I had a friend whom I met in an open-source community. We hadn't been in touch for a while because of the distances of where we were. Coincidentally, we happened to be working in the same city. When we knew that we were in the same city, we decided to meet and catch up. We met over dinner and this person went on and on about his company and how cool the culture was there.
Towards the end, I jokingly said, "If your company is so cool, why don't you get me a job there?"
2 weeks later, he sends me an email address and asks me to send my resume to it.
1 more week later, HR from the company calls and asks whether I can come to office to chat.
I agree and head over there over lunch break. I _speak_ to the person who was going to be my manager and later to the CTO. The CTO asks me a few technological questions and sends me off.
1 week later, I call up HR just to know how I fared in the interview. They say that they'll give me an update within the week.
Next week I get a call from HR asking when I can join. Could I join with 2 weeks of notice period? I could try, the pay was almost double that I was already earning.
I speak to my existing boss about the offer and they offer me an immediate hike of 30%. That gives me a notion that I was already under-paid. I wouldn't want to continue working with an employer who knowingly paid me low (even though I was content with what I was getting already). I make my decision to quit. Puts in my 2-week notice period and join the new company on the said date.15
Oh, there are hundreds that I've started categorizing them. They outgrew the storage capacity of my head / brain. I've tried a lot of productivity tools to organize them, but in the end, all my project ideas just remain ideas scattered somewhere unless I see it action and go like, "Hey, I had that same idea. I wonder when they got the idea. Was it before or after I had it?" In the end, I just console myself saying that for me it was only an idea in my head when those people saw it through execution and has a working product. The next step for me is to get along with them and collaborate and make that idea better rather than re-invent the same wheel again according to my idea.
Nextcloud is the biggest example of an idea that came to me and remained in my head and is still on a todo list somewhere.
To not be too emotionally attached to stuff. At the end of the day, all good things come to an end. Also, not to be 100% loyal. That could squeeze more effort out of you at the cost of your efficiency. Have a life, live it.
To have a professional job that lets you work remotely from the comfort of your home in your own office; which pays you well enough but doesn't pressurize you into unachievable deadlines. One that gives you ample time to relax and do some part-time projects for yourself. One that lets you spend time and contribute to the communities you're part of and help you grow both professionally and within the community.
Oh, and best of all, work in the open - open source, open culture and transparency.
I don't want to start a war here, but I love the power of vim.
I prefer vim.tiny because I can find it on practically any UNIX-based machine - out of the box. Copy over my .exrc and I'm already rolling.6
- Dictate the user experience of the product
- Get it built automatically by IDE - backend, frontend, whatever, everything.
- Customizability options - make changes to UI, backend structures, database schemas and models
- all of this by just talking in normal human language.
Production goes down because there's a memory leak due to scale.
When you say it in one sentence, it sounds too easy. Being developers we know how it all goes. It starts with an alert ping, then one server instance goes down, then the next. First you start debugging from your code, then the application servers, then the web servers and by that time, you're already on the tips of your toes. Then you realize that the application and application servers have been gradually losing memory over a period of time. If the application is one that don't get re-deployed ever so often, the complexity grows faster. No anomaly / change detection monitor can detect a gradual decrease of memory over a period of months.2