A few years ago, a meeting was held about an issue the QA team was facing. The JIRA work-flow had become too overwhelming. It was tedious to create the hundreds of sub-tasks that sometimes accompanied each feature development. The summer was approaching, so the decision was made to use the resources from the summer internship programs to snatch one of those under graduate and have him build a new system, independent of jira, to solve the problem.
Of course, they didn't know what the program will look like or even how it would be built. But the great thing about having interns is that you can tell them to build anything and they will pour blood, sweat and tears to get it done. The intern was hired and they put him to work.
Right before the end of summer, he presented the project in a meeting and everyone was impressed. The QA team was asked to try to use the tool in parallel to get familiar with it until it is ready for a full transition.
Aaron completed his summer internship and went back to college with some fine recommendations. Months went by and a job was posted on a job board. It was for a full stack developer with experience in PHP, node, Apache, Nginx, expressjs, and expertise in Angular. I am by no mean an Angular expert but I applied and got the job.
I was surprised that the projects that I worked on day to day had no Angular whatsoever. But from time to time I would hear about the Amazing tools Aaron built for the team. One common thing that was being said is that he introduced modern tools into our work-flow. It's true, some of the tools I was working on were old things written in Perl, Bash and C.
"I can do it by Monday" I said.
"Monday?" The manager said surprised. "No Monday is their deadline. They need it ASAP."
I had to fix it on the same day.
It was a PHP project. It was also a node project. It was running on Apache. It was also running on Nginx. It was running on a node web server. At least the database was only MySQL. Calling this an Angular project would only be a courtesy.
For a company with such rigid security, it was a mess. Every single line of SQL was prone to SQL Injection. One of the requirement for the project was for it to use Jira credentials to log in. So of course, when you log in the first time, your user name and password was saved in a cookie. Every single request had to be re-validated using the jira auth API. Security was a concern of course since your user name and password is in plain text in a cookie. So the solution was base64 encode them first before setting the cookie.
I was excited. Everything was broken, this is a developer's dream. I would throw away every other project I had just to fix this beautiful mess. But alas, I only had a day to fix the single issue of the database not saving new records. In his short internship, Aaron hadn't got the time to study database designs so he created lots of logical errors in the database. There were some primary and foreign key mismatches. It would have been so nice to sit down and properly redesign the database. But, the QA team was eagerly waiting for my fix. I had to use the timestamps of records to ball park which records were supposed to be related. I created new matching IDs, and instructed the QA team that I have disabled the delete button because deleting a record would break the website.
This allowed them to continue their work in the meanwhile. I created a bunch of jira tickets for improvements that need to be done.
"Thank God you are an angular expert or we would have been screwed." My manager praised me.
During my down time, I revisited the tickets I had created for this tool and fixed the most offending of problems. The base64 cookie credentials is now gone. And you only log in once!
Every daily stand up, I would tell the manager about an issue I have solved. He praised Angular. I explained the complexity that it took to run this very simple tool. He praised Angular. I told him about the 3 web servers that are currently running to serve a single application (Node for SPA, Apache to trigger php jobs, Nginx for the static assets). He praised Angular.
I told him that we need to have someone who focuses on improving this tool and remove the excess it took to run it. I even printed a list of things that this person needed to know to be a qualified candidate. He took the list and thanked me.
The following week, there was a new job post.
We are looking for an Expert Angular Developer.
Looks like this is being discussed on reddit!
Caleb Miller :
This is hilarious. Also gives me more reason to jump into Angular ;)
Am glad you enjoyed it @caleb :)
So when angular was infant I would see Job Post for an angular expert with 5 years experience required. A quick wiki search at the time would have shown angular was only 3 years old back then.
@h4mme7 This reminds me of the whole exchange with DHH (creator of rails) and the recruiter requiring 10 years experience in rails :)
I love reading your blog, best regards from a fellow full stack developer!
Really loved this post. Thanks Ibrahim.
Just read your BBC piece'I feel like I was accidentally hired' and followed the kinks [incl this one]. Also sharing with a couple tech friends [I'm a total tech dunce].
Great that you're willing to share; gives so much solace to others struggling in similar ways, and a great job advert.
Would love to talk with you about your new ventures.
Let's hear your thoughts