About me

A few words about who I am, what I do and how I got there.

I started programming at 7 and still love it at 34. I worked in verticals like finance, banking, aerospace, healthcare, HR, retail, media and entertainment on web, mobile, desktop, and server products. My experience covers a spectrum of responsibilities – backend, frontend, leadership, project management, product design, quality assurance, and developer coaching.

My role with clients changes depending on project needs but I thrive where engineering, product, and business intersect. I care about making an impact on users, products, and teams.

I contribute to open source and maintain a database performance tool called active_record_doctor. In my free time I enjoy reading about software, science, business, and history.

My story

It all started when my dad bought me an Amiga 600 (with a 20 megabyte hard disk!), a compiler and a bunch of computer magazines. As a 7 year old kid I was mainly interested in learning to make computer games. After retyping my first program, which showed a dragon on the screen, from a magazine tutorial I was completely hooked!

During my Amiga period, which lasted around 4 years, I programmed in Amiga E, Pascal, and Rexx. When I was 11 my parents bought me a PC. I still remember the specs – Pentium MMX 200 MHz, 32 MB RAM, 200 MB HDD plus a 14” or 15” monitor. Visual Basic, Visual C, and Delphi were among my first development tools. I learned by reading books, including Charles Petzold’s Programming Windows, and official documentation. Additionally, reversing popular websites taught me the basics of HTML.

Following my dad’s recommendation, I gave Red Hat Linux a try. Its openness and vastness enabled me to explore multiple avenues of computing: networking protocols, security, system administration, socket programming, databases, build systems and more. I kept honing my skills by building kernel modules (like a keylogger), exploiting security vulnerabilities, setting up servers, and building web apps with Apache, Perl, and MySQL.

I always liked understanding things from first principles so one day I decided to start learning assembly. I thought it’d help me get a better grip on what happens under the hood. I stumbled upon a tutorial written by a member of a software cracking group. That random encounter sent me on an excursion into the world of software protection and, more importantly, its removal. Before long, the only reason I had Windows installed was to have targets to reverse and break. SoftICE, hiew, IDA, nasm, MASM were my most frequently used pieces of software.

Around that time I was starting my freshman year in high school. The school library had many books on technical topics, including university-level textbooks. Thinking that better maths skills make one a better programmer, a popular sentiment, I grabbed an college-level book on real analysis. That’s how I discovered my passion for maths. I spent my high school years studying analysis, abstract and linear algebra, and number theory along with their applications in computer science, cryptography, and physics. Feeling that studying computer science at university wouldn’t teach me much I pursued a degree in mathematics.

I started my first job as a GIS software engineer during my sophomore year at university. Since then, I’ve gone through multiple projects, clients and roles and discovered my talent and passion for managing software development, designing products, and using technology to further business goals.

You can follow me on Twitter for more ideas, tools, and discussions about software engineering.

Leave your email to receive updates about articles.