loading...
Cover image for I've been a dev for 11 years. 5 things I learned

I've been a dev for 11 years. 5 things I learned

mdhilwan profile image mdhilwan Updated on ・5 min read

I have been a software developer / engineer for the past 11 years. And here are 5 things that I learned.

corgi-coding

Here is a little context:
I do not have a Ba / Bsc / Msc in Computer Science or Software Engineering. I got a Dip in Digital Media Design.

1. The only constant is change

Wait. I know.

You are going to stop reading and say WTF. This is so cliché!

Yeah. Unfortunately it is.

Simple example: Have you noticed how fast Angular gets a new release?

December 2016 when Angular 4 was released everyone cheered and ran with it trying to master it. By the time they "mastered" Angular 4, it was 2017.

Angular 5 got released on November 2017.

slam table

Seriously. That is how fast things change.

And we are not talking about simple upgrades. Each new iteration of Angular brings SIGNIFICANT updates!

So that bring me directly to my next point:

2. The very best skill to have: Being a fast learner

You can list out all kinds of coding languages, frameworks and methodologies on your CV. But all these are just tools.

If all you have is a hammer, everything looks like a nail

I have seen a lot of projects that does not benefit from React, but yet... React was chosen. Because it was the latest fanciest newest toy that everyone wants to play with.

Sometimes React is the answer, but sometimes Angular may provide a better fit? Or maybe Vue instead may bring the most value? Or maybe Meteor? Or Backbone? Or none of them?! Just write in plain vanilla Javascript or Typescript!

Whatever

Well... That's the responsiblity of the Tech Lead or CTO. Let him decide what's best for the project.

But, to be honest. I have met A LOT of CTOs who knows jack shit about what Agile methodology means yet they are making the decision.

And this brings me to my third point

3. It's totally fine to admit that you don't know certain things

I am not sure why it is so hard to admit that you don't know a certain solution or implementation.

IT IS OKAY!

IT IS OKAY!

But some engineers, especially those who have a decade worth of experience, with a Msc in Comp Science from some fancy school... They just refuse to admit that they are not sure or they might need help. They refuse to raise their hand for help if they are unsure with certain build tools or process.

This have got to stop.

Because the only thing that is holding you back from progressing further and higher is your ego.

Don't let your ego stop you. If you don't know something, ask. Even if the person who you are asking from is a fresh graduate or a new joiner. It doesn't hurt to ask.

Hit you with some knowledge

I know that many developers prefer to figure things out on their own. Heck! That was how I learned. I kept on grinding and eventually I fixed the problem.

But do that on your own free time. If you are still grinding but the dateline is in a few days, I think you should call in the cavalry. At the very least, ask for direction. Ask if you are going the right way. It doesn't hurt.

Yeah we can really get consumed by the technology that we lost sight of the objective. The objective is simple: You are helping your employer make money.

This brings me to my next point.

4. Focus on the product, not on the technology

Technology just enables you to make that business transaction. But it is not what sells the business.

Always think in the business perspective. What function do you provide to value-add the business?

Let me give you a technical example that ties in with the business.

Example 1:
Cutting down loading time from 5 sec to 0.5 sec

That is a HUGE difference. It helps with:

  1. Customer experience

  2. Lowers visitors drop off / exit rate

  3. Increase possibility of transaction conversion

  4. Therefore more business == more revenue

Example 2:
Cutting down npm build script build time from 13 sec to 0.7 sec

This happened to me in one of my previous jobs. This project that I inherited used npm with browserify but it was so messy and clumsy that saving the file with cmd/ctrl + s each time triggers the build script which takes 10-13 sec to complete.

And how many times in a day do we press cmd/ctrl + s? Multiply that with the number of developers working? Multiply that with the cost of paying these developers? How many man-hours is spent just waiting for the npm build to finish running?

MONEY

You are hired not just to write code. You are hired so that you help the company be more successful.

And sure, once in a while you sit and you wonder, can't I set up my own business?

And maybe you did. Maybe some friends do come up to you and ask if you are interested in their start up. And they will start pitching to you their ideas.

Lots and lots of ideas.

Which now ties on to my final point

5. Ideas are cheap. Execution is expensive

Everyone has an idea. But not everyone can execute it. And even lesser can execute it well.

I have heard it all.

We are going to be the Facebook equivalent for digital magazines!

We are going to be the Uber equivalent for part time teachers!

We are going to be like Google! But for X community!

The first few times when I hear an awesome idea, I did get excited. But eventually I get very jaded. And I realised that execution of these ideas are what's missing.

So don't be fazed to turn down an idea. Because there's more.

Let me give you some idea

And because execution is expensive, especially if you have the credentially to prove it, don't be afraid to value yourself equally. Do not discount yourself.

Sure, the stories of the 5 friends invited by Mark Zuckerberg have been circulating the internet like wildfire. So have the Jack Ma original sales pitch in 1999.

But please be wary, and have your BS detector turned up a notch.

The End!

Yup so those are the 5 important things that I have learned.

Ofcourse there are way more stuff that I realized, figured out, came across and learned in the past 11 years being a software engineer / developer. If you wish to reach out to me, feel free to drop me a comment! ^_^

Posted on by:

mdhilwan profile

mdhilwan

@mdhilwan

Mountaineer and Software Engineer at Mastercard. Passionate about the mountains. Even more passionate about Javascript

Discussion

markdown guide
 

You made me laugh with all those animated gifs 🤣. I'm fortunate enough to keep my distance from web development and the very mention of JS makes me cringe.

Number 3 in your list is my favourite type of horrible character trait. I am enraged by those sort of deflated bubbles of rotten knowledge, the so called know-it-all engineers.

If anyone of us were to know everything without the help of Google, we'd end up traumatised. It's not viable to expect a single person to keep up with all the advances and changes happening in the field of IT.

Entertaining article,
Thanks

 
 

Hooking onto your point 4... Ironically, I've seen this whole drive around the latest tech fads so many times in the industry over the past 15 years. Coming from the days of building data proxies and engines to do basic boilerplate stuff which nowadays are available as NuGet's, moving into the modern era of software engineering with all the textbook OOP principles we were taught implemented (sometimes) overly complicated just for the sake of "because we can". Sometimes it kind of feels that we've gone full circle since the 2000's to make our lives easier and produce code quicker to enable business to do business quicker and better, back to the same point of complexity (this time engineered by ourselves) to solve really basic business problems with highly over-complicated technical implementations. The Internet is rife of frameworks and methodologies because someone just couldn't agree and play along with what is already available nudge nudge linux distros and decided "hey let's build yet another MVVM javascript framework". I'm not saying we should not be progressing our craft but do we really need to constantly reinvent the wheel by starting back at the drawing board every time instead of building on top of what we already have available? Developers also typically have this tendency to always want to "upgrade" that ASP.NET MVC or AngularJS application to the latest Angular framework even though there is no business value in the exercise. How do people higher up like team leads and development managers justify to business let's spend 3 or 6 months and lots of $$$ to rebuild an already working product into a newer technology but it will look exactly the same because it will confuse users if there are major changes? Developers need to become mindful of striking a balance between what business problem needs solving and making sound decisions about what technologies to use to solve the business problem. Nice write-up though! It was a great read, thank you! :)

 

Confucious said,

Don't kill a mosquito with a cannon

The exact definition of over-engineering. Lol! :) Glad you liked it

 

Hahaha I totally agree that ideas are cheap, execution is key especially when a person comes to me to pitch me a new idea.

 

Thanks for taking the time to write this. Loved the gifs and there's a lot of wisdom in here!

 

I like this kind of post thanks !

I liked this part :

Cutting down npm build script build time from 13 sec to 0.7 sec

I use yarn and it's more faster =)

 

Your most welcome :) Yeah I wish I can change my build process to Yarn but we use a private repo which only has "approved" build tools. So things are a bit limited.

 

Anyway glad you like the post :)

 

The only constant is change

And in the end the change was constant.

I feel the more a thing changes, the less relevant it becomes.

 
 

Its great that you've shared your thoughts and experience ! It'll be helpful.