Programming

I had to write a bio about my programming experience for a job site. I thought I would capture it here for those interested in how I got into programming. It's more conversational than the usual (my) resume which is full of bullet points.

--------------------
Image: Wikipedia

The Beginning


I started coding when I was 7 years old. My Mom thought a Vic-20 would be a great toy for me. Was it ever! A computer, that plugs into a TV, and a thick manual with everything you need to know to program that computer. Needless to say, life was boring with the Vic-20 until I figured out how to code it. Then I was hooked, I could make this toy do lots of funs things. Hand coding in games, drawing ASCII pictures, and making bad MIDI music.

High School Years


In a newly introduced high school computer class at school we had the option to do a project on Word Processing and Business applications or Telecommunications. The class unanimously choose the Business applications option, but not me, I choose Telecommunications. I had unrestricted access to the class modem and I learned about BBS. I started playing online turn-based BBS games like Solar
Image: Wikipedia
Realms Elite. This telecommunications and connected/pre-Internet days was mind-blowing.

While in high school I got my first Intel, 386 DX. I learned to write batch files so I could write a game starter diskette that allowed me to boot the computer from disc so I could choose the game I wanted to play. Duke Nukem needed special settings for the sound card to gain 3D sound but you had to give up some video definition for this more realistic sound. For Doom on the other hand, all power went into the graphics and I stole RAM from my display card that was not being used so I could hand it to DOOM so it had extra RAM for displaying better graphics. Yes, you had to tune your system to the game to get the best experience.

University


A friend introduced me to his IT Support boss for the campus. We talked about my experiences hacking game boot discs for my computer, batch files, how to tweak Windows, and he offered me a job on the spot. I finished my Computer Science degree while working at IT Support for the Campus with over 2000 networking drops. I got to manage up to 15 students a semester, assigning, completing, and managing customer relations with our campus faculty and staff.

Post University Early Years


I packed my car, drove from Newfoundland, Canada to Ottawa, Canada. Crashed at a friends place, got an interview with another friends manager and had a job my first week in Ottawa. I then worked at Nortel for 9 months before the tech sector there crashed and Nortel laid off our entire project. But I bounced back fast and was working 2 weeks later at Bridgewater Systems where I stayed for many years and cut my teeth on C++, PL/SQL, Oracle Databases, and Accounting systems for
Image: Wikipedia
Telecommunications. It was here I got to submit my first Patent which was accepted and granted.

Some friends moved to General Dynamics working on the Maritime Helicopter project which sounded fun and so I joined them to work on the Electronic Support Measures system. I had a blast here learning how Defense operates, implementing automated systems to speed up batch testing jobs, and creating a system testing framework based on Python Unit Testing frameworks that was adopted by the entire project.

Recently

Image:Tweety10,
droolfactory

During my time at General Dynamics I bought a Mac Book Pro. Shortly after this, the iPhone came out and then the iOS SDK. I jumped onboard, since I love Unix environments and loved my Mac. I wrote an app that was an optimized Hockey Twitter app as my first iOS App. I released that on my own. I then leveraged the work I did on HockeyTweet to create a more ambitious Olympics (Vancouver 2010) Twitter app called Tweety10. I put together a team of 6 friends from the local Ottawa Cocoaheads meetup, we split the work, and based on my design we implemented the app in 3 weeks and shipped to the AppStore. We were used during the Olympics and got reasonable coverage and usage. We did this for free and had a blast. We also used it as a Ad platform for our own individual apps. So all the ads were for our apps and this was before iAds.

From this after hours experience while at General Dynamics I decided I wanted to code iOS and Mac OS X full time. I was recommended to BlackBerry who were looking for a Mac OS X dev and quickly got the job and started my recent job with them. I worked on the BlackBerry WiFi MediaSync feature for BlackBerry Desktop Manager for Mac. The feature was a secure HTTPS server that allowed you to browse, edit playlists, and stream music from your home computer. Yes, you could stream iTunes from your BlackBerry before you could do it with your iPhone.

Then I worked on some products that did not see the light of day but I did get to play with DLNA which was fun. The next shipping product was BlackBerry Link for Mac. For this I wrote the Mac OS X side of a cross platform C++ library used to connect a BlackBerry 10 device to the users home computer for remote pairing and sharing of files. I also wrote a C wrapper library and Objective-C Framework for integration into other BlackBerry Link features that were written in those respective languages.
Image: iTunes AppStore

Most Recently


Lastly, I was recruited internally at BlackBerry to join the BlackBerry Enterprise Server 10 team to refactor their iOS client. I did the refactor from a C++/Java style written app with a lot of Androidisms in the design into a pure Native iOS app. I refactored the design to meet the MVC design and to use Objective-C styles. I was able to decouple the code so that we could start writing unit tests and increase code coverage. I mentored two teammates new to iOS, acted as iOS architectural lead, iOS subject matter expert, and implemented the redesign of the UX that included moving from hand rolled views to the adoption of Storyboards.

Next


I am looking to grow as a an iOS Dev Lead where I can mentor a team as we build great products that delight our customers.

No comments: