The Art of Coding
I would define programming (and software engineering) as the art of coding. I enjoy coding and hacking in general, regardless of platform or application or language. I would consider myself language-agnostic for the most part. However some languages, platforms and applications are far more enjoyable to work on than others. Some tasks take more time and effort to achieve depending on the strengths and weaknesses of the language and platform. I specialize in Android, Java (JSP/Servlet/SpringMVC) web, desktop and Linux programming.
Coding Projects
Volunteer/Open Source and University
- justCheckers – An advanced checkers game written in Java. Originally developed for desktop Java and now in the process of transitioning to Android devices.
- Visual Computing - A series of projects done for a visual computing course in university.
Past Clients
- Realtor.ca Android App – Android app developed for real estate client at Indusblue.
- Replicon’s Time Clock – AJC & Associates – Android based tablet system that allowed for remote maintenance and extended client’s time and expense management SaaS product.
- Golf Association of Ontario - Android app for a sport association. Included a GPS enabled/Google Maps powered golf course finder.
- Hockey Canada Mobile - Android version of the Hockey Canada Mobile app.
- Digicel Internal Portal - Worked on building a postpaid credit approval workflow in a supply chain management Java EE application. Also developed and maintained backend for e-learning/self-support system.
- Nationwide Appraisal Systems - Maintained and enhanced the JSP and MVC Servlet website.
Favourite Languages
- Java: This is the language where I do most of my programming.
- C: Nothing feels cleaner than a nice, elegant small application written in C, in my opinion.
- Python: Probably the best scripting language invented by man. Get past the white spaces and other oddities, and Python scripting is beautiful tool for anything from small system administration scripts to full fledged applications.
- PHP: Not the most elegant of languages, but if you need a small to medium sized web application you can’t go wrong with PHP.
Favourite Platforms
- Linux: This is my operating system of choice. Contrary to popular believe, Linux is both a great OS for developers and end users. High-end media artists might miss some professional (but unfortunately proprietary) tools, and prefer Mac OS X for a multitude of reasons. As for specific distributions, I’ve gone from Mandrake (now Mandriva) to SuSE (pre-Novell) to Gentoo. After the joys of Gentoo, I settled on Kubuntu being the nicest and easiest distro with the largest selection of packages.
- KDE 4: I started using KDE since 3.0, and loved using this great desktop environment. The recent releases of KDE has made it one of the most usable and comfortable desktop environments.
- Google Chrome: As a web application developer, a good web browser becomes my best tool for the job. I have used and loved Firefox in the past. However Chrome is an amazing WebKit browser with tons of amazing extensions and is amazingly fast.
- Qt: Java is cool, no doubt. But Qt looks like an awesome library, and it is on my high priorities of things to learn and master.
Favourite Tools
- Eclipse: This is my IDE (integrated development environment) of choice. It is the sword that I use to conquerer my problems in Java, and use it in my day-to-day job at least from a coding aspect. As with any fully featured IDE, it can take some time to master but it is a great tool for a developer.
- Qt Creator: This is the IDE for Qt programming, simple, powerful and fully-featured.
- Kate/Vim: Ever developer who has embraced the one true operating system design of UNIX, has a favourite text editor. Mine is Kate and Vim in a console-only environment.
- Git: I use Subversion at work, but it is not the most elegant revision control system invented by man. Git on the other hand is an amazingly flexible and powerful RCS that really frees developers to do amazing experiments, and yet allow for control of the codebase.