My tech journey

🐾 Systems Developer – DOS

  • Learned sound fundamentals of programming including C, Assembly x86, BIOS, MS-DOS internals at Datamatics, Mumbai and Vijaymukhi’s Computer Institute (VMCI), Mumbai:
    • Here is where I got introduced to documented and Undocumented DOS
    • Here is where I also learned the art of writing and debugging low-level interrupt handlers, race conditions, re-entrant code and efficient coding
  • Learned a lot reading Dr. Dobb’s Journal (aka DDJ) articles
  • Some of the projects I developed:
    • Reading and writing records from/to raw DBase III plus (.dbf) compatible file (Language/Tools: C)
    • Mouse functions library written in Assembly with Basic language interfacing (Language/Tools: Assembly x86)
    • Generic user interface menu library (Language/Tools: Assembly)
    • A TSR (Terminate and Stay Resident) program to monitor and manage other 3rd-party TSRs and allow freeing up the memory at user’s will (Language/Tools: C, Assembly x86)
    • A print spooler TSR to buffer up data so that front-end can get free for user interaction while slow-printing a character at a time in the background . This TSR provided complete status, progress-bar and user interactivity (Language/Tools: C, Assembly x86)
    • Developed an operating system like layer to migrate a 32-bit ATM network stack originally written for Novell Netware to 16-bit DOS environment (Language/Tools: C, Assembly x86)
  • Other hobby projects that I developed:
    • Remote hard disk:
      DOS block device driver on the host and a TSR on the remote system interacted over Novell IPX network to pass the disk sector read/write requests back and forth
    • Remote screen and keyboard sharing:
      The host passed the entire video memory contents to the remote client over Novell IPX network evyer few seconds and in-return received key-strokes pressed at the client system and stuffed it’s own keyboard BIOS buffer
    • Tinkered with and tweaked disk’s Master Boot Record (MBR), Boot sector, FAT file system

🐾 Application Level Developer – Windows

  • Learned Windows user-land internals by following the “Under the Hood” column by Matt Pietrek in Microsoft Systems Journal (MSJ)
  • Delve a little bit into Windows network and mouse device driver work
  • Developed Thinkvantage Access Connections Windows software that came pre-installed on IBM/Lenovo ThinkPads:
    • My role was to mainly integrate varying wi-fi (802.11) API from Cisco, Intel, Atheros and various versions of them into an unified abstraction to be used by the front-end GUI
    • This involved debugging and troubleshooting any conflicting requirements between different API stacks

🐾 Graduation

Went to RMIT university for a formal Computer Science studies and learned:

  • Core computer science subjects, including
    • Discrete mathematics
    • Computing Theory
    • Algorithms and analysis
  • Web development subjects: PHP, Javascript, Database design, SQL
  • Scripting languages: Python and Perl

🐾 Tutoring

Took up tutoring (teaching assistant) and lab assistant role at RMIT university after the graduation and taught following subjects:

  • Data Communications
  • C Programming
  • Algorithms & Analysis
  • Computer Organization

🐾 Web Development & ETL Data Piplines – Linux

Switched to Linux as my daily driver while at the university and got comfortable using it.

  • Got opportunities to work on back-end and the front-end of web development
  • Developed data ETL pipelines
  • Along the way improved my Python , SQL, Javascript skills
  • Learned some contemporary frameworks/libraries – Django, vue.js, bit of Node.js
  • Learned containers – Docker
  • Learned the art of writing unit tests
  • Participated in peer code-reviews

    🐾 Cybersecurity

    • Completed Certificate IV in Cybersecurity from Melbourne Polytechnic (Dec 2024)
    • Tinkering with homelabs and personal projects on Proxmox, Rasperry pi, OpenWRT
    • Preparing for Practical Network Penetration Tester (PNPT) certification – TCM Security
    • Expanding the knowledge on daily basis

    Last updated: