354 karma · joined July 14, 2012
Anyways I had failed to give proper answer and I was rejected in the interview. This was the last question of my last round!
Spoiler: Here is one such solution using a simple but very clever trick: http://www.geeksforgeeks.org/design-a-stack-that-supports-ge...
Can the differentiate be in terms of pricing? For example if the competitor is charging say 80$ per month, what if my product charges say 10$ per month?
[1]:https://www.quora.com/Book-Summaries-What-are-the-main-ideas...
>> You might want to look into versioning your resumes. A 'version' column in your ResumeData could be sufficient.
I didn't quite get this. Why do we need to add 'version' column to ResumeData? Lets say when user updates the resume, my intention was to just replace the data accordingly (as now you have told, I might use JSON column and just replace it with the value). In this case why 'version' is required?
And why not storing images as blobs? Any drawbacks?
But thanks for your insights, it really helped me.
I always start with reading test cases rather than source code directly. Thats the way it should be (IMHO).
I was part of ThoughtWorks interview process sometime back. In one of the rounds called Pair Programming, a senior developer worked with me on the given problem statement. I arrived at right solution, but he wasn't happy with the solution just because he didn't like the way I solved it. I came back and discussed the same solution with another senior developer and he liked the approach. However ThoughtWorks rejected me in the interview process.
I often wonder how pair programming is good (or even bad) in this context. How they can assume or think that two programmers going to solve the problem in "same" (or even ThoughtWorks "expected") way!
I can remember a instance, when I started my carrier. I was a JS developer. I wrote a module with Functors, Compose, Partial etc.
In code review my team told they didn't understand anything and reading such a code is not pleasant for them. I was upset, I was thinking why my team is not happy with it.
Today I can make lot of sense; stick to the pattern/design of your team. If your team follows / loves functional programming in your project, stick to it. If not try to advice them why functional programming would be better than normal approach.
End of the day, all it matters is writing simple, elegant code which others can understand.
Then I have build my own router with `popstate` event and I'm quite happy with it. All the navigation history is pushed to redux. It turns out that it works really well for my needs and application.
This reminds of me of the book that I read in this year named : "A Guide to the Good Life: The Ancient Art of Stoic Joy" [1]
Its really a good book and changed my life literally.
[1]: https://www.amazon.com/Guide-Good-Life-Ancient-Stoic/dp/0195...