About

Hi, I’m Fahmi Mokhtar. I am a developer. (no, not that kind of developer lmao).

A Brief History

So the obligatory how I got started programming story: I taught myself BASIC using my fourth grade math textbook. My first nontrivial program was a text adventure game backed by a big spaghetti mess of GOTOs. I’ve been hooked ever since.

I was ambitious enough to set my sights on a Computer Science degree from one of the premier Universities in the country (UTM). I learned a tremendous amount and graduated with a GPA just shy of honors. UTM’s computer science department was ranked number one in the country the year I graduated. I was sorely tempted to write a letter to my good friends in the admissions department to gloat, but decided to leave them in peace.

After graduation, I took a developer position with one of a startup company in the University’s incubator. Multi discipline role was the name of the game there, as I was involved in a number of projects which I had to design all of the database structures, analyzing all of the clients’ requirements and transforming them into Architectural Designs; while still having to implement them into working and functional software. In a sense, what I was doing there can be considered as an early form of Full Stack development, but i digress.

Besides being an experienced developer; I also had several years of experience working in position in which I had to took over the System Administrator role, as they were no person who was experienced enough to execute the job. This happens during my employment with the University (UTM). The job entails tinkering with Linux Shell scripts, managing CRON jobs, etc., while at the same time attending to my day to day as one of the Developers in the IT department.

As of 2019, I’m working full-time in a multi national company working as a Back-end developer (Database centric), while maintaining some legacy desktop applications and windows services, from time to time.

As a side note, I also did several projects on Freelance basis. Majority of them were mobile apps developments. Some of the said project also calls for a companion Cloud Based application to be developed as well.

Tools

I am opinionated about my tools because my productivity depends on them, but opinionated isn’t the same as fanatical. Strong opinions loosely held and all that.

Notepad++ is my editor of choice. Having flexibility to highlight different language syn-taxes on the fly; it is really a lifesaver in situation where resources is limited. (Max memory footprint usually is less then 10 MB !)

I’ve used various flavors of Linux on the desktop: Red Hat, Suse, Mandrake, Ubuntu… In the end I realized that once the OS is set up and configured, I spend most of my time in bash and they are all pretty much the same. My current development machine is a sleek HP ultrabook running Windows 10. With the help of Window 10s’ Linux Subsystem, it’s a suitable Linux replacement with a very nice form factor.

As far as programming languages, I have had a lot of opportunity to experiment – creating large scale applications in Java, and .NET, and dabbling with PHP, C/C++, shell scripting, Scala, and others. JavaScript’s is now a second nature to me as I had encountered them in numerous projects masked in a number of frameworks and libraries (jQuery, Angular, React, Node.js)

There is a long list of languages and tech that I want to explore further. At the top is Assembly (both ARM and x86),, and all languages that is now in for app development for both iOS (Objective C, Swift) and Android (Kotlin).