Wednesday, August 30, 2017

Cold Email Guide

How to achieve reply rates of 40, 50 or 70%.

- Prepare a well targeted prospect list. Don't sell sweets to a diabetics list.
- Number one goal is to get a response (either positive or negative).
- Follow ups lead to 55% of responses.
- Follow up can be a one liner. Just wanted to make sure my email below didn't fall through the cracks.
- Be prepared for rejection.
- Aim for certain ratio and improve it (ex 1 positive reply for each negative reply)
- Contact at least 100 prospects before making any decision
- Make it short, layout a clear offering that compel them into replying
- Just reply 'yes' and I'll send you more information
- Use the name of the person in the email
- Get small commitments before going for big commitments
- You can pre-warm a relationship by using referrals like: Bugs Bunny mentioned I should get in touch with you
- Tuesday to Thursday is the best days to send

Monday, August 28, 2017

Problem Discovery Questions for Conference

I am attending a 3 day conference in my target market. I had to come up with questions based on the amount of time available. The goal is to learn about their problems.

One Question

1. What tasks take up the most time in your day?

Three Questions

2. What's the hardest part of your day?
3. What product do you wish you had that does not exist yet?

Seven Questions

4. What are some unmet needs you have?
5. What could be done to improve your experience with [process/role]?
6. What’s the hardest part about being a [demographic]?
7. What are your most important professional goals?

Wednesday, August 16, 2017

Dealing with Vague Requirements in Software Development

1. Very vague and unknown requirements should be moved out of scope. Use scope control as a way to filter out.
2. Build a quick and dirty throwaway prototype to find answers to the vague / unknown requirements.
3. Identify the vague requirements and ask the product owner the right questions to fill in the blanks.
4. Conduct a requirements grooming session to flesh out the vague requirements.
5. Ask the stake holders to prioritize the backlog and work on the well defined requirements.

Thursday, August 10, 2017

Top Links for Second Week of Aug 2017

https://robots.thoughtbot.com/a-crash-course-in-analyzing-memory-usage-in-ruby
https://blog.codeship.com/advanced-enumeration-with-ruby/
https://thisbitofcode.com/managing-localization-rails/
https://blog.showoff.ie/using-gemstash-for-private-gem-hosting-8b6170da766c
http://semaphoreci.com/blog/2017/08/03/tips-on-treating-flakiness-in-your-test-suite.html
https://semaphoreci.com/blog/2017/08/09/faster-rails-eliminating-n-plus-one-queries.html
https://www.nopio.com/blog/ruby-state-machine-aasm-tutorial/
http://www.pablocantero.com/blog/2017/08/06/using-ruby-and-amazon-sqs-fifo-queues
https://depfu.io/blog/2017/08/02/bundler-and-private-dependencies

Sunday, August 06, 2017

Find all articles that is not tagged in Rails


ids = Tagging.where(taggable_type: "Article").collect(&:taggable_id).uniq

Article.where.not(id: ids).collect(&:id)

Saturday, August 05, 2017

API Documentation with Tabs for Languages

Slate generates html from a markdown document and provides syntax highlighting for different languages that displays in separate tabs.

For internal use, API blueprint is a good option. For external use, slate is a great option to publish documentation. It generates good looking and developer friendly docs. We can copy the slate generated static files to a static site deployed on Google cloud. This is the easiest deployment. It avoids extra work that is required with AWS such as uploading to S3, configuring a bucket as a webserver etc.

Questions

1. Is slate markdown compatible with API blueprint markdown file (.apib) ?
2. Is there a tool that will convert .apib file to slate markdown file?

I started with the schema.rb file from a Rails project that I am currently working on.


References

- Using API Blueprint With MSON
- HTTP Documentation with API Blueprint




Thursday, August 03, 2017

Learn by doing Vue.js 2 the Right Way

1. Replacing hard-coded URLs with configuration file values for different environments.
    Use webpack-merge and interceptors to configure URL in config folder dev.env.js and prod.env.js
2. API documentation for using JWT for authentication.
3. Using scoped style
4. Using aletifyjs to display form error messages
5. What is the vue-resource interceptor equivalent in axios?
6. vue-auth - Jwt auth library for Vue.js
7. Use vue.js router global guards to protect URLs that require login.


Tuesday, August 01, 2017

Rails Interview Questions

Ruby

1. What is the difference between a lambda, a block and a proc?
2. What are #method_missing and #send? Why are they useful?
3. Getter and setter methods
4. method overloading (Ruby does not have this feature)
5. Include vs Extend
6. Symbol vs String
7. What does yield do?
8. Difference between && and AND operators
9. Multiple inheritance
10. public, private, protected
11. How can you call the base class method from a subclass? (super)



Rails

1. How do you sort an Array of objects by a particular attribute? What is a better way to do sorting with ActiveRecord?
2. Explain CSRF and how Rails combats it.
3. Explain mass-assignment vulnerability.
4. Explain various forms of caching available in Rails.
5. How is something like 30.seconds.ago implemented?
6. HashWithIndifferentAccess
7. N+1 Query problem
8. has_one, belongs_to, has_many, has_many_through, polymorphic
9. database transactions
10. load, auto_load, require_relative
11. load vs require
12. How can you call the base class method from inside of its overridden method?
13. sql injection (sanitize user input)
14. Include vs Prepend
15. How to implement single table inheritance?
16. Eager loading (includes the association)
17. render vs redirect