<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lax Mariappan</title>
    <description>The latest articles on DEV Community by Lax Mariappan (@laxmariappan).</description>
    <link>https://dev.to/laxmariappan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F235558%2F36fe2ddf-596a-4e1a-81b3-1d8c28576283.png</url>
      <title>DEV Community: Lax Mariappan</title>
      <link>https://dev.to/laxmariappan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laxmariappan"/>
    <language>en</language>
    <item>
      <title>Authentication: You don't have to reinvent the wheel</title>
      <dc:creator>Lax Mariappan</dc:creator>
      <pubDate>Sat, 30 Apr 2022 16:02:57 +0000</pubDate>
      <link>https://dev.to/laxmariappan/authentication-you-dont-have-to-reinvent-the-wheel-2p99</link>
      <guid>https://dev.to/laxmariappan/authentication-you-dont-have-to-reinvent-the-wheel-2p99</guid>
      <description>&lt;p&gt;Every application with user roles requires an authentication feature. Whether it is the good old username with a password or passwordless login, creating and maintaining it takes some time and effort.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring Your Own Authentication
&lt;/h2&gt;

&lt;p&gt;If you have enough time and budget to build an authentication and authorization process, then go for it.&lt;/p&gt;

&lt;p&gt;The problem with this approach is that you cannot scale or it can consume your time and take extra effort for every project.&lt;/p&gt;

&lt;p&gt;Back in 2010, at my first job, we were creating custom CMS using PHP and MySQL.&lt;/p&gt;

&lt;p&gt;Though we had version control, every developer on the agency had their own variation. It took at least a few hours to alter database schema, user meta, etc, and refactor the code for each and every project.&lt;/p&gt;

&lt;p&gt;I secretly wished to use a unified solution for this. This also poses security threats as well, some old versions of the software needed some love which they deserved. &lt;/p&gt;

&lt;p&gt;On the whole, it was a painful developer experience. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Think about spending more time on the authentication itself, instead of building the other features of the application!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bringing your own authentication is not a feasible and best way to develop apps in my opinion. Would love to hear your thoughts on the comments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Customizing Existing Authentication
&lt;/h2&gt;

&lt;p&gt;With the rise of open-source CMS, the time to build an app got reduced. Instead, we all focused on the customization.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;There is no good or bad CMS, as long as it comes with the features you need and it allows you to customize.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Over the years, I had the chance to work with WordPress, Drupal, Magento, and PrestaShop-based projects.&lt;/p&gt;

&lt;p&gt;For some projects just adding the client’s logo and colors to the login page is enough, others required adding user roles and capabilities etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using an Authentication Provider
&lt;/h2&gt;

&lt;p&gt;Gone are the days with monolithic CMS, we are now using microservices and headless apps.&lt;/p&gt;

&lt;p&gt;Instead of building or customizing an existing one, we can now plug and play authentication.&lt;/p&gt;

&lt;p&gt;This also removes the security related issues as they will be taken care of by the auth provider.&lt;/p&gt;

&lt;p&gt;Most of the auth providers in the market come with extendable features.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;After trying few auth providers, I have started using Auth0 for both hobby and client projects too.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Authentication is an important part of any application, but it should not take much time and efforts. Don’t reinvent it, find a solution that suits your needs and allows you to customize.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://auth0.com/signup?utm_source=ambassador&amp;amp;utm_campaign=devrel&amp;amp;utm_medium=link_placement"&gt;Auth0&lt;/a&gt; comes with generous user limit of 7K monthly active users for its free tier, which is more than enough for a start.&lt;/p&gt;

&lt;p&gt;I also like the ease of usage, developer experience and active user community.&lt;/p&gt;

&lt;p&gt;Right from vanilla javascript to popular frameworks, Auth0 team and the community has &lt;a href="https://github.com/auth0"&gt;SDKs with detailed documentation&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Enough of recommendation, check out other auth providers too and chose the right one for you.&lt;/p&gt;

&lt;p&gt;Happy coding!&lt;/p&gt;

</description>
      <category>security</category>
      <category>api</category>
      <category>authentication</category>
    </item>
    <item>
      <title>How I overcame my workaholism (with these 6 tips)</title>
      <dc:creator>Lax Mariappan</dc:creator>
      <pubDate>Sun, 26 Jan 2020 16:16:47 +0000</pubDate>
      <link>https://dev.to/laxmariappan/how-i-overcame-my-workaholism-with-these-6-tips-2pmm</link>
      <guid>https://dev.to/laxmariappan/how-i-overcame-my-workaholism-with-these-6-tips-2pmm</guid>
      <description>&lt;p&gt;If you are proud to say i am workaholic then you should read this short post. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TL;DR: Set priorities, learn to say no and use a planner. Be productive, not busy, you should give importance to other areas of life too!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A developer’s day is unpredictable. You might encounter strange issues even StackOverflow and Google search can’t answer.&lt;/p&gt;

&lt;p&gt;You might have to spend &lt;strong&gt;extra hours&lt;/strong&gt; to learn something for your work or to make your code work.&lt;/p&gt;

&lt;p&gt;In the end, you will be missing simple joys of life for the sake of work. &lt;/p&gt;

&lt;p&gt;Follow these tips from my experience to get time for yourself, your friends and your family. You deserve it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Start scheduling your day
&lt;/h2&gt;

&lt;p&gt;I invested in a time management class to combat my procrastination. I started using a calendar to schedule my daily activities. I was shocked to see how many minutes or even hours wasted on low priority or less important stuff.&lt;/p&gt;

&lt;p&gt;Break your schedule based on the tasks and allocate hours to each of them. Google Calendar is more than enough, to begin with. If you need more time to finish a task then move the less important task to the next day.&lt;/p&gt;

&lt;p&gt;Your project management tools will help you track the progress of your projects but not the time spent on cat videos and memes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn to say NO
&lt;/h2&gt;

&lt;p&gt;Say &lt;strong&gt;no&lt;/strong&gt; when your plate is full. Simple&lt;/p&gt;

&lt;p&gt;You don’t have to prove your programming capabilities by working on many projects at a time.&lt;/p&gt;

&lt;p&gt;Whether you are a freelancer or working for an agency, too many tasks at a period lead to the &lt;strong&gt;mediocre output&lt;/strong&gt;. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make sure that you spend time building a good portfolio. Every no count.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Be organized
&lt;/h2&gt;

&lt;p&gt;I can hear you. Your table is messy but not your code. &lt;/p&gt;

&lt;p&gt;Start with organizing the things around you. Your files, workstation, room, etc. &lt;/p&gt;

&lt;p&gt;This helps you to &lt;strong&gt;be clutter-free.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;You can &lt;strong&gt;avoid wasting time&lt;/strong&gt; to search for something by being organized. &lt;/p&gt;

&lt;p&gt;Imagine if you don’t use a password manager and you are searching for login credentials for every time! &lt;/p&gt;

&lt;p&gt;This applies to write comments/hints to code and documentation too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Form new habits
&lt;/h2&gt;

&lt;p&gt;Habits can make you or break you. You can’t change a habit, simply assign a new value to that variable. Replace your time-stealing habits with new ones.&lt;/p&gt;

&lt;p&gt;I sit for long hours like a backup file that never moved from its location and occupies the space. I started using the &lt;strong&gt;Pomodoro technique&lt;/strong&gt; that allowed me to move around and be more healthy. Some developers were not a fan of this technique.&lt;/p&gt;

&lt;p&gt;Find the habits that make you work for unwanted long hours. Use a time tracking app like &lt;strong&gt;RescueTime&lt;/strong&gt; to track your activities. &lt;/p&gt;

&lt;h2&gt;
  
  
  Stay focused
&lt;/h2&gt;

&lt;p&gt;I have the habit of checking my mail inbox frequently. Emails get my attention faster than my cats do. I end up responding to them quickly which keeps me to be distracted.&lt;/p&gt;

&lt;p&gt;Finish the task then go to the next. One of my favorite authors of our time Benjamin P Hardy wrote that &lt;strong&gt;“Are you moving one step in 20 directions or 20 steps in one direction?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ueRq9IsV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t2sdj51qvfgztyfndlio.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ueRq9IsV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/t2sdj51qvfgztyfndlio.jpg" alt="Alt Text" width="880" height="587"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Photo by Александар Цветановић from Pexels&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You can finish your tasks in time if you are focused. Don’t allow the notifications, new blog ideas, etc distract you.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Avoid multitasking and focus on finishing one task at a time.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Priority list
&lt;/h2&gt;

&lt;p&gt;Do you like todo lists? A todo list allows you to be aware of your tasks. But you should set &lt;strong&gt;priorities&lt;/strong&gt;. Sort the items based on priorities. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Arrays start with zero, time management starts with priorities. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In this approach, you will finish the items in the order of priorities that saves you more time. The least important tasks can be moved to the next day and some tasks can be trashed with a warning &lt;strong&gt;“are you sure to delete this item?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your personal and professional growth depends on your priorities. &lt;/p&gt;

&lt;p&gt;These steps helped me to find time for myself. I go for a walk with a pawsome friend, working on a side-project, learning a new language and documenting my journey.&lt;/p&gt;

&lt;p&gt;You might be working overtime because the project lacks enough developers or the estimated time for the project is wrong or the time is being wasted on less priority stuff. Figure out what needs to be done and take control over it.&lt;/p&gt;

&lt;p&gt;Be productive, not busy. Set boundaries for your work and give importance to other areas of life too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay curious and stay focused&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Note: I still spend more than 10 hours for work and finding ways to improve. &lt;/p&gt;

&lt;p&gt;P.S Did you notice that I mentioned short post and TL;DR in the consecutive lines ;-)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Further reading&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://benjaminhardy.com/anything-is-possible-if-you-pay-the-price/"&gt;Anything Is Possible If You Pay The Price&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.rescuetime.com/"&gt;RescueTime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jamesclear.com/how-to-break-a-bad-habit"&gt;How to Break a Bad Habit and Replace It With a Good One&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.briantracy.com/blog/time-management/organizational-skills-to-do-list-prioritize-tasks/"&gt;How To Prioritize Tasks With A To-Do List&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>productivity</category>
      <category>timemanagement</category>
      <category>selfhelp</category>
      <category>personalgrowth</category>
    </item>
    <item>
      <title>When should you choose Microservices instead of a monolithic CMS?</title>
      <dc:creator>Lax Mariappan</dc:creator>
      <pubDate>Sun, 05 Jan 2020 21:30:44 +0000</pubDate>
      <link>https://dev.to/laxmariappan/when-should-you-choose-microservices-instead-of-a-monolithic-cms-596g</link>
      <guid>https://dev.to/laxmariappan/when-should-you-choose-microservices-instead-of-a-monolithic-cms-596g</guid>
      <description></description>
      <category>discuss</category>
      <category>microservices</category>
    </item>
    <item>
      <title>Does WordPress database architecture need improvement?</title>
      <dc:creator>Lax Mariappan</dc:creator>
      <pubDate>Sun, 15 Dec 2019 12:09:59 +0000</pubDate>
      <link>https://dev.to/laxmariappan/does-wordpress-database-architecture-need-improvement-1nf9</link>
      <guid>https://dev.to/laxmariappan/does-wordpress-database-architecture-need-improvement-1nf9</guid>
      <description>&lt;p&gt;WordPress uses the meta_key, meta_value to store values of an entry. &lt;/p&gt;

&lt;p&gt;You have to run multiple subqueries to get filter records based on metadata values.&lt;/p&gt;

&lt;p&gt;Anyone else felt that the way WordPress stores post metadata could be improved? &lt;/p&gt;

</description>
      <category>discuss</category>
      <category>wordpress</category>
      <category>sql</category>
      <category>database</category>
    </item>
  </channel>
</rss>
