Category Archives: News

Some Realizations for a Beginner in the Philippine IT Industry


For the first time, I was invited to do some tech talk and it was in Adamson University. The event was part of the course on IT Issues taken by Computer Science students. It was quite on short notice and we came there rather unprepared and clueless of things. I was able to write down what I got to say though but I had to change the medium to effectively connect to the audience. Below is the speech I prepared in it’s entirety. (I made deviations along the way.)

When a colleague mentioned to me this tech talk thing I was instantly stoked because of two things. Firstly, although I am seldom active in events like these, I’ve always loved the idea of people of the IT industry coming together in one event solely out of a common interest… I suppose. Yes, I’ve expected people to be light on biz talk today and really just have a great time with their crowd. Secondly, I find it enjoyable sharing experiences. It’s not that everybody will get to learn something new from you but just being able to identify oneself with the one doing the talk feels great right? But I didn’t know what to share. With barely three years of working experience, I’m a newbie compared to other speakers who usually get the invites to conferences. Tackling technical matters like platforms, APIs, and tools could be a safe choice for someone like me. I won’t have to go into an in-depth discussion considering the time we got anyway but let us leave those things to the experts, to training providers, to our professors; you can even learn them on your own with no real risks. So what did I choose? I figured since I’m still practically a beginner I should just give you a glimpse of what it’s like to be a beginner out there.

Who among us here have always wanted to take IT or computer science like they’ve always dreamt of hacking systems and working on large systems doing very complex calculations?

Who among us here have been dragged, maybe literally, by somebody to take the course they are now taking?

Who among us here chose this path for practical reasons?

I did. We are Filipinos, we adapt to survive. With bad economy and high rate of underemployment it’s no longer uncommon for people nowadays to let go of certain things to survive in the real world.

To tell you the truth I’m not really here to talk to people who are a hundred percent sure of themselves in taking this path. I’m here to talk to people who are rather unsure of how they are going to fare out there in the real world.

Who among you here are having a hard time with their math subjects? Calculus, differential equations, discrete mathematics? Who among you here feel like they’re just average programmers, like sure they can produce working applications but they don’t think it is done hard-core way like how some star student does it? I’ll tell you the things I’ve learned beginning my career in the IT industry.

1. TO KEEP YOURSELF SANE, START WITH YOUR OWN STANDARDS

You know how you should respond to that situation I previously stated? You say “who cares?” It’s perfectly normal not to get things perfect the first time. Don’t feel too bad about it. It’s like feeling ugly because you are surrounded by supermodels and you are not even one of them. Don’t start with someone else’s standards ’cause you’ll get there in time. It’s really going to be just you against yourself out there. There are no real competitions against anybody. It’s not very healthy chasing someone or some organization’s standards. What I suggest is to give yourself a good challenge and before you know it you will already qualify in the positions you never thought you could fill.

For more than a year I was the acting project lead on one of the projects in our company. Due to certain circumstances, I was assigned the position. I was pretty hesitant to take it for I knew I didn’t have the technical background to assume such a role. But come to think of it, it’s not all technical stuff in there. If you know how to actually work with your team, you know you won’t be the one to do all the heavy lifting. You are all technically equally capable of producing a good solution. You are simply there to stir the wheel when everybody knows their destination. So I took it as a good challenge and it taught me a lot of things. I may not be the best; It is not for me to say. But I know that I’ve gained something and now I can take on harder challenges in leadership.

2. FOCUS ON YOUR IMPROVEMENT, NOT JUST THE END RESULTS

Being new to the industry, you will most likely be into training and stuff and need to learn new technologies. And do you know the key to an enjoyable learning experience? That is starting by accepting your weaknesses and building your plan from there. Don’t go like “I must learn mobile applications development because it’s gonna get me paid forty thousand pesos a month at the least!” What if you didn’t get the position because somebody else with more experience took it? Will you be dispirited and say “hell, now I have to learn another platform. I heard money is good there and it’s possibly within my league.”

They always say that the journey is more valuable than the destination and that’s true. Won’t it be nice to hear from yourself “yeah, I didn’t get the job but I realized I really love developing UIs providing awesome user experience so I guess I’ll just work more on it”? Don’t just focus on the digits for you’ll surely be surprised how much of your salary you will be willing to trade for work satisfaction. Focus on the non-monetary things you’ll gain. After all, at the end of the day, you’d definitely want to be more valuable than the numbers written on your paycheck.

Quite in relation to that…

3. YOU CANNOT BE THE MASTER OF ALL TRADES YET. APPRECIATE THE VALUE OF MASTERING A SINGLE THING FIRST [and just familiarize yourself with the others for the meantime]

Having great knowledge on a handful of technologies can be very very valuable. And do you know when it is most valuable? It is when you are a one-man team. But the thing is, it will most certainly be not like that in the real world. With time constraints, one person can only do so much despite of what s/he knows. Sure you know some database administration, some web applications development, and some mobile applications development. But having you against three people focused on each of the mentioned field, what can be your value? Given a very short time, it is very much possible for three focused average programmers to beat one expert in delivering a solution unless the expert is willing to trade his physical, mental, and emotional health. And even then such a feat won’t be impressive.

In our team, I’m currently the go-to person for developing supporting web services for mobile applications. Yes I study other frameworks and languages on my free time like python, nodejs, backbonejs, html5, but I’m most valuable in developing web services in PHP and .Net the same way my teammates are most valuable in developing android and iOS applications despite of the other things they know. And needless to say, that expertise will dictate a great part if not a hundred percent of your salary. What I suggest is for you to look into the trends and select one technology of a great value that you will actually enjoy, again emphasizing on enjoyment, then focus on it for now.

4. PUTTING YOUR HARD EARNED KNOWLEDGE TO USE IS UP TO YOU

A lot of us would frown on a complex statistical formula and ask “am I really going to use this after I graduated?” I say you may and you may not. To be honest, application of the things we’ve learned in school is not at all times present unless you chose the right job. Unlike game development that immerses a programmer into some hard-core computing, developing simple information systems won’t ask too much of your expertise in differential equations. BUT there are opportunities for it if you stay watchful especially when we are talking about optimizations and data mining and analytics which may sound rather too grand for you right now but actually serve as foundations for valuable systems.

To share things with you, about a month or two ago we’ve spent a good four hours or so discussing an algorithm that could enhance the response time of the application we were working on. There was even a time that I’ve resorted into using binary trees to lessen the time complexity of a function I was working on ’cause the application was time critical and we were only given five seconds to respond in a transaction that involves scanning the database and going through a handful of records in a legacy system. Yes, powerful machines nowadays can already solve some problems on speed but then it is not always like that.

So what I’m trying to say is you are the ones who are going to put value on what you’ve learned. But I must say that there’s a limit for it because…

5. DOCTRINAIRE SOLUTIONS SELDOM APPLY

Doctrinaire, stiffly adherent to academic standards, very imposing of academic standards as to disregard practical considerations. Apply, be applicable or relevant. So these solutions actually work. These solutions hit all the requirements. It’s just that they’ve disregarded quite a lot of practical considerations that they no longer perfectly apply to the situation.

While going through the technical report for CMMI 1.3 I’ve encountered a very attention capturing term called “operational concept” which describes how an entity or a system actually operates in production. Surprisingly, it’s one thing quite a lot of solution providers tend to overlook ’cause they either overanalyze or are over their heads. Hence they come up with solutions too sophisticated for their customers needs that the customers could not appreciate it.

I’m not even speaking for myself right now, I’m simply relaying what’s in the CMMI technical report. We encounter certain limitations when providing solutions; there’s cost, time, effort, and technology at the very least. Out there, we are not going to develop solutions in an environment very favorable for us so we should always come up with alternatives and be aware of tradeoffs. Even consultants who have earned the authority to tell which technology will be most beneficial also have to consider the operational concept to suggest a solution.

Now what I want to say is, while you ought to learn as much as you can in the IT industry don’t be so envious of somebody who knows the latest frameworks and standards ’cause you are not always going to work on applications running on these latest frameworks capable of supporting the newest standards. It’s not really always about technical knowledge if your goal is to address your customer’s needs and cost is of great consideration. You cannot always impose what you know when circumstances make it impractical and/or costly. You should also develop one thing which is your analytical skill.

Because…

6. YOUR ANALYTICAL SKILL IS EQUALLY VALUABLE WITH YOUR TECHNICAL SKILL AND KNOWLEDGE

I appreciate the value of exams that ask you to perform rather hard-core computations and create an application written in a particular language in detail but I’m not very fond of them. Why? Because they are unrealistic? On the floor, you’re not going to develop computationally intensive applications having to recall each formula straight from memory. There’s google and lots of documentations, white papers, and APIs. You got the time to prepare and it’s even included in your gantt chart. To put it simply, it’s allowed to use cheat sheets and prepare references. You only got to be ethical and ensure that you’ll learn something from your references. Producing reusable codes is a programmer’s responsibility. The ability to understand other people’s code is a valuable skill. So why do we answer exams that do not test those skills? Isn’t our diploma enough proof that we know the use of statistical formulas?

As you go along studying various platforms and frameworks, also pay close attention to the development of your analytical skills. Truth is, if you cannot analyze a situation enough to come up with a solution in which you can utilize your technical knowledge then you will most probably just implementing somebody’s design and we do not want that. We want to be software architects and consultants. So folks while I encourage you to study well, do not cry over your grades ’cause you weren’t able to commit everything to memory and therefore you failed once or twice. How you put everything into practice will matter more.

And that’s it. Now these things I’ve presented seem cliche for some. Some would say, “I’ve always known that!” and I agree that we’ve always known these things. But the surprising thing is that it takes months even years for some people to have these things sink in. Now my only hope is that you will get to ponder on these things later on and be prepared on the challenge ahead. To close things I just wanna thank everybody for this opportunity of being able to share what I know to all of you. And as early as now, let me bid you welcome to the IT industry. I hope I was able to save you some months of on-the-job experience by presenting these things today. A pleasant evening everyone.

Tagged , , , , , , , , , , , ,

2012 in review


Really? Well if they say so.

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 3,000 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 5 years to get that many views.

Click here to see the complete report.

Tagged , , , ,

The Startup Weekend Experience


peppermint room

Peppermint, this place here was where we stayed while developing our prototype.

So I was looking for something I could get happily busy with, the mobile applications development team to which I belong was into all this business model canvas thing, and I made it as a goal to get exposed and be active in IT events. And guess what? Startup Weekend Manila 3 was announced. The event started last Friday September 28 and ended yesterday night Sunday September 30.

I really didn’t know what to expect. I have a dream of owning my own startup but I could not say that I am already into making it come true. I got a couple of ideas for a mobile application that could potentially be profitable but it still got holes in it that I did not bother to consider pitching it. So what I planned was to just be there, observe, join a team, learn, and above all, enjoy. And enjoy the whole event I did.

Deciding to join didn’t come that easy though. Being just socially awkward, I had to constantly reassure myself that I will have a good time. And despite of it all, I still ended up posting on the wall of my college friends asking for people who are interested in joining the event and coming there with me. But nobody really gave a reply that I could consider as “Yes, count me in.” Thankfully I got someone who’s pretty geeky herself for a girlfriend and she was willing to join me.

I know what you might be thinking right now and perhaps you’re right. Being both Computer Science graduates and software developers, people who are not into software development might have a hard time catching up with some of our conversations. Well that’s part of our quality time. But I digress.

We came to MINT college Friday afternoon for the kick off, the pitches, and the forming of teams afterwards. Some of the pitches were okay and some were hilarious as was intended I suppose. But we of course got our own say on things so an entertaining pitch did not ensure anybody of a development team. Unless they came there with their own team, which is the case, I think, in some groups. Well that’s pretty natural. If you want funding for your idea, you might also consider bringing in your team for votes. Each person got three chances to vote for an idea. As long as everybody’s decent enough to not keep all three votes for their own idea, things will still remain quite fair for people who just came there with their ideas and nothing more. As for me and my girlfriend, we just came there for the experience and to offer our skills.

There were ideas that looked really great for me but pretty complicated and equally risky to invest on; applications that require quite a long time to develop and another long time to profit unless an organization is already willing to buy it as opposed to solely depending on a marketing team. The rest were a lot simpler but the biggest question was how it will differ from the other applications in the market and that was a tough one to pin down. Even the idea that captured me and my girlfriend’s interest could not give a good answer to that I must say.

After the pitching, my girlfriend approached Luigi and stated our intention to join his team. Only to find out that we would form the team ourselves as although his idea made it to the top 18, no one else approached him to work on the application. The application was named Bahala Na (Come What May) after a phrase very common among Filpinos taking chances. It was basically a randomization and recommendation mobile application which on the outside may not look very different to other applications in the market. Yet we gave it a try.

It would seem ridiculous that I joined in creating it, but the thing is I believed that it would actually sell. The features may not be very unique but it was supposed to be fun and considered the culture of its market among all the applications proposed. It has a high tendency to be addictive to Filipinos capitalizing on the people’s bahala na attitude, love of funny things, and preference to quickly come up with decisions. It could potentially influence people’s choices on where to hang out and many establishments would pay either to be recommended more often or for the information on users’ behavior collectively.

Saturday, my girlfriend, being the mobile applications developer in the team, did most of the work for the prototype of the application while I worked on the backend web service that was supposed to consolidate information on places from different data sources and make it available for the application. We came up with decent prototypes but finally decided to have the application run disconnected from the web service and use built-in test data for ease of demonstration.

Sunday, I don’t know of the judges’ ranking but we placed 5th on people’s ranking without partaking on the anomalies that happened during the casting of votes (a common scenario during Startup Weekends they say and part of the fun to which I agree). Something that I could take as a proof that the application indeed appealed to the people.

The whole experience was fun. I experienced headache once in a while for lack of sleep but I had a great time. It was a great opportunity to meet other people in the IT industry outside one’s office and be surrounded with ideas and learn the things surrounding creating a startup. The atmosphere was light and devoid of any of the seriousness of work; super cool to make it short. The food and the coffee was great and there were a lot of freebies. The event was worth my weekend. If I have any regret, that would be missing that chance to actually just sit and listen to a mentor for I was quite too busy coding. Well we got another Startup Weekend for that. -aB

Tagged , , , , , , , ,

Train the Trainers Program


I’ve been quite busy lately. Working on a maintenance project with a pretty passive client, that’s something new. Most of the time it’s me who find ways to keep myself busy in the office. That involves sending emails to my client inquiring about certain things they need to get fixed; and also to my superiors inquiring about audit findings or anything in the company’s standard operating procedures that the project could be missing, so I can work on it. I also do some self studying on new technologies partly to satisfy my want for knowledge and partly to have more choices in future projects. But in the past week I didn’t have to do that.

The week before last, our practice manager came to my workstation and ask a simple question, “Do you want to be a trainer?” I answered “yes” right away. Truth is I always wanted to teach/train people. I really don’t know why, but I just love that feeling that you get to share what you know to other people and they would look up to you saying inside their heads that “I learned these from this guy.” But it was not a simple yes. I also mentioned that I may not qualify. In reply he told me that there will be a qualification for the position so I shouldn’t worry. And that I did. In my head all was very simple. If I know the topic I’ll get the job. If I don’t, they will surely find someone else.

But when Friday came, one of the employees under the learning and development group came to my workstation and informed me that there will be a meeting in thirty minutes. I said “okay” cooly. I was thinking that we were only going to be advised on how to properly conduct a training and all that guidelines. I didn’t know it was going to be far beyond that. In the meeting we were told that we would undergo a special training not just to learn the effective training approach but also to ultimately pass the accreditation by the Technical Education and Skills Development Authority (TESDA). My jaw almost dropped. I didn’t know it would be as serious as that.

Still I didn’t back out. It was daunting at first but when it finally sank in to me, I realized it was a great opportunity to hone my training skills. Perhaps it would be a great plus too considering the fact that I was already contemplating on applying for a lecturer’s position in the university on weekends.

We were told that training days will be on Tuesdays for the next two months. But normally, the training for the accreditation takes seventeen weeks, eight hours a day. Apparently we’re going to cram things because being full time workers, we couldn’t afford that much time. It would be a dead serious cramming I must say with a reading material reaching more than two hundred and fifty pages for just one of the five areas we got to learn. That is already not mentioning that the reading materials voluminous as they are, are already pretty straight forward on discussing things.

Monday came and another surprise came just as I thought I was done with all of it when I agreed to take the challenge in the previous week. I checked my company email and found out about an email sent late the previous Friday telling all trainers to prepare a five-minute discussion of a simple topic for the audition to be done that day, Monday. Again, I was shocked. I was not prepared in any way. We were advised to prepare a powerpoint presentation and dress up. It was also mentioned that we should be able to finish the discussion of our chosen topics within the allotted time. As trainers we should be able to do that.

For a minute or two, I didn’t know what to do. Unlike other participants in the program, I never handled a training before. I don’t have any material in mind from which I could get a good topic I could squeeze into a five-minute discussion. I totally had nothing related to our practice (the Microsoft practice) to discuss. But then I reread the email and notice that there were no instructions telling that the topic should be related to our practice. That was when I got a brilliant idea. I decided to discuss something I worked on during the weekend, the sprite animation tutorial which I even posted here.

I was nervous about the audition almost the whole day but everything went well when I finally got to present my topic. In fact, I got a good feedback which made me happy and proud inside.

The following day I attended the first day of training where we talked about competency based training and learned how to prepare information gathering sheets, training needs analysis forms, and session plans. It was totally enjoyable and helpful. I could already visualize how effective the training will be following that approach. But all the topics just won’t fit in a day no matter how hard they try to simplify things just emphasizing on the most important portions of our extremely voluminous references. As much as we don’t want it, we have to read and study some of the details on our own. Seriously, it could eat a great amount of time from company hours. But I’m usually not that busy like what I said earlier so it was fine for me. I just do not know of the others.

Next week will be day two. I’m looking forward to learning more. But for now, I’m done with surprises. No more surprises this time please. -aB

Tagged , , , , ,

Metro Manila Flood App (MMFA)


screenshot 1 a good news came today. after months of training, the team finally got to upload its first app in the app store. i was not part of its development but i’m breaking the news just the same because i’m proud of our three people working on iOS, namely Elbert Yagaya, Lei Montas, and Pope Abella.

the team has been around for more than a year now but there weren’t much activities in the past so i can say we are pretty much still starting. and this is a good start so far. it only took an hour or so before the app got approved. well maybe that was because it’s not very complex. but it’s doubtlessly useful.

you can get the app for free at iTunes. basically it’s an app that can monitor flood prone areas around Metro Manila and send real time notifications to its users regarding the current flood situation.

screenshot 2 screenshot 3
Tagged , , , , ,

BotFactory


so i was idle lately (or must i say most of the time) and i have always wanted something to do that involves software development that is worth my while. no i’m not planning to develop an enterprise level application for profit, at least not at the moment. i simply want to test if i could make something good out of my learning. as we all know good programming skills is just as precious as having the capability to generate new ideas for an application. and that’s why i’m practicing.

anyway back in college i worked on an online implementation of feedforward artificial neural networks for my thesis or what we call special problem (SP). it was pretty successful. if it was not, i wouldn’t have graduated because a fully accomplished SP was a requirement to graduate. however, i of course have a number of disappointments. i guess i was on a rush those days that i wasn’t able to plan the system well. it was done and it passed scrutiny but behind it was quite a list of wrong decisions.

now that i have a lot more time to work on whatever i want, i would love to create a similar application. only this time it will be a windows application so that i can have the network training process run on the background as  a service as oppose to running it on the browser like what was in my SP.

this application i will call BotFactory. by that i don’t mean spam bots but really virtual robots that can be trained on certain tasks and assist their creators. i’m planning to use the same learning algorithm i used in my SP but this time i will employ the methods for speeding up the learning process. i wanted to do that in my SP before but i didn’t have enough time to test them so i just dropped them from the things i wanted to include in the system. i’m also planning to put into this little project all the things i know about software design and optimization at least just for practice. this can be good. who knows? maybe by the end of 2012 i’m already being assisted by a number of virtual robots in decision making haha. running the application should not be a problem. the processes involved particularly the training process is very computationally intensive but will only use very little resource. time complexity and is the thing that should get me worried. hopefully i’ll be able to think of a great optimization approach. wish me luck folks.

the details are still sketchy but if you would like to collaborate that will be cool. just leave a reply. (:

Tagged ,
Follow

Get every new post delivered to your Inbox.

Join 39 other followers