Better late...

What was supposed to be a 2013 kick off post turned in to a six month "let's leave it for later" drag. But after today and all the super stressful past weeks I think my brain earned a well deserved figurative dump. Maybe this way I'll get it to shut up for a while and stop thinking. About things. All of them. At once. All the time.

2013 was off to a good start. The game received much needed attention and I got some progress done. This was facilitated by the fact that I was on vacation. Much was learned. Yet, that nagging feeling that it wasn't enough, stayed there. Work started and ramped up quickly so any progress that was to be made on the game was halted by after hours exams, deadlines, crunch time, tiredness and general lack of motivation due to unbalanced concerns for my own abilities. More on that later. Luckily by March it was going to be put on time out by something that was the best thing I probably would have done all year.

PAX. I'm glad I decided to go to PAX East. I loved Boston, the convention, the panels, the music, the people. Oh my god the music! MAGFest was there! They had a little room where bands played live face melting rock of all my favorite gaming music. Holy shit! I been wanting to go to a MAGFest ever since I known what it is but between one thing and the other, by the time I was able to do so I forgot. And to my pleasant surprise, they show up to PAX. It was beautiful and I will try to go to MAGFest next year if possible, since I also want to go to PAX again. Vacation time and money needs to be accumulated and it may be the case that I will have to drop one for the other.

Returning to this patch of shit was tough. Especially from being that high on fun. But work wasted no time in making sure I continue to have no life outside of it. More exams were being required and luckily I tore each and every one of them apart. At the cost of free time once again. While all this was going on, that nagging feeling was always there, well, nagging. As a software developer, if I care enough to be good (or the best, even) at it, there will be always an ongoing professional concern about how good you really are.

The software engineering discipline is vast and complicated. There are many languages, technologies, frameworks, toys, APIs that you are expected to know at any given time. Capitalist pigs are always expecting that you know everything and anything that their insatiable customers desire, so they can sell your skills to the highest bidder. And, to top it off, a lot of us developers are way passionate about it. We love doing this shit. It's fun. It's challenging, impressive, rewarding and well paid. Honestly I get paid to do the thing I enjoy the most. But not all is cake and berries. It's still work, and it still sucks when is not Friday and unless you're a rock star developer that partly owns a million dollar company you wont necessarily be playing with all the fun things your heart covets. You will still be a dirty keyboard peasant working to make a living.

While fast forwarding through our professional concerns, a lot of us developers that are passionate sometimes find ourselves that, while we are good at what we do, we're not "good enough" for our own standards. I've seen a lot of shitty developers and even more shit code, so I worry that, while not realizing it myself, I create something unworthy. This is profoundly true when its about working on a personal project that you care about. This worry is even powerful enough to put a stop to things, because you are worried that if you keep going the way you're going, while making progress, you're still doing it wrong. Projects at some point can become big enough that, if you're not careful, your own missteps will thwart any real hope of having something functional and realize that in order for things to continue, you need to tear it down and start over again. This in itself, is not bad. IF, IF YOU HAVE THE TIME. This is normal in the iterative software development process. You make something, you realize its shit and you break it and start again. You learn and its OK. But if you're worried about time, the walls may seem that they're closing in.

I'm not saying I'm in a hurry. After all, if I make a game that has the potential to be turned in a successful enterprise, all time spent on it will be worth it. But, there is a real concern that I'm trying to overcome when it comes to software development skills. Add to that, game development is way more complicated than silly things like business applications and payment systems. Moving money around with software its easy compared to making a real, functional, fun and well performing game.

While constantly worried about proper practices, patterns and structure my game development has halted a bit. I have been taking time to learn this profound art of well structured, managed clean and efficient forms of coding so that at some point I feel comfortable enough to continue on a personal project that I won't unconsciously royally screw later down the line because I was sloppy. Also, this satisfies my constant hunger for knowledge and for being better at what I do. It also helps that the quality of my work at my day job keeps improving due to this desperation for perfection. I'm not one that likes to climb corporate ladders, but inadvertently it may happen that by becoming so good at something, at some point you don't even need a ladder anymore.

This can also backfire. The better you are, the more is expected of you. So this last weeks I have had to put myself in overdrive to meet some deadlines of some unruly, unreasonably demanding clients. Which brings me to the point that has caused my brain to hate me and not let me sleep and have headaches.

REST APIs are great. No need to explain in detail what they are but for now it's OK to mention that they are one of the technologies that enable you to do all those magical things your cellphone does like heart many things on Facebook and look at cute puppies from virtually anywhere. There is a hacker marathon (a "hackathon", if you will) that the local government is sponsoring and I was charged with the task to develop one of the APIs that will be used by the developers at the marathon so they can program on top of it.

My unfortunate reality is that, while I am well versed in how HTTP and REST works, I was rather unfamiliar with actual frameworks that implement a proper foundation to develop a RESTfull API. There are many things to choose from and while I have quite a few years working with Java and other open source stacks under my belt, my office is primarily a dreaded "Microsoft Shop" so when it comes down to choosing technology stacks first and last choice is pretty much whatever Microsoft offers in their .Net framework and/or they want to promote.

Having to learn the rather new and still not mature enough Web API based on MVC 4 was not that bad but since it is still technically new, it has had a lot of quirks that caused a lot of heads to bang on desks and long hours and nights figuring out why things work on development environments but not on production servers because little details that massively break stuff are still not well documented. Fuck off Microsoft. ITS SHIT. ITS SHIT AND I HATE IT. And I hate even more that I know I could have used many readily available and more mature libraries but could not do so because partners have to be such little whores and promote the use of YOUR technology stack. Deploying things in your shit ass IIS web server is a nightmare. I rather have someone pull out my brain with a straw from the nose.

Phew. Well, that feels much better. See you all after the hackathon or in six months.

Comments