Serverless concept

Who should read it: It is for you if you are looking for an overview of this topic for a project, to conduct/appear in an interview, or in general. As we learn more, we will update this article.

I was curious to learn about serverless framework. Seems an interesting concept. Does it really work without a server? why to use it? Where to use it? In my notes below, sharing my learnings:

1. What is serverless:

Serverless does not mean there is no server involved. Serverless is an architectural approach to software solutions that relies on small independent functions running on transient servers in an elastic runtime environment. Let\’s break it to understand what it means:

  • Small independent functions: sometimes it\’s also called Functions as a Service.
  • Transient servers: Actual machines hosting it are temporary instances.
  • Elastic environment:  These virtual machines are spun up when needed and spun down when not needed. This elasticity helps in gaining better targeting of resources and better operational cost.

Finally these all (functions, virtual machines, and elastic runtimes) need an architectural approach.

2. Why serverless:

Using serverless reduces time to market an idea with a reduced cost. Below are some pros and cons of using Serverless architectures:

Pros:

  • Developers can focus more on coding for the business logic
  • We can more easily deal with scalability

Cons:

  • Spinning machines take time
  • Debugging is complicated
  • Vendor lock-in

Four characteristics of serverless platforms:

  • Event driven: Serverless has the ability to support event driven architectures.
  • Streaming data: Serverless architecture supports streaming data architectures.
  • Auto-scaling: Serverless architectures have ability to support the ability to scale the capacity of the the solution.
  • Fault-tolerance: For the solutions that needs a \’zero downtown\”, serverless can be a good option to consider.
3. How serverless platforms work:
Serverless architecture approach is to write small functions and link those with the API. So, solutions provide multiple programming options to code the functions. Amazon, Google, and Microsoft are three common and well established hosting platforms.
Serverless use case examples:
  • Small, simple, or complicated web applications
  • Backends
  • Data processing
  • Chatbots
  • IT automation
Reference:
Book: What is serverless, by Mike Andundsen, published by O\’Reilly Media, Inc.
Videos by Amazon Web Services (AWS)

Bootstrap

Who should read it: It is for you if you are looking for an overview of this topic for a project, to conduct/appear in an interview, or in general. As we learn more, we will update this article.

Introduction: Bootstrap is a popular front end framework for HTML, JavaScript, and CSS. It’s useful to build responsive, mobile first websites.

Main features: Bootstrap has really made life simple. Let’s look at some cool features of Bootstrap:

  • Mobile first philosophy: It’s built with the design of Mobile first. It helps to design websites for mobile, tablets, and desktops. It reduces extra efforts for the developers.
  • Responsiveness: Bootstrap grid design has four classes: xs for phones (<768px), sm for tablets (≥768px), md for desktops (≥992px), and lg for larger desktops (≥1200px). To achieve responsiveness, Bootstrap scales up to 12 columns according to the size of the device or a viewport.
  • Some great features of Bootstrap:
    • Forms
    • Images and Icons
    • Buttons and related items
    • Navbars
  • Other benefits of Bootstrap:
    • Faster development: Instead of developing elements from scratch, Bootstrap provides built-in elements and JS plugins
    • Less issues.
    • Extensive list of features.
    • Best styling.
    • Built-in templates for beginners.
    • Excellent support with the community of developers.
    • Browser compatibility with major browsers.
    • Easier to learn.
    • Supports fixed and fluid layouts.
    • Column adjustment features:
      • Offset features to adjust column positions.
      • push and pull options to order the column positions.
      • container function to wrap the content.
    • Built-in pagination support
  • Other similar frameworks:  YUI grids, 960 GS and blueprint.

Get started today with the Bootstrap journey.

A Java developer’s challenge in learning PHP/Laravel

Who should read it: It is for you if you are looking for a quick overview of this topic for a project, an interview, or in general. As I learn more, we will update this article.

As a Java developer of more than 15 + years, I came across a situation to learn Laravel application development. Laravel is a PHP based framework. I will go through my challenges of learning it and how I overcame it.

As an established Java developer, these were my challenges in learning Laravel:

 

Challenge 1: Why Laravel, why not Java based: I love Java based technologies. Why should I deviate from Java technologies and learn Laravel out of the way? Why should I learn PHP and Laravel when I am already experienced in multiple Java frameworks like Struts and Spring?

Challenge 2:  Why to invest my time in a secondary skill set? I primarily like Java based skills. Do not I already have many things to learn in the Java world? Instead of learning Laravel, what if I spend time in further learning more about Java frameworks? Will there be any long term benefit of learning Laravel?

Challenge 3: Will I be accepted as an experienced Laravel professional?  A genuine concern. I have been working on Java skills for more than a decade. How will I be respected in the Laravel community? Am I changing my career path? I always loved Java skills. Why should I deviate from my Java career?

 

Challenge 4: How long will it take to learn Laravel? If I really have to learn, how long will it take to learn it?

 

Challenge 5: How long will it take to develop expertise in Laravel?

I went through many such self-talks. It took few weeks for me to even consider deviating from my existing Java skills set. Here is how I overcame these challenges:

Challenge 1: Why Laravel, why not Java based? Reason is a need and the curiosity. I can understand the need in the project, but let’s explore curiosity. I was so curious to know why the a community of developers prefers Laravel or a similar PHP framework over another skills set like Java. I researched it for few weeks. I also inquired from my friends who are using the PHP/Laravel framework. They all argued that the development speed is faster and cheaper in Laravel, as compared to a Java based framework. Also, the quality of development is great. I challenged them that as an experienced Java developer. I argued I can lead developers to develop Java based applications very fast. But their point of view was the learning curve that Java has. Per them, if a new programmer learns PHP/Laravel in two months, it needs six months to be equally good in a Java based framework. This argument made me more curious to explore Laravel framework.

Challenge 2:  Why to invest my time in a secondary skill set?

In my Java  development  career, many times, I got job offers because of my additional/secondary skills like Epiphany CRM, SAP ABAP, Corda dashboards, Shell, or other skills. Many times, I benefitted by combining a primary and few secondary skills set. I recall a project in that I was the lead developer. In the eco-system, majority of applications were in Java but one application was built in PHP. So, I concluded that it’s a unique skills set to combine Java skills with another demanding skill set. So, I won’t be wasting my time learning Laravel as my secondary skills set.

Challenge 3: Will I be accepted as an experienced Laravel professional? Probably not, but let’s look at some common skills in Laravel and in Java frameworks:

    • Business goals
    • Design principles
    • Web UI skills
    • Database skills
    • Testing strategies

Now, let’s look at some skills that are not common into Java application world:

    • Laravel framework itself
    • Laravel related unique utilities like tinker
    • Laravel specific testing data seed concept

Though we have uncommon things, it’s helpful to learn uncommon skills. It broadens the perspective of knowing new possibilities and for Java frameworks in the future. It can open the perspective of Java developers to come up new features into Java frameworks.

Challenge 4: How long will it take to learn Laravel?

My research indicates that learning Laravel is relatively easier as compared to Java frameworks. But PHP as a pre-requisite. If I spend 3 – 5 hours a week, I calculated about 3 months to learn Laravel. Some would argue it is a long time, but I respectfully disagree with them.

Challenge 5: How long will it take to develop expertise in Laravel?

As per my opinion, no one can really claim being knowledgable in a framework without creating a working application. I planned to spend another 2 months with 3 – 5 hrs/week efforts.

It is been pretty challenging for me to pick up Laravel framework because of the learning curve in it. But so far, I am really enjoying Laravel framework. I really impressed Laravel’s Eloquent Model ORM tool. Throughout my journey, I also realized how challenging it’s been for me to pick up a new technology, which is completely irrelevant to my current skills set. That made me come up with a new upcoming article: How to learn a new technology when you’re already expert in a technical skills set. Stay tuned to read my upcoming article.
I’m looking forward to my journey of learning Laravel.