How To: Teach Yourself Font End Development (Part 2)

Or, Just Give Me The Good Stuff

Photo by Chris Ried on Unsplash


There are several basic concepts and principles that are important for any front-end developer to understand. These include:


HTML and CSS are the foundation of front-end development, and it’s important to have a strong understanding of these languages. This includes understanding how to structure and style webpages, as well as how to use tags and selectors.


p>HTML (HyperText Markup Language) is a standardized language used to structure and organize content on the web. It allows developers to create webpages and add text, images, and other types of media to them. HTML uses tags, which are special keywords surrounded by angle brackets, to define different types of content and elements on a webpage. For example, the

tag is used to define a paragraph, while the tag is used to add an image.

HTML is the foundation of the web, and it is used in conjunction with other technologies, such as CSS (Cascading Style Sheets) and JavaScript, to create dynamic and interactive webpages. It is a crucial skill for any front-end developer to learn and master.

HTML Crash Course

Web layout and design principles

In order to create visually appealing and user-friendly websites and applications, it’s important to understand basic design principles such as typography, color theory, and layout.

Color Theory | Typography | Web Layout

Responsive design

With the proliferation of devices with different screen sizes and resolutions, it’s important for websites and applications to be responsive and adapt to different screen sizes. This includes understanding how to use media queries and design layouts that adjust to fit different screens.

By understanding these basic concepts and principles, you can build a strong foundation for your front-end development skills and create effective and engaging websites and applications.

Once you have a strong foundation in HTML, CSS, and basic design principles, you may want to focus on learning intermediate front-end development skills. Some skills that are important for intermediate front-end developers to learn include:

Intermediate Skills

JavaScript Programming

JavaScript is a fundamental programming language used in front-end development, and it allows developers to add interactivity and dynamic functionality to websites and applications. Learning JavaScript will allow you to create more advanced and interactive web experiences.

Javascript 101

Working with APIs

An API (Application Programming Interface) is a set of rules and protocols that allow different software systems to communicate with each other. As a front-end developer, you may need to work with APIs to access data or functionality from other systems.

Rest APIs

Debugging Techniques

As you work on more complex projects, it’s inevitable that you will encounter bugs or errors. Learning debugging techniques, such as using the console or using a debugger, will help you identify and fix problems in your code.

By learning these intermediate skills, you can take your front-end development skills to the next level and build more advanced and sophisticated web experiences.

Debugging in Chrome | Inspecting Elements | Debugging Javascript

Code Creation

You will need a coding IDE like VS Code and to familiarize yourself with GIT.

VS Code is a tool for creating code, it incorporates a text editor, a computer terminal, and extensions for code completion and IntelliSense. This is a complete environment for writing websites and applications.

VS Code

Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files.

With Git, users can track changes made to files, revert to previous versions, and collaborate with other people on projects. Git stores this information in a data structure called a repository, which contains the complete history of all changes made to the tracked files.

Simply said, if you don’t want to lose the work you did, or if you work with teams of people and don’t want to have your hard work overridden, you use GIT

GIT Tutorial

Advanced Skills

Once you have mastered the basics and intermediate skills of front-end development, you may want to focus on learning advanced skills to further enhance your capabilities. Some skills that are important for advanced front-end developers to learn include:

Modern Front-end Frameworks

There are many modern front-end frameworks available, such as React, Angular, and Vue which provide a set of tools and libraries for building scalable and maintainable web applications. Learning a modern front-end framework can greatly improve your development productivity and efficiency.

These modern frameworks also include scaffolding tools. A scaffold is like a template. In the simplest sense, you can say “Start Project” and all of the core files and folders you need for a working project get created.

React | React 2

Server-side Rendering

Server-side rendering refers to the process of rendering a web application on the server rather than the client (i.e. the user’s web browser). This can improve the performance and SEO of a web application, and is a useful skill to have as a front-end developer.

Server Side Rendering Vs Client Side | Beginners Guide

Performance Optimization Techniques

As a front-end developer, it’s important to understand how to optimize the performance of a web application. This includes techniques such as minimizing the number of requests made to the server, minimizing the size of assets, and using caching strategies.

By learning these advanced skills, you can become a highly proficient front-end developer and create high-quality, scalable, and performant web applications.

Coming Soon (Part 3) — Practice and Staying up to Date

How To: Teach Yourself Font End Development (Part 2) was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

Think Like A Software Owner, Not A Developer

Or, How Shifting Developer's Mindsets Leads To Happier Developers

Photo by Brooke Lark on Unsplash
“We need to be MORE creative, MORE innovative…. Give me more innovation!”

Does that statement sound familiar?

Most organizations try to commoditize innovation. They do this by creating a dedicated innovation lab or an innovation team. The team's goal is to drive the future growth of new technology within the organization. Often, this is the only way that true future technology can be developed. Dedicated resources in a controlled environment may get the best results sometimes. But, does that provide for general innovation amongst the entire platform?

The biggest problem with the innovation lab approach is the size of your team. Not everyone gets to work on the innovation team. This means that people start to feel left out. Like if they are not picked for that team that there’s something wrong with them.

“Why do I not get to work on the Innovation team? Am I not innovative? Am I not creative enough. Am Ijust supposed to build what someone else designs?”

This can affect the engineers to a point where they don’t want to work on the ideas coming from the innovation team. They may even start to resent the innovation work.

Is There Another Way?

First, you need to understand what you are trying to do.

Are you trying to create a brand new idea, brand new product, or brand new platform? If so, the Innovation team or lab may be your best approach.

But, are you trying to drive innovation within the platforms or applications that you already have? If you’re trying to drive innovation across your entire platform then there’s a better way.

It’s All In Your Head

How do you run your development teams today?

For most of us, the agile process is mundane. It’s an endless loop of:

  • Feature requests
  • Understanding the stories meaning
  • Getting to the root issue
  • Estimating story points
  • Creatively solving a single feature

In that cycle, we may encourage our team members and developers to think creatively about the solutions that they come up with. But is that still limiting in its own way?

We are allowing our developers to solve a very specific feature request in a creative manner. But, are we allowing them to go beyond those bounds and become innovators in the platform itself?

The solution lies in how we think. We want to become enablers of our development teams giving them the ability and the permission to be innovative in their day-to-day job.

We didn’t build a new team or building. We simply allowed everyone to be empowered, gave them the “OK” to think differently. We then supported their efforts by listening and creating a process to roll the ideas back into the product.

WWSOD: What Would A Software Owner Do?

Funny enough it starts with a simple question, what would a software owner do?

Asking this question shifts the thought process of the developers. It moves from “how will I solve this problem” to “what would I do if I was in charge and I owned this platform”?

Software owners are concerned with far more than just implementing a feature in a creative way.

Software owners have to think about how that feature compares with other products they are selling against. They have to see if that feature really benefits the platform and be willing to push back on those that don’t. They need to be able to take that feature and look beyond the ask to see what other enabling features would make that a first-class product.

What are the results of this way of thinking?

Developers will start to “look past the ask”. Every feature request takes on a new context. Developers may have good reason to request to scale back the request. Through research, they may determine that the feature was not used in other platforms.

On the other hand, the developers may feel like the feature request does not go far enough. After research, they may feel that adding or expanding the request would greatly increase the functionality of the platform. This expanded functionality is now coming from the core development teams, from those that know the platforms best.

This new freedom can turn into a whirlwind of creative and innovative ideas. But, you need a process to keep track of it all. The process does not need to be complicated, in fact, if it is it will fail.

Process Example

  • Breakdown the feature request
  • Compare the feature to the “open market”
  • Backlog any changes or updates to the original feature.
  • In a backlog review, discuss and features brought by this process first.

What about the “open market” comparison? What if you don’t have a direct competitor? Is this worthless?

You may need to break down the feature. For instance, say you are working on payment functionality. You might not be creating a but can you compare what you are doing against Paypal, Stripe, and Amazon? By taking a small amount of time to not reinvent the wheel you will get a better product.

Hear how this fits into “Shifting Developer Mindsets”


Companies feel that innovation can only come from a dedicated team or a lab with a dedicated budget. But innovation can be a mindset that’s driven by every member of every team. This requires that managers and developers both have a forum for these ideas. A place to raise these concepts and be able to change how things get developed.

Encourage people to think as if they own the software platform that they’re working on. Put them in the mindset that their profit and loss were based upon the ideas that they put into it. Help them measure how competitive they are to the market. It will start to drive innovation from the lower tiers up to the higher tiers.

This solution does not need more money, a dedicated budget or, a special team environment. All you do is give your engineers the freedom to raise ideas and a process to be able to handle them. Your process needs to have the ability to rank them and roll them into your dedicated sprint schedules.

You are creating ownership and dedication in the teams. You create an environment for your teams that shows that you care about their ideas and that they are valuable members of the team.

Think Like A Software Owner, Not A Developer was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

How To: Getting started with React

Or, How Do I Create Something Fast

Photo by Oskar Yildiz on Unsplash

What is React?

React is a JavaScript library for building user interfaces. It is one of the most popular and widely used libraries for developing web and mobile applications. With React, developers can create high-performance and responsive applications with minimal code. React is an open-source project maintained by a large community of developers.

React makes development easier by offering a powerful and flexible way to create user interfaces. It allows developers to create components that can be reused throughout the application and eliminates the need to write large blocks of code. Additionally, React is incredibly fast, making it a great choice for developing high-performance web applications.

If you’re just getting started with React, there are many great resources available to learn the basics. YouTube has many great tutorials on React, such as the popular series by The Net Ninja. Finally, there are various online courses that offer in-depth tutorials and guides on React.

No matter which resource you choose, you should be off to a great start in learning and using React.

Benefits of React

React offers a variety of benefits that make it an ideal choice for developers looking to create dynamic, responsive web applications.

One of the main benefits of React is its declarative nature. With React, a developer can create components that describe how the user interface should look, rather than having to manually update the DOM. This makes it easy to build complex interfaces quickly since you don’t need to worry about managing the DOM elements yourself.

React components are also reusable and can be used to create multiple versions of the same user interface. This makes it easy to reuse components across different projects, saving development time and keeping code organized. React also comes with helpful built-in features, such as state management and lifecycle methods, that make it easier to manage user interaction and data.

Additionally, React’s powerful debugging tools can help developers easily identify and fix any bugs that may crop up. This makes it easy to create bug-free code, allowing developers to focus on the functionality of the application rather than debugging.

Overall, React has a lot to offer developers looking to create dynamic web applications. To learn more about React and how to get started with it, check out this video tutorial from the official React YouTube Channel:

You can also find a variety of helpful blog posts and tutorials from the React website, including this one which offers an overview of the React library:

Create a React Environment

Creating a React environment can seem intimidating, but it doesn’t have to be! With the right tools and resources, the process can be straightforward and easy.

You will need a code editor. Visual Studio Code is a popular, free, and open-source editor that many React developers use. You can download the latest version of Visual Studio Code.

If you need an extra hand getting started with React, check out this helpful YouTube series

Now Follow the Steps Below

Download Node.js

If you are ready to get started with React, the first step is to download Node.js. Node.js is an open-source, cross-platform, JavaScript runtime environment. This means that Node.js can be used to create applications that are run by a browser or in a server environment.

To install Node.js, visit the official website at Here you will be able to download the most recent version of Node.js for the operating system of your computer.

Once you have installed Node.js, you can begin to learn React. It is highly recommended to watch some tutorials on YouTube or to read blog posts about React to familiarize yourself with the technology. Here are some helpful resources to get you started with React:

Learn React JS — Full Course for Beginners

React Tutorial for Beginners: Learn ReactJS in 5 Hours

React Basics — A beginners guide to React

Now that you have downloaded Node.js and have familiarized yourself with React, you are ready to start developing your own React applications!

Install Create-React-App

Getting started with React is easy and can be done quickly with the help of Create-React-App. This is a command line utility that lets you quickly create and setup a React project. To install Create-React-App, you will need to have Node.js and npm (Node Package Manager) already installed on your computer. Once you have these tools installed, you can install Create-React-App by running the below command in your terminal.

npx create-react-app 

This will create a new directory with the project name which will contain all of your React project files.

Write Your First React Component

A component is a self-contained piece of code that can be used to output content to the page. It’s a great way to break down your app into smaller parts, allowing you to manage and compose a complex application in a simple way.

When creating a component, you will use a JavaScript class to define it. This class will extend React’s Component class, allowing you to access its properties and methods to create your own custom component. Inside the class, you will define a render() method, which will return the HTML element to display on the page.

A basic React component looks like this:

function MyComponent() {
return (

My Component


The MyComponent function returns a React Element, which is a description of what you want to see on the screen. The React Element can contain components, HTML elements, or text. It’s important to note that React components must start with a capital letter.

Now that you know how to write a basic React component, how do you make it interactive? React provides several features that allow you to add state and handle user interactions. You can use state to store data and display it in the component. You can also use lifecycle methods to control how the component updates and renders.

Lastly, once you have created your component, make sure to check out the official React testing library for testing your component. This will ensure that your component works correctly and is ready to be used in production.

The great thing about React is that once you have the basics down, you can start building complex React apps. So get started today and create your first React Component!

Render the Component to the DOM

Rendering the components to the DOM is where the rubber meets the road. This is where the React code you’ve written gets to show off its stuff and actually do something.

It is generally a good practice to have a single root element in your React application. This element serves as the mounting point for React. In the example below, we create a new element `div` with a unique ID of `root`, and React will render its components inside of this element.

const rootElement = document.getElementById("root");
ReactDOM.render(, rootElement);

For more information about rendering components in React, here are some great resources that can help you get started:

React Docs: Rendering Elements | FreeCodeCamp: ReactDOM | React Tutorials: Rendering a Component

Adding React Router

Adding React Router is an important step in creating a React app. React Router is a powerful library that provides routing and navigation for React applications. It allows developers to create single-page applications that can handle multiple paths and route components.

Getting started with React Router can be intimidating. YouTube has a great tutorial from the Definitive React series that covers the basics of React Router. For more advanced topics, the React Router documentation has a detailed guide. You can also find a number of blog posts and tutorials online that offer more information about React Router.

At the end of the day, React Router is an essential tool for building React applications. With the right resources and guidance, you can quickly and easily get started with React Router and build powerful, interactive apps.

Integrating State Management

React requires a state management solution to keep track of user input, data, and application state. Integrating a state management solution into your React application is a must in order to keep your code organized and be able to develop quickly.

There are a variety of state management libraries available, and some popular options include Redux, MobX, and Unstated. Redux is the most popular choice and allows you to store your application state in a single global store and use actions and reducers to update it. MobX is a simpler solution and uses observables to automatically detect and update the parts of your application that have changed. Unstated is a lightweight library that uses React’s context API to manage state, and is great for small applications.

To get started, you can watch this video tutorial on integrating Redux into a React application:

You can also read this blog post on the differences between Redux, MobX and Unstated:

No matter which state management library you choose to use, it is important to understand the core concepts and how to use them effectively in your React application. Doing so will make development smoother, and allow you to quickly build complex applications.

Adding Styling with CSS and Sass

Adding styling to your React project can be an intimidating task, but with CSS and Sass, you can quickly and easily set up the look and feel of your web application. CSS stands for Cascading Style Sheets and is the language used to control the layout of webpages. Sass is an extension of CSS and allows you to write much more concise code.

When it comes to adding styling to your React project, you’ll first want to create a separate stylesheet for your application. This allows you to easily manage and maintain your code. From there, you can begin to write your styles in either CSS or Sass. If you’re feeling adventurous and want to leverage the power of Sass, you can use popular frameworks like Bootstrap or Material UI to get you up and running quickly.

If you’re just getting started with CSS and Sass, there are plenty of resources available to help you. We recommend checking out YouTube tutorials, like this one on getting started with Sass:

Additionally, you can find lots of helpful blog posts, such as this one on adding Sass to your React project:

Once you get the hang of it, you’ll be able to create complex styling for your React project in no time.

Resources for Further Learning

Once you’ve gotten started learning React, you may want to take your knowledge to the next level. There are plenty of resources you can use to further your React knowledge. Here are just a few of our favorites:

  • The Beginner’s Guide to React— This course from provides an in-depth introduction to React, using projects and examples to illustrate the key components of the library.
  • React tutorials on YouTube— This curated list of YouTube videos covers all the basics of React and React Native, with tutorials on everything from setup to advanced topics.
  • React blogs— React is a constantly evolving library, and staying on top of the changes can be difficult. For that, we recommend checking out React blogs, which often post detailed tutorials, case studies, and other helpful information.
  • React docs— React is well-documented and often the best source of information. Be sure to check the official documentation when you have a question or need more information on a specific topic.

These resources will help you get started and build a foundation for your React knowledge. With the right resources, you’ll be able to take your React skills to the next level.

How To: Getting started with React was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

How To: Teach Yourself Font End Development (Part 1)

Or, How To Take Control Of Your Future

Photo by christian buehner on Unsplash

Front-end development, also known as client-side development, refers to the practice of building and maintaining the visual and interactive elements of a website or application that users interact with directly. This includes everything from the layout and design to the functionality and user experience and representing the data from an API.

Having strong front-end development skills is crucial for any developer, as it allows them to create visually appealing and user-friendly websites and applications. In today’s digital age, most businesses and organizations have a strong online presence, and front-end developers play a vital role in shaping how these websites and applications look and function.

As front-end development has evolved, accessibility has become more and more important. This greatly affects the User Interface and User Experience of a website giving all users an equally great experience.

There are so many benefits to teaching yourself front-end development. First, it allows you to learn at your own pace and on your own schedule. Second, You can also tailor your learning to your specific interests and goals, rather than being confined to a set curriculum. Third, self-study can be a cost-effective option compared to traditional education or training programs.


  • Basic computer skills
  • The desire to challenge yourself with something new
Photo by CHUTTERSNAP on Unsplash

Before diving into front-end development, it’s important to have a solid foundation in basic computer skills. This includes being comfortable with using a text editor, navigating the command line, and using version control systems like Git.

It’s also helpful to have a basic understanding of HTML and CSS, as these are the foundation of front-end development. HTML (HyperText Markup Language) is used to structure the content of a webpage, while CSS (Cascading Style Sheets) is used to style and design the webpage.

A basic understanding of JavaScript is also recommended, as it is an essential programming language used in front-end development. JavaScript allows developers to add interactivity and dynamic functionality to websites and applications.

Resources for learning

  • Online tutorials and courses (Great Video Channel)
  • Books and ebooks
  • Community forums and online groups
  • Practice projects

There are many excellent resources available for teaching yourself front-end development. Online tutorials and courses are a great way to get started, as they provide step-by-step instruction and often include interactive exercises and quizzes to test your understanding. Some popular platforms for online learning include Codecademy, Udemy, and Coursera.

Books and ebooks can also be valuable resources for learning front-end development. These provide in-depth explanations and examples and can be a great reference tool as you continue to learn and practice.

Another great way to learn front-end development is by joining a community forum or online group. These can be great places to ask for help, get feedback on your work, and connect with like-minded individuals.

Finally, practice is key to improving your skills and mastering front-end development. Consider working on small practice projects or contributing to open-source projects to get real-world experience and build your portfolio.

Set Goals

Setting clear and achievable goals is an important step in teaching yourself front-end development. Determine your learning objectives by considering what you hope to achieve through your self-study. Do you want to learn enough front-end development to build your own website or web application? Do you want to improve your skills in a specific area, such as responsive design or JavaScript? Knowing your goals will help you focus your learning and stay motivated.

Once you have determined your learning objectives, it’s time to create a plan to achieve your goals. Consider breaking your goals down into smaller, more manageable steps and setting deadlines for each step. This can help you stay on track and make progress toward your larger goals.

It can also be helpful to create a timeline for your self-study, outlining the specific resources and activities you will complete each week or month. This can help you stay organized and ensure that you are making consistent progress.

In addition, to setting learning goals, it’s also important to set personal goals for your front-end development journey. This could include setting aside dedicated time each week for learning, participating in online communities or forums, or working on practice projects. By setting personal goals and holding yourself accountable, you can increase your chances of success in teaching yourself front-end development.

Getting Started

Gathering the right resources is a crucial step in teaching yourself front-end development. There are many options available, from online tutorials and courses to books and ebooks, and it’s important to find materials that align with your learning style and goals.

When searching for learning materials, consider the following factors:

  • Reputation and reviews: Look for materials that have received positive reviews and have been recommended by other learners.
  • Depth and clarity: Choose materials that provide a thorough understanding of the subject matter and are written in a clear and easy-to-understand style.
  • Interactive elements: Consider materials that include interactive exercises or quizzes to test your understanding and help you retain what you’ve learned.

In addition to finding quality learning materials, it’s also important to choose a programming language and a development environment.

The most common programming language for front-end development is JavaScript, but there are also other options such as HTML, CSS, and others. Choose a language that aligns with your learning objectives and interests.

A development environment is a software application that provides a platform for writing and testing code. The most popular option today is Visual Studio Code.

Practice and iteration

  • Work on small practice projects
  • Seek feedback from others
  • Iterate and improve upon your work

Practice is key to mastering front-end development, and the best way to learn is by doing. Consider working on small practice projects to apply what you’ve learned and get real-world experience. This could include building a simple website or web application, or even just recreating an existing design.

Seeking feedback from others is also an important part of the learning process. Consider sharing your work with peers, joining online communities or forums, or even hiring a mentor to provide guidance and feedback.

As you work on practice projects and seek feedback, it’s important to iterate and improve upon your work. Don’t be afraid to make mistakes — they are a natural part of the learning process. By continuously seeking to improve and learn from your mistakes, you can accelerate your learning and become a proficient front-end developer.

Don’t be afraid of failing; rather be afraid of not trying
 — Book: Exploring Leadership

Coming Soon — Part 2 (Principals, Intermediate, Advanced)

How To: Teach Yourself Font End Development (Part 1) was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

Microservice Vs Monolith: The Current State Of Development

Have Things Changed, Where Are We Now

Photo by Tim van der Kuip on Unsplash

There has been an ongoing discussion for years on the best approach to software development. But where do we stand now? Things have rapidly changed and theories have had time to be proven.

What are we talking about?

Microservices and monolithic development. These two different approaches to software architecture that are used to build and deploy applications, have their own unique set of advantages and disadvantages, and the choice between the two often depends on the specific needs and goals of the project.


Microservices are a way of building and deploying applications as a set of small, independent services that communicate with each other through APIs. Each service is responsible for a specific aspect of the application, and they can be developed, tested, and deployed independently of each other. This modular approach to development allows for greater flexibility and scalability, as individual services can be easily added, removed, or modified without affecting the rest of the application.


  1. Faster development and deployment cycles: Because microservices are small, independent services that can be developed and deployed independently of each other, they allow for faster development and deployment cycles. Developers can work on different parts of the application concurrently, which can lead to quicker release schedules and the ability to deliver new features and updates more frequently.
  2. Greater flexibility and scalability: Microservices are highly flexible and scalable, as each service can be developed, tested, and deployed independently of the rest of the application. This allows for more granular control over resource allocation, and makes it easier to add, remove, or modify individual services as needed.
  3. Easier to debug and troubleshoot: Because each microservice has a narrow focus and is self-contained, it is easier to debug and troubleshoot any issues that may arise. This can save time and resources and improve the overall reliability of the application.
  4. Improved resilience: Microservices are designed to be highly resilient, as each service can operate independently of the others. This can help to reduce the impact of failures or downtime on the overall application, as other services can continue to operate as normal.
  5. Improved team collaboration: Microservices allow for better collaboration between different teams, as each team can focus on a specific aspect of the application. This can improve communication and coordination between teams, and help to ensure that each service is developed to the highest quality.

While these are all great pros, microservices can also be more complex to manage and maintain, as they require more infrastructure and coordination between different teams. They also can be more expensive to develop and operate depending on the skill level and comfort of the team, they can require more resources and infrastructure to support them.


On the other hand, monolithic development involves building a single, large application that includes all of the functionality needed for the application to run. Monolithic applications are typically built and deployed as a single unit, and any changes to the application require a full rebuild and redeployment.


  1. Ease of development: A monolithic architecture makes it easier for developers to understand the entire system and make changes to it. This is because all the components of the system are closely integrated and share the same codebase, making it easier to see how changes to one part of the system will affect the rest of the system.
  2. Ease of deployment: Because a monolithic application is a single, self-contained unit, it is relatively straightforward to deploy. This is in contrast to a microservices architecture, where multiple independent services must be deployed and managed separately.
  3. Better performance: A monolithic application can potentially have better performance than a microservices architecture, because it avoids the overhead of making multiple network requests between services.
  4. Easier to scale: Scaling a monolithic application is generally easier than scaling a microservices architecture. This is because all the components of the application are closely integrated, making it easier to add more resources to the entire system as needed.
  5. Better for small teams: A monolithic architecture can be a good choice for small teams or organizations, as it can be easier to manage and maintain than a more complex microservices architecture.

Monolithic applications can be more easier to scale than a microservicce architechture but still difficult to scale and modify overall, as any changes to the application require a full rebuild and redeployment. This can lead to slower development and deployment cycles, as well as longer downtime for the application when updates are being made.

Making A Decision

Ultimately, the choice between microservices and monolithic development depends on the specific needs and goals of the project. For projects that require fast development and deployment cycles, high scalability, and the ability to modify individual parts of the application independently, microservices may be the better choice. On the other hand, for projects that prioritize simplicity and ease of maintenance, monolithic development may be the better option.

When deciding which approach to use, it is important to carefully consider the specific requirements and goals of the project, as well as the resources and infrastructure that are available. By carefully weighing the pros and cons of each approach, it is possible to choose the best architecture for the project and ensure that it meets the needs of the users and stakeholders. So, it is very important to think deeply about the use cases and what you are trying to accomplish before choosing between Microservices and Monolithic development.

Things To Consider

  1. Team size and structure: A microservices architecture may be a good choice for larger teams with well-defined roles and responsibilities, as it allows each team to work independently on their own service. On the other hand, a monolithic architecture may be more suitable for smaller teams, as it allows all team members to work closely together on the same codebase.
  2. Size and complexity of the project: A monolithic architecture may be more suitable for smaller, less complex projects, as it can be easier to develop and maintain. A microservices architecture may be a better choice for larger, more complex projects, as it allows for a more modular, scalable design.
  3. Deployment requirements: The requirements for deploying the application should be taken into consideration when deciding between a microservices or monolithic architecture. A monolithic architecture may be easier to deploy, as it is a single, self-contained unit. A microservices architecture, on the other hand, may be more suitable for applications that need to be deployed in a distributed manner across multiple servers or environments.
  4. Performance and scalability: The performance and scalability needs of the application should be considered when deciding between a microservices or monolithic architecture. A monolithic architecture can potentially have better performance, as it avoids the overhead of making multiple network requests between services. However, a microservices architecture may be more scalable, as it allows for more modular design and easier horizontal scaling.
  5. Future maintenance and evolution: The long-term maintenance and evolution of the application should also be taken into consideration when deciding between a microservices or monolithic architecture. A microservices architecture may be more flexible and easier to maintain in the long term, as it allows for changes to be made to individual services without affecting the rest of the system. A monolithic architecture may be more difficult to modify and evolve over time, as changes to one part of the system can potentially affect the entire system.

There is no one size fits all solution, but with the right questions you can get close.

Microservice Vs Monolith: The Current State Of Development was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

When Culture Is More Than A Fad

Culture is more than just saying the word “Culture” a lot

If you polled the corporate community about initiatives and goals across 2021–2022 you will probably hear two very common themes, Diversity/Inclusion and Culture. The world has hi-lighted the lack of these in the modern corporate environment. How have corporations responded specifically to culture?


To help retain talent and unfortunately, sometimes to help employees overlook negative aspects of a company companies employ “Culture”.

When many companies say “culture” what do they mean? I have heard.

We want to be like Google

I’m not really sure what that means, most of the time the person has not worked at Google or event knows anyone there.

We want to build a cool environment where people are free to be themselves, have an open schedule, and really promote the company as a great place

These are some lofty goals, but how to they play out usually? In many cases they are only words. I have seen those goals play out as insane deadlines, worked weekends, additional pressure, planned “culture” activities that get cancelled.


Because in most cases, “culture” is used as a retention methodology, a means to keep people around. The concern around “culture” should stem from the care and concern of people not the concern for the bottom line. To have a successful “culture” at work people need to be held above the business.

We can illustrate it this way.

A family business is run differently than a non-family business. In a family business you are willing to put up with that 2nd cousin that slacks off or is not great at their job. Why? Because they are family. Instead of a performance review you support that cousin, educate and help them get better. You give them every opportunity to advance.

You care about the person more than the exact job they are doing.

Would a company ever take that approach?

Recently I made a major job change. I never really talked about it here but previously i was the Senior Director of Product Engineering at Comcast, I was responsible for the Strategy and Architecture of their e-commerce platform.

While i was being interviewed for my new role (which i will write more about that interesting process later) i heard something over and over. People are important. Culture is in our blood. I was excited to hear about their return to work policy, that it was geared towards the comfort of their employees. I liked that they covered more modern medical expenses that many companies don’t cover. The list went on and on.

I have to admit, what i heard was great, but i did feel like if i got the job it was only going to hit about 60%-70% of what i was told.

About a month ago I took the position of Senior Director of Software Engineering at Red Ventures and i have to admit i stand corrected. From day one you felt the difference. What made this different?

  • 2 week on boarding — To learn about the company and your environment before you actually start your job.
  • Mental Health Days — The company has given extra fridays off through the year for people to refresh themselves.
  • Openness — Through my first month i met many people at different levels. At the VP level and above i heard people admit to mistakes they made and ask for genuine support.
  • Politeness — It seems funny, but people respect each other so much that you can get into a conversation thread of just thank yous, back and forth.
  • Being Yourself — I listened to one of the best and funniest town hall meetings ever. Each presenter embraced who they are and were not trying to impersonate some corporate persona. Humor was allowed and encouraged.
  • Mental Health — People understood what it was like to learn a new domain, new rules and new people. I was frequently offered the opportunity to take time to refresh and gather myself.
  • Closeness — Within the second week i felt like i had know people for years and I knew that they were willing to support me.

I could go on and on, but i think this illustrates the point. The approach was different from the very beginning. This “Culture” came from the concern from the individual, the real person. Investment in people should be more important than investment in technology or anything else.

How did they drive this? Listen to their C.E.O and Founder.

I can confirm that there are places where people are still important and where you can still be yourself and succeed. Are you looking for that?

Come Join Us, You Won’t Regret It

Come work close to me and my teams

Software Engineer — Dev Tools

Senior Software Engineer, DevTools | Red Ventures

Staff Software Engineer

Staff Software Engineer - Healthline | Red Ventures

When Culture Is More Than A Fad was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

Best Vue.js Free Templates You Must Try Out for Web Development in 2021

When it comes to creating a single-page application or a user interface, Vue.js is the framework that comes into every developers’ head. Vue.js is one of the best open-source JavaScript frameworks that are available in the market. It ranks seven in the list of most used web app development frameworks by 17.3%. Vue.js offers many free templates that the developers can use to write JSX render functions. In this blog, we will go through some of these templates that a Vue.js developer can try in 2021.

Top 12 Free Vue.js Templates for Web Development in 2021

1. Star Admin Vue

Star Admin Vue is a free template of Vue.js. This template is rich in components and features. Stat Admin Vue has a massive collection of icons, elements, and buttons. It is a template that guarantees that the Vue.js development companies can provide the best user experience for both desktop and mobile devices.

Besides, if there is a need to customize the web app development project, this template is a perfect choice. It makes everything much easier and simpler.

2. Coreui

Coreui is a Vue.js admin template that enables creating, customizing, and simplifies the web app development process. It also makes it easy to learn Vue.js admin templates and Vue.js UI components. It is an open-source bootstrap and Vue admin template. This template is entirely based on bootstrap version 4. Coreui is known as one of the best templates from the free Vue.js admin template. This template enables the Vue.js development services providers to reduce the time to market the product.

3. Vue-Element-Admin

Vue-element-admin is one of the most used front-end management background integration templates. It has around 63.8k GitHub stars. This template uses UI toolkit elements and is based on Vue. It comes under the Vue.js admin template and is based on a built-in i18n solution, the newest and best development stack of Vue. With Vue-element-admin, Vue.js developers can create amazing features for enterprise applications. Besides, it also enables the creation of large and complex single-page apps.

4. Arbano

Arbano is not an entirely free template but is a highly-qualitative one. It is built with the use of Vue.js and Bootstrap 4. Arbano enables the developers to provide a great design and clean code for any type of business solution. Creating a project with this template is an easy and quick task. It has a fully responsive layout that supports the display of any size.

Besides, it has more than 30 custom elements like charts, progress bar, forms, and maps. Arbano makes it easy for the Vue.js developers to customize the applications in a way that the clients want them.

5. Vuexy

Vuexy is an advanced Vue.js admin template that is highly responsive, well-structured, and clean. It is a template that is laced with HTML, React, PHP, and Vue.js. Vuexy is a highly recommended template by the top Vue.js development companies as it is a user-friendly template and creates applications at a faster pace. Besides, Vuexy is well-known because of its UI/UX tools which provide an amazing experience. It is also an RTL ready template.

In addition to this, Vuexy offers tools like floating nav bar, bookmarks, dark & semi-dark layout options, charts, and labels.

6. Sing App

Sing App is nothing but a Vue.js dashboard which is totally free and is built using Bootstrap 4 and Vue.js 2.5.2. As this dashboard is created using the newest development tech stack in the market, the Vue.js developers will have to learn everything about it by exploring it.

When the developer wants to create a CRM platform, CMS, eCommerce platform, or a SASS-based platform for the clients, he can use the Sing App template. It comes with ready to use components which makes it one of the easiest templates to work with.

7. VueJs Laravel Admin Template

As the name suggests, It is a Laravel admin template that comes with the Vue.js admin template. It has various color schemes. VueJs Laravel Admin Template is developed using powerful components like Vue-router, Vuex, and Axios. The developers can use Axios when they want to have a weather widget in an app or they want different charts.

With this template, the Vue.js development company can create unique single-page applications.

8. Clear Admin Template

Clear is an admin template that is free to use. It offers unique and highly-efficient app development features. The app development team can provide great UI designs using the Clear template. Besides, it comes with excellent components, layout-across dashboard, and widgets. The Clear admin template makes the applications look simple as well as stylish with the different color schemes.

9. Pragmatic

Pragmatic is again a free Vue.js admin template that is used by Vue.js developers to create distinct applications. It gives a boost to the app development process and enables the developers to learn some of the major aspects of Vue.js technology.

To work with this template, the developers will have to install Node.js and @vue/cli in their systems. These are required for the app development process.

10. Basix Admin

Basix Admin is a creation of Vue.js, Bootstrap, and JavaScript technology. The developers can find all the necessary Vue.js components in this template. These components can create any type of Admin Panel. Besides this, Basix Admin is a template that extends the components of Bootstrap 4 and also enables the development of custom projects and CRM solutions.

11. CoPilot

CoPilot is a Vue.js template that is built on Bootstrap 3. It is an easy to use and highly customizable template. CoPilot offers all the responsive elements that a developer would need. Besides, it offers different charts, stats widgets, and graphics for displaying your projects demand. One can also create a task list using this template.

12. Adminify

Adminify is a Vue.js admin template that is fully responsive in nature and offers pre-integrated features for the admin panel. It is created using Bootstrap 4. It aims at providing a hassle-free app development experience to the developers. Besides, it offers features that make it easy to create the backend panel.


Here we went through the top 12 Vue.js free templates that one can try in the year 2021 for web app development. If you are a Vue.js developer, you can opt for any of these templates for your next project. And if you’re a business owner who wants an excellent web app for your organization, hire a Vue.js developer who can use any of these templates for your project.

More useful resource on VueJS

Why Build Native Apps with VueJS Framework?

A to Z About the New Progressive JavaScript Framework for Development — VueJS

Vue is an Amazing Framework for 2020. Why?

Best Vue.js Free Templates You Must Try Out for Web Development in 2021 was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

Should you be buying or selling?

Bitcoin and Cryptocurrency markets are at an all time high, the US dollars printing machine is going brrrrrr, and the economy is on the brink of disaster.

Buy and Hodl is more like, buy and hope!

During these uncertain times I wouldn’t encourage anyone to buy hand-over-fist. Likewise, I wouldn’t suggest they sell out of their core positions.

The smartest move right now for most investors is to accumulate on all dips. I’m personally adding to each of my core positions, on every leg down. There is one caveat to this method. The rule of adding on the way down only applies to SOLID crypto projects. These are projects that are heavily researched, and bought with 100% conviction.

Accumulate right now, are you mad?

everything is topped out right now, why would I add more?

Remember, in the wild wild west of cryptocurrency nothing is as it seems. We’re dealing with an asset that is barely understood by even the experts. This means crypto cannot currently be analyzed in a meaningful way. Unlike stocks, a coin’s price is solely based on speculation and hope, so things such as charting and price prediction are of very little value. This also makes a coin’s so-called bottom elusive, and since the bottom is unknowable, one can’t assume to know when to buy. By adding on each leg down, you’re giving yourself a chance to buy the actual bottom. It also allows you to develop your position, while building true conviction in your purchase.

“But how do I know the right time to add to my position”?

Is it too early to accumulate you may ask? First of all, this thought of “too early” asserts that you know the present, but requires you know the future. Since the future is un-knowable, my answer to your question would be — It’s never too early, or too late, to accumulate coins of a good project! When you invest, you have to invest in the project, the value of the project and the conviction of future performance. Never invest in the price!

“So are we at a top”?

As previously discussed, the term “top” is completely relative and can’t be known. With that being said, in the short term one scenario we could see play out is a gradual drifting down. So far, shorts are not being encouraged to cover, nor longs to buy. A gradual decline, if it happens, could typically retrace between 10–30% from the top, which would put $BTC around $27K. In my opinion this would only occur if we were to get more head winds, such as Janet Yellen’s Bitcoin rant.

What about specific coins?

The majority of altcoins have already completed a significant phase from bottom to top. Some of them have broken to new highs, while most look to be headed that way. Weekly charts show the completion of what I call the commodity phase, although coins such as $BTC, $ETH, and $LINK appear to have no clear signals in place.

“Greed is good” — Gordon Gekko

Back in 2017, we saw traders from all walks of life FOMOing into everything under the sun, mostly because they were afraid to miss the move. Shortly after we saw many of them jumping off a cliff, and they couldn’t get out fast enough.

This time around things are much different. Any weak-handed selling is immediately bought up by larger players who are loaded with capital. In part, this has kept Bitcoin from breaking down through current support levels, with any conviction. At the same time, buying the downside on market order has been stronger than ever. I’ve noticed that this contra trend buying had pushed positive flow to a 1 month high. Surreptitious buying is corroborated by net flow of the neutral tick, which declines as selling hits a firm bid underneath.

It should be emphasized that price in these markets can be easily swayed by superficial sentiment, held by the mass of traders who dominate the action. Even more so, this sentiment affects the price at the margin and induces the non-convicted public to move in its direction. Because of what I call, “the lemming effect”, market price can sometimes decline even while stronger buying outweighs weaker selling. But to those who have conviction about the prospects under what they’re buying, the downside price bias provides opportunity. This is why you accumulate!

Where is the market currently at?

Where does this leave the market at present? The bigger players are waiting for the other shoe to drop, so at the moment they’re not playing. Smart money is waiting patiently for any superficial bad news that the worldwide myth makers can roll into end-of-times. This in turn will induce the game players to sell into their own booked orders underneath, and to trick the public amateur traders to try to beat the market by selling short or selling out completely. Problem with that approach is there is still too much positivity.

Case in point why you can’t play their games. The pro’s will have you for lunch. Therefore you do well not to focus on short term price movement. Keep your eyes fixed on project fundamentals, while propping up your core positions.

In the end cryptocurrency will thrive!

In the end, whether the markets move up or down you must drown out the noise, there’s lots of it! Hold on tight to the coins you believe in, and use these buying opportunities to own more of them.

I think Gordon Gekko said it best, “The new law of evolution in corporate America seems to be ‘survival of the unfittest’….. Through wars, depressions, inflations and deterioration of paper money, trees have always kept their value. Forests are perishable, forest rights are as important as human rights to this planet, and all the illusory Maginot lines, scorched earth tactics, proxy fights, poison pills, etc….. the bottom line, ladies and gentlemen, as you very well know, is the only way to stay strong is to create value, that’s why you buy stock, to have it go up. If there’s any other reason, I’ve never heard it.”

Should you be buying or selling? was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

Bitcoin & Cryptocurrency are turning old school financial experts into fossilized dinosaurs!

Bitcoin & Cryptocurrency are turning old-school financial experts into fossilized dinosaurs!

If it looks like a duck, swims like a duck, and quacks like a duck, it’s probably a duck!

Every good story has a hero and a villain! Luke Skywalker had Darth Vader, Batman had the joker, and Clarice Starling had Hannibal Lecter.

So, too, Bitcoin has these guys…..

Dinosaurs like this will go down in infamy!

“Avoid Bitcoin Like the Plague”, We’ll Talk When It’s $100: — Jack Bogle -Vanguard Founder

Jack Bogle

Bogle is just one of many financial experts that have slowly become dinosaurs in this modern age of finance. It seems harsh, I know, but his time as a financial maven have come to pass. Even when dealing in the world of stock equities, Bogle has recently shown himself to be less than savvy. Amazingly, for all this pedigree, his confusion about Bitcoin shows he has little understanding of how money actually works. His idea to levy transactional tax was mind BOGLING. Dear Mr. Bogle, it is axiomatic that liquidity, the confidence that one can get the expressed price at any quantity, is mostly a function of the order density and nothing more. After all, if you artificially reduce the amount of transactions, Vanguard won’t be able to get rid of all those bad trades it holds en mass.

and who could forget this guy?

“Bitcoin is a fraud! It’s worse than tulip bulbs. It won’t end well. Someone is going to get killed.” — Jamie Dimon — J.P. Morgan

Jamie Dimon

Recently, Dimon has shown himself to be just another clueless WS bum. While we’ve had over a decade of history proving Bitcoin’s a legitimate asset, even a store of value, Dimon continues to warn us that Bitcoin is a fraud!

That’s pretty ironic since he’s persuaded millions to steer clear of one of the most profitable investments of the 21st century. He argues that Bitcoin has no underlying rate of return when in reality, nothing has a guaranteed underlying value. Not even stocks, or bonds which he happily markets to his customers on a daily basis. The whole financial system is a house of cards and he knows it. If Jamie could only understand that one has to focus on utility, scarcity, and need, for this is where real value lies in any given asset.

Last but not least!

Gold Bug Peter Schiff Says Bitcoin’s Recent Rise Is Due to Whale Manipulation, Calls BTC ‘Pyramid Scheme’. — Peter Schiff

Peter Schiff

What can I say that already hasn’t been said about Bitcoins biggest arch-villain Peter Schiff? This well known gold bug had been saying Bitcoin will go to zero for the last 10 years. Take a look at some of his most recent Twitter statements and let me know what you think.

He’s a true genius when it comes to his Bitcoin calls! Bitcoin has been, by far, the best performing asset every year for the past 10 years. Meanwhile his precious gold has less than doubled within that same timeframe. Check out below and see how some of the most popular assets have performed over the past decade when compared to Bitcoin.

The so called experts may lie, but the numbers don’t!

Bogle, Dimon and Schiff may have had their day, but now is a new era, the era of Bitcoin . Moving in on all-time highs once again, Bitcoin has outperformed every single asset over the past ten years, and this is only the tip of the iceberg!

It’s your choice, will you advance into the digital age by embracing the future of money or rather ride home on your dinosaur, and go hide inside your cave!

Bitcoin & Cryptocurrency are turning old school financial experts into fossilized dinosaurs! was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.

The Incubation Team, Your Key To Developer Success?

Bringing In New Developers? Try The Incubation Team Methodology

Develop New Talent and Retain Talent More Effectively

Photo by Austin Distel on Unsplash

This is a more in-depth explanation of what I touched on in this video.

What is an Incubation Team?

The concept is simple. A small team you use to incubate new talent and groom them for the larger organization. This team does not always act as a team, think of it as your reserve bench. You can pull people to join and support other teams for a sprint or a whole project. After some time, they move to support another group or team.

You want to keep this team small, usually less than 6 people. This allows the manager to focus on what each team member needs to succeed. Bi-weekly 1 on 1 meetings help keep your finger on the pulse of each team member. Your goal is to develop them for the larger organization. The extra benefit is seeing what their goals are and how we can help them succeed.

To understand the full benefit we first need to understand the problem.

Imagine this…

You get hired into a new company. You have passed all the interviews and technology riddles. You solved whiteboard problems and proved yourself as a capable engineer. Does any of this make day 1, week 1, or even year 1 easier? What if you are on a 90-day probation, how will you prove your worth in 90 days?

This situation will cause anxiety and sleepless nights. Your new teammates will be trying to understand too much at one time. A new business, new teams, and architectures. I have seen burnout in as little as 60 days trying to make a good impression. Why would we want to burden or burn out our new talent? Even if we set reasonable expectations, there is unseen pressure to perform in today’s environment.

Even within a large company, moving from one place to another causes the same issues. Say you spent 4 years in the world of user data (authentication, profiles, PII). You then move to eCommerce and sales, what a difference even one floor apart.

How does an incubation team approach help?

Imagine the different approaches to learning how to swim. First by being thrown into the deep end or second by starting in the shallows with a teacher. (I was thrown in the deep, and it still haunts me apparently)

This team concept allows new team members to learn at an easier pace and actually digest what is going on. This includes:

  • Architectures
  • CI/CD
  • The new team language (the acronyms we all love to make up)
  • Dynamics of the teams

This also gives a great benefit to the managers. Say you hire for a role in a team like Engineer 4 specializing in GraphQL. What if after time either you or the engineer decide that’s not the best fit? Would they be happier on another team? Those changes are more difficult midstream or sprint. What if you could place people in the best spot for everyone as soon as they settle in and feel comfortable.

2 Scenarios For Success

The Specialized Hire

Photo by KOBU Agency on Unsplash

When you find a specialized hire you are trying to fill a role. Usually, what happens here is that you throw that new talent right into the deep end expecting them to perform. You hired them for a reason so they are talented in one of these areas. Think about all the excess that you’ve given them that they were not prepared for. Team dynamics, new technologies, or architectural differences for instance.

In the incubation team, you still have the ability to use them for the role that you hired them for. The difference though is they also get the freedom to work at a different pace getting to learn. They learn the teams, technologies, and help out another team with an easier issue first. They can start to see how people interact, where the underlying technology issues are.

There is no set time frame for how long a member needs to be part of the incubation team. At any time when that person feels comfortable, you can move them to any team that you want. The main key here is the lack of pressure that people would normally face entering into a new organization with no background whatsoever.

The Jr Talent

Photo by Anna Sjöblom on Unsplash

If you’re like me you love hiring junior talent. I would define that as those coming in fresh out of school, or those within their first few years in technology. We see the amazing talent coming out of this space. Junior talent is hungry to prove themselves and they are born in a newer technology space. They are missing many of the bad habits we have developed.

The incubation team concept allows this junior talent to be able to develop within your space for whatever period you would like them to. Think of it as the nest where you’re going to help them understand your company your group or the goals of the teams. In some cases, you might want to keep them in that team and grow them through one or two promotions.

In this team, your junior talent gets the hands-on focus they need. Other team members and managers get to see how these ones operate and start to develop a desire to have them on their team. You easily see what their core strengths are. You are able to fit them into a part of the organization that will bring them the most amount of joy as well as gets the best results.

Do Incubation Teams Work?

Yes, I have personally run my team like this for a few years now. Our larger organization can be very confusing with a mix of old and new technology. I would fear throwing anyone right into the middle of it and expect them to perform.

In my team, we have graduated a few people out easily. In most cases, those individuals didn’t leave as just engineers but left to manage teams of their own, and some left with great promotions.

The biggest win was that they were all able to start in a new organization with no issues on day one. They were confident, they had ideas, they enabled change, they were respected by new team members already. They were happy.

Work is a marathon, not a sprint. There is a lot to be said about putting the time into your talent and handling things in a way that makes them happy. You will get better results and keep better talent.


Develop a small team that can help other teams. Use this internal team to nurture your developers, find out what makes them tick, and help them to have the best work-life possible. In doing so you will reap the rewards of having properly placed team members. Team leaders that can are developed, and people that truly understand how the company operates.

This concept allows managers the joy of having happy teams. Teammates that don’t need constant direction and happy employees who feel like they’re not overwhelmed. They know exactly what they should be doing and how to do it.

The Incubation Team, Your Key To Developer Success? was originally published in A Technologists POV on Medium, where people are continuing the conversation by highlighting and responding to this story.