Back to Banyan Hills Insights

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.

August 30, 2018 - 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.

Resources For Learning About the Internet of Things

Stay up-to-date in this fast moving industry

What To Look For In A Digital Transformation Partner

Most digital transformation projects fail to achieve their goals. What can be done to increase the number of successful digital transformations and make them less painful for businesses to undertake?

Read more
Embrace These Technologies To Enable Your Digital Transformation

We can think of ‘digital transformation’ in terms of its discrete parts. Each of them builds on one another and progressively yields more value to the business.

Read more
Files listed inside Canopy.
Canopy Update: See The Useful New 'Files' Feature

A few months back, we took feedback from customers and created a new feature called … you guessed it: Files. While the name may sound simple, this new functionality is extremely useful and helps you get even more out of Canopy.

Read more
Woman looking at a mobile device
Why is Mobile Device Management Important?

Mobile devices can represent a unique type of cyber threat for companies operating in today’s global economy. An MDM program can help alleviate the associated risk.

Read more
Canopy screenshot
No Longer Beta: New Version of Canopy Ready For All Users

The redesigned Canopy is now in general release and available to all customers. The new version includes lots of new features.

Read more
Improving the Odds of a Successful Digital Transformation

What can be done to improve the odds of a successful digital transformation? Here are a few ideas based on our own observations.

Read more

Awards and Recognition

A few of the places where Banyan has received recognition

Inc. 500 logo
IoT Innovations logo
Industry Today logo
Business Radio X logo
RFID Journal logo
VxChange logo
COVID-19 Update: Our commitment to our customers. Learn more