DEV Community

Ashraf Alam
Ashraf Alam

Posted on • Updated on

I'm a Software Architect, Microsoft MVP, DDD-Cloud Enthusiast, built web applications with 100+ millions users. Ask me anything!

I've been loving, living, eating .net framework since it's inception year 2002.

I'm hugely obsessed writing beautiful code and often publish as open source.

I believe the world is suffering because of duplicate code and millions of people's life can be improved if the evil of duplicate code can be fought right.

Been awarded as Most Valuable Professional by Microsoft for a few times, judge in Microsoft Imagine Cup, mentioned in Microsoft Channel 9, written technical paper in IEEE Computer Society publications.

I've specialization in designing and building high-performance web applications in cloud computing environment. I helped big companies building and scaling their web applications with 100+ millions users.

Besides technical stuffs, I'm a short story and essay writer, try-to-be a good father, son, husband and friend. When alone I simply go from long walk, think about life from a philosophic view.

Would love to answer any question, from technical to literature, philosophy, mindfulness, success, ambition, helping community, making the world a better place.

Ask me anything!

Top comments (13)

Collapse
 
rockykev profile image
Rocky Kev

Having been awarded the Most Valuable Professional by Microsoft multiple times - what attributes would you say makes you stand out from your peers that other developers should emulate?

What are some mistakes that you see young developers repeat over and over again?

Collapse
 
ashrafalam profile image
Ashraf Alam

Thanks Rocky Kev for great questions.

Let's dig into details.

Learning and Sharing

Having been awarded the Most Valuable Professional by Microsoft multiple times - what attributes would you say makes you stand out from your peers that other developers should emulate?

Short answer: learning and sharing

Software development is a dynamic area which keeps changing very frequently. Keeping upto date with new technologies and best practices to use them requires a continuous effort of learning.

Being obsessed with what software can do lots of magic, including how it can make positive impact in people’s life, learning newer and better way of developing so is a fun for me.

Interestingly the fun gets bigger when you start sharing the learning with others.

Following are the phases of learning and sharing to be considered which I think all developers can emulate and should be repeated as newer and better technologies and practices are available:

  • Phase 1: Knowing what I don't know
  • Phase 2: Learning in-depth where I can be a best fit
  • Phase 3: Implementing in real world
  • Phase 4: Sharing with community

Top Mistakes to Avoid

What are some mistakes that you see young developers repeat over and over again?

Not learning

As mentioned earlier, software development is a dynamic area which keeps changing very frequently. People who don't keep them updated will soon find them not useful in this industry.

Not crafting

Software development is a complex process, especially when newer features are being added continuously.

Every time you're going to add new features in an existing code, you'll need to think carefully, craft the implementation of new functionalities so that codes are readable, maintainable, extensible for future functionalities.

Like other arts, designing and writing program is a craft and you get better and better with practices over time.

Just finishing the day job to add some functionality is not enough.

Hope the above response answers your questions.

Cheers!

Collapse
 
masallahozen profile image
Masallah Ozen

How can do this flow?

Sample:

FORMS:

Form1 :
=> Has 5 props and Hasnot inner form

Form2:
=> Has 9 props and Has inner form

Form3:

=> Has 15 props and Has inner form

States:

Form1 -> Form2 -> Form3

Business Rules:

Before Form1 -> Form2 : Check fields, call custom function
After Form1 -> Form2 : Send Email/Notify/Sms

Before Form2 -> Form3 : Check fields, call custom function and check inner forms + Start approval workflow and wait response.
After Form2 -> Form3 : Send Email/Notify/Sms

If an web app doing process over an wep api (for db transaction) how can implement above explanation?

Collapse
 
ashrafalam profile image
Ashraf Alam • Edited

Based on the details provided I'm assuming you'll be considering SPA and Web api combination to implement an wizard style functionality, where data will be collected across multiple screens.

There are plenty of different set of tools and frameworks can be used. Here are some solutions you can consider:

Web Application with React

React is currently the most populat web application framework which is developed by facebook. You'll get a wide variety of compotents to achieve advanced functionalites.

Check this article, which also provides a live demo and source in github which will allow you to implement

Web Api with .NET Core

For the backend functionalites, you can consider asp.net core web api.

Checkout this open source project EISK which also provides documentation that'll help you to develop data driven web api in asp.net core web api.

Hope this helps!

Collapse
 
masallahozen profile image
Masallah Ozen

Thnx for your response and time. But I guess, I can't completely define problem :( Sorry for my English.

  • Web App : Writed with any web tech, not problem. Just send action/trigger/event

  • Web Api : This is writing with c# For me. When an action/trigger/event send api call, my [validation/rules/may be start workflow] process starting. After process executed a repsonse send to wep app [Ok/Failed/WaitingForApproval].

My problem is this process definition.

This categories are usefull for problem, aren't it?

  • Event bus
  • State machine
  • Rule
  • Validation

Best Regards,

Collapse
 
mhmohona profile image
Mahfuza Humayra Mohona

Bhaia, as far as i know in Bangladesh there are very few opportunity for data scientist and also it is not easy to get a job outside of country just after graduating.
What will be your suggestion for a student who has one year left for completing graduation, should she keep a backup plan considering bd job market or concentrate fully on what she is passionate about?

Collapse
 
ashrafalam profile image
Ashraf Alam • Edited

Hi Mohona,

Good question.

Before deciding anything, you'll need to ask yourself what you really want.

For some people moving abroad is for better quality of life, for some people it's better career.

A limited demand on a specific technology doesn't necessarily mean it won't be in demand list in future.

I can share my own experience in this regard.

When I first started programming in dot net, it was not even known by most of the organisations developing software. But I kept learning and focusing on it, regardless having difficulty getting a decent job.

But over time I ended up landing a lead role in dotnet, since by the time it became a known technology, there were very few expert people in the market.

At some point in my career I moved abroad as I wanted to work in more challenging stuffs, which also been been possible because of my continuous effort and passion in the respective technologies.

If you prefer better living quality, you can move abroad by pursuing Masters degree as it will provide easier gateway on landing job in abroad, otherwise following your preferred technology passion would be a good deal.

Collapse
 
mhmohona profile image
Mahfuza Humayra Mohona

Thank you so much bhaia for your kind reply.

Collapse
 
kipergil profile image
M. Kipergil

What is the best approach for application logging ? What is your favorite logging framework and how could you make those logs visible ? And from Azure/Cloud perspective, what is be the optimal solution/service in Azure for application logging?

Collapse
 
mithunzakir profile image
mithun

I like your words. "I believe the world is suffering because of duplicate code and millions of people's life can be improved if the evil of duplicate code can be fought right."

Would you elaborate this a little bit more?

Collapse
 
maybebored profile image
Mayuran

Hi, your achievements are impressive and so motivating to an aspiring developer. My first ever development experience was in .NET using Web Forms. That was 1 year ago. Today I'm using MVC frameworks written in JS. I personally find it useful to have picked up React as my first MVC framework, because of the job availability.

Why/What do you think motivates new developers to pick up .NET MVC as their first MVC experience.

Collapse
 
omarq profile image
Omar Qadan

I have a small idea and I want to turn it into SaaS App, the business is still unclear and I want to shape it along the way depending on the feedback that I'm going to collect from users, do you believe that DDD is a good as a design tool for this solution or is it preferable to use something else until the business is finished and clear ?

Collapse
 
arminops profile image
Armin Tor • Edited

Would you share some examples of DDD which you may think are the best ones in github?

We really need good examples.
And please suggest the best books you know to follow for Microservices and DDD.