Cracking the Coding Interview

Today is the day, I applied to a bunch of companies to move forward from my current job, a recruiter from one of these companies replied suggesting to apply for a Software Developer position in certain big company, and with the fear that I have approaching corporations I hesitated and continued the search with other offers. However, the curiosity forced me to investigate the company a bit more and I was able to find some developers that were working there through Reddit and GitHub — unfortunately my account was blacklisted during that time so I had to rely on my Google Fu to find their e-mail addresses.

[...] The researchers suggest that as social network sites become more heavily used, then people will find it increasingly difficult to maintain a veil of anonymity. In "De-anonymizing social networks," the researchers take an anonymous graph of the social relationships established through Twitter and find that they can actually identify many Twitter accounts based on an entirely different data source — in this case, Flickr.

The issue is of more than academic interest, as social networks now routinely release such anonymous social graphs to advertisers and third-party apps, and government and academic researchers ask for such data to conduct research. But the data isn't nearly as "anonymous" as those releasing it appear to think it is, and it can easily be cross-referenced to other data sets to expose user identities.

Identifying People using Anonymous Social Networking Data

At the end I was able to contact 4-5 developers that are or were working at the same company. They were very nice, respectful, and answered all my questions giving me the motivation to continue with the interview process. However, I was conscious if my current skills, specially in data structures and algorithms, were not good enough. Technical interviews are always a PITA but compared with interviews for non-technical jobs like Management, Design, Customer Support I will prefer Math-like tests 1000x over the others because with Math there is only binary outputs, you either resolve the problem correctly or not.

Unfortunately, engineers always tend to expect too much from others. I was certain that the job offer was not going to be extended to me, but I wanted to take this as an opportunity to refresh my knowledge about algorithms. If this company was not going to hire me then I needed to be prepared for interviews with others.

Many people suggest to read "Cracking the Coding Interview — by Gayle Laakmann McDowell"; the book gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview.

Here I will attempt to solve some of the questions following a step-by-step thought process. Consider that I haven't used any of these algorithms in my previous jobs, so if you are a beginner you will probably associate with my point of view. Notice that I will try to solve these exercises using pseudo-code to generalize the solutions, this way we can focus on the algorithms and not the programming language.

3 months ago
  • 8da57acFix minor bugs found by the code static ana…
3 months ago
  • caa417fAdd option to configure the malware scanner…
3 months ago
  • 9c86744Modify default value for some of the alert …
3 months ago
  • 84dd39dAdd option to stop sending the failed login…
3 months ago
  • eb05935Add pre-checks for every plugin page for si…
3 months ago
  • d21a062Modify mechanism to ignore files from integ…
3 months ago
  • b1a9169Add developer option to disable failed pass…
3 months ago
  • 4e3ef13Add support for other English and Spanish b…
3 months ago
  • 2d07b4eFix error interception for Firewall API err…
3 months ago
pushed to master at cixtor/slackapi
  • 4a2c1c8Modify data type for methods related to cha…
  • 6716199Add CLI handler for the users.identity API …
  • f9c448dAdd CLI handler for the mpim.open API endpo…
  • 305d1c4Add CLI handler for the mpim.mark API endpo…
  • 8bb89afAdd CLI handler for the mpim.close API endp…
  • 202a017Add CLI handler for the dnd.teamInfo API en…
  • 68819e9Add CLI handler for the dnd.info API endpoi…
  • 9a2b29aAdd CLI handler for the dnd.endSnooze API e…
  • e7dc86aAdd CLI handler for the dnd.setSnooze API e…
  • 111c53fAdd CLI handler for the dnd.endDnd API endp…
  • cdb620dFix token usage when there are no extra par…
  • View comparison for these 11 commits
3 months ago
pushed to master at cixtor/slackapi
3 months ago
  • 6497e80Remove unnecessary automatic blacklisting o…
3 months ago
opened pull request Sucuri/sucuri-wordpress-plugin#40
Fix multiple bugs with the API calls and queue system
18 commit with 793 additions and 293 deletion
3 months ago
3 months ago
3 months ago
  • 38cc02aModify timing for the dashboard alerts afte…
3 months ago
  • 350c074Fix infinite loop with email alerts and SMT…
3 months ago
  • acff4aaFix detection of base URL with built-in fun…
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
opened pull request Sucuri/sucuri-wordpress-plugin#39
Add queue system for the security logs and cache improvement
5 commit with 517 additions and 541 deletion
3 months ago
3 months ago
  • 4c51445Fix static function call of non-static Site…
3 months ago
3 months ago
  • af47581Add changelog to release version 1.8.6
3 months ago
opened pull request Sucuri/sucuri-wordpress-plugin#38
Add changelog to release version 1.8.5
6 commit with 4062 additions and 1841 deletion
3 months ago
  • dc1a05aAdd changelog to release version 1.8.5
3 months ago
Do you have a project idea? Let's make it together!