I have a web application on Github that generates random Front End Web Interview questions for practicing before interviews. This is a description about the process of developing the application. It should be noted that my main purpose in developing this application was to practice my Angular.js application development. Comments on the application are welcome.
- I’m a Front End Web Developer who is seeking a new job. I was looking for resources online for how to prepare for technical interviews. I found the h5bp project’s interview questions list on github. But I was interested in playing with the data.
- The main data format of the original list of questions is a README.mdn markdown file. Initially I didn’t even think it was possible to work with data in this format.
- Resolution 1: I found the project’s gh-pages branch and corresponding index.html page with interview questions. The first iteration of my application’s logic did an HTTP Get on that index.html page and parsed the results.
- Ruh-Roh (that’s in the voice of Scooby Doo), I compared the current README.mdn to the index.html page in the h5bp project and realized that they contained some different questions. I scanned the project issues and came to the conclusion that one of the contributors would manually generate the HTML list from the README and post to the gh-pages branch. But keeping the HTML version up to date was not a high priority.
- Resolution 2: I found a website, dillinger.io, that would take a markdown file and parse it into HTML. My current process is to manually run the h5bp README in the dillinger.io parser and update the resulting HTML in my github project. I don’t really like having this manual step but it allows me to ensure that the presented list is relatively current. Also it gives me an assurance that my application will not break unpredictably when the list format changes on the h5bp project side.
- I considered application features that would be more helpful to users who would administer technical interviews (for ex., Lead developers, Hiring managers). I thought managers might want to save a boilerplate interview or sort saved interviews in a particular order (like easiest to hardest questions).
- But this would require some form of data storage. As I looked into options like local browser storage and IndexedDB, I had questions about what would happen when and if the h5bp questions list changed (like questions could be added or removed) and how to synchronize two versions of lists. I decided to table further enhancements requiring data storage to a different application maybe warranting use of a database and user authentication.