Skip to content

Instantly share code, notes, and snippets.

@gaupoit
Forked from posita/_Opportunity.md
Last active October 16, 2015 09:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gaupoit/93ee4737dff79f5dd035 to your computer and use it in GitHub Desktop.
Save gaupoit/93ee4737dff79f5dd035 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 jobs@veritaseum.com.

> > > 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;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment