Redditech Blog 2.0

Thanks to all those who have and who continue to read and leave comments that help me make the content of this blog more professional and useful.

This blog has now moved to Blogger as a hosted site.
Blogger is the Google Apps alternative to Wordpress.

This was done as I wished to focus more on building my skills as a writer and actually producing higher quality content, and less on the administrative tasks of running blogging software myself.

Please check out The Redditech Blog 2.0 to see updated content from Redditech.

Living in Trinidad…working in Trinidad…is it worth it?

I dreamt of working in another country for as long as I could remember. Ideally it would have been a first world country like the US, Canada or the UK. As fate would have it, my first opportunity to work abroad came as an option to work for a Caricom agency in Barbados. It was overall I think a positive learning experience, although at the time of engagement the beauty of Barbados beaches and idlyic nature of life there was also rife with negative experiences as I learned the harsh lessons of incompatibility between independent thinking, innovation and bureaucracy within the public sector of the Caribbean.

I returned to Trinidad almost a year after my Barbados experience, determined to make the best of opportunities in my homeland till fate lent me the chance to work again abroad. I had this opportunity in a twisted sense through my current job as a Software Developer for Medullan, which took me to the city of Medford, MA just outside of Boston for 4 out of the last 12 months on 2 separate trips.

It was, to say the least, a very maturing, and eye opening experience as I dealt with both the joys and the pains of working within a 1st world country, coming from one classified as third world.
The obvious advantage of working within a 1st world country is of course the variety of novalties and essentials to purchase and things to do. By just being present in such an environment you experience the opportunity to explore your individualism to its fullest.
As a result, I personally discovered my liking of American theatre, and an affinity for particular US lines of clothing.
The not-so-obvious disadvantages are the enormous costs one bears to purchase goods, especially in states which have a large sales tax like New York. Budgeting is key to survival in this place where everyone is buying. The high cost of health care for those without insurance is also a huge negative, especially for those who come from “3rd world” countries where healthcare was free to all. The concept of paying $800US for 6 hours at a hospital emergency room visit where all that was done was a blood test is just ludicrous to one who’s experienced similar for free or under private care for about $50US in his home country.

I have yet to decide whether Trinidad life is for me, especially as I know there is so much more out there I have not yet seen in this world, so many cultures to experience, so much things to do and places to see. What I do know though, is that the grass may seem greener on the other side of the ocean, but it’s not all green.
Wherever I decide to settle, there will be challenges, obstacles and temptations to quit and return home, but at the same there will be positives untold as I continue to search for my spot in this huge place we call Earth.

SMS Meggies go viral in Trinidad

My friend at Teleios told me about a new application his company had launched Friday called “Meggie Wars”, a system where you could send different “meggies” to friends via SMS.
What was interesting is that in the first half hour of launch my friend indicated they had already experienced 300 unique cell number signatures in use on the service.
When I met with friends later at least 10 of us spent a good 20 minutes playing with the service. Together my small band of friends probably generated over 500 messages on the system. To get started all you had to do was send “help” to 3643 from any BMobile mobile phone. It would then give you back a list of instructions on how to use the service which were quite easy to follow.

For now the service is free, but imagine such a system with similar volume and viral adoption and growth and which could have been generating revenue between 10c to $1.00 per message, either through caller costs or through text advertisements included with each message sent.

Now that they have started this fad and introduced a noticeable cross section of the local mobile community to the concept of SMS Application services, I would love to see if my friends at Teleios can take the concept mainstream and “Cross The Chasm” between early adopters and the mainstream users to take this from a “nice to have” to a “need to have” segment of the mobile market.

This, to me, is key to defining the great companies of the future from the good ones.

Trinidad life -Almost losing my dad because of crime…

My father was held up and gunpoint yesterday in our family business, and if not for the chance occurrence of the shell/cartridge falling out of the shotgun held by one of the robbers while he struggled with them, my father would have been murdered yesterday.
My dad still didn’t come through totally unscatched. In the course of struggling with the robbers he fell and broke his ankle, and now has to walk with crutches for the next several weeks.
This is a man who I love so much that I can never express in words how much sorrow it would have caused me to have lost him.
I hope my little brother doesn’t read this before we speak of this to him, because this is definitely not how I want him finding out about it. Lord knows he already has enough struggles having to excel in his U.S. Naval AcademyNaval Hospital Corps. School exams while being so far away from all he knew.

This isn’t the first time one of my family has been held up at our business.
This time though it came closer that it ever has before to being the last time for my father.
And for what?
Human life is now so insignificant to some that the chance of acquiring a few hundred dollars is all the motivation some need to take one.
Is life really that hopeless for these people?
Or is this because they realise more and more daily that there are no consequences for those actions, not in Trinidad anyway. Trinidad life over the last few years has consistently reinforced my thinking that we just have the facade of a civilised country.

Criminals could have stolen from me one of the few precious gems I keep in my life. Our family business still runs, it needs to so that we all can eat tomorrow, so what happened yesterday could (knock on wood) happen again today, or tomorrow, or anytime again, with worse consequences. Criminals continue to have more motiviation to commit crimes and less disincentives to find honest means of livings. This is the reality of living in Trinidad today for me.
And I find that so disgusting.

Notes on Unit Testing

Walking a coworker through the concept of test driven development and unit testing I designed some notes on it. So I thought I’d copy them online for future reference.

TDD steps:
A. Choose a test or suite of tests. Design it/them.
Design mode involves asking the following questions:

1. What do I assume exists? (the Setup phase)
2. What do I test for? (the Assertion(s) phase)
3. What do I reset after? (the Teardown phase)

Designing tests well will save you much headache later down the road. Take my word for it. If not, go through the rest of the steps, hit the headaches and pitfalls then read back the “I told you so” statement I have waiting here for you :)

B. Write the code for the unit test(s) according to the above plan.

The Setup and Teardown phases may be best written first because you are changing then restoring the state of the software system within the setup and teardown phases. This will happen when you need test data present that should not be persisted beyond the scope of the test. You would always want to leave the system clean, i.e. in the exact state it was in before you ran the test.
This is done by ensuring the Teardown phase removes any system changes made in the Setup phase and both are ideal to be written together before the core unit tests in the suite are written.
O, and make sure once you write your Setup, Teardown and test methods that the project actually does compile.
This would almost certainly require you to create “stubs” (i.e. empty or unimplemented) classes for those new objects you intend to be testing in addition to referencing already tested classes and their methods.
Don’t worry that you’re referencing unimplemented classes in your tests just yet, that’s why you’re writing the tests, so that when you get to writing them you know exactly your progress in coding them.

C. Run NUnit (or test suite of choice) and ensure all tests fail.

At this point you may choose to call a coding checkpoint with your team lead/peers to ensure that you have truly written a useful and complete suite of tests, and to fill the gap in ensuring there are no critical tests you may have overlooked that should have been designed and coded in this cycle.

D. Write the code that enables the tests to pass.
This is the meat of things. You know what you’re testing for, so you now implement the logic to make this happen. All those nicely stubbed objects now get substance in your quest to empower them with the logic needed to pass the tests.
Once all your red lights (fails) turn green (pass), you’ve just made a significant step towards completing this development cycle.

E. Refactor your code to make it more efficient.
This is important. Getting all tests to pass is good, but we don’t always do things the right way the first time. Look back at the code that passes each of the test.
Could it be optimised in some way?
Did you take any shortcuts in a moment of weakness/time crunch to make the test pass that you need to correct now to make the code more robust?
Will this code be chewed up by your peers for its lack of pattern usage, adherence to coding standards, complete documentation etc at a code review or revered as a masterpiece in coding and a job well done?

F. Code Review.
This is the often missed/sacrificed step, but it is as important as all others. You’ve gone through the previous steps and done the best job (hopefully) you could getting your code optimised.
You are now ready to have it validated by your peers. Don’t avoid it because you fear getting criticisms, this is good, since it shows you where you have to grow in building better code later down the line for other tests.
And it will obviously lead to better code delivered to the client.
Of course if you’re the one asked to participate in the review, remember the five C’s when giving feedback in these reviews that will make it a good one, i.e. be Caring, Consistent, Clear, Current and Concise with your feedback.

G. Integrate review feedback and be done.
Once you have aggregated your peer feedback, ensure that you have integrated it into your current code set.
Once you have done a proper job checkpointing with your lead during the development process your peer feedback should only be minor tweaks in code. It should not lead to a major rewrite of code, and any time it leads to this you either are not comprehending the feedback given or really did do a half-assed job in the first place moving through the previous steps.
Checkpoint with your lead if you are unsure how integration should occur, or if you find it is taking more time than a minor rewrite should to ensure you are understanding the feedback given properly.

H. Call it done. Move on.
There you go. Once these steps are complete, you’re done, you can move on to developing a new set of tests for another feature set and repeat the cycle.

Are Trinidad workers all about the money?

Are Trinidad workers all about the money when it comes to picking their jobs?
If not all about the money, how much should it be about the money?
Is being “all about the money” in Trinidad the strong indicator it is believed to be of the worker’s work ethic or level of loyalty to a company they sign on to?

In the first years of my working life, I shared the opinion that salary was all that mattered when it came to considering competing jobs. This is not uncommon thinking in Trinidad. Among my peers, when you first mention a job opportunity, the majority promptly ask “How much does it pay?”

This brings me to Seth Godin’s blog, one of the blogs of which I read frequently.

His recent post is one statement:
“Maybe the reason it seems that price is all your customers care about is…

... that you haven’t given them anything else to care about.”

This somehow jumped at me.
“Salary as the number one priority in considering a job” may not be as strong an indicator into one’s core values as I previously thought.
Maybe local employers are contributing to the reason that the salary question is the first one raised and usually the only one considered by candidate employees.
Employers in Trinidad haven’t given their candidate workforce anything else to care about. They’ve been bad salesmen.

I have worked at Medullan for a year now. It will become my longest job with a single employer very soon.
The salary isn’t the most I’ve ever made. It is actually the second lowest level of income I’ve been at in my career. I made, and continue to make, personal and financial sacrifices to work with them.
One may ask then, “Why am I here still then?”

I’m here, I now realise, because the leadership team were excellent salesmen. Maybe I’m also here partly because I am a very bad salary negotiator. However, I digress.
The Medullan leadership did give me the “something” besides the salary to care about that continue to make my working with them worth it. This also had the side effect that it kept my consideration of alternate employment in Trinidad with higher salaries that were made over the past year minimal and my loyalty to Medullan high.

I’ll try my best to quantify what the “something”, or rather the “somethings” I care about are.

I care to be challenged everyday to grow, to learn, to think.

I care about my personal and professional success.
Working in the Medullan culture has opened my appetite to succeed and fed my desire to be the best.

I care about my own career growth.
Medullan has nurtured that growth. They also opened my mind to discovering and understanding new ideas, new markets and a fundamentally new dimension of doing business to what I knew previously.

I care about building Redditech, or some other business venture, someday.
In all humility, I have assisted significantly with the growing of Medullan so far.
I continue to assist, and through this effort I build and hone the skills and experience needed to make any future venture a successful one the day I undertake it.

Finally, I care to work with people who share these same things I care about.
No job before has offered me all of the above. No job that was offered to me since starting at Medullan looked like they were going to offer this.

How many other Trinidad employers can you say give you anything else to care about other than the paycheck at the end of the month?

Still, the salary issue should not be thrown to the wind. It remains as a very real issue. We all have bills to pay, personal dreams to see realised, various things we work and save towards doing or achieving.

How much then does salary matter?
That is the question that challenges me today.

While job satisfaction is great to have, something beyond pocket change is desirable as well. Living “hand to mouth” just doesn’t seem worth the knocks taken getting a degree and working to build a marketable skill set and professional reputation over the years.

The sacrifice of time and effort given to Medullan has reaped me the benefits of my increased business acumen and my growing ability to see a big picture yet still design and execute to detail smaller plans to get there. My code design and writing skills are also much improved to the point where I can now mentor others in good design technique and coding style.

On the dark side of this though, it has also shown itself through my increased weight, the manifestation of several health issues, my reduced time at home with those I love, and my reduced network of friends with whom I have time to keep in touch.
My inability to move out of my parent’s home or to take on the purchase payments of my vehicle without my father’s assistance also remain major issues for me.

These are all constant reminders of just how much maintaining my position at Medullan takes from my previously enjoyed independent lifestyle despite what it gives to me otherwise.

The model used by Medullan Inc started with two guys from the US and a dream. It is now a near twenty person organisation distributed between Boston and Trinidad. Most of that growth happened forward from the date I signed up. I am very eager and excited to see where it leads to in the next year.

But I wonder daily if I can afford to.

What’s going on with Wordpress 2.2?

So I think I may have found a bug in Wordpress 2.2, which powers my blog. For some reason while posting and updating an article entitled “Maximising Google Reader” my homepage will display the article twice. A look at the database level though indicates only one posting stored for the article. I’m hoping this is a one time event, and that future posted articles do not have a similar rendering on the main page.
Now I need to play around to see if I can duplicate the bug and submit it to the good folks at Wordpress for a patch/workaround.
Ah, the joys of being the early adopter :) —Update—So as soon as I posted the article, the duplication disappeared. Then I edited the “Maximising Google Reader” article to add a mood (provided by the plugin Moody). After this, the duplication came back. I added a “mood” to this article as well, to see if this is the cause of the error.
This apparently wasn’t the problem either, as the duplication disappeared (again!). And now it’s appearing with this article!! This is really quirky. I can’t be sure when I post whether this article is going to be published one or several times anymore…arggh!

Maximising Google Reader

One of the major problems I have using the Internet these days is the managing the sheer volume of content I am exposed to and absorbing it intelligently enough to use it. Along came RSS, Really Simple Syndication and with it RSS Aggregators, programs that would automatically organise your RSS feeds in an easily browsable format.
I never really took to any aggregator software, other than ITunes, and that was limited to aggregating my regularly listened to podcast content. Then about 2-3 weeks ago I started using Google Reader. I must say, this application is quite well done, and follows my experience using other Google Applications in providing a rich user experience inside a very usable interface. Its features continue to show the great potential available inside a well designed web application.
The “wow” feature for me with this application was the provision of JavaScript which, when embedded inside my blog’s sidebar widget, allows me to produce a list of links to the articles I have marked as “shared” inside Google Reader under my blog’s aptly titled “What I’m reading” header.

This has now freed me from needing time to write what I consider honestly the most boring of blog posts, a linking post, in order to share what I honestly consider useful web content for both personal and professional growth.
My focus can now be set on writing more introspective articles with what I hope to be better original content. I hope to focus these articles on how I’ve applied the lessons taught to me by my mentors at Medullan and those that I’ve also taught myself. Real world experiences working on successful project delivery and what I’ve learnt in my own personal and professional experiences as I continue to grow in the leadership roles there will definitely be my mantra when writing these articles.
I’d also hope to write some more articles focusing on books I’ve been reading and the content of these and my own personal lessons learnt from these. Thanks to Google Reader, I think I can now utilise the limited time I have for blogging on writing these types of articles now.

DZone – the Digg for developers

I stumbled upon DZone quite by accident but already I like its concept. Hardcore, tech knowledge for active programmers, peer reviewed and approved in the same spirit of Digg articles.
There’s an RSS feed as well so you can manage the information flow with your favourite aggregator.

Wordpress 2.2 screwed up my CSS

Forgive the look of the site for the time.
I did 2 upgrades, first to mySQL 5.0 from mySQL 4.0, then from Wordpress 2.1.x (can’t remember what version i was on) to Wordpress 2.2.

Main issues:

1. My Sidebar widget doesn’t load. Apparently this is a “feature” of Wordpress 2.2, but I haven’t figured out where it’s activated yet.

2. My CSS is screwed up. So my navigation right menu is now somewhere at the bottom of all my posts…it’s kind of late, so hopefully I can figure out the issue tomorrow.

I’ll probably revert to 2.1.x if I can’t figure out the issue by Monday and wait for a successful Google Groups search to reveal the answer to my dilemma before attempting another upgrade.

Update: Thanks to a last minute change of theme to “Water 1.1” all the CSS issues seem to have been fixed. The Sidebar widget will be missed, but I figure it’ll take me all of a minute to adjust to the Wordpress integrated Sidebar. Yay! Upgrade successful!