Hire Me

27 January 2016

Hello,

I'm a Computer Science and Engineering Graduate, and a full time Ruby on Rails Developer based out of New Delhi, India. Relocation isn't a top priority right now, amid pandemic, though I won't mind moving to other locations for the right opportunity. 

I'm primarily interested in Startups. Why Am I so interested in startups? Because they are awesome! They provide huge learning opportunities and have many perks.
[Here's my Portfolio] Not up to date. Checkout the resume(at the bottom) instead.
Sidenote: Sections "Why You should hire me?" & "What am I looking for?" are outdated as of Oct 2020. But I'll revisit this later. 


From Engineering to 6+ years of professional working experience, I've learned a lot over the years. Here's a brief overview of the skillset.

Primary:
  • Ruby & Ruby on Rails: Ruby on Rails is the primary stack I've worked with over the last 6-8 years. This is my go-to tool for the job.
  • JavaScript: I was required to lead many modules/apps throughout my career, so over the years I've worked with jQuery, Angular.js, React.js, Node.js, etc. So JavaScript skills were must-have.
  • Relational Databases & ORMs: Database design is critical to laying out a good foundation for scalable software. At work(Wadi, an e-commerce giant), data were heavily imported using CSV files. During the import, we had to sanitize the data, perform custom validations, import only the valid data and highlight the invalid data using a downloadable CSV file. The app was only able to import 2.5k records, after which the requests were timing out. So I moved the import logic to the database using custom constraints and the likes. The practical upshot was that the performance of the import job improved by 60x-80x times. The tool was able to import ~150k records within a minute without timing out. Later I had to write complex queries to show stats, but having said that, my database query skills are dependent on ORMs and over the years, I've tried my best to remove that dependency. 
  • Computation Thinking: Automation is critical to the business. Knowing what needs to be automated and how to set the priority for the same is a critical skill for a Startup Engineer. 

Secondary:
  1. Basic HTML/CSS/Bootstrap: Enough to lay down a structure using bootstrap. Working with CSS isn't the priority, but the skills are good enough to hand off the work to UI developer.
  2. User Experience(UX): I like my modules to be user friendly. Even though modern teams usually have UI/UX experts, I believe UX skills are crucial to making logically sound choices. For a module lead, this is important.
  3. Infrastructure: Over the years, I've worked with various deployment-related tools like Capistrano, Docker, Serverless etc to ship the software. I do not claim to have DevOps like expertise, but I know how to take a startup from 0 to thousands of users(perhaps, millions if we plan properly for this).
  4. Distributed Computing & Architecture: In the era of microservices, distributed computing skills are must-have for scaling the software. 
  5. System Design: Again, not an expert, but actively working on it.

Growing Interest:
  • Functional Programming: Since most of my experience is with general-purpose, object-oriented languages I've started to look into functional programming languages. This isn't a top priority unless the job requires it to be.
  • Testing: Early on testing didn't make much sense to me. I don't blame myself for not getting started with testing sooner, as ignoring it allowed to focus on primary skills. I've reached a point where I think testing is very crucial for stable & reliable systems. I've started writing unit test cases in both Ruby on JavaScript.
On the Horizon:
  • Data Structure and Algorithms: I know the basic data structure and algorithms, but I've been out of touch for so long. I would really like to improve on this.
  • Design Patterns: This will hopefully allow me to design a more robust system.
  • Purpose oriented databases like ElasticSearch, Neo4j, etc. 
  • Mobile Development: At some point, I would like to try my hand on mobile development as well.


There are so many things to learn and so little time we have. That's why focused learning is really important, and I'm trying to improve on this aspect.


Why You should hire me?
  • Interested in Startups: I love startups, they are awesome! I read somewhere that Startups are the only way to get 10 years of experience in two. Having worked at startups, I can totally relate to that.
  • Open Minded: I'm all for using the right tool for the job. I think each tool was built for its own purpose, some of them have more generic purpose than the others and if the situation demands that you move from the current stack to solve a particular problem, then I would be more than happy to get involved with it. I'll use this opportunity to learn new stuff. I'm not afraid of new technologies. I like to live dangerously :D
  • I try to move out of my Comfort Zone: I know it's more generic, but it works really well in software development. The real magic happens outside of your comfort zone. 
  • You'll have my full attention: Once I'm into my job, then it becomes my primary concern. I think if someone's paying me, then they deserve my full attention. 
  • Balance between Learning & Working: I try to keep the balance between learning new things and performing better at work. I think both of them go hand in hand. You can't have one without the other. 
  • I prefer emails over offline interaction. Yeah! That's supposed to be a good thing since it forces you think about stuff at the deeper level, thus reducing the chances of false statements.
  • The Path to becoming a better Programmer: I'm constantly learning and improving, because One Does Not Simply Become a Programmer Overnight.

What am I looking for?
  • Great Team: As a software developer nothing's more important than working with great developers. It enhances your learning curve.
  • Good Culture: This is the very basic foundation of good startups. Need I say more?
  • Good Hardware: Preferably a Mac and an external screen. 
  • Open Minded Management: Developer's time is the most important resource you have as a company. Make sure you're not wasting it. There's nothing more frustrating than sending out countless emails just to get access to basic things required for work.


I'm glad you made it this far, anyway you can email me at: technicaiblog [at] gmail [dot] com if you're interested in taking things forward.


Also, if you're into Resume and stuff, then check out my online version of my Resume. Updated more frequently than others.

No comments: