Category Archives: interviewing

Game design and finding Signal in Noise

I just had a thought about this, so I better write it down so I can think about it a bit more. One thing I’ve noticed from looking at code for puzzle games (like Unruly aka. Tohu wa Vohu by Adolfo Zanellati) is that it is often easier to create a game by working backwards from the solution and adding noise or hiding information. In the case of Unruly, the game actually uses a solver to create the problem, thus ensuring that the result is solvable.

Or in the case of Bejeweled or similar match-3 type games. You can create a valid game starting board by first putting in a working solution in a problem space then filling in the area around it with empty spaces or ‘noise’ of randomly selected pieces. Then the challenge to the player is to find that solution, the ‘signal’ in all the random ‘noise’. This bit of inspiration came in really handy in one interview where I was trying to do something very similar.

Maze generation can be like that too. Start by creating a random path from start to finish, then randomly branch off in different directions to create noise and hide that solution.

This works for game design. I’ve often found in puzzle games I enjoy making order out of chaos. Think of how Tetris works by taking random pieces and fitting them neatly together in order. So finding that working signal in all the noise is satisfying.

Interviewing Resources for SW Engineers

I recently went through a big round of interviewing and job searching for SW Engineer roles. I wasn’t fully prepared, and don’t think I could ever be fully prepared. Interviewing is hard and strenuous and nerve wracking and I honestly hate it. But the preparation I did helped. So this post is to collect some of those preparation points, and I hope to do some other separate posts about particulars.

Continue reading

Mixed business

Work has been keeping me busy, plus life, plus side projects, so this blog has suffered.  But as this week the mega corporation I work for is into phase 4 of the secret plan to grind itself into pieces, I’m considering what things I need to do to be ready for the many changes ahead.

I have been keeping somewhat busy with little things.  Unfortunately I got distracted from the python/pygame program I’d been doing.  But I did pick up 5 nano sized Arduino knockoff microcontrollers from China along with various bits and a 50 piece sleeve of 555 timer chips.  So I’m dabbling in hardware more now.  Which means robotics (using steppers and servos), blinky light arrays, and ‘musical’ instruments.  So I may have to expand my “pi” category to include Arduino also.

I even poked at Khan Academy today, while waiting for a 6+ hour install.  Their algorithms course leaves a lot to be desired. The nerds from Dartmouth who wrote it expect you to have taken a Calculus course in the last week.  Doesn’t help that I was sick that week in high school when we did logarithms so I’ve always had a weak spot there. I had to use a graphing calculator to visualize that log base 2 of (17 raised to the log base 2 n) is the same as log base 2 of (n raised to the log base 2 17).  I’ll have to play around more and see if it gets any better.

Interview skills – a new category for the blog

Years ago, during yet another round of corporate uncertainty, I took some advice that you should be keeping up your interviewing skills and do some interviews to keep in practice, even if you don’t want to change jobs. And you never know when you might find an awesome offer. So I made a goal to do at least one interview a year sometime during the summer.  It has been good for me to push my boundaries, talk to some cool companies, and get a feel for what I’m lacking in an interview.
Continue reading

Link: 40 CS concepts

Yeah, I can’t take credit for this post, as it came through the O’Reilly newsletter, but I kind of enjoyed reading it, so I’m relinking it.  http://carlcheo.com/compsci?imm_mid=0d1415&cmp=em-prog-na-na-newsltr_20150502

Not a perfect article, and could have used a little editing, but enjoyable enough. I may use it as inspiration for writing my own items where I thought that article was a little weak in explaining (like the DDOS explanation).