CardQuiry · Jan 6th 2018
Our current technology stack is:
Node (using express)
MongoDB (interfaced with Mongoose)
Python (CherryPy and Flask)
We are moving towards complete unit test coverage, developed using mocha/chai with expect. All new code should be checked in with a unit test.
We use Git as version control, and expect a pull request to be made daily, even if work is not done. This is so that the senior developers can review the work and make sure that everyone is on the right track.
Although not strictly necessary, basic CSS knowledge is a definite plus. We use a SASS compiler in developing the CSS.
If you do not know every piece of our tech stack but are willing to learn, we would be happy to consider you based on your level of experience with other technologies. However, you must have the necessary experience to learn our stack quickly and be able to produce independently.
A solid candidate will understand the importance of communication and be able to function effectively as part of a team. There is already a significant amount of code, some of which is complex (and even confusing), and candidates would need to be able to read and work with difficult code. At the same time, we strongly encourage our developers to approach senior developers frequently and ask questions, both to fortify their understanding and to gain an understanding of functionality which is non-obvious.
If you feel that you may fit the description above, please reach out to us and we can a conversation.
We're also interested in you as a person. During the interview, we'd like to discuss:
What is the project, professionally or hobby, which you are most proud of? What went into the development of this project?
How do you handle high-pressure situations? Let's say the production server goes down, but all unit tests are passing. How would you go about determining the source of the error?
How would you handle an environment comprised of multiple services? Discuss how you would most effectively receive data from customers using a REST API, pass that data off to another service for calculation, and then get the data back to the customers.
What is your ideal team management philosophy. Do you believe in agile development, or something else? How often should communication take place, and what does that communication look like?