Tuesday, December 16, 2014

(Dev) Life is Hard

I've never been the type of person who can just take any kind of job I can find and be happy. I've tried and it just isn't happening for me. I'm too much of a dreamer and way too ambitious to do anything less than something that thoroughly excites me and motivates me to get out of bed every day. This is how we all should be. I truly believe the world would be a much better place if we all would actively pursue our wildest dreams with 100% total zealous passion.

For me, the last few years have been interesting, to say the least. In early 2011, I landed what was then my dream job of working as a Graphic Designer for a small ministry. I loved that job. I especially loved all of the people that I worked with there. My ambition, however, eventually got in the way of my happiness and ultimately lead me away. You see, while working there, I taught myself how to write JavaScript and PHP so that I could better support some of the web-based applications we used as well as design and implement more interactive websites and WordPress plugins. Learning how to code has been a long-time dream of mine. At least since I was a wide-eyed, eager kid who explored and learned everything I could about the Commodore 64 PC that my parents bought one year for Christmas. I was on top of the world, having accomplished two things that I had dreamed about since I was a kid: how to program and working as a professional graphic designer.

Shortly after I taught myself how to code and built a couple of side-projects, coupled with the big project I did at work, my best friend offered me a position as a web developer at the University of Texas at Arlington. Without thinking I immediately accepted and, after enduring a three-month interview and hiring process, I left my beloved position as a designer at the ministry, just shy of my two-year anniversary, and became an ASP.NET web developer at UTA. This would prove to be one of the biggest mistakes I have ever made. A little over a year after I began working at UTA my friend left due to bullying and general bad behavior from our boss. Once my friend left, I received the brunt of the "hate" from the same boss and my work-performance and job-happiness deteriorated quickly from that point forward. It was safe to say that I definitely hated my job.

Thankfully, while working at UTA, I managed to learn the very basic concepts of working with relational databases, as well as writing basic to intermediate SQL, in addition to learning the C# programming language. I was also responsible for maintaining the Graduate Studies PHP websites and internal tools, thus strengthening my knowledge of procedural PHP.

In the summer of 2014, after stomaching as much as I possibly could from my boss, I discovered that he had recently submitted retirement papers. He planned to leave in August, at which point our department would be disbanded and all web development duties would shift to another department entirely. I knew what this meant; I wouldn't lose my job, but I would not be doing any more web development, either, since the powers that be did not want to continue to maintain our current ASP.NET sites and tools and the Graduate Studies portal had recently been moved to the proprietary CMS that was maintained by another department, which happened to not be hiring any new developers. I had been attempting to work with headhunters in my area for 6 months, but had had no luck at all. My luck would soon change.

In late June, I was visiting a very close friend who worked at SoftLayer, in Dallas, which is owned by IBM, and shared with him the drama and suffering I had endured thus far. He encouraged me to put in an application and resume with IBM for a position as a Software Engineer working at SoftLayer. I did so and, a little over a month later I started my new job as a Software Engineer at SoftLayer, an IBM Company, doing back-end engineering for their ordering system, which utilizes a custom MVC, object-oriented PHP framework connected to an Oracle database. So far, I've learned a lot at SoftLayer. I've learned how to use and work with Git, and my knowledge of PHP, especially in working with its object-oriented features, and MVC has grown exponentially. Alas, things are not what they seem and I am far from happy or content.

After teaching myself to write code I realized that I could leverage my newly acquired skills to make more money than I ever had before. Ultimately, I have accomplished that. While I do enjoy writing code and am thrilled that I get to do it for a living, I feel as though I am not very good at it. It is taking me a good long while to be at a level that I can contribute new features and true bug fixes to our ordering system at work and it is putting me in a bad light. I finally realized that I need to ask some of the other devs on my team for help in getting my head around the general concepts and code-flow in our system. Programming is hard, make no mistake. Learning how a complex application works is just as hard. You can't learn on your own. Period.

My frustration was leading me on a very dark path filled with negativity, self-doubt, and would have ultimately lead to failure, as I would have eventually just given up and quit trying. The absolute difference between failure and success is knowing when to utilize the resources at your disposal, such as co-workers, online forums, and social media. You have to decide whether you really want to achieve success and, if you really want it, you have to decide that you are not going to give up, no matter what. If you make the decision to keep going you will eventually persevere, you'll demonstrate that you're willing to tackle a problem and see it through to completion, and you'll gain confidence to use in tackling bigger, more complex problems down the road.

I've shared my story in the hopes that it will inspire anyone out there, not only to chase their dream, but to not give up on it when the first major test of will and faith shows up. And make no mistake about it, that test will show up, eventually. Nothing worth achieving is devoid of massive challenges and frustrations.

Tuesday, April 16, 2013

Open-Platforms Vs. Walled-Gardens

I've been jabbering for quite a while now that I have been planning on switching over to full-time Linux use at home very soon. A few years ago, I used Linux at home full-time for about a year-and-a-half and was super happy. Then, I desperately needed to do something that was only possible in Windows, so I added Windows 7 Pro as a second-boot OS on my PC and so began the downward spiral.

Years later, after a 3-year stint with both Windows and Mac OS X (via a MacBook Pro, which I actually loved), I have been using Windows 7 full-time for the last two years. Then, late last year, after ordering it in October and finally receiving it two days before Christmas, I dove head-first into the world of Windows 8 RT via a 10" tablet from Dell. It has been the worst computing mistake I have ever made. It's definitely time for a change.

As I read an article discussing open platforms earlier this morning, I began to realize that what I want is not necessarily to switch to an open-source OS full-time but, rather, to utilize devices that run on open platforms which enable me to do as I damn-well please with said device. The distinction is clear and very important. Put simply, I demand to be able to do whatever I want to with the devices I purchase.

When I purchase a device, it is usually for a semi-specific purpose, or to fill a need. For example, my iPhone functions as a phone, but provides apps such as Google Maps, Foursquare, and Radarscope that fill certain, specific needs that make sense to have available via my smartphone since it is always with me. The problem is that, although the apps I mentioned are awesome, highly useful - and highly used - apps on my phone, the entire platform is closed so that, if those apps were not available via the iOS App Store, I would not be able to install them on my iPhone and thus utilize them to fill the needs that they subsequently fill. See? For that reason alone I will be switching to a high-end Android phone ASAP.

For now, I will hang onto my Alienware notebook, with Windows 7 installed, and continue to benefit from an open platform there. Yes, Windows 7 is open because you can install any software you wish to install and are not restricted to just using software from an app store. If the need ever arises, or my desires shift, I'll either replace Windows 7 with Linux or dual-boot. The Windows 8 RT tablet has got to go, however. Not only is it a fully closed platform but it is severely lacking in useful app selection. That tablet, unfortunately, doesn't even fill the need for which I bought it, at this point. And I refuse to even discuss the iPad. Not only is iOS a closed-platform, as discussed above, but the hardware cost is outrageous!

Thus, I am looking at most-likely purchasing either a Google Nexus 7, or possibly a Nexus 10 if I decide that I want a full-sized tablet. The cool thing about Android, by the way, is that I can get ALL of the apps I use most on my iPhone from the Google Play Store, in addition to being able to sideload apps to my heart's content.

Moving forward, I can guarantee that I will no longer purchase devices that are not built around an open-platform. I suspect, also, that as the lines blur between desktop machines and mobile devices, more and more people will also make the same distinction and choose openness over walled-gardens. Just ask Valve Software.

Friday, October 26, 2012

My Geeked-out Laptop

A fairly boring iPhoto of my Alienware laptop, but this post does serve well to test upload capability from the Blogger app on my iPhone.

Same Old Story

I hate that I can't keep a blog going long enough for it to grow and catch on with a core group of people. I say that not to be down on myself so much as to simply state the truth as it exists. It is the truth. I actually love to write and share with people. A big part of the lackluster blogging on my part is due to the lack of interaction from other people. A chicken-and-the-egg scenario, if you will. As another year winds slowly to a close, however, I find myself looking longingly at this blog and instantly thinking of the possibilities. Not to mention that I have a longing in my soul to keep it going. This blog still has the potential to be unique and fit a niche, I believe. I simply need to put forth the effort and "finish the course."

In all honesty, a lot has happened this year. I left my job as the graphic designer & web developer for a small, international ministry to take on a job as an Application Support Specialist (read: ASP.NET, C#, and SQL programmer) in the Student Enrollment Services Project Management Group at the University of Texas at Arlington. It was a major move, and it was not a decision that was made lightly, but it is the fulfillment of a long-standing dream in my life so, in the end, the decision was a no-brainer. And now I look to the future.

As my life comes into what I believe is a rich and full "summer season", I find I am thirsty for other outlets. It is time for me to really focus on something that is so radically different from what I've always pursued as a hobby in the past. I believe that the only way I can "succeed" as a blogger is to be real and simply combine my core passions into one large, cohesive whole and share my story with the world without any thought of receiving anything in return, aside from meaningful and intelligent conversations with anyone who discovers me here. I need to give serendipity a chance to find me. That means, ultimately, that I must set forth with no rules and keep this as a free-form experiment for now. I need room to grow and make mistakes so that I can learn and grow, but I do hope that you will stick around and hang on for the ride!