And Here We Are

In my line of work [applications developer], a lot of things change constantly. This can be both a good thing and a bad thing. The bad thing is if you take a break for even a day or two, you are already behind. Hell, every second someone is coming up with the next best thing -- sometimes it's the same thing as the previous best thing but with a new coat of paint -- but I digress.

Anyways, along with the bad there are good things too with constant change. For one thing, with progress comes better ways to do things that make life a lot easier for both developers and end users. But above all else, it keeps us developers on our toes.

It's just so easy to get comfortable where you are -- for one thing, the rule of thumb is if it ain't broken, don't fix it. While that holds true most of the times, it comes with its share of problems. For one thing, something might be working for years but suddenly one day it just stops working. Then you go online and research about it and well your method is now irrelevant and has been abandoned for something a lot better. Now you have to go through a rabbit hole after rabbit hole just to find a way to fix your initial problem -- which may lead to other problems along the way. It becomes really expensive really fast.

My History

I started developing applications since probably the beginning of high school. It was easy stuff like HTML. Eventually that lead to working with Visual Basics to ASP and so on. Eventually ASP turned into ASP.net and I wasn't quite ready for the whole MVC convention -- I was just a kid messing around with adhoc development. I'm not ashamed to admit I used a lot of Dreamweaver's "tools" during my development in the early days. By tools I mean their plugins and WYSIWYG editing. It would make my simple program expand to about a billion lines of crap code. HEY I WAS JUST A KID! Take a look at one of the first sites I've ever made. Angelfire rocks -- still has it from over a decade ago!

Eventually I found my niche in PHP development. There were no rules and you can do just as many things as other scripting languages. The possiblities were endless. I started out with simple sites and eventually went on to building my own file managers and webmail clients. It was fantastic -- I had so much time on my hands (no friends, no social life) and just coded away.

Later on during my late high school years I started losing weight and gaining friends (funny how that correlation works). The downside was I started easing off programming and just got into the whole social aspect of life. I also focused more on getting into a decent college -- so my time was pretty much pre-occupied.

But all that coding I did during my early years paid off big time. All the logic skills I earned were put to use on a daily basis till this very day. Programming tiny little applications laid down the foundation of what I do now. In hindsight, having no friends and no social life was probably the best thing that could have happened to me -- would I do it all again? Probably not.

Eventually I went on to college and got a few jobs making websites for Rutgers and some freelance work here and there. I was in college to become an Electrical Engineer -- but my heart was always in programming. Electrical Engineering has a lot to do with programming so they had a few classes dealing with it. Needless to say, I did the best in those classes.

After college, I took a year off. I was at a point where I didn't know what I wanted to do. The transition was pretty hard for me -- going from waking up whenever I wanted to and just going to classes and then hanging out with friends to a real world was just overwhelming. College teaches you a lot about stuff, but it doesn't prepare you for what lies in the real world.

Anyways, right before and throughout college I started to lose touch with programming. I still had retained (for the most part) for what I learned previously, but didn't learn anything new -- nor did I take the initiative to try and learn something new.

During the year I took off (not voluntarily) I watched a lot of TV but I also regained my bearings on programming and development. BlackBerry had this challenge for developers to take advantage of -- basically you build an App for their platform and you get a free PlayBook. At that time I had nothing better to do so I said why not.

What I didn't know then is that decision changed my life completely. It's one of those things where had I not chose to do it and start developing again, god knows where I would be now.

As I started learning a whole different programming language (ActionScript 3) I started to meet other people who were doing it as well. PS I started losing touch with a lot of my college buddies and went back to the whole no social life thing. So during this BlackBerry Challenge I started going on their forums and talking with people who were having problems. Oh yeah, side note, I have this overwhelming need to have to help people with their problems.

So on the forums I'd jump on daily and help people debug their applications. Eventually I became one of the top users on the forums and was gaining recognitions among its members.

From there we started to form an IRC chat group and voila, I made some new friends. From then on I just kept learning new things after new things and my mind was finally stimulated again.

Remember, at this point I was still jobless and living at home with my parents for a year -- but I was at least being some way productive.

Eventually, I realized although this was a great experience, it wasn't paying off my college loans that I haven't paid off yet -- so my next goal was to get a job. At this point, I had gained a lot of experience on my year off and thought I'd give it a shot. And so I did -- and boy, was it painful. Email after email, resume after resume, wasn't getting anything -- and the ones I was getting weren't enough for the commute I had to make.

Eventually on a random night in the summer time, I submitted to a place called Capturepoint. This is another one of the moments where if I hadn't taken the initiative and keep pushing, I don't know where I'd be today.

Capturepoint liked my resume and asked for an interview. I was ecstatic and beyond nervous. During the interview I talked with Joe (my current manager) for like an hour. We just got into some SQL statements and logic discussions. I didn't score a 100 but I did well enough for them to give me the job.

This was a great moment because I was finally out of a big rut. From then on, I just kept working and working learning on the job. Until this job, everything I learned was based on personal experiences and every job I held didn't have any standard operating procedures and I just kind of did things willy nilly.

Here I learned about having actual environments to do development, testing, staging. It was an eye opener but I adjusted really well and they loved me and hell I loved being there.

My Present

So during my 2+ years here I've learned a lot of Coldfusion and SQL server related tasks. I became a pro and knew the ins and outs of both. But here is where it got a little strange. I got to the point where things were getting stale. I didn't have the same feeling I had when I started -- I wasn't as enthusiastic and my mind wasn't being stimulated. Something was missing.

Although I became an expert in something, it wasn't enough. So on my free time, I started exploring the internet and just seeing what the world was doing -- and by world I mean other developers.

Turns out, JavaScript development was huge and PHP wasn't used as much as it used to -- there was now something called Ruby on Rails. Instead of willy nilly scripting, there were actual frameworks now for most languages. There were conventions being followed and MVC wasn't just a phrase being thrown around -- it was actually being implmented across the board. All of this was foreign to me -- scared the crap out of me.

But a part of me was excited. I dove into Javascript head first. Changed my life again -- I went from being just a backend developer to a full blown Front End developer. I started to spice up my company's current suite of applications with UI/UX modifications and they were beyond wowed -- hell I wowed myself.

I went on to learn about JQuery, CSS manipulations, AJAX.. you name it. It was a whole new world and I was learning something new again finally.

Coincidently, all this new stuff lead our company to acquire new clients and software. We were even more relevant than ever.

Eventually we started developing in HTML5 and started to build real applications for Mobile devices. I went on to learn about BackboneJS, MarionetteJS, NodeJS, and so much more. It's insane to think there was so much out there that I didn't even know about. As scary as it was, my brain absorbed most, if not all, of it.

Now

As I started to get into all of these new Javascript libraries, NodeJS kept rearing its head. Till now I've only just dabbled in it because it didn't have any value in my current workplace -- it was new technology that my job hasn't thoroughly tested and is no way ready to put into production. I didn't have any servers that supported it except for my local machine.

But then one day I found a small use for it -- I found that you can scaffold applications to help develop faster. Then I learned you can literally automate so many tedious tasks with it. It slowly began opening up a new world.

A few days ago, I had this sudden need to learn something I haven't learned before: Rails. Now, the concept of rails isn't completely new. I've known about it for a few years now, just haven't had the time to go out and explore it -- so I ignored it. But being as hungry as I was, I started looking through some documentation for it -- and found something really cool about it. It is so widley used compared to most other languages and platforms out there -- and best of all it's free.

So now I really wanted to develop in it but didn't have the server to do it. My current host offers it (Host Gator) but doesn't offer the amount of control as I would want it -- and it would require me to use a different port for the service -- and I hate using non-standard approaches when doing things.

I then went out to search for hosting companies that supported NodeJS and Ruby on Rails natively. I found some respectable ones like Digital Ocean, Heroku, Linode -- but they were either too expensive or limited. Digital Ocean was my best choice -- but it was about $5 a month -- now this is a steal but I currently am hosted somewhere else -- and I can't turn that off till I know where I go, everything I currently run can still be ran.

So that $5 would be an additional cost. But then I thought to myself -- I have super fast internet service at home that lets me have a webserver -- why not set it all up here? And so I did. Last year I wiped out an old Dell Laptop from about ten years ago and installed Debian Squeeze. It was during a phase where I was hungry to learn something new -- so I set up a new box with VPN, web services, etc.

So I did just that -- I bought a new domain (rab.io) and set up my home server and am now running NodeJS and Ruby Rails.

The process wasn't a walk in the park -- but after about a day or two I was up and running. Going to go through it all in my next post.

Take Away

This was a monster entry -- so if you read it all -- thank you :). Thought it would make for a great first post -- and it gives a good background of who I am.

So my plea to everyone, keep reading about new things and keep doing new things that you haven't done before. Stay up-to-date and relevant.

comments powered by Disqus