How a developer can be more productive

As a developer for more than 5 years… wait no bullshits.. coming to the point

  • You need to type code a lot faster (think before you type)
    • You need a great IDE (Text Editor)
    • Learn the KeyBoard shortcuts to everything
    • Add plugins you are gonna need
    • If altering code snippet is difficult then its the hightime you move on to new IDE ( My favorite is RubyMine.)
  • Git is the version control system I recommend
    • Lots of great features
  • Terminals like Guake Terminal can make you job easier
  • Make processes companyWide or TeamWide for better results
  • Keep getting/asking continuous feedback from peers and Seniors
  • CodeReviews are what that make sure you get smarter everyday
  • As a developer you need to have good understanding of your Project
    • Business Aspect of it as well
    • If you are working on Hospital management system then study about the internal processes, management frameworks, Patient discharging/admission policies and all



Tips : for developers working in complex projects with extensive features

Export database when you have optimum data in database to use all the features

  • In my project I have different users with different roles; like recruiters, managers, supervisor, customer super admin and above all the ‘Super Admin’
  • They work on entities like ‘jobs’, ‘Applicants’, ‘Leads’, ‘Organization/user/locations/performances’ (only admins)
  • The flow is like,
    • Super Admin creates Organization and CSA
    • CSA creates
      • Locations
      • Users with different roles and assigns Location
        • namely(Manager) then
          • creates Jobs for that particular locations; jobs belong to locations
          • shares/posts jobs to media
          • Applicants apply to those jobs and Applicants are created in the system
        • Then Recruiters can process the Applicants


There is dependency; you cannot create applicant without fulfilling the prior requirements as described in the tree above.

So, when you have a level of data fulfilling the requirements like tree above (in your context its different) you export the database and save it safe so that whenever you system corrupts or you need to reset the database to test some feature you can restore the database to get back to work.

Create appropriate rake tasks

You can leverage full features of Rake to make your tasks easy. For example:

I have created well documented rake tasks to do some of the tasks like

  • Create Organization (Independent task)
  • Create Applicant (depends on Job)
  • Create Job(depends on location, User)
  • Run sidekiq in QA server (EC2 instance) from development environment
  • Seeding specific set of data

Note: Dependencies need to be supplied by user via CLI

$ rake applicant:create job_id=5