A ship at the shore at sunset.

Another quarter, another ShipIt Day! Take a look at what our team dove into in the first part of 2018.

Digital linguistic resources

Neil recently discovered there has been work done to create digital resources for his favorite language, Coptic. The database is a collection of normalized text that has linked words that point to dictionary entries. He wanted to branch off the projects that exist, get his own project going, and make improvements to the interface.

Using Elasticsearch to process the data files and index them resulted in a huge collection of XML files, one for each letter in the Coptic alphabet with additional spelling and grammatical information. Neil used Postgres and Adjacent fields to store this data, then hooked it up to a search interface. He also set up a Digital Ocean droplet to host everything.

In the process, he also found out that he indexed 501 lexical entries — about all the droplet can handle. In future, he’ll work toward an improved version of the dictionary.

Learning React

As part of efforts to standardize the front-end tech stack, Kia worked on learning more about React. Although tutorials with real-world examples were difficult to find, she was able to think of situations in which React would come in handy. Its power really lies in modular small pieces you can chain together and create neat user interface experiences.

Kia looks forward to introducing that to some potential projects in the future and will continue learning React on her own time.

Mark also spent some time learning React and built a puzzle game, similar to a handheld number tile puzzle. He liked a tutorial which spoke more to React being a JavaScript tool and not needing a build system or fancy syntax. It walked you through building React components for someone already familiar with writing JavaScript, which he found to be a useful reference.

Get the code for the game on GitHub.


Dan was curious about Brython, a Python 3 implementation for client-side web programming which lets you write Python that runs in the browser. He decided to build a replica of the mobile game Flow Free using the tool. He did all the logic in Python, which was familiar and easier for him than the usual.

Scrum Trouble board game

Gerald wanted to come up with a creative way to incorporate some of the principles of Scrum and the things we see in sprints on a day-to-day basis. The result? The Scrum Trouble Board Game!

A few of the cards from the Scrum Trouble board game.

His game adapts Trouble and Exploding Kittens with game mechanics like Sabotage (things that can go wrong), Action (actions to overcome sabotage), and Generic cards (perform no action but can be combined with other cards to gain action cards from other players).

It emphasizes the importance of QA and testing, and enables learning of Scrum principles and Agile thinking in an engaging way.

Neural network image classifiers

Calvin explored neural network image classifiers, using an intro to wraparound tensorflow to follow a, “Is this a cat or dog” tutorial.

He found it straightforward to run convolutional network analysis and then have the wraparound do the math. After that, he adjusted the layers and started the training. Calvin built a command line tool that separates the images into their appropriate categories, which he feels went well and plans to keep iterating on it for improvements.

As part of the process, Calvin also made the tutorial more generic to increase flexibility, for example, to use any animals and not just cats or dogs.


Inspired by Ned Jackson Lovely’s talk at Pycon 2014, Scott worked on getting a remote control helicopter to fly using an Arduino and Python code. He got the LEDs to blink and then got it to fly!

In the process, he found the Arduino is a great way to do embedded programming because it makes it super simple to transfer code from your computer. There was already an existing Python library for this helicopter, making it an ideal project to test.

Mapping user experiences

UX designer Basia read Jim Kalbach’s book Mapping Experiences and was inspired to think about how the techniques of mapping user experiences are applicable to the work we do here at Caktus.

In order to map experience at the level of applications we build for our clients, we conduct user story mapping. However, if we think about what we do as helping our clients deliver value to their users, we also need to consider mapping user experience in terms of finding value alignment and adjust it accordingly.

Customer journey mapping.

Three maps that could empower us to find more value for our clients include:

  • User experience map
  • Service Blueprint
  • Customer (or User) Journey Map (CJM)

Each maps the exchange of value in a different way and could provide additional insights for our clients.

Tequila conversion

Dmitriy worked on converting the Caktus website from Margarita to Tequila. He successfully got part of the way through. In the process, he thought of some suggestions for improvements to the documentation, including some formatting changes. Dmitriy also found some things to improve on the Caktus website that he will implement on as part of ongoing improvement work.

Redmine project board

One of the Caktus development teams uses a physical board to track projects and progress. However, it can be hard to keep track of all of tickets when working remotely.

Phil sought to create a board using the Redmine, JIRA, and Vue.js APIs. JIRA doesn’t allow cross origin (CORS) API calls, but he was able to make a UI board with blue stickies. It currently has no moving functionality, but you can enlarge the ticket so it is more readable. He’s looking into a workaround for the problem with the JIRA API.

He would eventually like to add functionality, including making comments, assigning tickets, and moving tickets.

Diversity and inclusivity in the hiring process

As part of Caktus’ ongoing hiring efforts, Liza worked on improving the diversity and inclusivity of the hiring process by testing Textio, an augmented tool for writing job descriptions. Textio analyzes job location and industry/field as well as the language of the job description to make recommendations on word choice, tone, and structure. The tool is best known for helping companies develop more engaging job descriptions with consistently balanced and inclusive language, thereby attracting more diverse talent.

Improving skills

Charlotte started reading a book called Coaching Agile Teams, while Robbie studied for the ISTQB software testing certification. Jeff read High-Performance Django while helping out with deployment issues on other projects.

Show me more!

To find out what we've done for past ShipIt Days, see our other blog posts.

New Call-to-action
blog comments powered by Disqus



You're already subscribed