Winter vacation for the whole company!!


Mindfire Survey

Anything audacious always has an element of shock in it – positive as well as negative. When it comes to coming up with policies which benefits people, Mindfire never runs low on audacity. This year we started for the first time in our company a concept called winter vacation. For a whole week, starting December 29th 2014, office was closed and people were given this time to enjoy with family and friends. Some went on road trips, some went to holiday destinations, some joined Yoga camps, some spent time on learning new technology, some read books and most used this time to reflect on the year gone by and plan for the New Year. We ran an internal survey to capture people feedback on this initiative and an overwhelming majority, 97%, felt that this is an awesome initiative and should be continued every year.  

Q.Would you like this initiative to continue in the future?


People felt this initiative helps in managing work and life better.

Q. How effective is this initiative towards getting a better work-life balance?


As dear our people are to us so are our clients. We would never do anything which puts our clients at any kind of risk. The fundamental belief of Mindfire is honoring every commitment made and never faltering on promises – be those made to people working at Mindfire or clients who have trusted us with their business. All clients were communicated about this winter vacation 2 months in advance and the pleasant surprise was the way almost all out clients felt about this initiative – they were happy and encouraged us to go ahead and get it done! We are proud to say that we work for super awesome clients at Mindfire. Few clients who had major work releases were accommodated too by committed teams at Mindfire who worked during vacation to get the work done. We can say it proudly that we had ZERO client issue with this 1 week vacation for the whole company.

Everything comes for a price – in absolute economic terms the price is only money but in a more holistic sense the price can be happiness, trust and money of course.  Money wise there was revenue loss since no effort hour was logged by anyone and no client was billed. What we gained was happiness of people and renewed trust on Mindfire – that we are a company which cares about the people who work for it. We are sure this renewed vigor will manifest itself in improved client satisfaction with the quality of work and more value for the money invested in projects.

The below response best captures what people felt about this vacation –

Q. The following statement best reflects your take on this vacation.


Society wise this initiative had a very positive impact on people outside Mindfire about what Mindfire is and the perception they had about our company. Families and friends of employees at Mindfire were pleasantly shocked and have expressed their happiness and gratitude through our employee survey on vacation.

For survey details click here. Survey Results

Are You Becoming What You Do Not Admire?


I was reflecting today on the movie “3 Idiots”, arguably the greatest movie hit in India (the Idiots are called so because they do not fit convention, not because they are dull or lazy).

We see one Idiot who grows up over the course of the movie to develop a spine, to get courage and confidence to do the right thing, to be honest and truthful no matter what the stakes.

We see a second Idiot who throws convention out the door, rebels to pursue his real passion in face of opposition, driven by the quiet conviction of one who knows where his happiness lies.

We see a third Idiot who cuts all superficiality and goes straight to the core – the real thing which matters is what we are inside, how we continuously learn and upgrade our soul, capability and knowledge, and how we use it to benefit those around us. All else is superficial.

We also see a fourth Idiot who appreciates goodness and simplicity, and rejects vacuous wealth and its promise of branded happiness – a “X lakh ki ghadi Y lakh ki sherwani” – for something different.

During the movie, most of us find something to admire in these characters, relating more to one or the other.

And then we see a clever person – Chatur. Chatur flashes his designation – “Vice President”. He states his location proudly – “USA”. He grandly states name of the company he works at. He shows photos of his mansion and car. He reels off statistics about his income, and its relative proportion. He is competitive, and enjoys making others feel bad about themselves. Belittling others is his way of elevating himself.

Most of us do not see ourselves in him. We do not admire him. We do not want to be like him. We walk out of the theater pretty sure of ourselves and what we are. If someone were to run a survey, you would be a combo of the Idiots, with not a droplet of Chatur.


Now let’s face the mirror, and find out who we really are.

Last I checked, here is what a typical young software engineer, or indeed every “educated” person, wants: More salary and income. A fancy designation. Works at “MNC”. Relocates to USA. Puts others down to get ahead. Big house, big car. And s/he wants to put all of it up on social networks – lemme take a selfie! – for others to envy.

Wow – look at those points! Think about it for a minute. Through our desires, which match absolutely exactly what Chatur did, we have made Chatur a model for ourselves! We admired the Idiots in our minds, but in our actions we are pursuing Chatur – ah the sweet ironies of life.


Why really do we want to become Chatur? Does education make us sheep of a herd, instead of humans who can think different? Is growing up a process of discovering our uniqueness to enjoy its flowering, or is it a process of learning what is expected and fitting in to convention?

When our heart yearns for goodness and simplicity, for improving our inner self and capabilities, when our heart pursues contentment and truth, when our heart knows what makes us happy and brilliant, when our heart admires the core and rejects the superficial – when our heart knows all these things and is there to guide us – why then do we allow our head to rule?

Is it a desire for the safe choice, the loss of innocence, the development of rationale? The loss of our selves?

What do Idiots have in their hearts, which lets them overrule the head? Courage. Courage for mischief, courage for fun, but more importantly – courage to stand up for the right thing. To stand away from the crowd, sometimes alone. To get to the core of things. To do stuff that matters.

Think about yourself for a minute. Did you admire Chatur, or one of the Idiots? Which life do you want to lead? And where are you headed? While you grew up, did you sacrifice your individuality at the altar of convention, did you lose your courage?


Today, ask yourself: are you becoming that which you do not admire? And what is it that you DO admire?


Smart Work vs Hard Work – A New Perspective?


Smart Work vs Hard Work. Which is better, which should be valued?

This question haunts every workplace, and successfully confuses everyone. There are camps and devotees of either side, and convenient converts depending on situation!

It is actually quite simple, if we see some facets clearly.

Before we proceed, let us first remove the common implicit assumption and confusion behind Smart work and Quantity of work. People who work less always refer to themselves as “smart work” people. You will never come across someone who works less, and who doesn’t say: “I work less hours because I do smart work. S/he works longer hours because s/he does dumb work”. Whoa! Hold your horses! You could work less and be dumb about it too. You could work more and be smart at it too. Quantity of work has nothing to do with whether it is smart or not! Let us not make an implicit assumption right under our noses. One is apples and the other is oranges.


Work can be: smart work or dumb work. Quality.
Work can be: less work, hard work or over-work. Quantity.

It should be mathematically obvious that total effectiveness is an output of how smart we are in that work (quality of work) and how much we work (quantity of work).

Result = Quality x Quantity.

However, Result = Quality x Quantity breaks down if quantity is above a certain threshold – which is different for different people. Someone could work 6 hours at a stretch, you may work 12 hours at a stretch. Thus, for one person 6 hours may be hard work, for another it may be 12 hours.

When we cross our own levels of hard work and enter the zone of over-work – that’s when things go wrong. Result = quantity x quality no longer holds true. Quantity rises arithmetically but Quality – both immediate and long-term – dips exponentially as you over-work more. You can see who overtakes whom when you enter deeper into over-work territory.


Now it becomes obvious what would be most valued. People may talk about work-life balance and “only smart work” but it is all jazz and being “politically correct”. Truth is that the following sequence is what gets you results.

1. Smart, hard work
2. Smart, less work
3. Dumb, hard work
4. Dumb, less work
5. Over-work

There, I said the unpopular but obvious thing: smart and hard work will always score over smart and less work! Of course, there is the complication of different levels of smart – how smart is smart? But smart being smart, hard work will score over less work.

You might be tempted to think that #3 may overtake #2 at times. But in intellectual fields, that never happens. Smart work, even if less, will have results better than dumb work. So my opinion is that the above order is fixed, and that dumb work cannot beat smart work even if there is lot of quantity of work.


If you work less but smart, very good, it is worthy of accolade and a touch of envy. But you are missing the fullness of your potential if you have not reached the comfortable limit of hard work for you. Does this mean you should or have to work hard? Not really. We have our own priorities and situations, and we need to choose.

But what our smart, less work approach definitely does not give us is the automatic right to put down someone else working hard – because that person may be working both smarter and more too! Hard work does not automatically mean dumb work – it could be both more and better!

Note that over-work does not have smart or dumb – it is always dumb.

From above, here are simple optimized rules in order of priority:

1. Never over-work
2. Work smart (your smartest!)
3. Work hard


Simple, right?


3 Trends in Software Developer Roles – And One to Avoid!


Three roles have been evolving in software development over past few years.

1. Devigner
The devigner is a person who packs a pretty punch. She is a graphic designer, UI designer, UX developer, server developer and database developer all rolled into one.

In reality, its fate should have been obvious from the beginning. The devigner role has almost vanished. People discovered the obvious: you cannot produce devigners. They are rare and they are almost born that way. You may have a few hundred all over the world, but generally speaking it is a rare species.

For developers to “learn” design is the same as learning to paint by reading a book. And for designers to learn hardcore back-end software development – possible but rare.

Design and development are both specialized skills, and best left alone. The rare person who combines both is belittled by calling them something as mundane as devigner – Superman/Supergirl are better suited titles!


2. DevOps
DevOps as a discipline refers to the unified approach of Development, Testing and IT Operations.

DevOps developers are people who combine these skills in one person, with broader understanding of purpose of the system. They understand that writing code is just one part of a bigger picture. Code-complete is meaningless unless it tests well, and till the time it is in production systems – live and serving users – it is actually pie in the sky. Code has potential energy, it is production use that converts it to kinetic energy.

For example, a DevOps ASP.NET developer understands IIS web gardens and web farms, session state servers and a zillion other things that the normal ASP.NET developer regards as – “not my job”. And a DevOps developer understands evolution of unit-testing frameworks and how they can be integrated in code. And so on. A DevOps developer has a much broader outlook on her role and end goal.

When things go wrong or slow down on production or on the database, the DevOps developer thinks – “what in my code may be causing this? how can we make it faster? what could be wrong? how can I help?”. The normal developer thinks – “what is the sys-admin doing? what is the DBA doing? well, it’s anyway not my problem.”.

DevOps developers are also naturals with cloud APIs and the ability to manage hardware and infrastructure with code. Let me repeat that line: manage hardware and infrastructure with code.


3. Polyglot Programmer
The polyglot programmer is an interesting animal.

This is a programmer who learns and masters multiple programming languages, and uses multiple languages on the fly, blended seamlessly!

Most full-stack web developers today are already polyglot programmers! Without realizing it. At minimum, you work with PHP/Python/RoR/Java/ASP.NET/ColdFusion/etc for the web app, and SQL for the database, and HTML/CSS/Javascript/AJAX for the front-end. And don’t forget the glue – XML.

The true polyglot programmer drives this further. At minimum, she learns generic things like Perl, which is very useful in specific situations. Till you haven’t slurped an entire file with one line of code, you haven’t discovered the power of Perl. And then she masters something like VBS/PowerShell or AppleScript or Tcl/Tk, scripting languages that are useful for so many day-to-day things. And then she may learn alternatives in her main area of work.

Polyglot programmers integrate multiple languages as suited for system at hand. You may write a ColdFusion page and shell out to a VBS script that does something. You may write a file-processor in Perl and exchange data with your Python script in XML, maybe via a web-service. And if your environment allows it, you may mix languages in your environment – like Objective-C and Swift can co-exist in XCode.

Finally, contrary to expectations, instead of consolidating the language scene is exploding! Golang and Dart. F# and Clojure. Scala and Elixir. Swift and Hack. Go count!


Of the three trends above, the devigner is practically dead in the mainstream. The DevOps developer is the future – you have a DevOps approach or you are dead. A narrow view of code-only-and-I-am-done will no longer cut it. And polyglot programming is rising in importance as specialized languages multiply.

What do you think of these trends?


Why Are We Called “Mindfire”?


People have often wondered why we are named “Mindfire”. It is not a word, although it is clearly a composite – but why exactly “Mindfire”?

For most human endeavor, almost anything worth doing, at least two things are necessary: intellect and energy. Boxing seems like a physical/energy sport, but the best boxers use their heads more than their hands. Research looks like mental/intellectual effort, but the best scientists are tireless in their pursuit.

In the field of software development, the balance of these two is especially critical.

It is true in all fields, but it is more true in software development, which requires perfect balance of both in ample amounts. It is not enough to be excellent in either – you have to be excellent in both intellect and energy. This is a rare combination, and it is what sets top software developers apart from the rest.

If you are only good in raw intelligence but lack energy, drive, spirit – you will keep thinking forever about the best algorithm to implement that would solve a problem – and not write any code at all.

And if you are only good in raw energy but lack intelligence, learning, a sharp mind – you will write five thousand lines of code with functions of five hundred lines each – that do not solve the problem.

When Mindfire started, I had observed all types of software developers in few years working as a tester/programmer – the needlessly brainy ones, the heedlessly hyperactive ones, the ones with neither, and the ones with both. Only the ones with both were truly successful. Steve Jobs, Bill Gates and common wisdom in software industry are all correct – one great programmer is worth twenty five average programmers, at least.

With this backdrop, and the desire to create an organization for the rockstars of software development – not your average or good developers but the great programmers, the rockstars – the name had to reflect what everyone in the organization would have.

Everyone in the organization would have incomparable intellect for software development – a great mind. And everyone in the organization would have unequaled energy for software development – a great fire.

Mind and fire. Great even when alone. Mind-blowingly outstandingly fucking awesome when together.

Mind and fire. Mindfire.


Introduction to Xamarin and ASP.NET vNext in Nepal


Two Mindfireans – Nirmal and Tadit – will be traveling to Kathmandu shortly, to speak at the DevTechDays event organized by Microsoft Innovation Center, Nepal on September 20 2014.

Nirmal will speak on “Jumpstart for Xamarin Forms”. Xamarin is an interesting way to write code in C# and have it run on iOS, Android, Mac and Windows.

Tadit will speak on “Introduction to ASP.NET vNext”. ASP.NET vNext is the next generation of ASP.NET, in preview with some interesting stuff.

It is interesting how unexpected things come up, and that Mindfire is contributing in its own way to Nepal’s technology community and knowledge ramp-up. To celebrate their new opportunity and our new moment of pride, Nirmal and Tadit receive a Special Award of Rs 20,000 each!


Nirmal and Tadit: congratulations, best wishes and bon voyage!



Can Weekends Begin on Fridays?


Weekends start on Saturdays. What if they could start on Fridays? What?!? Are you out of your mind?


Carlos Slim set the dialog rolling for fewer workdays recently. He advocated 3 11-hour workdays a week. Larry Page has referred to a 4-day week. Debate has continued, with views ranging from impracticality to glee. The more I think about it, the more I believe it is worth trying.

What if we actually do it while the world debates about it?

Allow me to share some thoughts – benefits, problems, constraints, and possibility.

Contiguous time off from work helps our minds to relax, and our fires to recharge. It means time for hobbies and interests. Learning for techaholics. Research for thinkers. Tinkering for doers. Open-source contribution or personal projects for workaholics. Ideas for would-be entrepreneurs. Community and social work for do-gooders. Parties for party animals! Travel for travel-lovers. Family and kids time. Romance for couples. Sports for sport lovers. Home travel for those from other cities. A mix of all of the above for most of us!

Better life. Broader outlook. Broader minds. Better work.


On days you work, your work of 11-12 hours blocks out the rest of life. Those days can be more tiring. Work can suffer. An organization with longer weekends may be mistaken to be lazy, under-ambitious, and neglectful of work.


With many benefits, fewer work days seem attractive. But there are constraints we have to consider.

Every organization commits something to its customers/clients. At Mindfire, we commit 160 hours of work a month, 40 hours a week. Anything less and we have to suffer – when the organization earns less, everyone earns less. Work is the economic activity which generates wealth for all. Income is carved from eternity with our time. When income suffers, everyone suffers. That cannot be allowed to happen.

Non-work activities at work
In flexible workplaces, most of us have some non-work activities at work, perhaps about 10% of the time. In other words, 40 hours of work need about 44 hours at work.


Now let us consider the possibilities.

3 x 11
3 days of 11 hours each is 33 hours a week, so that is infeasible.

4 x 11
4 days of 11 hours each can mean 40 work hours, which is feasible. However, getting clients to agree to one day off every week, even when other days are used to make up – is tough. Anything which harms work, will harm those who work.

4 x 10 + 4
Practically doable, similar benefits: 4 10-hour days followed by 4 hours on Friday!

This would mean 9am-7pm or 11am-9pm or whatever, Monday through Thursday, and 9am-1pm or 11am-3pm or whatever on Friday. Work ends and the weekend begins with lunch on Friday! Yay!

Interesting? Interested?

This could be a giant step for work, a small leap towards Work 2.0.

What do you think?


A Short History of Desktop Operating Systems


At the beginning of this millennium, the PC/OS wars had practically ended. You used Windows everywhere. Only some companies like Mindfire, which worked on Apple Mac development, had any use for platform diversity. Everybody bought Wintel – because you had to. Software was made for Windows only in most cases, so being on anything else meant being unable to run most things you needed.

Then, several unexpected things happened.

First, Operating Systems. The OS landscape changed. Apple made a spectacular comeback, and working on a Macbook was cool again. Mac OS X flew high. And Ubuntu rose from the ashes of Unix and Linux fragmentation, unifying them and making a friendly Linux.

Second, the Internet. The web became dominant platform for app delivery. Functional software that looked grey and dull, was suddenly all over the colorful web. Chrome and Javascript/AJAX hastened user experience on browsers that rivaled native desktop software.

Third, Design. Or, the ascent of design. Apple led the charge, and the world of tech grew to appreciate design for what it was – the yin for its yang. And those dull grey apps died a quiet death.

Fourth, Consumers. Technology exploded from enterprise/business to the consumer setting. Revenue started skewing towards consumers – although that died an early death due to our next point.

Finally, Devices. In came the world of smartphones and tablets, which changed the meaning of computers. And led to the creation of cloud. And desktop platforms became just one out of many access points for the cloud. Which leads to the Internet of Things. Coming next.


All the above made desktop platforms a choice, since the world of computing was no longer restricted to the PC and OS you used. Today, consumers buy Mac systems and techies buy Ubuntu systems, without needing to think what they will not be able to do. Because they can do everything.

At Mindfire, we celebrate this victory of choice with a commitment to platform diversity. Mindfire is investing in Ubuntu and Macbook laptops, aiming to have at least 15% of our people on Macbooks, and 15% on Ubuntu.

Why is diversity important?

A rainbow is interesting only because it has all those colors.


What Have These Two People Done?!


Two Mindfireans recently achieved commendable personal milestones, and it inspires everyone around.

Saurabh Agarwal
Saurabh will be attending Mobile App Europe from September 29 to October 1, at Berlin, Germany. He will be presenting  on October 1 on “Tackling Fragmentation in the Mobile App World“.

Saurabh found out about the conference, discussed topics and prepared material. Saurabh’s interest, initiative and thought process, are admirable.

In recognition of his ability to think beyond the horizon, Mindfire is proud to announce a Special Award of Rs 50,000 for Saurabh. Congratulations and bon voyage, Saurabh!

Tadit Dash
Tadit will be attending Microsoft MVP Global Summit from November 3-6, at Bellevue and Redmond, Washington, USA.

We had earlier learnt about Tadit’s inspiring journey. As a Microsoft MVP, Tadit was invited for the annual MVP summit, a meeting place for MVPs from around the world.

In recognition of his exemplary contribution to knowledge, Mindfire is proud to announce Travel Sponsorship for Tadit to attend the summit. Congratulations and bon voyage, Tadit!


Saurabh and Tadit have that special interest, a passion for tech, a desire to excel, a desire to be recognized at the global level. At Mindfire, you would notice this quest for knowledge beyond business. Business creates limits, knowledge sets free.


Please join us in congratulating Saurabh and Tadit, and do join the journey of knowledge!

We make our own paths, even while we travel together.


Thoughtful Programming Can Save Days. But Do You Have Time For It?


Today I will share an experience in the effects of inflexible software, actually caused by hard work!

We use a SaaS service for our payroll process. Last month, we needed to add a salary component for selected people. We decided that instead of adding it as the pre-defined “Bonus” component, we would name it “KMBonus”.

All good till now. The payroll system allows addition of custom components. Then you download a blank Excel file and upload it back after inserting figures.

We downloaded the template which had a column for KMBonus, along with columns for every other component. This sheet was filled for KMBonus and uploaded back. It failed. No error message, nothing – the page just refreshed silently.

What was wrong? Was it a problem with file format? File size? Number formats? Did columns or sheets or anything get rearranged by mistake? This took a couple hours. When nothing worked, a support issue was filed. It was a weekend.

On Monday, support tried to understand what was wrong. After few hours, and with the file being analyzed, support figured out what was wrong – the uploaded file couldn’t have empty cells/columns while being uploaded back! So, although you wanted to update only KMBonus column, you had to either insert zero into every other cell everywhere, or delete all other columns.

First I was upset – that a simple error message, or documentation on expected file format, would have helped avoid this. Then I realized something else.

Entire payroll for hundreds of people got stuck for a couple days, because the programmer had worked hard – but harder than necessary.

Think about code structure. It would have taken more work, more effort, to put in all this validation – “Check all cells have numbers, ensure none are blank!” Sure, requirements may not have covered this case, so as a programmer I am free to do anything. But if I am free, do I do things after thinking about it – being thoughtful about work? Do I do things for the user – being thoughtful about users? Or do I do things that are just technically correct? Instead of tightening by validation, a simple conceptual foundation would have reduced the programmers’ work and rendered flexibility to user!

Imagine if the conceptual foundation had been: any blank cell means nothing is to be done. If something has a number, update component to that number. Simple.

So when you get a sheet with many cells blank, entire columns blank, ignore the blank ones. And process only the ones with numbers. Did I say simple?

Think of code. This is actually less work, is conceptually clear, and means much more to user! Smart work versus hard work. Saves days of effort for the programmer. And, in our example, a difference of days in payroll processing!

Thoughtful programming is based on common sense. Thoughtful programming reduces work. Thoughtful programming can save the day. Days.