Saturday, December 19, 2015

Us and Them: Wetware

So, 75 days after the trek, I quit my job and joined a start up. Such steps involve deep introspection, meeting some new interesting people, and one or two life changing events. As an insider, I can confidently reveal that a start up can hire you even if you don't have any of those three points on your CV. You should also know that if you let a greater number of life changing events happen to you then you risk overshooting the why-I-quit blog post and heading directly to the one where you describe your ride from one end of the Sahara to the other with just 5000 Indian Rupees, a goat, and a camera worth a few months of salary. By the way, this is not the why-I-quit blog post. This was just a rebuke.

I joined a company which is into hardware. We’re making smart electric scooters. For those who don't remember, hardware are things. They have a physical presence and therefore their existence goes beyond the hard drives of servers, computers or phones. For a guy like me, who types for a living interspersed with the occasional click or two, the new environment was refreshingly different. Over time, however, I got the feeling that somewhere deep down, software and hardware have a lot in common.

In the wisely chosen words of James Franco -

The 5 things you need to know before you die about how hardware people are not all that different from software people. Number 4 will blow your mind if it were sculpted from stone and thrown at your head at moderate to high speeds.

1. Irreversibility

Hardware has no rollbacks or over-the-air updates. This makes it rather inconvenient because everything needs to be thought out and measured carefully for all of it to work. Things are actually moulded, and machined, and assembled and this is sort of irreversible. Any changes would mean a lot of extra moulding, machining, and assembling. During testing however, every once in a while, they can get away with tape and tie straps to literally implement patches.

Software also needs forethought. Ask the folk at Apple Maps or any IT project manager. To avoid unpleasantries later, there would be an evaluation of the architecture choices, in our case - embedded web stacks, linux build tools, messaging protocols, databases, cloud services, analytical software, machine learning libraries, visualisation libraries, graphic libraries, animation libraries, and others. Considering that it would take a few months or more to translate code from one platform to another, most of these choices are irreversible for all practical purposes. For some weeks, the decision making exercise allows some lucky people to get away with lots of open browser tabs and terminal windows but few tangible results.

work da.jpg
The Indian version of the XKCD comic The Indian hardware version of the XKCD comic

2. Vocabulary

Some of us might remember words like torque and impedance from our engineering entrance days. Anodize and rectifiers might take a smaller group back to their engineering years, fondly or otherwise. For those who have succeeded in putting a few years between their graduation and the present, terms like EMI, EDM, and shorting  would have acquired new meanings altogether. All these words belong to the language of hardware. One can easily pick it up as one hangs around though. People acquire an American accent and start calling football soccer during a two week trip to the US so it can’t be that hard.

Different software circles speak different tongues too, and even have multiple dialects. In terms of unrelatability to other languages, i.e. the French of this group, the folk setting up the embedded system take the cake (HT: Marie Antoinette).  For instance, In most English speaking parts of the world, including most software and hardware natives, the question, "UART?", would be answered with a, "mah faaaiiiiyuuuure” but an embedded system guy will surprise you with a, "Universal Asynchronous Receive Transmit. It’s a bi-directional, full duplex communication protocol. You see the Tx and Rx lines are pulled up high. The start condition is indicated by pulling the line low for one bit time followed by data bits of length 4, 5, 6, 7, and 8 and a stop bit which is high for one bit time. The bit time is determined by baud rate - cycles per second. This is the simplest protocol used in all microprocessors. Even linux’s basic communication is on UART." He needs to know these things to get the processors on the device to communicate with and between the battery management unit, the charging unit, the motor, all the sensors gathering information about the vehicle, and the other components like the headlight, the indicators, the brakes, etc. Ensuring they talk to each other, are in agreement, and are synchronised is crucial.

The philosophy of the firmware because, analogously,
it has so little computing power available to it.

3. Sensory Input

If it’s your eyes that get strained at software jobs, it’s the ears that take a beating in hardware. Whenever underway, the sounds of hammering, drilling, sawing, and rogue chrome casts seep through any available opening to fill the building. Since most people aren’t glued to their screens all the time, they tend to talk, laugh, share food, and participate in other primitive forms of entertainment. That would have been okay but for the fact that they have to do this at a volume that carries over the sound of the equipment.

However, if you think about it, software can also be noisy. There will be the drummer guy tapping away at his desks through the day, much to the chagrin of any gregarious woodpeckers in the vicinity. The hummer / whistler will hum / whistle along to every song ever recorded, irrespective of genre or ability, and annoy the remaining avian presence. There’s the town crier who will send links and videos to others and call out from across the room to check whether the receivers have seen it. One or more chairs will squeak. The data mining team will add the steady pitter patter of their keyboards and the occasional trimuphant oohs and ahs to this as they trawl through the numbers and create mathematical models and algorithms to extract patterns from all the data being collected from the vehicle. These are the patterns which will make the vehicle smart, and help improve the scooter, the rider, and the rider’s interactions with the scooter.

In case you never realised how loud your office is.
And in case you need it

4. Space Requirements

Hardware gobbles up space like a teenager in a growth spurt. The first few years are frequently spent in moving to a bigger office or getting more space outside. Desks become wider to accommodate more parts and tools (which should be on a rack anyway), and monitors and systems become bigger to do more complicated designs and simulations. Then there are all the snacks lying around on their desks. Over the years, new snacks are acquired while the old snacks start showing up on the engineers themselves.

Software, while lesser on an absolute scale, is demanding too. Everyone wants at least two monitors. It is criminal to not provide a separate display for Youtube. The snack influx exists here as well. The most significant consumer of space is typically the UX guy with a Mac the size of a small carpet. Visual elements, he claims, need to be designed to the finest of details. As he tools around with the blueprints for the user interface, he has to think up of use cases and make an interface which is intuitive, user friendly, readable in day or night, and does not distract the rider from the road. The layouts, the styling and the final look of the dashboard should be such that it looks like a part of the vehicle itself.

Genghis Khan would have been proud.

5. Expressions of Fandom

Hardware folks are forcibly restricted to their teenage years when it comes to their choice of medium of appreciation of things they love. In our young days, we have all had posters of Batman, Shahrukh Khan, Kajol, Sachin, a CBZ, and if you were a cool kid, then a Backstreet Boys one too. The bikes, cars, and Batman ones made it through time with the addition of a Tesla and the occasional quip such as, “With great power factor, comes great responsibility.” Being a small demographic, there has never been a strong commercial interest from any party in manufacturing black t-shirts with horror movie fonts spelling out the name of a motorbike, typically jumbled letters and digits, with the bike underneath it.

The software folks are even more constrained. Nobody makes posters for coding junta as a result of which the TMNT and Superman name tags on notebooks get replaced with stickers of conferences and products on notebooks. Pick up the laptop of the nearest developer and you will be staring at an amount of decoration the likes of which haven’t been seen since WWII veterans. In our scheme of things, development takes inputs from UX and writes the code to build the scooter’s interactive, fluid UI. The set up of the safe and secure communication channels between the scooter and the cloud is also their responsibility.

Rumour has it that if you cover an Apple logo then men in black suits and dark glasses appear
out of thin air, remove the device from your possession and take it back for decontamination

* * *

Sort of Paid Content

A scooter that's electric and smart,
With the looks of a work of art,
It charges in about an hour,
And can take you quite far,
At traffic lights it composes prose over UART.


Technical inputs - Gautam, Bharadwaaj, Harish, Yogesh, Akash, Swapnil, Karthik
Grammar corrections - Shivaram

No comments:

Post a Comment