top of page
Workspace

Extensions for the human brain

SOFTWARE DEVELOPMENT

Greenscape Analytics, Cedar Falls, IA

Cofounder - July 2017 - Present

My work at Greenscape Analytics has taught me to wear several hats in several departments, and development is no exception. The following are examples of my responsibilities.

UX Design

In order to ensure that software does exactly what a user expects it to, I've had to talk with farmers and ag consultants over the phone and in person to determine exactly what an ideal user experience would be. The first step is to determine salient terminology for the industry. Next, it's good to start on some common ground, so I will often draw up a wireframe example of the user interface for the client to review. It's important to give the client ample time to discuss requests for additional features that might not have been mentioned when they weren't looking at a visual representation. Once we agree on some basics, the fun can really begin. Finally, follow-up meetings with the end-user are in order to test UI intuition compatibility and make adjustments according to observed "pain points". Even once a tool is in production, it is important to conduct regular "walk-through" tests with new users to maximize efficiency, reduce confusion and minimize navigation time.​

Client-side development

Among a plethora of front-end development projects, I have worked on a few items that I will mention here. For starters, I developed a straightforward tool for displaying profitability indicators by adding JavaScript and CSS modifications to a flot.js plugin running on JSON data served up with PHP and PostgreSQL from the server source. This was a simple project, but the added functionality necessary was not available within the flot framework, so some manipulation had to take place. More complex projects include a mini virtual cart where farmers and insurance agents can compare multiple product combinations across a dozen insurance providers. I built this before diving into Angular (2+) and had to exercise a strong command of HTML, JavaScript and CSS. I used to be impressed with myself for this, but I'm quickly learning that time invested in searching for the right tool or the proper development framework can pay dividends. As I expand my knowledge base, I'm learning efficient ways to create the same products at a fraction of the time.

Another interesting product we are rolling out this summer is a farm planting organization tool that allows farmers and/or insurance agents to enter data for a land unit while visualizing each section on an aerial map. I used plenty of JavaScript to automate acreage, total bushel and yield calculations for planting information and production reporting. As I started needing other team members to come on to help implement geospatial software and improve the responsiveness of certain web tools, I implemented git version control for Bitbucket and trained team members on a simple workflow. Before starting Greenscape, I spent a few months working for a tech company that didn't use version control (believe it or not), but now I can't imagine life without git.​

Server-side Engineer

Last but not least, I devote a significant portion of my time to server-side development. It may be my favorite part of the process, and I presume that has something to do with my obsession for logical coherence. With a goal in mind of staying lean and focused, I built my own PHP framework for Greenscape to support the web application. I started out designing our database on MySQL for our initial products. But, with the good influence of some others, I decided it was crucial to make the switch to PostgreSQL so that PostGIS geospatial extensions could be utilized, dramatically improving query performance. The switch wasn't easy, because I had plenty of integrated SQL statements that wouldn't run as Postgres. But, like other wholesale changes, this was for the greater good and we're on a much better track as a result. I've read about a couple different methods for implementing version control for database structure, but I designed my own which is simple and works well for our needs. Essentially, I integrated all database structure language inside a PHP class which is managed with git. Then, there only needs to be one 'gitignored' file which specifies the database version of the current machine so that all the necessary tables, indices, sequences etc will be created on demand.​

​

The Logical Option / Pack Moose LLC, Waterloo, IA

Owner - January 2015 – Present

The Logical Option was a platform I co-engineered with a friend and colleague of mine running a small consulting firm called Bowser Analytics. It's addition to my portfolio is relatively short, but still worth mentioning. I designed the back end for simulation software (using PHP and MySQL) which accurately forecasted and optimized results across investment strategies in trading binary options. This was terrific fun for me as I was making use of my passion for mathematics as well as software development. Client side, I designed and built a GUI for the simulation and other analytical forecasting tools using JavaScript, with flot.js to display the probability histograms that resulted. I even got plenty of opportunities to improve my teamwork and collaboration skills. The project involved coordinating with colleagues and multiple third parties to construct a business model, develop business relationships and outsource various needs including marketing and basic programming.

Software Development: Project
bottom of page