Soo.. WHAT!!

Saturday, January 26, 2013

Whats it like to be a software engineer!

After reading through a zillion number of posts/emails/updates/comments about whats its like to be a software engineer and all that one would otherwise have pursued, I wanted to really read through my own mind and a little bit of others' before I knew whats it actually like - to be a software engineer.
Every other post that I have read would start something like this, an Engineer in the US sitting at office gazing through the window and suddenly nature reminds him of all the life that he spent inking away the code snippets and all, possibly bad things, that they have caused to his/her life. All of them would want to start a business, do something very "innovative".
Believe me, in most cases where one can attain fame in a possibly quicker way! For instance, open a new restaurant, have a VIP doing the opening ceremony while you stand next to him and give a pose for a photograph and then having it published in one of the leading newspapers/dailies, probably talk about some different French cuisine that you are introducing as part of claiming innovation, and the city talks about it for a while and couple years down the line its all long forgotten. And then there are these people who want to direct a short film after they watch some reality show. Overnight they would start writing a script. And the next couple of days, they live in dreams!
For a moment, stopping here and thinking through it - I can only imagine 2 things for such an email from a software engr: 1. one of the many bad days someone is going through! 2. A confused someone who never actually knew what they need in life.
Now, Instead of being a software engineer, if I am asked to do something else, I'm pretty sure I would mess it up worse than what I do with my code everyday! Given all the trial and error that I do, to have a fork statement working in System verilog, I'm quite sure I'm better off with these trial and "errors" than to open a restaurant or a boutique and so on.. I at least stay a bit happy, if not for a bug in the tape out. i'm okay with the ones that I accidentally slip through, they would not cost me much than that extra amount of debug time.
Also that IMHO, when one actually wants to do something innovative and really think they are not able to put in their heart and mind into coding, I do not think we would still have hiring in IT and that whole lot of people out there fighting to crack a software company interview.
And how tough it is to agree to the statement that coding is less innovative! I have heard Singers saying there's no end to learning in Music, Doctors talking about handling a different case each day, teachers, bankers, even politicians talking all great things about their jobs and probably no one other than a software engineer complaining about their jobs. If only I would want to find someone who would know that every construct in C++, undoubtedly I would be left with no one other than Bell labs' Stroustrup! Agreed that the amount of any given language that we already know to do that everyday job is probably enough, but come to think of it why would a musician not just manage with the number of raagas/kritis they already know. Or anyone for that matter.
Bitter truth is - what a software engineer thinks innovative about doing a business has also been a very tough job for a lot of people, otherwise why would we hear about the fraud finance companies and the losses further. Innovation is not about they kind of work we do, its about the way of doing that same work that's done. Its an inside job!
So when someone goes whining around about the cons of IT, I can only be sure that they are unsure of what they are doing (whining around) or what they want to do (in the future). And given a chance, they will be the last to dust off the fact that they get to earn in dollars and travel across the globe in someone else's money! Its not about your work, its about your mind.
On that note, Hail software industry! :D
 

Saturday, December 08, 2012

One of the most unforgettable days

is today, that I so cant wait to write about.. and want to register it so badly, just when the memories are tender! Like they say you just don't know what the day has in store for you sometimes, that you feel all energized and amazing!
Now, I don't know who this >6 feet tall chap is-something quite common in a country like America - a random conversation with a complete stranger. I was in the pantry picking up my morning coffee and was busy checking the creamer-sugar proportion when I heard this feeble voice pretty close. For the kind of person that I am, I would not have cared to give a ear to a stranger. But this is what I call destiny. When it is destined, every damn thing will fall in place, just so well! I turn around and throw a slightly puzzled look. He says 'I was mentionin about the coffee, Don' ya need two cups, isn't it too hot to hold. in the other pantry there is this Dunkin Donuts coffee machine, that coffee is quite hot and then we need two cups.' And he picks it up and says 'ooh this is hot too. May be you can withstand so much heat. That's awesome'. I'm just listening and thinking at the back of my mind 'OH MY GOD!!!!!!!' Are there such handsome men living in this world! phew! Now that's just way too much for me to handle! My brain that's been idle for so long wakes up all of a sudden all geared up and picking up the keyword 'the other pantry' - that means you must be seated somewhere that side of the aisle and so you must be a regular to the pantry there. So you dumb head start walking to that break room the next time around.
In reality, I'm speaking to him. -Multitasking capabilities of human brain is such an amazing creation of God, and it just knows when to leverage that! I told him 'we have it like very hot in India. In fact I feel it's less hotter and wouldn't mind warming it up in the oven for a bit more than couple minutes.' He was amazed! He asks me about Starbucks in India and I talk about Mumbai and how we might need time to develop some taste for it as the coffee we have is quite different. We talk about Cafe Latte n Cappuccino. He says 'oh yeah, but for me I just need it desperately that I can't go on without it and the problem is we go on to spend like a 5 bucks for the same coffee there and though knowing its a bit stupid its just that, can't help! I said I would prefer spending that at Ben n Jerry's. He says oh there you go.. and smiles! I'm melting - how can God set up such neatly placed tooth, like these tiny ones! And his face is wholly lit by that simple smile! I was like I would love to talk to you more - thinking :(
He probably read my mind. He said by the way I'm Paul! And shakes hand. I think 'the one and only Paul!!'
The conversation continues with what do you do and I talk about the SoCs, he relates talking about Verilog and stuff. He builds automation tools for embedded platforms. He says he loves doing what I do! I'm happy. He is from Minnesota and he talks about the weather there and some of his friends in Chicago from Calcutta and how they initially struggle through the weather before settling down! I ask him how he likes San Diego and he talks of the good weather that SD is meant for! Like he doesn't need jackets here most days and likes the sun. He tells me about how weather affects some people's state of mind and all that. He was asking me if I like it here and I said ya kind of, I tell him how I'm struggling through the separation from my family and he says 'ya but apart from that.. Having fun is anyway not very related right' He checked if I have some good friends here and I talked of all the weekends I spent here. He was like cool! He was first of all very impressed with the fact that I'm fresh from India given all the newness one would feel in a place like US of A! His eyes went wide and he smile saying 'That's awesome' - the American 'THAT'S AWESOME!!!' :D

And then we move on. He said 'hey by the way, nice meeting ya'. I was like same here * thinking and that's just not all that I wanna tell you man! You are the most handsome Man I have met in life so far! No Brad Pitt or Jim Carrey would replace your awesomeness! God doesn't bless everyone with perfection. I mean it. Having met so many people even Americans I have NEVER EVER seen someone like him at all in my life and I know more than just sure I never will!

I went back to look up for him in my intraweb, but I was not able to figure out. He just came in and touched like this very high voltage pulse and swung away! I think of his handsomeness over and over again and all the conversation! And it's not enough. This is called driving someone crazy, you lovely American!!

Wednesday, November 07, 2012

Developing OVM based testbench environment: Lessons learnt

On experience front, I only started about couple months back and I'm sure there is lots more for me to learn further. Why I wanted to write this blog is that about 4 years ago I had done specman e, though for a very short period, I was quite thorough with all the basics, later moved on to work on System Verilog (SV) and ever since its all about only SV at work. Worst thing was that I had completely forgotten whats and hows of 'e' and this time don't want that to happen!
Read through a lot of blogs, websites like testbench.in, verification academy, some eetimes posts etc (all of those sites that come up as the first few google results for methodology search). After some enough learning of basics, started creating a fresh TB env and following are some of the important observations that I thought:

1. Going by the traditional Layered architecture method, I had pulled up an analysis port from driver, just after calling get_next_item, that which my scoreboard will refer and does the comparison against the analysis port from the output monitor. 
  - What I should have actually done is to use an input monitor and the analysis port declaration in here for the scoreboard to pick the input packet. On a large scale, this layer is critical given that all we are targeting via any methodology is reusability. And by not doing this, I limit my scoreboard to be used just as a plug and play item at SoC level (say what I developed is at sub-system level) and now when I try to get this scoreboard to SoC level, it might need multiple modifications to suit the SoC level drivers and I'm only complicating the env instead of easing it.

2. $cast: I was, not a lil, but a lot confused and I'm not sure if I'm still all that clear with this. Firstly, when do I use this: for ex in my env, I use get_next_item and get the first sequence item. I $cast it to the configuration packet object and drive this one on the input interface to the DUT. 
For a long time, I was thinking, $cast is about the simple System Verilog dynamic casting where we try to cast an item of one datatype onto the one of different datatype. And in my env, because I always $cast a sequence item which is the only OVM object on to the configuration packet which is a OVM component, I was convinced probably casting an object to a component needs something more than just what a copy system call can do. 
Now in a discussion, some senior tells me it is not just that (read not that) and there is something more. It acts more like a deep copy. And the concept of relating SV dynamic casting to casting an ovm object onto a component sounds kinda stupid! 
That said, the question next is whats the difference between a deep copy and $cast. I brainstorm and find out, in OVM it's about copying a parent object to child object or copying a derived object onto another inherited object that share the same parent (meaning - 1. it's always from parent to child 2. of which the object that gets copied can have (generally has) more properties/methods defined). I'm only sticking on to this explanation now.

3. set_config_object and assign_vi
 These two constructs were great to know concept wise and there were no confusions until I got here: http://www.eetindia.co.in/STATIC/PDF/201004/EEIOL_2010APR28_EDA_TA_01.pdf?SOURCES=DOWNLOAD.
This document in specific compared assign_vi and set_config_object.
Basically, both these constructs have something to do with interfaces. But going through this article kinda added to confusions and I probably went around doing a research for almost about a day but I'm not convinced yet. Anyway, the simplest understanding is that set_config_object is complete only with a get_config_object and it is a one time declaration. while assign_vi is actually a task and whenever you want to call it, the task definition in that particular class adds additional code. 

4. ovm_report_object
 This is an interesting find for me. And only when I went about coding on my own, I hit this compile time error - Going back to the beginner level of verilog, every interview you give, you have this question the difference between task and function. So you can call ovm_report_object only from a function. That leaves you with this construct not being called from run task and okay with the other phases.

 5. There were couple of other scenarios that we were brainstorming about, may be trying to think out of the box ;) so 1. what happens if we have an empty ovm component defined in the environment - I think it would probably just throw a warning and would occupy some memory in the factory list of components. But the real time output - need to try out yet.  2. the incremental compilation stuff using factory. I kinda remember this existed in System verilog I mean the incremental compilation, not factory, but not sure though. Specman had this aeons ago needless to say. Also that, we have the verdi doing incremental compilation of the design to load the trace and waveforms after there are changes made to TB - got lots to explore huh!
 

Wednesday, April 04, 2012

2012

okay, I'm definitely not writing a new year blog, though I've been trying to gather a wee bit of interest ever since this year was born.
Quite an eventful year so far and happy to remember the amount of arguments with the spouse has gone way way down in this year. So when I say eventful, I must also be clear about to whom it was so and can't deny its been for him more than me ;)
Tirupathi trip - mid Jan, a very good darshan - felt peaceful and as if it was worked out at the right time of the year! Walking up the hill was an experience after years in life. Though the initial part was hectic and I was worried to see the hubby-dear struggle through the stairs, we somehow squeezed out energy and completed in 4hrs. The drive and company were an absolute pleasure, good to see the wedded life turning into heaven over time. Touch wood.
There has been another member arrived into the family, sister-in-law bore her 2nd kid and life has taken a new lead for all of us.
The new office space and the travel being made hectic, bangalore traffic is one helluva hopeless thing in the world - working from home is an utter bliss though its boring to be without the colleagues' company!
Couple of other good things in the making and I would post as and when it all take a great shape. To look back at all this reminds that however quick life moves on, there can never be a compensatory for what had happened, good or bad.
Reading through the Mahabharata (the illustrated retelling by Devdutt Pattanaik) these days, the couple hours I spend in the cab everyday - very refreshing!
Sometimes it feels, there is no excitement in whatsoever is "happening" in life. Signs of getting old, probably. But time and experience have definitely helped cultivate a lot of good habits. Turning into a more casual, helping, accepting personality in itself is a significant growth.
Being able to realize what the elders at home keep preaching since childhood, rather what was once considered the daily slogan that the jobless people at home sing around, is like, as if 'what goes around, comes around'. There is a very different learning from that, something of tremendous value.
To live with so many people, the way you start perceiving every relation, be it a friend or a cousin or a colleague or a stranger, over years, and such logic on similar lines, is all something I badly missed knowing couple of years ago.
When all "looks" well, at times there are things that are to be termed more than just "strange"! Well, I wouldn't completely agree, on the other hand, that its a strange quality, as what when consciously observed seems to be very common and there were very rare exceptions who did not belong to this pool, the pool that  lack comfort to just to be what they are. And even worse, they do not want others to be their own self.
A colleague here keeps saying that the Buddha teaches how to live in the reality. I admire this concept so much, that everytime when I get back to worry about something in the past, it rings to me that I gotta come back to reality! It teaches to not be carrying over any judgments from the day-to-day incidents, simply called being "non-judgmental".
For ex, you get into an argument with someone, say a week ago and then when I meet the person after a week, what I remember at the first look is about the argument that I had. In this, the reality is this week and the moment when I'm meeting this person, past is the week before and the then argument! I'm largely struck in the past that I lose the reality of meeting this person, here now and there's NO absolute argument in this reality! So, if you can be a Buddha, you'll probably not even remember the past week. and the percentage of happiness or a stress-free life is proportional. Will I gain this over practice, is a million dollar question. I'm however trying to do my best though.
These amazing concepts that, for once, when just listened will make you feel so light about life. And I can imagine how much of a positive impact can be gained, if only followed. The least I could do was to go on to read this book called "How to become Buddha in 5 weeks". I know, the title is roughly funny!
Curiosity and envy are the other two different foods for thought in a while now. I was reading this book "The difficulty of being good" by Gurucharan Das, he quotes that he is around 50+ now and so far in his life he has not met one single person who lives WITHOUT a bit of envy! And I feel, how true!
The goodness about growing up to be an adult is to realize that these are certain holes that are so common in a human and eventually we start accepting even an enemy - The benefits of growing up!
To end this post with, the recently spent Saturday early morning, driving along the NICE corridor - the thought what a good weather evoked in us - with no specific destination in mind, later end up on a typical  Kannada breakfast at the Kamat on the Mysore road is a pleasant musing to the tastebuds.
Life is good!
Thathatsu.

Wednesday, December 07, 2011

What has God got to do with your fork!?

Most days that went by, of late, I would say were quite philosophical, a little more than the normal dose. I'm not sure if that has got something to do with the Sani peyarchi that's coming the week next, like what my mom claims. But after all that which happened in the recent past and with a set of astrology followers around, I'm driven to give it a frequent thought, the topic that I always wanted to stay away from. More so because like a lot of other family mine was into misconceived astrology, way too much! For me astrology was always equal to fear. The fear of knowing mishaps of the future, with a few 'made-up' good things added by the 'incomplete' astrologer just to see some good profits. And therefore, to stay out of fear astrology became a blind-belief. Whatever bit of sense that I could make out of it is the cause of the 'sani peyarchi' statement above! :)

Getting back to the topic, more often than not I hear 'why is the most honest and ethical people are tested by "God" badly before they can taste success or even happiness, completely'! the keyword here - GOD!

I go back from here to remember Robert Frost's words,
"
Two roads diverged in a wood, and I-
I took the one less traveled by,
And that has made all the difference.
"
While these are the commonly remembered words by a lot of us around, what impressed me now and always from "The Road Not Taken" were these:
"
Yet knowing how way leads on to way,
I doubted if I should ever come back.
"
All of us would have been taught various meanings of this poem, after all the school teacher has the authority ;) They all perhaps converge to the same idea.

It's like, in life there are going to be numerous such forks that you'll hit and it will solely be on one person, and that is you, to be responsible for the path that you choose and decide to traverse all along till the end with all the ups and downs, come what may! You may never be able to come back to a fork and try treading a different path than the one that you chose before - most importantly not without losing anything!
For me, pondering over this had let me realize the depth of decision making and the amount of responsibility an individual should take for a decision made by him/herself. So please, let's spare God alone!

If not anything else, let me strive to give him back the satisfaction for showering all his blessings on me through this one thing called 'life'. For no one can ever give back God anything for this gift of life - He is unconditional!!
For you the reader, I wish you get all the wisdom and be a better human everyday and thereby gratify the Almighty God!