Skip to main content

What have I learned as a developer, a tech lead, a project manager and a CTO

I started my career as a data analyst since then I have worked in many positions like data engineer, full-stack developer, data scientist, project manager, tech lead, and currently as a CTO. Let me share with you some of my experiences which I think might be helpful for IT workers. Of course,  it's might not true for you, if it is not, tell me what you think, I'll be happy to read that.

Skill

Let's begin with skills, whatever you are working on, keep going forward, seek knowledge. Master your programming languages, learn best practices, structures, patterns, get certifications,... You want to advance in your career you must be an expert if not the best when it comes to your professional skills, you want to be a wise man in the meeting, not a fool. I don't think I need to explain much about this.

Attitude

You gotta be a good guy. Think for other people, be happy, be energetic that's what you want your colleagues to be so you must be one first. That's easier to said than done, take some small things to practice and improve yourself over time. Let me give you some points to observe and think about.

1. Learn to criticize yourself, if something bad happens don't deny it, don't blame other people. Think for yourself, if there was anything you could have done to make it better. If you don't make mistakes you don't learn anything.

2. Put yourself in someone else position to think. If you are a leader and see a staff of yours come to work late for the last few days, don't mad at him, ask him if everything is ok, how is his family, tell him that you are worried about him then he'll open with you and tell you the reason.

3. Be easy with people, before you say something, think about how would you feel if you are the listener if that's something that makes you unhappy or angry then finds another way to say it.

Deliverability

You have to have a good roadmap and deliver in time.

When you start a project, start with an MVP (minimum viable product), the simplest prototype you can make. There are a lot of products you develop that have less than a thousand users or not even make it to the market at all. Your company needs a working product as soon as possible to demo to customers or raise funds or adjust the initial idea. Don't think that you are working at Google, Facebook, or Apple, the first version of your product doesn't need to serve millions of users, try not to complicated it, or over-optimize it. When your product gets more attention from the market you can improve it later.

If you start with a product or a feature, think about its meaning of being, if it's better than other similar products available in the market, or do people need it at all. If it's just something cool or you want to show off your technologies then you are better not do it. Think about what people need and find or create a technology to help them, to make their life better, to solve their problems. Don't start with cool technologies and try to think about what you can do with them.

Don't ask too much, many of you might not agree with me on this point. If you are a senior or higher you are supposed to give solutions. I've seen many experienced developers keep asking for small things, like "Do you want this picture left, right, or center?", "I have 3 solutions for this problem which one do you like ?", "You want to put this information on the web, where do you want to put it? how do you want to visualize it?". the point I want to make here is if you are a senior or higher you have to learn to make decisions. Base on your experiences, pick the best solution to implement and adjust base on feedbacks.

I think I will stop this post here, I  don't want to make too many points that might overwhelm you, those are things that  I think quite important, easy to observe and practice. Tell me what you think, do you like to read more posts like this?.

Comments

Popular posts from this blog

How to use Angular RouteReuseStrategy to create snapshots so you can back to previous pages without reloading data

Github of this  exmaple.  There are a lot of practical scenarios when you load a list of items then go to the detail of an item, when you hit the back button you don't want to reload the item list again. Angular provides you a method to do exactly that. With RouteReuseStrategy when you hit the back button it takes you right back to where you were before without reloading anything. Of course, you can choose to do this or not for any page and it super easy to set up. To do this you need to create a class implement RouteReuseStrategy from @angular/router. There are 5 methods you need to implement: shouldDetach, store, shouldAttach, retrieve, shouldReuseRoute. Let's take a closer look at these methods. shouldDetach shouldDetach ( route :  ActivatedRouteSnapshot ):  boolean When you go to the next page, this method will be trigged, it decides whether the current route (a page) should be detached. In other words, Angular takes a snapshot of it and saves it in memory ...

SEO with Angular, add title, meta keywords, a must-do thing for your website

  For those who don't know what SEO is, SEO stands for Search Engine Optimization, it helps people discover your site through search engines like Google, Bing, ... Take a look at the below picture: To let search engines discover your site, you must let search engines know your site, for google you can use Google Search Console  but that's another topic, I assume search engines already know your site. The 3 most important factors are URL, title tag, and meta tag (description, keyword,...). Search engines will look for those 3 things (and many other factors) to compare with the search query and decide whether your site is relevant or not. Url Try to use meaningful URLs. For example, instead of using a URL like https://yoursite.com/products/1 use https://yoursite.com/products/iphone or even better https://yoursite.com/iphone . You can achieve this by configuring your rooting modules. To make slug URLs you can strip accents your product names and join them with a hyphen (-). For e...

Create and deploy multi language (i18n) website with Angular 8+

This guide should work with Angular 8+.  In  this post: 1. Create an angular web project. 2. Set up i18n and translate. 3. Deploy the website on Windows using IIS. In this guide, I am using 2 languages, the setup for more than 2 languages should be similar. You can find the code of this guide in my github . 1. Create an angular web project. To create an angular app, in command  prompt type: ng new multiLanguageApp Open "app.component.html" delete the default code and paste this code : < div >    < a   href = "/" > de </ a > &nbsp;    < a   href = "/en" > en </ a > </ div > < div > Danke! </ div > Run "ng serve" to serve your app. Go to localhost:4200 you should see: I am creating an app with German as the default language and English as the second language. "Danke" is a word in German means "Thank you". When we click "de" or "en" in the UI to switch langu...