On a different note, I’m learning Objective C. Getting started on iOS programming, going to be working on a new Mobile app for a project.
Backstory, I got a programming job just a few months out of college. Graduated in June, started in August. Found a job for a local company posted on the scools Job board through the engineering department, applied, and got it. My boss was amazing, as opposed to all the super intense interviews I had done (I applied for Heavy Iron studios who make games like WALL-E, and it was a 4 hour interview where I had to do physics, game design, and programming all on a white board). He saw my resume, and asked me a couple of simple questions. He asked, “I want you to make me a program that returns a random dice roll. How would you do it?”
I said, “Well that depends on what you want. How many sides on the dice? How many dice being rolled? Does it need to be able to take in a command on what type of dice to be rolled?”
He smiled, shook my hand, and said I had the job right there, just because I was asking questions and trying to get more info instead of just blurting out the simple (rand() % 6) answer.
Anyway, I got put into a big MFC consumer app in C++, which was their flagship app. It’s used to generate the advertisements that go out in weekly papers, we manage the pricing, the product information, the advertisements themselves, and churn it all out and generate the different versions that would need to exist for an ad (like, even though Best Buy puts out an ad a week, different regions have different ads. It may just be small like pricing differences, it could be huge differences in layout and products advertised, and in many states there are different legal requirements on what text should be shown). We streamlined this process so that one button push, and all the versions are calculated. We also then let them export it into InDesign, work on it there by artists, updating pricing automatically, etc. It filled a very specific niche. Big companies use it, like Best Buy, Circuit City, Toys r Us, Ace, Home Depot, etc.
Slowly I got involved in some of the other projects. They had a web app that could display the advertisements on a customer website, that was fed the data directly by our system. And they outsourced it, and because they sucked, it was brought in house. I got the code dumped onto my desk. “I know you’re good, and I need you to figure it out.” It was a combination of JSP and Flash. I was completely overwhelmed too, for weeks just trying to learn how to do it. 30 bugs sitting there that needed to be fix within a month, and I had no idea how to even compile the thing. Long story short, I finally did it, and got all 30 bugs fixed. Felt good. And I learned new skills.
After that, we started working on an application designed to put some of the core app functionality in a website interface, for stores like Ace where each ad is handled by the store directly (co-op). So, for that project, I learned how to do a java server, connected to a Flex front end. (Flex is like flash, but more designed for business applications).
I also got involved in the InDesign plugin, a config app, a workflow plugin, a Proofing application, etc.
All in all, right now I’m responsible for about 8 different applications.
As time went on, Connect 3 (the small company) was bought by DemandTec in the bay area, and then DemandTec was bought by IBM.
So now I sit, working from home, working on these same applications I have been for 5 years. Everyone else from the original team has left, most to work in a similar company startup in Orange County. My boss died of some sort of liver disease, which hit everyone hard, and most people just were mentally done. DemandTec, 2 months after he died and the next in line left, closed our office and laid off almost everyone. But since I had my hand in every project there, I was kept on, along with 1 other programmer. They’ve since left, and been replaced by programmers in India, who have recently been moved off the project too.
So now, it’s just me. I’m alone, supporting this software suite in line to not be supported past 2015. I’ve told my boss I expect to be fired in 2015, which he denies. He senses how I am just kind of existing. I honestly, most weeks, put in about 20% effort. Except for when theres something really important or a deadline, then I’m putting in 100% and making delivery. But otherwise, whats the point?
So, he’s getting me out of the initial software suite, and into Mobile Development. I’m happy. Although I’d prefer to do android development (I have some experience I did in my free time), I’m glad to learn something new. Objective C is weird sometimes, but it makes sense in a lot of ways. So I’m maybe 1 week into doing self teaching, tutorials, etc, and it’s cool. Just made an app that connects to the FourSquare API, and lets you search for anything based on your location. Mobile app programming is just cool, in a quick response feedback kind of way, that you just can’t quite get with desktop applications. So I’m hoping this takes off, and maybe can be my main focus going forward as the other project winds down.
And that’s my story, of how I went from college, to a local software company, to being a simple cog in one of the biggest tech companies in the world (400,000 employees world wide). I’m scared, because right now I am in power and can make the rules, but once my project isn’t necessary, I’m disposable and afraid of being unemployed.
And I should stop being scared and just interview at google already, damn it