Math & Music, the two universal languages

Long back I heard about Math and Music being the two universal languages. I think it’s true. The idea is that while the normal day to day spoken languages require learning, interpreting and figuring out the real meaning of a sentence from the context, math and music are a lot less ambiguous and the same music could be appreciated by anyone on the planet (or should I say Universe as they are universal). A great example for music is the infamous song that first broke the 2-billion limit of view count on Youtube, I don’t know the language but I myself watched it several times :).

My son has been learning his Piano lessons for more than a year now. Given his desire to do a lot of other things such as playing minecraft or ipad games, he has no interest in practicing the lessons at home. But nothing happens without practice unless someone is a prodigy in it. He is given some lessons to practice and only after he clears them he can go to the next song. Some times he is stuck in the same song for a few weeks. Given my lack of education in music, I feel helpless. Every week, the music instructor advises to practice and my son practices it in his own way and I don’t even have any idea whether he is doing it correctly or not. Sometimes we just rely on Youtube to see someone else playing the same song and see if he is doing it similarly.

One day after the class I told his music teacher that when it comes to Math I teach my son myself but when it comes to Music I am helpless. The teacher had an advice that I could also sign up for the lessons and learn :). My lame excuse was that I am super busy.

But this whole episode got me into thinking about the stuff I am more comfortable with, Math. I know many busy working parents have no time to teach their kids. Some of them may send their kids to tuition or special classes. What’s hard to send a kid to classes spending hundreds when the parents are earning thousands right? Of course, there may be another situation where the parents are not educated enough (or long forgotten what they learned) and so can’t help their kids. Now say the kid is doing poorly in the tests. What can the parent do other than being helpless? Just like I feel helpless when the music instructor tells my son he is not playing the notes correctly and I know I can’t help him back at home during his practice.

While I still can’t help my son with his music practice, I did do one thing. I figured out how to record the music on our digital piano and play it back. This helps us at least validate if the tempo is correct because of the metronome. This is doing two things. It’s helping him get better. It’s helping me to tell him to practice again and again till he is getting the tempo correct 🙂 Essentially the subjective music could be objectively measured by a piano noob like me in whatever small way.

Posted in Uncategorized | Leave a comment

Numbers and Molecules

I try to push the boundaries when it comes to teaching Math to my son. First, I am very proud of his achievements so far. Next, it depends on his mood :). There are times where he does great and then there are times he comes across as not so bright. The later part is to do with his concentration skills :).

Anyway, after having him master the 4 basic math operators and the powers, it’s time for the bigger things like gcd, lcm and so on. I usually introduce something a little more advanced for him than  he is used to and see how he is doing. Things usually go over his head but from then till he gets the concepts is where I try to brainstorm teaching him the missing gaps to get him where I want him to be. In the process, I try to draw various analogies to explain concepts. Sometimes, explaining those other concepts themselves take time but there are benefits in doing it. That is because, the same concept might be tractable in one example than the other.

Because of my recently found interest in all things “quantum”, he knows a little bit about atoms and molecules as he watches all those videos with me on Youtube. So, then it stuck me that I could actually teach him a bit of those advanced math concepts using atoms and molecules.

He knows water is “H2O”. I also told him about Carbon DiOxide (CO2) and Carbon Monoxide (CO). Then I asked him what’s common between H2O and CO2. Essentially I was trying to get him learn that both the symbols and their counts contribute to “commonness”. We did the same exercise with CO and also Hydrogen Peroxide (H2O2).

So I was explaining him how the atoms like Hydrogen and Oxygen is similar to Prime Numbers (which he kind of knows) and Molecules like Water and Carbon DiOxide while are like Composite Numbers. I think this explanation really helped him. What’s more, I am essentially setting the stage to make him understand GCD, Greatest Common Divisor.

In our learning process, he wondered a couple of things.

1) Why in Chemistry it’s written as subscript while in Math it’s written as a superscript.

2) Why do you have to use numbers at all. Why not HHO? This is reasonable given in both cases 3 letters are used. Then I explained how there are chemical compounds where the atoms repeat quite a bit. Methane for example is CH4. So, obviously it’s easy to write CH4 instead of CHHHH. And that there are complex chemical compounds that are even bigger.

One thing I have been trying to do is to make him engaged with me like asking questions and coming up with his own ideas. He wasn’t doing that for a while but seems like there is a change. He seems to be more engaged and trying to come up with question and answers.

Growing up I never liked mugging up formulaes and so I am not much of a fan of memorizing a lot of things. So, rather than being hung up on waiting till he memorizes all the multiplication tables or other things, I am trying to just keep going at all the beauty that is there in Math and the Universe :).

Posted in Uncategorized | Leave a comment

Continuing with a 3d print that’s partially printed

Whenever I run into a trouble, I research about it and finally used to document what worked for me. I did this for a long time even before I started working on ITIL and ITSM at work. Knowledge is the key. But it has to be specific and just sufficient. These days I have been sloppy on documenting the distilled knowledge I keep gaining. But I wanted to write this down as I know I will keep coming back to this.

I was trying to do a complex 3d print today that in total would take about 5 hrs to give it as a gift to someone. After about 3 hrs of printing, the filament broke. I was frantic. I tried to manually squeeze through the broken filament but most times it doesn’t work on my printer. So, I had to halt the print. It’s been in my todo list to do multi-color 3d printing using my single head printer which is possible by pausing, changing filament and starting. But never got to it so far. Felt that it’s too much of a hassle and who knows what all challenges it could have. But today, I was desperate. The cost of filament is not as much that I am worried but it’s the time it takes to print. So, after stopping the printer, I kept my cool and didn’t remove the 3hrs worth of the print that happened thus far.

I use Octoprint, so I also noted down the layer it was printing. I use Simplify3d which has a feature to generate GCode from a certain height. Note that generating GCode from a certain height of the model is different from telling the printer to start printing at a certain height. I almost would have messed up had I not realized this in the last minute.

The gcode contains the following at the beginning.

G28 X0 Y0; home X and Y axes
G1 X140 Y0 F9000; move to dump position
G28 Z0; home Z

They tell the printer to first go to x0 and y0, then go to the dump area (where the heated filament is primed and dumps the initial string of plastic) and finally to home the z-axis to 0. Printers usually don’t have a precise 0. They just have a controller on the 3 axis which tells what should be treated as 0. So, as soon as the print head moves and touches any of the 3 sensors, it immediately sets it to mean 0. This is actually good because, the print bed can then be relative where it needs to be based on the thickness of the bed, any additional layer of adhesives and the springs holding the bed. As long as the printer knows what the 0 z-axis is without using the print bed itself, it’s then a matter of adjusting the print bed to match this 0.

I first commented out

; G28 Z0; home Z

above because after I reaching the dump area, if I home Z, the part is going to crush.

Now, in my case, I knew the printer was doing layer 305 and at 0.2mm resolution that is 61 mm. I used caliper to confirm. I also homed z to 0 carefully without crushing the large part and then raising the bed to 61 mm and confirming that is the correct height.

So, in Simplify3d, I set the “start printing the height” set to 60.8mm. The 0.2 mm gap is the layer height. That is, when the print head is at 61mm, it’s actually filling up the layer that occupies 60.8 to 61mm. This setting resulted in the following gcode.

G1 Z61 F180

This tells the printer to move 61mm. And initially I started the print by just commenting the homing command. While the filament was heating up back to 185 degrees C, I realized what the printer will do seeing this command. It is already at 61mm. But it doesn’t know that since I commented out the Z homing command. That’s when I searched online and figured out that while G1 is a “move” command, G92 is a “set” command. That is, you are telling the printer to take whatever is the current z location and set it to the value you specify. Viola, that’s what I wanted.

So, I changed the command to

G92 Z61 F180

and everything worked as expected. As I finish up this post, my print is almost getting ready and it’s an awesome Stereographic projection from Thingiverse scaled to 150%. I am quite amazed how the whole thing bonded together as if there was no interruption.

Posted in Uncategorized | Tagged | Leave a comment

f(x) or Fox?

I grew up with a strong interest in Math based on what has been taught to me. Which is just the concrete details to clear the exams and nothing more. Only much later in life did I realize there are many abstract concepts that are beautiful and have much wider implications to our understanding and reasoning. So, my desire is to teach my son not just the concrete concepts of math but many abstract concepts. For someone soon turning to be 6yrs, it’s a lot to take. But to be clear, I don’t force on him or don’t spend teaching even a single extra minute the moment I see his interest waning. For a kid who needs to go to KG for just 4 hrs, and have 4 different private classes (none of them related to studies) during the week  he has enough fun. Some parents send their kids to Math classes like Kumon. However, I don’t send my son to such programs. For one, I actually know a lot more math still at my finger tips than many of my age 🙂 and second, I enjoy teaching and finally having that personal attention helps me to access his progress. It helps me understand not just how he is learning but why he is not able to learn. That makes me figure out the gaps in his knowledge and understanding and come up with topics to bridge those gaps.

One of the things I have been trying to get into that little head is the notion of functions. I think some folks are getting their kids on to programming at a very early age but this is not about programming functions. Tools like Scratch are making people get their kids to start learning programming early. I have mixed feeling about it. I mean, not about how early they should start but whether that’s the right way to start. I actually lik the Lego “Fix the Factory” game. It is lot more structured and helps think through strategy and convert the strategy into instructions that indirectly teaches programming.

I am talking about mathematical functions. Like f(x). I tried teaching it a few months back but realized that he was not ready yet. I tried again a few days back and didn’t find much progress. I usually try to go with simple and make it more complex. So, we tried f(x) = x+5, f(x) = x^2, f(x) = 2^x , f(x) = x^x and so on. I would give him f(x) and ask him to write the expression for say f(5). He just wasn’t getting the idea of what’s happening. Just when I think he made progress, say with x^2, he would have trouble with 2^x. It shows clearly that he is trying to memorize or just understand specific examples but not getting the underlying concept.

I changed my strategy. Rather than making him learn f(x), I thought I will play with him a language game. As he is always ready to play than learn, I told him that I have a new game for him called “Secret Message”.

Say there is a sentence “The quick brown fox jumps over the lazy dog” and I need to replace all the ‘0’ with ‘8’.  Then it becomes “The quick br8wn f8x jumps 8ver the lazy d8g”. He immediately got it. So, I gave him a few sentences and create the corresponding secret messages with different replacement strategies. Like changing ‘e’ to ‘3’, ‘s’ to ‘2’ and so on.

Then I asked him the following which I tried earlier as well but didn’t succeed:

f(x) = 5+x+2^x+x^2+x^x

f(5) = ?

And he did it without a single mistake. I was happy and proud. I don’t think he still has a very good understanding but I can see some improvement. Because, before asking him like what is f(x^2) didn’t work at all. But now that’s working out better. g(f(x)) is where we are currently stuck :). Then imagine going to f^n(x) and relating addition to multiplication via functions! I know we will get there.

Even with all of this, I am sure he is probably not understanding what a function means mathematically in a formal manner. But introducing such concepts can help him to improve his overall understanding is my hope. And doing it in the best possible way is my desire.

When a good student understands, it’s to his credit. When a good student doesn’t understand then it’s his teacher’s fault :).

Posted in Uncategorized | Leave a comment

My thoughts on Kickstarter

Last year I found out about KickStarter and joined it and pledged on 4 projects. As per the way they classify, 2 of them are technology related, 1 design related and yet another fashion related. My pledge was in a span of 3 months and then I stopped using it. The two technology related projects are, one that allows making 3d print filament and another for the 3d printer itself. The printer finally arrived a few days back and I will have another post about it. This post is mainly to ponder on my experience of using Kickstarter and why I will be less inclined to use it. First, I think it’s a great way to allow anyone to receive funding and follow their dreams. While I appreciate that part, as a consumer I have some concerns that if and when they can be addressed I might look into participating more.

Here is my list of issues.

1) ETA: Every projects gives an ETA that is 100% guaranteed to be wrong for complex projects. So, if you are hoping to use them as gifts on special occasions based on the date the projects mention, you would be signing up for a big disappointment. Similarly if you sign up for a project thinking you will have some free time at the time when the product is supposed to be shipped and it ships say 6 months to 1 yr (not unheard of) later, then your personal situation might change and not have as much time to dedicate. I know that’s the problem of the individual but it is something to be aware of when pledging your hard earned cash.
2) Skills: The 3d filament maker kit for which I pledge $365 is still not completed after a year. There are multiple reasons for this.
2.1) There was no assembly documentation. Doing it using Youtube videos is a big pain
2.2) I didn’t know the level of complexity of electric wiring when I pledged for the project. It seems to be fairly complex for a novice person like me. On top of that there was no clear documentation and the videos don’t clearly show the details and there is a lot of wiring. When pledging for a project for a complex kit, there is no easy way to know what type of skills are needed and to what level. The videos pitching the project only show how the product works but there is not enough information on the complexity of the project.
3) Support:
3.1) As I was assembling, I found that one of the parts was not fitting correctly and when I contacted the owner of the project, he never replied back. There is no way I would ever be bidding for this person’s project again in my life, trust me.
3.2) Most of these kits are hand packaged and there is always a chance for missing parts. It happened in case of the 3d printer. If you are lucky (like my 3d printer guys), you would get the part shipped that too for free.
4) Quality: A lot of times people are coming up with ideas to do something for the first time or improve existing feature. In doing so, things may not exactly work out as they expected in their prototypes for creating the video to pitch the project. So, if some of the parts they select break after a few uses, then it may be hard to get a replacement part especially if it’s custom made or they made it with 3d printing.

A lot of projects are structured such that the more you pay the sooner you receive it. But after watching some of these projects and the comments it seems like usually it’s a good idea to not be in the first batch. Why? Because the first batch guys will uncover all kinds of quality issues that result in several modifications to the product by the time the later batches receive. And those later batch people actually receive a much better product. Of course, sometimes the delay between the first and last batches is as high as 1 yr which is a pain.

You would also notice that once the company has shipped the first batch of their product they start fulfilling the direct orders (pre-orders) and not necessarily those that started on Kickstarter which is actually the seed money used to make the thing happen in the first place.

Here are some of the things I would like to see on a platform like Kickstarter to protect consumers.

1) Clear indication of skills required to make use of the product. If something requires soldiering it has to be explicitly mentioned so people who assume they just need a screwdriver and nothing else can decide if they or their buddy can complete the project or they need to stay away.
2) Assess and provide some kind of risk number for the project. A lot of the people who start their projects are not necessarily experts in running the business. They may have some great idea and technical expertise. Even people with business experience might not have experience in how to get the product manufactured in China, for example. Or what they thought works in prototype might not be working for mass production. Some of the projects raise several hundreds of thousands of dollars. So, there needs to be some kind of indication on the risk associated with the project actually completing.
3) Ensure Kickstarter pledges are fulfilled prior to other channels of fulfillment especially if the project is running late or there is a significant delay between batch x and x+1 while the project initially claimed just a month or two.
4) Provide more quantitative way of understanding the project progress. Today there is no such mechanism and requires pouring through lots of comments. For example, I know one project where a lot of vexed people wanted to get their money back. The project owner supposedly returned money. If collection can be done via Kickstarter, refunds could also be done via them. How about Kickstarter actually tying up with shipping companies and allowing the backers to use the service (much like eBay does) and track the progress of shipments?

The above are just a few but there is so much more that can be done to bring more transparency into the project execution. Right now, it only serves as a fund raising platform. This is not acceptable to me as a consumer based on my small set of projects I tried. Of course, everyone has their own tolerance to risk, their own patience to resolve issues or go rant about a project owner if they are not happy and so on. This is my personal opinion heavily based on the experience I have gone through.

Posted in Uncategorized | Leave a comment

me-na me-na me-na me-na

Making pre-school kids interested in anything requiring concentration is hard to do. And if the kid is very active and always in play mood, forget about it. Yet, I try my best to make my son learn something new regularly. A few days back, I pronounced my name backward and repeated it a couple of times and asked him to observe how my name comes out of the repetition. Then I went to work and in the evening I noticed that his slate had his name forward and backward. From the handwriting I knew it wasn’t he who wrote it 🙂 and yes, it was written by his mommy. But it seems he tried doing it and then asked his mom to help him. I was happy that he tried to follow through and not just stop after I told him about it.

Then I thought about making use of this opportunity, that he was interested in something, for good use to teach him something new. So on my long commute back from work next day, I knew what I wanted to teach him.

I asked him to repeat my name backward and listen how he could hear my name forward. Then I asked him to do the same and how his doesn’t do it. While at it, I also took the opportunity to explain him the difference between letters and syllables and how reversing by letters is different from reversing by syllables. Then we moved from letters to numbers.

So, we started with 12 and reversing it gives 21 and repeating it gives 21 21 21 21 21 and now you can see 1 2 (12) pattern within this.
Then I asked him to do the same for 123 and how he can never get 321 from it. He tried to show me that he could write 321 and then immediately write 23 to get 123 :). Smart, but that’s not repetition. So, then came my question to him, “Can you think of a 3 digit number which when reversed and repeated, it gives the original number”. In about 30 seconds he told me “111”. I was a very proud dad :). Not sure if it was a fluke or his brain is indeed growing to the level where he could understand all the things I try to throw at him.

He will soon be turning 5. One thing that became very clear to me early on (when he was about 3 yrs) is that the best way to make him learn is to take the topics he is interested in and try to teach what I want to using those topics. This is what I call a win-win situation with a kid.

Posted in Uncategorized | Tagged | 1 Comment

Rant on commute

For many years I just lived one exit from work. So, never really had the experience of a long commute. I still live at the same place, but my work place changed for over 6 months now. Commute on 101 has not been very pleasant. I understand that economy is doing very well, at least in the bay area where people can sell their companies for Billions even when there is no profit. But I think the problem is partly an engineering problem. I feel that some of the systems we have in place are not correct. I will list down a few of my observations.

1) “Metering on”: I think this is a useless technique. I have actually seen the traffic to be much smoother when these things were not on at all than when they are on. But what’s more frustrating is that the car pool lane timing stops at 9am but the metering continues till 10am.
2) “Car Pool Lane”: I understand this encourages people to share the ride and reduce the carbon footprint. But I hope that’s not the main intent of this program and the main intent is to reduce traffic congestion. On the contrary, I see people who have the privilege of getting on to the car pool lane doing it in such a rush as if that’s their highest priory of the day that they cause sudden stops for people in other lanes. This is actually adding to the congestion rather than reducing. On top, think of all the wasted gas to accelerate back on a stop-and-go traffic. Is the net result more greener? Not sure.
3) “Car Pool Lane”: Yes, once more. Do we need Car Pool lane on a Friday evening? There are stretches on 101 where there is not so much congestion. Imagine a world where the traffic boards are digital and whether to enable car pool lane privilege is dynamic and based on the current traffic conditions. For example, there is an accident? Disable car-pool lane for the greater good.
4) Over/Under bridge: I see road expansions happening all the time. But I realized that when there is a perpendicular road, whether the bridge is under/over bridge can make a big difference with these expansion efforts.

When I was doing my Bachelors, I did this course called “Computer Simulation” which I thoroughly enjoyed. We used to have access to a software package that allows modeling complex real-life problems. Writing code felt like writing assembly language. However, the constructs were very rich and even the most complex problems could be modeled with just a few lines. Interpreting and understanding the results of the simulation is a different problem altogether. I wish I have access to a similar software for me to test out some of my hypothesis on traffic specifically for 101.

Posted in Uncategorized | Tagged , | Leave a comment

Rare breed of end to end developers

I had some interesting experiences recently trying to recruit. The employees entering in the workforce are grown up with Facebook, Twitter and Amazon.com experience and expect the same in their enterprise applications they need to use at work. So, unlike the past boring enterprise apps these days there is a lot of thought is put into the user interaction and sleek user interface. Based on the projects I will be doing in the near term, I want to hire people who are good at web UI design. I didn’t think that it’s that difficult to find good web UI developers. However, my experiences proved otherwise. For example, one student graduating out of a top US university with Computer Science degree didn’t wanted to do UI work. Another colleague’s referral replied that she thought my team is doing backend work and she doesn’t want to do frontend development. Same was the case with someone we interviewed for summer internship.

I am not sure what to make of this. Do people think that working on web frontend is easy or hard? Do they think that backend development is more fun or more challenging than frontend? Personally I never tried to box myself to one or the other. I always wanted to learn the whole stack. Starting from the database to the browser. My reasoning is simple. If I know the whole stack, I can do better design of any application. If I know the whole stack, I can implement an idea all by myself. Besides, I like to observe the various UI styles that I come across using various websites and try to bring them into my designs. Whether someone considers UI work is challenging or not, it’s for sure very creative and more importantly fun.

I am all excited that we will be using AngularJS for our next project. To a regular JavaScript developer, AngularJS is what C++ is for a C programmer. It’s what LISP is to a C++ developer. It would take some time to understand the concepts but once it’s properly learned it can drastically increase the productivity. It can help focus more on the logic and less on tweaking the markup.

I think any serious developer should invest in web UI development (or may be mobile or even both). Understanding concepts like the BOX model will ensure one to not sweat too much layout a UI mockup to pixel perfection.

Posted in Uncategorized | 1 Comment

Getting rid of features deemed to be irrelevant

There is always something new to do with any piece of software. As new features are added, there are ways to turn them on/off and after a few releases, you need an expert or a large manual to operate the software. Having a good set of defaults for all the various possibilities comes a long way to make it easy for an average person.

What about removing features? When should a feature be removed? Is “Never” really an answer? May be when 99% of users are not using it? Is it really based on how many users use or don’t use it? At first glance this seems like a good idea. For example, Firefox had a fix starting release 23 to get rid of the ability to autoHide a tab if there is only one tab (855370). The filer said “In this day and age, browser have tabs, and hiding the entire bar is useless and in addition causes problems with the new Australis theme.” I don’t know about the problems it causes for Australis theme but may be it’s worth solving that problem rather than taking a shortcut. On the other hand, let’s ponder on the first part… In this day and age, no one uses browser without tabs? That may very well be true (let’s assume so).

But I have a usecase where I want to disable it. I am looking at the possibility of having a browser display some interactive app on a touch-screen television and in full screen mode I don’t want that single tab to show. But I can’t hide it. Now, it’s not that this is a common use case or that there are not many users who want it. It’s simply the ability to provide a full-screen view where you don’t see other controls like tabs, period.

So, next time you are thinking of removing a feature, be very careful about it.

Posted in Uncategorized | Tagged | Leave a comment

Graduating, like R&D, will enterprise software interest me?

I went to the MIT TBP Career Fair in February. I went back to Boston after 16 yrs! It was like yesterday I was walking in the infinite corridor, yet there is so much change. I vaguely remember walking the career fair back then as a student. Now the tables have turned, I was there trying to recruit smart talent.

It’s usually difficult to pitch an enterprise software company to a fresh graduate who probably has a experience/interest in game development, mobile UI, Social Network or whatever the latest trend is. Having spent so many years in the enterprise software industry, one thing I can tell is that business processes are complex and constantly changing. The algorithm requirements to support complex business processes are as challenging or more as those encountered in writing a compiler or a process scheduler for an operating system.

Here is an example of something I asked a member of my team to do and he did a pretty good job in a day. The requirement was to arrange a bunch of things and show relationships among them in a circular layout. Initially the random layout based on some force based algorithm was pretty ugly and added to that, showed several criss-crossing line segments making the interface very confusing and ugly. I probably would have just settled for it had I not worked on some Project Euler problems and learned things like Hamiltonian paths and Eulerian paths. So, I searched a little and found exactly what I was looking for, a scientific paper on how to arrange a bunch of things and the relationship among them on a circle without criss-crossing. The paper is “Crossing Reduction in Circular Layouts”. Once I provided this to the team member, he implemented the logic and the layout now looks much better.

I want to mention a whole bunch of complex problems in Enterprise software that I think anyone with a passion for complex software and algorithms appreciate.

1) A project management application: where the project has tasks and the tasks have sub tasks and so on. Essentially this is a tree structure and things like cost and duration rollups require traversing up and down the tree.

2) A rule based cost allocation engine: This can involve dealing with data requiring pattern matching, data quality etc that requires concepts such as regular expressions. Then there is logic of allocating the costs down a hierarchical representation of some business entities. Like for example, take this particular expense and divide by country as a certain percent per country, then to the various departments and finally by a business service.

3) Most of us are familiar and use eCommerce. Have you ever wondered how the product images line up neatly in the search results even though the product images are coming in different dimensions from different vendors? This can be solved by scaling would be the first reaction. But keep in mind, if the aspect ratio is not preserved, it won’t look good. But if you preserve aspect ratio, then do you fix the width or the height? What if I want to specify a max bounding rectangle and ask you to scale the image such that the aspect ratio is preserved and the image size doesn’t exceed this bounding rectangle?

4) Some of my other favorites are Style/SKUs, Extensible attributes, Attribute inheritance, Data Quality and Deduplication all of which actually require pretty good understanding of various concepts including statistics and data mining. Usually it’s possible to come up with solutions that are 80% good without complex technology, but getting the remaining 20% is where the challenge and fun is. Many top companies are probably spending all their research effort in squeezing this 20%.

Next time you are thinking whether you should join an Enterprise Software Company and whether it will have enough challenges to keep you interested feel free to talk to me. If you are graduating soon from a top school or a very talented software developer interested in working with top notch developers working on complex and interesting problems, feel free to reach out to me. I am on LinkedIn.

Posted in Uncategorized | Tagged | Leave a comment