Ready, Set, Go! Keeping Programming Skills Sharp By Entering Contests

Mark Wutka
Software engineer Mark Wutka talks about his experience participating in the 2018 International Conference on Functional Programming contest. The baby dragon on the screen is one of 487 different figures his program had to create, destroy or reconstruct.

Some people like to spend their weekend mowing the lawn. Others plan activities like going for a hike. Still others like to take their dogs to a park or relax with a good book.

Then there’s Mark Wutka. His idea of a fun weekend? Entering a computer programming contest designed to stretch his mind and think about new ways to solve interesting problems. This is certainly no walk in the park.

But, as a seasoned software engineer at Banyan Hills Technologies, Mark is used to the idea of spending his days solving difficult problems by wrestling with code. In fact, he’s one of our best engineers and he’s responsible for creating Leaf, the extensible software agent that powers many of the IoT features found on connected devices used by Banyan’s customers.

So it was one weekend last July when Mark entered the International Conference on Functional Programming’s contest. This year, the contest was organized by the Rochester Institute of Technology and attracted dozens of entrants from around the globe.

As Mark explains it, he had 72 hours to create a program that would send a set of instructions to an on-screen robot to create, destroy or reconstruct 487 different 3-D models (also on the screen, not in real life).

Mark needed for the robot, which was actually a white box on the screen, to begin in the ‘zero-zero-zero’ position in the corner, and then move around the screen using as little time and energy as possible to draw each voxel (the 3-D version of a pixel) before returning home to the initial corner position. There were lots of different ways of achieving this: the rules permit programmers to split the bots and have each one draw parts of the model but there are only so many different types of commands and moves each bot could execute. It can get complicated very quickly.

One place where there was some flexibility in the rules was in the choice of computer language. The contest organizers allowed programmers to use any language they wanted and Mark, who’s well versed in several languages, chose to use Go (the same language he used for most of Leaf). He explained that he likes using Go for lots of purposes and went with it for the contest in particular because of its speed, simplicity and, as he described it, Go’s ability to handle the binary data files he was working with for the contest.

Even if you’ve never heard of Go, you’ve likely used something powered by this language. It was created by a trio of programmers at Google in 2009 and has since found its way into many of the systems at Google, as well as Netflix, Dropbox, Uber and dozens of other notable companies.

Winners of the programming contest will be announced at International Conference on Functional Programming’s 2018 event next month in St. Louis.