Skip to main content

Posts

Showing posts from 2020

Deals You Can't Miss

1 Year Subscription

12 Tips To Interviewing For Identifying Good Talent

Photo by Steve Halama on Unsplash Interviewing is a job that requires preparation and coordination among various stakeholders. Unfortunately, though in many places that I have been to as part of my Consulting gigs, I have witnessed first-hand on the very many things that go wrong in the preparation and conduct of interviews. In this post, we shall focus on the things to do before, during and after the conduct of an interview to aid better decision making in identifying talent. Prepare. Know what you want. Do know the expectations of the role you are hiring for. Prepare Again. A candidate's CV is a window to his world. Fish for things you want from the CV against the job expectation. You may or may not have clarity at this point in time. But you mind keeps working behind the scenes, and this is important. Prepare Yet Again. Unless you are a recruiter yourself, you wouldn't be the first person to interview th

Course Review : Coding for A/B testing: Run more AB tests, find more winners

  Course : Coding for A/B testing: Run more AB tests, find more winners by Ruben De Boer Source : Udemy   My Rating : 3/5 My Review :  First half is pure basics on HTML, CSS and Javascript, which is not the subject of this course title. The real subject of the course is in the 2nd half and it run's through examples fast, without any introduction of the AB Testing tool. I would recommend the course be re-structured to explain AB Testing taking 1 or 2 tools as an example. It would be much better that way. P.S: I took this course on the Udemy business account and have shared this feedback in there as well.

Ten Commandments of Egoless Programming

We are nothing but the values we carry. All through my life thus far, I tried to influence people around me with the virtues I value. Thanks to some good reading habits I had inculcated, and the fortune of being in good community of peers and mentors alike, I managed to have read some real good books. This post is about the 10 commands of egoless programming in Weinberg's book. I shall explain the commandments based on my experience here. So very many decades ago, Gerald M. Weinberg authored  The Psychology of Computer Programming . In it, he listed The Ten Commandments of  Egoless Programming , which remains relevant even today for us as not just programmers but as team-members. Weinberg is regarded as a pioneer in taking a people-centric approach to computing, and his work endures as a good guide to intelligence, skill, teamwork, and problem-solving power of a developer. When they appear to inspire and instruct, we find that they can apply to just about every business area, and e

Tensegrity In Microservices Architecture

Tensegrity or Tensional Integrity is also known in layman words as Floating Compression . In engineering field, it is the science of building a structure of isolated "compressed components" like bars that connected by "pre-stressed tensioned loose components" like cables or tendons. Any disturbance to a component in the assembly not just alters but brings down the entire structure. Below is a picture of one such engineering model. Take a deep breadth and try to identify the connectors that help maintain the beautiful engineering model that you are witnessing. Think of a table engineered by applying Tensegrity principles, like the one above. You may love looking at those crafty products but when it comes to buying it for your daily use, you think of  durability, don't you? Tensegrity in software product/services is taboo, for it is not a deliberate engineering but a result of neglect or poor engineering. It's manifestation crops up so often in today's b

Book Review: Red Yellow Green: What Color is Your Money?

What color is your money? by Noah Gift @ Lean Pub The book titled, "Red Yellow Green: What Color is Your Money? The survival manual for gig workers and consultants" by Noah Gift is a good and engaging read. I personally have experienced and was diligent enough to escape many a potential predators. Actually, I have come across those predators that are super sweet in talk, popular (don't know if this is a paid for PR thing that is so common these days) for his other works than what he is doing (for example if he is a founder of a tech consulting company, he would have been popular in authoring a book or two), etc. Consulting is definitely a high-risk, high-reward endeavor. It is the same with doing a co-founding venture in a start-up. I would say this is THE MOST  IMPORTANT thing to watch out for during the course of your engagement. The author is in fact polite but firm in pointing this one out, which is my favorite of all. I wis

My Experience With Expo For React Native

Note: I'm assuming Managed Workflow with Expo to leverage the max out of their services. Expo : The Good + Great for boot-strapping react-native development for cross-platform mobile app development. + Possibly a good choice for PoCs to quickly showcase a concept. + We get to see the console logs of app in Expo's browser or terminal. This one is a big plus! + The documentation is good but could be better. + Expo's snack is the code playground in the web browser that will come handy when you want to try out its components from the web-browser and see how it appears in android/ios/browser, before you use it in your project.  + Leverage Expo platform for sharing the app in development to Business to get their feedback and adopt accordingly. Agile isn't it? Expo : The Bad - Limited choice of reusable React Components that has dependency on native components. Expo is getting better by the day in this, though! - Their free build service is time consum

When your Business says, "Tech ain't Rocket Science"

As a Tech-Leader, how do you respond when business smirks and dismisses your challenges in tech saying, "it ain't rocket science"? This post is my attempt of story-telling the complexity in Tech to the ruthless and impatient Business that dismisses it as just being CRUD and is no rocket-science.  I am a tech-entrepreneur who has made bets on tech, business ideas and its intersection. I have failed for various reasons which is out of scope for this post. Now that introduction is to tell the Business that I understand where their frustration comes from. So I think it is important that they believe in Tech Leadership and its challenges. Not always can this leadership be right. It will go wrong in its bets from time to time. But, hell Business too gets things wrong from time to time, don't you? We should learn to see failure as not the end of a road but only a bend, albeit a hairpin bend at times that if not given due diligence, it can be catastrophic. So what is so crazy

Dev Setup of Expo for React Native Development

When you do React Native development using Expo framework there are three ways you can see your development works on your Android device or emulators, depending on how you connect to the Expo development server.  Note : The one commonality is that you use an Expo-Client on your Android/ios device/emulator to talk to the development server. Note : The pictures below consider WSL2 on Windows 10 as development environment where Expo server is running. This is purely for representational purpose, and the concepts apply irrespective of your dev env where Expo server is running. 1. Connect using Localhost There is no iOS simulator on Windows. That said, if your dev env is Mac, you could have Expo server running along side ios and Android emulators on the same machine. When you have both the server and the client running on the same host, the best approach to connect them is through localhost. 2. Connect using LAN If you hate emulators/simulators like I do and wish to use the device for de

Connecting to Expo Dev Server in WSL 2 over LAN

This post drafts things I did to connect my Android device to Expo dev server running in WSL 2 on Windows 10 over LAN connection (in my case using Wi-Fi). The set-up looks like below: Note: Expo-Client is installed on my android device. Note: Expo-CLI npm version used is 3.27.14 Assumption: IPv4 address is used over IPv4. When you run ` ip address ` in your WSL 2 terminal, you will your ip-address of your VM as something like   172.x.x.x . When you check the ip address of your Windows 10 host, by running ` Get-NetIPConfiguration ` in your PowerShell terminal you will find your host ip to be something like 192.168.x.x . When you connect your Android device to the same LAN over Wi-Fi, your ip address would be similar (something like 192.168.x.x). The fact that WSL 2 isn't sharing the same ip address as its host is an issue to be resolved. This needs to be fixed as first thing, because otherwise how do we even reach the server running in WSL over LAN? The easy fix to this is to pre

Why Entrepreneurship Is Less In Asia?

Note: While this post says it is about India/Asia, it might still be of importance to you. And if it does, I'd appreciate learning how it helped you or what is your take on this! There is a gaping difference in percentages of Entrepreneurs when comparing India/Asia with America. There is one unsaid or unspoken reason to this -- family and society. No matter what you age is, you got to respect your elders, the society you live in, your superiors at workplace. While there is so much goodness to this specific trait in culture, with the passage of time this culture has become so shallow that its true essence is lost and is now more superficial and fragile, so much so that this is often confused with the notion that "dissent is disrespect" .  Let me help you to see if you are part of this culture. Answer the following questions to the best of your honesty :) When was the last time you said NO with all due respect, to your parents out of disagreement?  When was the last time yo

Bad Boss Vs Good Karma : Page 1

There are things that early successes give you (the most important of it would be immense confidence in what you think is your secret to your success) and there are priceless lessons that early failures instills in you (the most important of it would be surprising benefits of virtues that you may or may not have embraced). This is a true story.. an account of my story in one of the fantastic organizations that I had the opportunity to be a part of in my early carrier days.  Very early on, I shouldered multiple small brown-field projects and was responsible for the quality of the software delivery and customer happiness. Back then, we used to develop software and generate artifacts for deployment to be handed over to the Ops-team managed by another vendor company in the US, for the target deployment environments were all there. This style of multi-vendor accountability can still be seen practiced by many companies even today.  The early success that I'm talking about is the opportun

Book Review -- React and React Native

  My Ratings ⭐⭐⭐ My Review If you are that really impatient learner that loves hacking to build stuff more than loving to see how things are stitched together and why they are the way they are, then this book is for you. When you are wanting to get your hands dirty with React and React Native quickly, and are looking for a recipe of sorts to get started with in choosing a library for a problem, this book serves the purpose. When you want to quickly rush through a specific topic perhaps for job interview, this book will serve that goal possibly. This is typical of a book from Packt publishers, if you know what I mean, just that it is not Cookbook or Recipe this time :P Even in all this, this book is already dated in some sections, for instance the book uses example of react-navigation version 4, when version 5 is out and its API is different from v4.x. Blame it on the pace with which tech is evolving ;) P.S: Review is originally published in GoodReads .

Setting Default User For Imported WSL Distro

I have a dual hard-drive laptop with the primary being an SSD for quick-boot and the secondary being an HDD. The primary one, unfortunate for today's demand is a little too less in space of just 250 GB but the secondary one is good with 1 TB in space.   As a discipline, as much as possible I host most of my files and software installations in my largish secondary drive. As with WSL, when you install it from Microsoft Store (earlier known as Windows Store), it defaults to windows operating system location, which becomes my space constrained primary drive.  To preserve the space in my primary drive, I wanted to change the storage location of my WSL distro to my secondary drive. This is possible with WSL import/export commands. See WSL Cheatsheet for reference.  After you import a WSL distribution, you may need to tell WSL 2 to start the distribution using the Linux user account you created when yo

WSL For Development In Windows 10 Is The New Kool-Aid

I had been a happy-go Java developer on Windows platform. And then I had to ride the Ruby-on-Rails wave over Linux platform, only to realize how much I didn't know about productivity with automation. Later I moved onto MacOS to experience bliss before starting to hate it for one thing after the other; right from their buggy operating system upgrades to Apple not providing power cable compatible to Indian market resulting in earthing issues. Out of frustration I jumped back to Ubuntu and now back on Windows after long years.  Getting onto Windows was more out of necessity than interest and I started to explore how much things have changed in the Windows world. It wasn't a smooth return for me but the teething period is over and I'm loving Windows again. If you are onto Windows 10 Pro edition, and wanting to get the best of both worlds (Windows and Linux), this post is for you. I am jotting down ProTips to experience delight and productivity at development work. Use WSL 2

Fix Timeout Error Connecting To MongoDB Atlas

 I am at the moment dabbling with Strapi , which is a headless CMS written using Javascript. I love MongoDB and a fanboy of managed services. Getting to know that MongoDB has launched MongoDB Atlas as a managed service for cloud, I wanted to give it a try. I had configured Strapi to use MongoDB Atlas as its backend and it worked as expected. The configuration looked like below (note that it uses mongoose library as connector to work with MongoDB Atlas ): As I was working on Strapi in development mode (it restarts its server after code changes), the server restart failed with an error message like below: My favorite Stackoverflow or MongoDB forum didn't come to my rescue this time. As it turns out, setting the srv  to false and replacing the MongoDB Atlas service name with comma separated values of individual node's URI:PORT, worked. I really don't like to configure things this way, as the former is more elegant approach. But until things are set right at MongoDB A

Multi-tenant Architectures

  Multi-tenancy Application Deployment Architecture could be modeled in 4 broad ways: Separate Apps & Separate Databases Shared Apps & Shared Databases Separate Apps & Shared Databases Shared Apps & Separate Databases There is no right or wrong here. It's about choice and consequence that you should consider taking into your business context and constraints. In this post I intend to jot down a some key points to keep in mind for each of these multi-tenant architecture. These are more of quick notes for my quick reference, a cheat-sheet of sorts when I have to make choices. And I guess this can come handy to you too in your wise decision making. Separate Apps & Separate Databases Easiest to implement from development and deployment stand-point. Just automate the deployment infrastructure for every tenant for quick set-up. Most expensive of all the models from infrastructure cost stand-point. Relatively longer deployment t

Norton isn't what it claims to be -- an Anti-virus

I recently purchased an Acer Predator series laptop that came bundled with Norton anti-virus trial pack for Windows 10. I got this laptop for my development work and so I'm a little too crazy about engineering discipline. What does that mean? The first thing that I did was make a recovery drive from that fresh image of the laptop. This came to my rescue later as you'd find through further in this post. So after a month of trial period of Norton, I wanted to uninstall it and install my choice of anti-virus (that is K7 anti-virus , for the curious). When I uninstalled Norton, it went thought without an error. But when I tried to install K7 anti-virus, it complained that Norton Security Ultra is installed in the system and that it needs to be removed before installing K7. But Norton is nowhere to be seen in my system's Control Panel > add/remove programs . As the world would have it, this seem to be some defacto unethical practice in play embraced by greedy anti-virus comp

Connect to MongoDB on Windows host from WSL2

 It took me a day to lose my hopes on this issue to come to a conclusion that this is not possible. But then, wanted to give that last few tries, again... And lo behold, it worked! So what should you be doing to get this working on your windows-wsl2 environment? This is what I did as workable set-up: Uninstalled MongoDB, one that was installed by windows installer. This one has its own quirks and issues with permission, leading to unexpected error of it being unable to find data directory. In my case, for some reason the installed version didn't honor the config file and was throwing up all of a sudden. Downloaded a zipped version and unzipped to to my target directory in windows. This one wouldn't come with a mongod.cnf file. So make sure, you create the default config file mongod.cnf , alongside mongod.exe  and let its contents look like the one below (where you replace storage.dbPath and systemLog.path property values): ---- Get your host wi

GraphQL FAQs

Is GraphQL a DB? No! For graphDB checkout options like ArangoDB , OrientDB , Neoj , DGraph etc. Is GraphQL an interface to Graph DB? No! Think of it as a parallel to REST or SOAP way of exposing your APIs. Is GraphQL a replacement for REST? It may or may not depending on your business context. Can GraphQL co-exist with REST? Yes!, it sure can. Does GraphQL have good tooling support? There is good tooling support to get you onboarded and get going. There needs to be more though, say for example, support in defining your GraphQL schema. Has GraphQL got supported libraries in my language platform? Checkout https://graphql.org/code/ for list of libraries by language, for client-side support and server-side runtime support. And there are also much more goodies in there to explore and experiment with. Is there a big picture view of GraphQL landscape that I can see? Do checkout https://landscape.graphql.org/ . Is GraphQL better than REST? That depends on the metrics you are