I learned software by following problems across boundaries. A feature rarely ends at the interface: it continues through an API, a queue, a database, an operating system and the constraints of the machine running it.
That curiosity has taken me from Ruby, Ember and Phoenix to TypeScript, Node.js and cloud systems. Today I am deliberately moving closer to the machine—studying C++, memory, concurrency, Linux internals and the engineering trade-offs that make software predictable under load.
My ongoing M.Tech work in AI/ML adds another layer: the mathematics behind models, how data moves through a system and how intelligent features can be built without losing sight of reliability, cost or user value.