Opensource what?

This week I officially got a raise for the first time in my corporate life. Yey!

All the chicken joy I ate for the last 6 months was worth it

With it came a few papers to sign and one of them was a patents and intellectual property agreement. I understand that companies need to protect their assets (I signed the standard NDA a few months back) but 2 particular clauses caught me uneasy.

3. The Employee shall promptly furnish the Company a complete record of any and all inventions, patents and improvements, whether patentable or not, which he solely or jointly may conceive, make, or first disclose during the period of his/her employment by the Company.

Does this mean I can’t just make other games and release it? Do I have to tell the Company every single time? Wait, it has to be conceived or made or first disclosed during the period of my employment. But what exactly is a “period of employment”. I asked the Admin about this and they defined “period of employment” = paid work hours. Fair enough, other companies like to define it as the day you got hired to the day they fired you.

4. The Employee agrees to and hereby grants and assign to the Company or its nominee the Employee’s entire right, title, and interest in and to inventions, patents and improvements that relate in any way to the actual or anticipated business or activities of the Company or its Affiliates, or that are anticipated by or result from any task or work for or on behalf of the Company together with any and all domestic and foreign patent rights in such inventions and improvements. To aid the Company or its nominee in securing full benefit and protection thereof, the Employees agrees promptly to do all lawful acts reasonably requested, at any time during and after the employment by the Company, without the additional compensation but at the Company’s expense.

I work for a social (read: Facebook) gaming  company. Does this mean the Company owns my Facebook game(s)? Does this cover all online/web based games? The scope of this clause is too big to be unambiguous so, again, I asked for clarification. This time they told me to STFU.

No, not really.

Actually, they told me that it’s specific to the games we are making. So if the Company is making a game about Cows and Aliens don’t make a Carabaos and Zombies rip off. If they can recognize their game in mine it’s officially theirs. Fair enough.

I signed the damn agreement already. Admin didn’t offer a rewording of the contract to reflect the clearer definitions. That’s ok. From the discussion, I understood that they are merely trying to protect the company’s assets and aren’t after my badly coded, unfinished crap. Besides, I’m not really litigious.

While we were discussing this, our HR girl asked me why I’m being too thorough on this.

“Do you have projects on the side?”

“Yes, I have plenty.”

“Oh. Then you must be earning a lot from these projects”

“Nope. Not a single centavo.”

“What? Why do it then?”

“Umm.. because I want to?”

Self Assuring Status Update

A month ago, some business guy offered me a job — a senior game development position for their startup. Which I accepted. Given my anti game development company stance, some people might think that I’m selling out. Which I’m totally not. Here are my excuses justifications:

  1. It’s a startup. At my age, it’s the best time to join one. I learned applied software design, marketing and game industry in my previous companies. Startup 101 will be the last course and I will have finished a more practical Master’s degree in Software Making.
  2. I’m not making video games for kids. I don’t think my bosses even play Starcraft.

Also I’m broke. I tried the indie route for a while, but it was harder than I imagined. Games always take longer to develop. And elitist and artsy games don’t sell. (Note to self: I’ll make a full post about this if I find time)

People I previously worked with have seen the kind of dedication I can give given the right kind of project. I already sacrificed part of my personal life for this so this is totally hardcore.

With that I will be postponing further development of my current indie projects:

  • RPGEngine — last update was a cutscene parser. Was supposed to work on a quest parser next. Will opensource this after it gets stable.
  • BiomoddPlant — an update on the Biomodd-Makiling game I made a year ago. Last update is on simulating plant growth.
  • Jollibug, Love/Hate — games I already put on limbo. Might still work on it, if only for the awesome game titles.
  • Project GPAD (Game the Philippines of Association Development) — working title of a site I’m making about video game makings. Halted because I ran out of money.

There, I’m on full work mode the whole October. People I previously worked with also know that the only way to stop me is to mess with my salary, my work hours, or my girl.

To my team, if you read this, October is gameface on!

Under $350 a month

I’ve been using GnuCash since I started receiving a monthly salary back in 2008. It tells me I earned about 250k since Oct 2008, and that I currently have nothing in my bank accounts which I really need to close.

Also according to it, I spent less than 15k pesos last month:

  • Rent, Utilities (gas, water, electricity), and Groceries are the essentials. I’m looking after my little sister so I split the rent with my parents (parental subsidy, hehe) but I pay the rest.
  • I bought ink cartridges and a desk so that would explain the Supplies.
  • I definitely have to stop eating out, I spent more on dining than my groceries.
  • Entertainment (books, movies, music) is a big chunk of my Other expenses. I’m a very depressed person.

My Corporate Slave Self

I’m currently under a 2-year bond to work for a Filipino software company. While this may be my first real job, I have a feeling I’m working for a company that could really do better. In less than a week of working there I have broken so many coding rules just to finish a project on time. 

Let this post be my post mortem…
I was asked if I knew HTML. Of course I do, every computer science student knows how to use that primitive markup language. I asked if it was XHTML he was asking since HTML is basically extinct. He said just simple HTML for a static web app. Ok, simple HTML. Just basic stuff. So I said yes, I’ll do that.
I was assigned to a team of three. The specs where given to us and WTF!… it asked for functionalities that require Javascript, CSS and at times even AJAX or Actionscript to work. I guess their definition of static is “anything not connected to a server”. What kind of software company who specializes in web and enterprise apps doesn’t know what a static website is?
My teammates (a fresh grad and a career shifter) don’t know anything about Javascript! And 4 demos in 9 days? Complete with verifications, menu bars, image viewing, input processing. How the hell are we going to do that?
Not to mention we are serving 2 masters at the same time. We report to the QA and our PM. They have different ideas about the project. One wants to focus on the layout since it’s a demo after all. The other wants to focus on the functions since it’s a demo after all. I know, I’m supposed to follow the PM but what happens when they also have a different understanding of the specs. One interprets a “search” as a “search” the other interprets it as a search of local data on the local computer because not all data is sent to the server. WTF!
And what happens when the PM, who wants to focus on the layout, wants to stick to her “layout” which, to put it bluntly, is an insult to interface design and all the things I like doing. Large confusing icons. Bad color combinations. Cluttered web pages. Redundant forms. Non-cross browser compatibility. Any true web designer would have resigned right there and then when he was told that that thing they call a “layout” is better because it is what the client wants. Look, I’m no expert in banking, but I know design. And if this company wants to sell their product it should never be demoed on a very very amateur interface that looks like a highschool girl’s friendster layout. I’ve seen softwares sell because of interface alone (ex. Windows), I’ve seen companies thrive by making useless, though cute and pretty, programs (ex Atlassian), and I’ve heard of Microsoft Bob.
Anyway, to cope with my teammate’s lack of scripting experience I didn’t enforce standards. So now we he have a bunch of spaghetti codes, redundant functions, brute-force algorithms, and the uber-low-level “i just created pages with the values predefined and make it look like it’s javascript when actually we just made separate pages of every possible value”.
Now I wonder if I made the right decision to work on a non multinational company. How many coding standards do I have to break before I realize that my work is actually making me more stupid. I chose to work here because I want to take side with the underdog. I always think that small companies are purer.. people who code because they want to make the world a better place. They remain small because they are not doing it for the profit. I hope I’m not mistaken.