Skip to main content

Introduction

Hi
My name is Mohammad. I am a passionate Java developer.
When I was in university, I was very interested in Borland Delphi and Turbo C++ they were hot at those ages but I ended up with my first job as Oracle Developer. I was lucky because Delphi was about to die and now we can call it an ancient programming language! It is back to its hometown: Delphi Temple :)

So after two years working with Oracle Form Builder and Oracle database, I attracted to Java. So first thing I learned was Apache Struts 1.1. It was awesome however now every body smiles when you mention it :)

Very soon I switched to JSF and JBoss. But they were very young at that time. I also worked with Beehive from Apache which nobody may heard about it :)

I worked with Apache Lucene, JSF and JBoss Seam for about two years and then I packed my bag to work in back end. I love back end programming!

My best years of working was in a Banking software company which I had oppurtunity to design and develop some big applications from scratch which I am really proud of.

Just want to mention, I re-created and re-designed the existing SMS Banking System.
I also worked in Deposit Management, Payment System and General Ledger.
I was involved in designing these application.

Today, everybody talks about team and being a team player. I love working as part of a team but every one has different strength. I have to say, I am very productive when I do it myself. This doesn't mean I'm not a team player.

When it comes to design an application, I'm very good at it. I always had this problem that it's hard for me to convince people about my design and ideas and why I'm doing this ... but the result were always been so good and appreciated. My viewpoint in implementing a software is to make it easy to understand for future developers as well as easy to change, replace and or enhance.
Only when the application grows, you'll notice how much these concepts are important.

I also believe to achieve these it is important that you follow best practices and also not follow them always! In other words, it's not sin if you don't follow them. It depends on the situation. Sometimes you have to break the rules to get something better.

I believe standards are good and necessary while you are not forced to follow them always. I hate to force developers to follow standards and yet I don't like those people who don't care about standards! I hope you understand what I mean :)

I also kind of against agile programming and scrum. These kind of thinking brought to you by corporations to make more money and ruin developers life. And they don't understand that they have to spend more time and money instead because of the fact that developing faster means more bugs and complexity. Documents about scrum always show more productivity and less bugs. In action this never happens. Unfortunately this also looks very luxurious in the eyes of to developers and I can see tears flowing in their eyes when you speak about scrum 8)
To me it's just a mirage!

Comments

Popular posts from this blog

CI/CD Automation: How to wait for Helm deployment into Kubernetes cluster

 So I created this post because with Helm v3 , if you use --wait option and the timeout is reached and the deployment isn't successful, Helm marks the deployment as failed . The problem is that subsequent deployment (upgrade) that may contain the fix won't work as expected and it will end up in error like this: [some-name] has no deployed release   The only way to fix this is manual intervene and deleting the previous failed release. This is not only scary but also against the automation process. If we remove --wait option, Helm will mark the deployment as successful regardless. My solution to this that works nicely is as per below: Remove --wait option from helm deploy Use this command to retrieve the list of deployment for that namespace that you are deploying against: kubectl get deployments -n ${namespace} -o jsonpath='{range .items[*].metadata}{.name}{","}{end}' You can use split to turn the comma separated list above into an array Then you can run mul...

Hibernate And Mapping enum to customized values

With Hibernate, enums can be easily mapped either by enum item name or the position of each item but what if you want to map it to a customized value? In my case, we have so many one-character long columns in our tables, representing flags, statuses etc. We have heaps of them. Writing UserTypes for each enum field is very boring and nasty job. As every where you see in internet, you need to keep a Map for each user-type in order to map those values to enum elements. So to avoid this, I ended up with something more clean, easy and more generic. Now imagine you have following enum: public enum PaymentFrequencyEnum { WEEKLY("WK"), FORTNIGHTLY("FN"), MONTHLY("MT"), QUARTERLY("QL"), YEARLY("YL"); private String value;     private PaymentFrequency(String value) { this.value = value; } } I've chosen two-letter code as value so that you understand m...

JSF or GWT?

I have worked with JSF for almost 4 years. First time when I had a chance to work with GWT, I was very excited. Like many Java developers I was like 'Wow I don't need to play with those bloody tags and elements and now it's pure Java code!!!'... I was so happy but my happiness didn't last very long. Programming is my passion. I hate writing codes that become a mess later and unfortunately this is what will eventually happen with GWT. The thing is you can't rely on reviews and features of a software or an API, in action everything goes different way. Specially when it comes to large scaled application and in an environement where everything is urgent and importnat... well, I think all software companies are the same in this regard... The fact is that in a team of developers not every one cares about best practices, design patterns and even if you have very experienced designer, solution architect etc, still you can't force the team to deve...