Skip to content

Instantly share code, notes, and snippets.

View smoovej's full-sized avatar

Jeremy Frazao smoovej

  • Google
  • Boulder, CO
View GitHub Profile
@smoovej
smoovej / PM_Engineer_Questions.md
Last active August 29, 2015 14:27
Questions for a Product Manager to ask an Engineer

Questions for a Product Manager to ask an Engineer

Group Dynamics: Tell me about a group project you have worked on with many contrasting opinions involved.

  • This is a softball, and a great opener.  Listen to how they talk about the group, the issues that arise, and how they assisted in the resolution.
  • One of the greatest areas of deficiency in engineers candidates is their ability to manage group dynamics effectively. While in the perfect world we would all be building products happily and harmoniously, people are inherently flawed and there are typically personality conflicts, personal challenges, and all sorts of other "people" stuff involved with a successful launch.

Prioritization: Pick a simple mobile app (e.g. a music player) and pick 5 features you want to include (e.g. social sharing of the song they are listening to, a 5-star rating system). I then ask them to prioritize which gets built first and why.

Originally published in June 2008

When hiring Ruby on Rails programmers, knowing the right questions to ask during an interview was a real challenge for me at first. In 30 minutes or less, it's difficult to get a solid read on a candidate's skill set without looking at code they've previously written. And in the corporate/enterprise world, I often don't have access to their previous work.

To ensure we hired competent ruby developers at my last job, I created a list of 15 ruby questions -- a ruby measuring stick if you will -- to select the cream of the crop that walked through our doors.

What to expect

Candidates will typically give you a range of responses based on their experience and personality. So it's up to you to decide the correctness of their answer.

[16:03:31] ~/Sites/conspire-www (invitation_job_fix) $ heroku run console --app conspire
Running `console` attached to terminal... up, run.7025
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
DEPRECATION WARNING: You have Rails 2.3-style plugins in vendor/plugins! Support for these plugins will be removed in Rails 4.0. Move them out and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. See the release notes for more on this: http://weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released. (called from <top (required)> at /app/config/environment.rb:5)
** [Rave
@smoovej
smoovej / gist.rb
Created February 19, 2014 22:42
class Introductions < ActiveRecord::Migration def change create_table :introductions do |t| t.references :account t.string :recipient_address t.string :recipient_name t.string :subject t.text :body t.string :message_id t.integer node_id t.timestamps end add_index :introductions, :account_id end end
class Introductions < ActiveRecord::Migration
def change
create_table :introductions do |t|
t.references :account
t.string :recipient_address
t.string :recipient_name
t.string :subject
t.text :body
t.string :message_id
From: /Users/smoovej/Sites/conspire-www/app/models/graph_resource/person.rb @ line 30 GraphResource::Person.create_person:
27: def self.create_person( hash )
28:
29: response = self.api_post( "", hash )
=> 30: binding.pry
31: if response.code == 201
32: return response.parsed_response
33: else
34: raise response.response
// Does this belong in the resolvers Seq?
// resolvers += Classpaths.typesafeResolver
val conspireSettings = Project.defaultSettings ++ Seq(
version := appVersion,
scalaVersion := V.Scala,
exportJars := true,
parallelExecution in Test := false,
resolvers ++= Seq(
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
=Navigating=
visit('/projects')
visit(post_comments_path(post))
=Clicking links and buttons=
click_link('id-of-link')
click_link('Link Text')
click_button('Save')
click('Link Text') # Click either a link or a button
click('Button Value')
def show
@article = Article.find(params[:id])
respond_to do |format|
format.html
format.json { render json: @article.as_json(only: [:id, :name, :content], include: [:author, {comments: {only:[:id, :name, :content]}}]) }
end
end
city = 'Lima' if city == 'Lima, Cusco, Sacred Valley'
city = 'Yukon' if city == 'Yukon'
city = 'San Francisco' if city == 'Bay Area'
city = 'Geneva' if city == 'Geneva, Anthy'
city = 'Denver' if city == 'Denver/Boulder'
city = 'Los Gatos' if city == 'Castle Rock State Park'
city = 'Kars' if city == 'Kars, Ardahan, Artvin'
city = 'Alicante' if city == 'Bollua near Alicante'
city = 'Mount Rainier' if city == 'Mt. Rainier National Park'
city = 'Mount Shasta' if city == 'Mt. Shasta'