My Controversial Interview Tactic

I am often faced with the question of what makes a good technical candidate. Many companies require an engineering degree in their job descriptions. Many high-functioning delivery teams consist of qualified engineers working on real-world problems, and I have learned a great deal from such engineers, who were at the peak of their powers.

However, I have survived for twenty years in the treacherous, competitive, and sometimes maddening software industry in India with just a B.Com degree. Stubbornly, I did not pursue a formal degree in computer science, instead learning everything from the ground up. My journey has taken me through some of the best companies in the world. Despite this, getting a job has been significantly harder for me than for a candidate with an engineering degree. Search engines and criteria rarely surface resumes of non-engineers, and recruiters, in their naivety, often overlook potentially valuable resumes. Does this make me a good technical candidate?

Throughout my many interviews over the years, I have sought candidates like myself – non-engineering graduates. I have, however, recruited only one such individual. A non-engineering graduate with technical proficiency is a rarity, mostly because few understand the history of computer science and how everything works at its most fundamental level.

This holds true even for engineering graduates. Many come from non-computer science backgrounds and pursue computer science simply because it pays more. In my campus recruiting efforts, I found that even many computer science graduates from second-tier colleges had questionable practical knowledge of how things worked. The IITs and RECs tended to produce the best engineers, and we saw better recruitment averages from these institutions.

My Effective Strategy for Technical Interviews

The most effective strategy I’ve found is to focus on the absolute basics. If I am recruiting for a UI role, here’s what I typically do:

  1. Start by thoroughly reviewing the resume, focusing on the candidate’s experience – this helps reveal whether the experience is genuine or misleading.
  2. Ask about the candidate’s interests, likes, and dislikes. Why did they choose UI? This gives insight into how inclined they are towards computer science and their understanding of it.
  3. Pose targeted questions to gauge their motivation. How eager are they to learn new things and improve their skills?
  4. Technical Round:
    • I start with the basics, such as asking how the internet works. What happens when a URL is entered into the browser?
    • From there, I ask questions about DNS, web servers, TCP/IP, the HTTP protocol and verbs, and their significance.
    • Finally, I move on to technical JavaScript basics, followed by small coding exercises.
    • I always keep the focus on the fundamentals: language basics, ecosystem basics, build systems, etc.
  5. While understanding the basics is critical, I also look for how candidates approach problems they might not immediately know the answer to—this reveals their ability to think critically under pressure.

You might be surprised by how many technical people from reputed organisations, with varying levels of experience, don’t know how the internet works, even though we use it constantly!

What Makes the Best Candidates

I’ve found that the best candidates have a zest for learning new things, the ability to work independently, and a strong grounding in the basics. These candidates often become indispensable to the company. For this reason, I place the most value on a candidate’s attitude.

This approach, however, can lead to precarious situations. You often know within the first fifteen minutes if the candidate is a good fit. The rest of the time is spent prodding and poking to see if anything can be salvaged. Finding a good candidate is difficult. Time spent interviewing equals time invested, doubled. In my younger days, I would often finish interviews in fifteen minutes, telling HR that this would save us both time. However, I quickly realised that there is great value in being humble and well-rounded. Candidates may know some things and not others, but that doesn’t make them bad candidates. They can learn quickly and become good employees. Even if they don’t, it simply means they don’t fit the role we are hiring for – not that they are a bad candidate.

A simple google search will give us a lot of non-engineering graduates and self-taught gurus of many big companies like GitHub, Twitter and Slack.

end.

Living the Moment (with Gaming and Consoles)

I remember seeing an Atari 2600 clone, an NES clone and a PlayStation in the late 90s and was mind blown by those consoles. I mostly saw them at my friend’s place, and although I got to play very little of it, I became a gamer in my mind just watching others play. Pac-Man, Super Mario and a whole collection of games.

Many of the games for these consoles came as cartridges or compact discs, and the best way to buy them were to go to these discreet shops in Kolkata (New Market/AC Market). You would get these pirated games for cheaper than original, which were very hard to get in the Indian markets.

Games such as Brian Lara Cricket and football games like Winning Eleven were an immediate win, and among friends the controller would be passed around to compete against each other. There were also hits like Silent Hill, Tekken and Mortal Kombat.

There was always the alpha, the kid who probably also owned the console and was impossible to beat. That apart, I always dreamt of owning a console and playing games all day. Coming from a middle class Indian family, consoles were an impossibility – Mainly because they were costly and unaffordable. So I went to other kids house to sit and stare at others playing games.

When I got into a job and started earning in the mid 2000s, I finally could afford a console. I got myself a TV and a PlayStation 2. I bought several games like the God Of War, Need for Speed, Grand Theft Auto. Subsequently, over the years, I would go on to buy many of the consoles and handheld devices. I could afford more technology, the more I aged and moved up the corporate ladder.

The graphics of the newer consoles have increased beyond compare. The hardware now more capable, made way to incredible complexity and unique gameplay experiences. However, with all the latest jazz, what I could not get is the joy and experience I enjoyed when I was young. Even though I could get any new console or games, I was beyond the age of feeling it like how I was when I was a kid trying to play the Atari or PlayStation.

So what is the point? An experience is about living the moment. If you feel you want to do something but postpone it – perhaps to when you have money or more time, it would not be the same as when you actually wished to do it. We grow, become disinterested, or simply things change.

Enterprise Cloud Software: How small is a small team?

Many startups or small companies have very small teams developing big enterprise products, while there are larger companies having multiple people developing and managing the products. A basic enterprise software has the following functions:

  1. Program Management
  2. Developers
  3. Testers
  4. DevOps
  5. Project Managers

Some of these activities can be performed by people having more than one responsibility. For example, a Program Manager might have a dual role of performing Project Management. Or a Lead Developer can take up the role of a project manager besides leading the team.

A developer most often also performs DevOps activity and in case of an SRE can be responsible for the upkeep of the deployed environment.

It really is about scale and the target of the product being developed. For a small to medium B2B application, a dedicated SRE or DevOps Engineer may not be required. A public facing high volume product, though developed with a few developers, will require SRE or a dedicated DevOps Engineer to manage uptime.

So how do we determine the scale of the team? It really comes down to one thing – Are we assuming that persons in the team won’t take leave or will not have emergencies?

As a project, we should have enough redundancies that the deliverables aren’t affected by sudden absence of allotted person to the role.

Let’s assume, a minimal scenario – we have a Lead Developer and a couple of developers on a B2B solution for a small to medium organization. Assuming the delivery date is 2 months away, It is easy to assume that all the three developers will have a day or two during this time in sickness or absent otherwise. In which case does it impact the delivery date or the quality? If the answer is no, then there are enough redundancies and the team size is good. If the answer is yes, it is obvious that the delivery of the product/project is destined for delay or failure. An Enterprise solution cannot be built on the dependence of a few or on the assumption that people won’t take leaves. Either there will be delays or there will be a tragic drop in quality of the product.

Productivity: Three Things I Changed During Covid.

Like many of us, I had lived a life of belligerence – opinionated, intoxicated, hustled and travelled. I never sat home for a minute. The only time I would find myself at home is to sleep at night. Just couple of weeks before covid hit the world, I was doing a road trip across the winter of Iceland braving snow storms and staying in beautiful scenic Airbnb’s in temperatures way below zero throughout my two week trip.

My sister, the partner in crime and the chief planner, had decided we will travel Europe unlike many would, one country at a time. First of which was Iceland. Next year, August 2020, would have been Italy.

We all know what went down and I guess each of us have a story to tell about the mental and physical assault we went through to get past 2020. Political, religious, international or simply things being shared and shouted on falsely. It still is, half way into 2021, a never ending rabbit hole and there is no choice of exit.

As things are I changed a few things compulsively in my behaviour to work better and make work from home fruitful. But I also found some peace in the process. These are certainly not guaranteed to work for everybody but some things are common sense and I realized it only this late.


Stop criticising everything or everybody. Stop being involved in somebody else life.

Being part of a humongous Indian society, every move you make is a criticism and a gossip. Everybody unrelated even, has a comment on you or the family. The most watched Indian shows capitalize on this culture and reward people for bad bitchy behaviour. This kind of a negative culture gets imbibed from a very young age by seeing parents and others doing it regularly with everybody. “Sharmaji” and the subsequent dialogs inundates the country with memes and jokes – famous of them being “Sharmaji Ka beta”.

This took away a lot of my brain processing. I sat to talk with family or office friends and it took away a lot of mental time – politics, neighbours, relatives and the subject becomes so personal that I was expected to take sides, if I didn’t, they stopped talking or it became awkward. Imagine losing friends and family over politics or religion, both of which won’t help you when you need help.

It not only brought in social anxiety but also the brain was 100% occupied and I gotta no time to think about innovation or code that I could have otherwise written.

What did I do to change this? This is the hardest and it took the longest, especially when it is unconsciously happening.

  1. Silence is golden. Sit and listen and not absorb. From a very young age I had this mental trick to tune out. What I mean by tune out is, I can think of something completely different while I am nodding my head at the discussion on the table. I have a go to trope – I would imagine playing for India in a cricket game. Based on the series going on at that time, I will imagine India to be really struggling to win when I step out to bat and save the game. It sounds ridiculous, but it is more elaborate. Similarly I imagine playing tennis and hitting some outrageous shots. It is narcissistic, yes, but only in my head and so the brain invests in the alternate thought and does not wander. It is similar to how we play video games – we never tell our friends how much we failed, but how well we succeeded in a game. Find the trope that interests you.
  2. If silence doesn’t work, walk away or change the subject. An inflamed brain is a dangerous tool. So choose to exit the conversation or simply make a polite excuse and go away from toxicity.
  3. If none of those work, confront. As an example – A lot of things were falsely being discussed on the subject of how internet and phones work during these times. Or how spams, false news and other tech things work. Having worked with computers and internet for the last twenty years, I may claim to be a subject matter expert on the technology of those subjects but I know only a very small fraction of a fraction. Others are experts in different fields and they are not fully expected to know how technology works. Educate them and remind them politely that you know on the subject and set the record straight. An informed polite confrontation more often than not ends a toxic discussion.
  4. Grow balls to discuss the criticism with the person I am criticising.

Time is irreversible.

If the choice is between taking more time or spending more money, choose to spend the money than taking more time. One can always make back the money, but I can’t with all the money in the world get back the time. Instead of taking a train, which takes a day, if it is affordable, take a flight and be there in three hours. Train may cost way lesser, but the time saved is way more precious, even if it is spent resting.

Of course this comes with several caveats most importantly – affordability. If it is not affordable it is not a choice then one can only spend time whether you choose it or not.

Another caveat might be that you want to spend time – a train journey with a loved one or a trek through scenic landscape than taking that taxi.


Take that risk.

A few of my friends spent a lot of their savings investing in shares, crypto and land. I chose to save for an emergency during Covid. What if I lost my job or lost the saving? What if there is a medical emergency in the family.

When the market rose, at the end of phase I, my friends had doubled or tripled their savings. Fear sometimes makes us irrational, choke up and be complacent. Here I am not just talking of money but everything unknown. Should I take that new job? Should I travel during the times?

An impulsive risk is often detrimental and is like playing Russian roulette. But an informed risk has more chances of success. If I change the job, does the compensation or position cover my risk? Have I researched enough about the new company and its outlook? If I travel, am I taking the precautions of wearing masks, washing my hands and following protocol even more so than normal?

From that lesson, I managed to travel, see movies in theatre, change a job and do a bit of investment during the first/second phase. All of which perhaps I didn’t do so much (except movies and travel) pre-covid times.

Finally, stand against flaming. Think and reason on your own.

end.

A Developers Productivity Setup using a Raspberry Pi (4)

The Objective

I always wanted to have a workspace that could replace many a tool I use as a paid alternative or tools hosted in the cloud. Specially now, when most of the time I spend at home working, I have a need to manage my productivity. It uses docker for easy siloed management and it does not require any complicated system changes that break one app or the other. Additionally Dockerhub is a treasure of images that can be run very easily and can be leveraged.

The only drawback to using docker as an app deployment tool is that all the tools run in different ports and one has to remember the mappings. The mappings are easily visible in portainer and hence useful. Another useful technique is to locally install nginx and use it as reverse proxy.

NGINX Docs | NGINX Reverse Proxy

Tools Installed

  1. Portainer – Visual docker/container management web app. We will use portainer to deploy containers off dockerhub.
  2. BookStack – Notes taking and writing management tool.
  3. Wekan – A trello like Kanban Board/ Lists App.
  4. Bitwarden Server – To store all my passwords locally and not depend on passwords.google.com or Microsoft. Bitwarden is an open-source solution with a server, web app, browser plugin and iOS/Android apps.
  5. Pihole – To Manage my network and conserve my bandwidth. Primarily an Adblocker and I use this to manage intrusive ads on my parents phones and desktop. This I also use to manage access to devices.
  6. Prometheus/Grafana – Monitor the pi and network.
  7. FileBrowser – To manage additional storage. Simple file manager to manage an attached storage. Simply attach a drive to the pi. Attach it to /srv to mount it to the container.
  8. Draw.io – Diagramming Swiss knife.
  9. PlantUML Server – For UML Diagramming
  10. Hoppscotch – REST/Web Socket Client to replace Postman
  11. Owncloud – Optionally I have a stopped instance of owncloud. I dont really need it as I could do with an old HDD attached to the pi.
  12. Code Server – Code Editor/IDE. The Visual Studio Code Server replicates the desktop app to the web. It provides most of the features the desktop editor provides.

Additionally to the above installation, we get the following as dependencies. This can be leveraged for development:

  1. Mongo Server
  2. MySQL/MariaDB – With Booksstack
  3. Additionally install PHPMyAdmin to manage MySQL.

Also other databases can be installed. Databases like Postgres could be run.


Rasberry PI Preparation

I have tested this in a Raspberry Pi 4gb and an 8gb, it could as well run in a 2gb version, but we may have to reduce the number of containers we host. To run docker efficiently, it is better to use a 64 bit image. I have used the raspbian beta image, however one can choose the ever so stable ubuntu server 64 for raspberry pi.

Installation Instruction follow this guide – Installing operating system images – Raspberry Pi Documentation

Disable the gui from raspi-config – raspi-config – Raspberry Pi Documentation

sudo apt-get update && sudo apt-get upgrade

I have found an issue with dhcpcd when a lot of virtual networks are added:

https://github.com/raspberrypi/linux/issues/4092

sudo nano /etc/dhcpcd.conf
at the end: denyinterfaces veth*

Setup Docker & Docker Compose

wget -O - https://get.docker.com -o get-docker.sh | sh

Install docker-compose:

sudo apt-get install -y python3 python3-pip
sudo pip3 -v install docker-compose

Topology

I have attached the raspberry pi 4 to the router using a RJ45 cable. Much faster as I host pihole. The Pi can be added as a WiFi device as well.


Install Portainer

The Portainer installation guide – Docker – Documentation (portainer.io). Run it in the Raspberry Pi commandline.

docker volume create portainer_data
docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Browse to the URL of Portainer. Below is how it looks with containers.

Portainer also has App Template feature that can be used to deploy repdefined stake.


Add App from Dockerhub

In most cases the install is straight forward. Click on Containers -> Add A new container.

Choose an image with ARM 64. In the above example, we are adding an nginx server in the above. Once added to portainer, the env and storage parameters can be changed by looking at the documentation.


Add App using Docker Compose

Portainer accepts docker-compse and many stacks can be deployed using a docker-compose file.

below the compose file:

---
version: "2"
services:
  bookstack:
    image: ghcr.io/linuxserver/bookstack
    container_name: bookstack
    environment:
      - PUID=1000
      - PGID=1000
      - APP_URL=
      - DB_HOST=bookstack_db
      - DB_USER=bookstack
      - DB_PASS=bookstack
      - DB_DATABASE=bookstackapp
    volumes:
      - /path/to/data:/config
    ports:
      - 9080:80
    restart: unless-stopped
    depends_on:
      - bookstack_db
  bookstack_db:
    image: ghcr.io/linuxserver/mariadb
    container_name: bookstack_db
    environment:
      - PUID=1000
      - PGID=1000
      - MYSQL_ROOT_PASSWORD=root
      - TZ=Europe/London
      - MYSQL_DATABASE=bookstackapp
      - MYSQL_USER=bookstack
      - MYSQL_PASSWORD=bookstack
    volumes:
      - /path/to/data:/config
    ports:
      - 3306:3306
    restart: unless-stopped

Custom Install Apps using Docker Commandline

Requires an advanced understanding of Docker.

A lot of tools may not compile due to the images being built with other platform. The moment there is a “process exec” error, it is probably incompatible with arm 64. In which case the best approach is to rebuild from source using an arm based image.

Portainer automatically will pick up any images added or containers launched.

end.

Is it worth buying an Android flagship phone? Or the cost of ownership of a flagship phone.

Flagship phones are premium phones that identify the brand of the company selling it. They are usually built with best-in-class hardware and software. They are also the costliest phones in the market just because they have cutting edge hardware and software which gives them unique features.

Some of the leading brands in the Indian mobile space are Apple, Samsung, Google, and One Plus. Apple uses the iOS operating system and the rest of the brands use Android. Android is widely used for many reasons by the consumers but hardware manufacturers can easily scale up and quickly provide an Apple iOS eco-system like experience. Android also found use in the open-source world providing alternate ROMs for devices and customization. Apps could be delivered through the official Google Play store or alternate app stores like Samsung App store or Amazons app store.- Since it is open, anyone can publish apps with a one-time payment and create adware and malware that can be installed by anybody. Google however routinely bans such apps and publishes security fixes.

The biggest selling point of Android is the price. There is an Android phone at every price point. From an extremely low-end phone which costs a few thousand to phones which costs more than a lakh. There is a market for every price point.

Apple’s iOS on the other hand is developed by Apple as a closed project and the OS works only on Apple hardware. The ecosystem consists of the App store through which apps are delivered. Since everything goes through the Apple review, it is a little bit more secure about adware and malware.

Most of the premium flagship phones would be very close to each other when we speak of performance and hardware. Many though offering different services. Apple offers a consistent experience and provides premium subscription features such as iCloud. Google on the pixel phones offers full resolution/high-quality storage for free while Samsung has a host of services from its own app store to security services.

What is the real cost of ownership of such a premium phone?

  • It is the initial cost one pays for the phone and its services.
  • How long the phone stays new. In other words, how many updates the phone will get.
  • How much will the resale value be after the support ends

All of this by the number of years a mobile phone will be officially supported. After this time the resale value of a phone falls drastically to one third the original price or lesser.

  • Apple supports their software the longest. They provide updates for more than 5 years. This means the phone is bound to get at least 5 to 6 new releases and security updates.
  • Google and Samsung provide 3 years of support, which means after 3 years new builds and security updates will stop.
  • One Plus provides 2 years of support and updates.

From the table, clearly owning an Apple iPhone is better than the rest. The yearly costs are lower than Android phones! We often tend to look at Android phones and think of them to be cheaper. What we are really comparing are cheaper Android phones to iPhone. Hence, it is also more likely that getting a sub-Rs. 30000 phone is a much better value for money than the premium phones at the moment. This is also the reason why all of the 3 companies (including Apple) operate in the sub-30k market too.

end.

Learning Multiple Programming Languages Quickly

Recently I gave a presentation on learning multiple programming languages quickly. The idea of the presentation was to quickly start coding in multiple languages and learn the toughest or the unique parts as we go along practising.

The technique is just common sense though, and has mostly worked for me in my career where I have used it to learn multiple programming languages – Java, JavaScript, Python, Go and Rust to name a few. I intend this article for anybody with interest to learn new languages.

In the hands-on presentation, I presented ways to understand Go, Rust and the newer Nim quickly.

Before we start:

  • Basic knowledge of Programming – Differences between Object Oriented concepts, procedural programming and some previous experience in some programming language.
  • Go and Rust are systems programming languages, which require the knowledge of knowing the internals – particularly network, multiprocessing, memory and other things you wish to use it for. Other languages like JavaScript requires the knowledge of understanding the Web and how various parts of the web work. The more general-purpose the language is the more specific becomes the knowledge – Python can be used for many types of apps and libraries, hence it is important to know fully the consequence of what you want to achieve.
  • The most important aspect to a developer is maintaining the history of the changes made, hence on the way, knowing how git or any other source control tool works will be a great plus!
  • Interest and time is of prime importance. If you have an interest you will make time!

Usually, any programming language has a learning curve. The lower the language is, the harder it becomes. Ruby or Python, for example, might take a week compared to C or C++, which can take weeks. If it takes that long to learn any language, why not learn more than one?

It is essential to pick conceptually similar languages. For example, if you are learning Ruby, Python becomes easier. If you are learning JavaScript, then mixing it with learning TypeScript or Lua can speed the understanding. It also helps compare the features and remember better.

This blog is also no about mastery in learning multiple languages. Mastery takes years together. This is about learning just enough to start coding meaningful stuff quickly.

There are few things common to every language –

Eco System

Eco-System is about how to build and ship. Every language has a source build system, a way to ship for distribution and tools to help build everything.

  • Java has the javac compiler, jars for distribution and the JVM for the runtime.
  • Similarly, python has a runtime installation for running python scripts. IT also has tools like egg and wheel for distribution.
  • Go, and Rust produces system binaries that can run natively without a VM. Go binaries are usually bigger as it compiles a runtime into the binary. Rust has a bare minimum runtime – the coding style itself helps to manage the memory and other safety.
    • Rust has Cargo to create, manage and compile projects, while Go has “go tools” to do something similar.

Defining Functions

Every programming language has a way to declare code blocks, provide an entry to run the code. Keywords such as func, def, fn are used to declare blocks of code.

Additionally, special blocks named “main” exists in many languages, including Go, Rust, C/C++. While Python and Nim, the body of the file itself is the main function.

Decision Making & Looping

The most important part of any code is decision making and looping. Every programming language has tools to enable decision making and looping.

Go handles looping using the for keyword itself for looping over a range, dictionary or sequence. Rust has for loop and while loops similar to many other languages.

Memory Allocation

This is probably the most complex part of a programming language – How to declare a variable, how to destroy after the usage. Higher-level languages use different techniques such as garbage collection and other methods for automatic memory management. Lower-level languages like Rust use several language constructs to help with allocation and deallocation – particularly mutability, ownership and borrowing and lifetimes. Go has a garbage collector along with pointer constructs to offer for managing memory efficiently.

Source Structure and Modularisation

Modularisation and dividing similar functionality, albeit being not as important as others are of deep importance. Languages like Java enforce it by the way code is written into directories. This affects how reusable code is imported and shipped. Rust has modules and cargo for the same purpose while Go borrows a little bit from java. Go also has a specific $GOPATH which makes it a good practice to develop sources in a specific location.

Other Things

OOPS is different in each language. Java is considered a pure Object Oriented Language while JavaScript has a prototype-based inheritance. GO may or may not be called OOPS and Rust is only interface implementation based object-orientism.

Every time I have to learn a new language, I approach them not only with understanding these 5 concepts, but also by writing code and using aspects of those. Here are the example I used:

Factorial in Go
Factorial in Rust
Factorial in Nim

end.

Best Gifts for Young Kids and their Parents: Raspberry Pi

The Raspberry Pi

If you ever wondered about the gift you would give a young nurturing mind, look no further than the Raspberry Pi.

The Pi as it is commonly called what is a Single Board Computer. They are fully functional computers having the processor, I/O, memory in the same board. For all that, they have a very small form factor. They are powerful enough to automate stuff, create robots, build internet of things or like me build retro consoles or simply be used as desktops.

I usually have a raspberry pi attached to a TV to automate household things and to play games. One particular stuff I do with it is to monitor the house cameras, download the video files, compress them and upload it to to the cloud to have free access from anywhere. The video from the camera is already dumped based on object detection and movement. Perhaps it would be an overkill to add any ML algorithm to it. That is for a later discussion.

Another useful project I have worked on is building a dashcam. Using the Pi Camera, an official add-on. It has taught me great things about image stabilization and picture processing.

It is exlilarating to see a piece of hardware work by running a few lines of code.

Children’s from all age group can enjoy the Pi. However, the raspberry pi is a crude tool designed to be used in so many things. So it is imperative as a gifter, you design the solution, install the necessary software and provide a guide for the parents. The gift works two ways –

  • It helps the parents learn the board and perhaps they will discover something they like.
  • It helps kids with cognitive growth.

The basic Pi with the full Raspbian OS comes with great tools to make hardware work and also tools for children. Raspbian comes out of the box with Scratch which can be used to visually make games and tell stories.

Besides a little older children can start learning python as a first programming language. The ease of the language will be very useful to get them into programming. The Raspberry Pi comes with great python IDEs and tools in itself. For little more advanced usage, PyGame and PyDub can be great teaching tools for visual and audio programming. Minecraft is excellent for coding and gaming.

Requirements

Usually, when I build a Pi, I build it for both parents and kids. Here is a list of things you require:

  • Raspberry Pi 3 or a Raspberry Pi 4
    • Raspberry Pi 3B is a cheap and perfectly capable board. It has 1 GB of RAM and can run the Raspbian OS.
    • Raspberry Pi 4 comes in 2 variations. the 2 GB and the 4 GB versions. These are more powerful and costlier than the Raspberry Pi 3B. The 4GB version is costlier than the 2GB version.
  • A good and cheap controller. Preferably wireless.
  • An SD card preferably 32GB.
  • Power supply for the Raspberry Pi. Power supply for the Raspberry Pi 3 is straightforward – most modern Android Mirco USB will work. The Raspberry Pi 4 is a different ball game. I like to buy the original Raspberry Pi supply for the Pi4. Here is a benchmark comparison for the Raspberry Pis
  • HDMI cable, Keyboard and mouse for the installation. I do not normally include the keyboard and mouse in the gift 🙂
  • A monitor for the installation.
  • ROMs downloaded from the internet for the console of your choice. I have a few – NES, SNES, N64 and my first console – Atari.

Installation instructions:

To not repeat myself, I will link to articles that I followed:

  1. Install the OS image to the SD card. I use Balena Etcher successfully many times.
  2. While you are at it, look for ROMs.
  3. Boot up/Configure the Pi. Install Retropie manually. I prefer the manual method.
  4. Install the ROMs to RetroPie.
  5. Set RetroPie to Autoboot – The games should be autoloaded.
  6. Configure the controller and others.

I prefer the manual installation of RetroPie over Raspbian installation, instead of using the official Retropie images. Even though it is bigger and time-consuming, Retropie can be shut down and the Pi Desktop can be used for other software.

The last step is to market the kit to the parents so that they feel enthusiastic enough to spend the time learning and teaching their kids. The instructions here are only to get you started. This isn’t a complete guide by any chance.

end.

How to do a road trip around Iceland in winter and survive (coming from a tropical country like India).

I have lived in a tropical country, India, all my life. A little rain and some excruciating sun nearly render me immobile. And also if you live in a city, which is perpetually blocked because of traffic, you are like me – a tropical couch warmer.

Iceland in winter is a different ball game. The climate changes every few kilometres, ranging between 2°C to -15°C. The most difficult is standing close to a waterfall or doing whale watching. One can be potentially blown away by winds, buried in snow by a storm or get stuck in a hail storm.

Iceland and in winter though is insanely beautiful. The whiteness of snow and ice, beautiful towns and villages. It also almost looks like not from Earth. It is worth more than every penny spent and every pain endured getting there and experiencing the bone-chilling cold.

I had it all planned out almost everything by an amazing sister and we did this trip together. The planning was multi-layered – Which routes we take, where do we stay, what do we see. It even had what we eat and when. More about the planning – I will link to her post.

Ticketing & Visa

Applying for a visa is blue-collar work. You have to do everything manually. Physical prints of nearly everything you have done in your life.

  • Fees
  • Passport is compulsory
  • Healthy bank balance
  • Travel Insurance with a certain insured amount usually mentioned in the checklist
  • Copies of every page of the above. Especially of the empty pages.
  • Itinerary – Every single detail of your stay.

After a few visits to the visa processing office, you will finally receive your visa for only the days you are visiting issued by the EU. I mean there are other countries which will issue a visitor’s visa for ten years, like Canada.

Clothing and Winter Wear

A good tri-climate jacket is a must. There are very few in the Indian market. I picked mine from Decathlon. The jacket has a separable inner jacket. Thus, it can be used as a rain/snow coat and also as a cold climate jacket. However, this jacket itself won’t be enough. A certain level of layering is required to sustain in Iceland.

Quechua tri-climate jacket

Next up are the shoes for the Iceland winter and you will need heavy boots. I picked it up in Decathlon. When buying boots, always get 1 or 2 sizes bigger. It will be useful to layer multiple woollen socks based on the cold.

Weatherproof hiking boots.

We also picked up:

  • A beanie I had picked up in my last travel.
  • A throat scarf
  • Monte Carlo underpants and vests
  • Different coloured pullovers for layering. Hoodie pullovers are even better.

Along with this, I also got myself layered gloves. Make sure that the gloves are touch-friendly so that you can use mobile phones while wearing gloves. A few hand warmers and toe warmers. Warmers give out heat on being shaken. Warmers are very important if you are into photography – You may require to pull out your hand for manual control.

What is the actual road trip?

Driving in Iceland is not easy. One has to have experience in driving in ice and snow to know how to mitigate slips. Knowing when to break becomes important.

Another great challenge is the beauty of the road through mountains and shoreline. The road goes through some exasperating scenery and it changes every few meters. It becomes difficult with people in the car going – look left at those mountains! Guys on the right side is the sea! One slip and we are in it!

Hringvegur or the Ring Road or Route 1 is the road which goes around Iceland. We took the Ring Road and went inside other roads to reach towns and villages. Then coming back again to the ring road. Going via the Eastern route is more scenic and treacherous than starting via the western side.

There are 3 kinds of Icelandic Roads –

  • The Ring Road and is mostly accessible by most cars.
  • The subsidiary roads that lead to towns and cities advisable to use AWD.
  • F roads – inaccessible during winter but can be ventured with 4×4 trucks.

The roads are well marked with common traffic symbols. There are a few unique ones and it is advisable to memorize them. There are other symbols which indicate whether you will find cafe/restaurants or toilets in the route. Be aware to pay attention to them.

We drove for seven days to get around. It is not long however, one could get around in two days. We took our time seeing places around each location. We never drove nights unless we were hunting northern lights.

There are many parts of the drive where instinctive coordination and magnanimity plays a big role. The ring road and the subsequent roads have a few stretches which allow only one vehicle to pass. Unlike how we behave in India – by rushing to be the first on the bridge, it is better to be magnanimous and allow the other vehicle to pass. You will find others doing that to you too.

Usually, during winters, it is by law that all cars use low beams even during the day, all the time.

There are stretches which are only snow and our car was the only one on the road for hours. No cars in front or back and it almost felt like a different planet. Even more, if you are coming from India; you will find the population of Iceland many times over in small areas of cities in India.

There are 2 types of ways to get around the island. One can book tours or rent a car. But, one can also book tours around the country. Tours are costly and restrictive. So we pre-booked a Toyota Rav 4 from a rental. It was cheaper, safe and we could get a lot more done.

The rented AWD in our stay.

The drive between Airbnb’s weren’t more than 3 to 4 hours. We took time to see the places in-between the two places. So it would take at least 8 to 9 hours between our stays.

Drive through snow
Drive through gravel road downhill in the rain

Vegetarian Food

Being vegetarian and visiting Iceland in itself is a challenging proposition. Iceland is meat/fish eating country. Getting vegetarian food can get harrowing. We did find a Mediterranean restaurant in Reykjavík and other places serving vegan food along our journey. We got really good veg burgers and pizzas too. Having said that if one can survive with loaves of bread and spreads, it makes life lot easier. Anybody who does not like the smell of fish and meat should be very careful – every other village will have a distinctive smell.

Along with it, we also got MTR ready to eats – Upma and Poha. Maggi and other ready to eat like rajma curry, aloo mutter and dal. This We cooked dinner and took the leftover for the journey the next morning. The lunch we are in the car mostly, while we experimented with dining out at night to cooking exotic dinners. As I had said earlier, impeccably planned by the sister.

Most of the Airbnb’s we engaged were equipped with microwaves and stoves.

The water in Reykjavik and in many places smells and tastes sulphur. It tastes burnt and bad. You can get normal water from the hotel. In other places, you will get tap water which in itself is drinkable and tastes awesome.

Sulphur seems to be very good for the skin. The water in Iceland has sulphur naturally because the water comes from volcanic activity. Most of the hot water to the homes come from the water geysers and hot springs around Iceland. They are delivered to the villages and towns using insulated pipes.

Culture

Everybody speaks English. We did not know Icelandic and our pronunciation of names was at best horrendous!

People often leave their cars running and their house unlocked. There is very little crime in Iceland.

People are very friendly, especially in the remote settlements. In some places, people will smile and wave at you.

When we rented rooms, we made sure to clean up before we left. We cleaned up the car after the ride. People in Iceland cleanup themselves after.

People in Iceland love hot pools. Even the smallest villages will have a hot pool. We did not use one and we crashed when we got a chance. It is important to maintain sleep with time differences.

Conclusion

As I said earlier, it was worth everything. We drove around in different climates. We saw amazing sceneries – scenes out of this world. We were tired just being exhilarated. We stayed in a city, a town, a village, in the seashore, a bookstore and a farm. We saw the mountains, we drove on the cost and we went whale watching. Most importantly, WE SAW THE NORTHERN LIGHTS!

end.

Companies should be responsible for what they produce.

We are killing ourselves and our children. We have about twenty years. Climate change is real.

There are so many mobile companies in India cashing in on the mobile craze. There are at least 500 million users in India and it is only growing. It is at least less than half of India’s population.

Given the life of a mobile phone on an average is about 2 years, where do all the old mobiles go? A fraction is recycled through second-hand selling and unlike cars, the sale is limited given the number of options available to the consumer in India.

Batteries, boards and so many chemicals go into landfill. It is toxic and detrimental to the environment.

If a company produces a phone, they should have a plan for it to be recycled and destroyed naturally after its EOL and longevity in the market. If a company wants to produce a product they should naturally be responsible for its end. After all, they are invested in the phone being in the hands of people and earning money from the ecosystem. The time they did something for the real ecosystem.