Skip to content

Instantly share code, notes, and snippets.

@posita
Last active May 30, 2017 17:48
Show Gist options
  • Save posita/f17a3aadea82aa6bfc06 to your computer and use it in GitHub Desktop.
Save posita/f17a3aadea82aa6bfc06 to your computer and use it in GitHub Desktop.

Veritaseum, Inc. is seeking a full stack JavaScript developer. We are flexible as to formalizing relationships, but contractors should be prepared for an open-ended engagement.

Interview Challenge

  1. If you’re not already familiar with our application, download it, start it up in Demo Mode, get your wallet address, grab some test coins (e.g., from here or here), and try a few trades.
  2. Take look at id.js (attached to this Gist), and figure out what's wrong with it.
  3. Send a link to your repository that has well-commented fix, along with your availability, time zone, compensation expectations, portfolio, references, and LinkedIn profile to [email protected].

> > > SUBMISSIONS THAT DO NOT INCLUDE ALL OF THE ABOVE WILL BE IGNORED < < <

Job Requirements

You are expected to have:

  • expertise in JavaScript development (both inside the browser and out) and best practices
  • expertise in at least one commonly used, browser-side toolkit (e.g., JQuery, React, AngularJS, etc.)
  • a solid understanding of race condition detection and avoidance
  • a solid understanding of basic rapid software development best practices (unit tests, continuous integration, pull requests, etc.)
  • proficiency in some CRUD technology (*SQL, NoSQL, etc.)
  • proficiency with modern distributed revision control systems (git/GitHub, hg/Bitbucket, bzr/Launchpad, etc.)
  • experience with some collaborative software development methodology (Agile, Scrum, Kanban, etc.)
  • experience with scalable data integrity architectural concepts (replication, sharding, etc.)

Your responsibilities will include:

  • quickly gathering a deep understanding our existing product(s)
  • completely owning the development of one or more subcomponents in our system
  • helping to refine requirements and drive user story creation
  • designing and implementing aspects of complex and scalable systems
  • interacting daily with other developers to share ideas, collaborate on integration points, etc.
  • using issues, topic branches, and pull requests

Experience designing web-based financial applications, or with Bitcoin protocol or related technologies is a huge plus, but not necessary. You must be willing to sign an NDA. You should be knowledgeable and competent, but grit is preferred to genius.

/*======================================================================*\
ICBIaW50OiBtYWtlIHRoaXMgYXMgY2xvc2UgdG8gcHJvZHVjdGlvbi1yZWFkeSBzb3VyY2
UgY29kZSBhcyB5b3UgY2FuIQoKICBCb251cyBwb2ludHMgZm9yIHRlbGxpbmcgdXMgd2hh
dCB0aGlzIGRvZXMgaW4gcGxhaW4gdGVybXM6CgogICAgJycuam9pbihpdGVydG9vbHMuY2
hhaW4oKnppcChzWy0yOjotMl0sIHNbOjotMl0pKSk=
\*======================================================================*/
if (NAMESPACE == null
|| typeof (NAMESPACE) == 'undefined') {
NAMESPACE = {};
// Creates an object that allocates a new or references an
// existing very expensive resource associated with `id`
var resource = function (id) {
// Private data
var _all_ids = new Array();
var _closed = false;
var _id = id;
var _expensive_resource = null;
// Public data
var persona = {
};
// Public methods
var getExpensiveResource = function () {
return _expensive_resource;
}
persona.getExpensiveResource = getExpensiveResource;
var getId = function () {
return _id;
}
persona.getId = getId;
var close = function () {
delete _all_ids[_id];
this._closed = true;
}
persona.close = close;
// Private methods
function _lookupOrCreateExpensiveResourceById(id) {
_expensive_resource = _all_ids[id];
if (_expensive_resource == null) {
// Just pretend for the sake of this example
_expensive_resource = {
value: "I'm a very expensive resource associated with ID " + id
};
_all_ids[id] = _expensive_resource;
}
return _expensive_resource;
}
// Initialization
_expensive_resource = _lookupOrCreateExpensiveResourceById(id);
return persona;
}
NAMESPACE.resource = resource;
}
@somnath-kokane
Copy link

//Line No 41
"NS.areListsPresent?". it is not a good practice.
however you can use "NS['areListsPresent?']"

@posita
Copy link
Author

posita commented Aug 23, 2015

@somnath-kokane, thanks! I would recommend reviewing #3 under Interview Challenge.

EDIT: No longer applies to this challenge.

@posita
Copy link
Author

posita commented Sep 1, 2015

@raviargus, thanks for the "submission", but I would recommend reviewing #3 under Interview Challenge above. You'll likely want to remove your response and re-familiarize yourself with the instructions.

EDIT: No longer applies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment