Lessons I Learned My First Year As A Software Developer That Have Very Little To Do With Coding

December 4th marked my one year anniversary as a software engineer/developer/programmer/coder and after a year I have learned a few things. One of those things is that job titles mean very little, especially in a startup but I’m getting ahead of myself. So here are some of the non-technical lessons I have learned about being a developer in the past year in no particular order.

Being a software developer means being constantly overwhelmed but productive in spite of it


About 2 weeks into my job I had a bad day. Well I had a lot of bad days in my first year but this day I complained about it and the advice I got was that consistently succeeding at this job is hard. It’s true! Technology is constantly changing. Business logic is fuzzy and evolving. Algorithms are hard to track and predict how they’ll interact with other code.

It’s overwhelming. It’s more whelms than anyone can handle every day and it doesn’t get any better which is comforting in a weird way. Hearing that experienced developers struggle is a reminder that programming is hard regardless of how much experience we have.

Programmers are constantly being told we’re wrong. It’s a big part of our jobs and that’s OK


The afternoon of my first Friday at my new job I got a message from my lead developer, Nicholas. It was something along the lines of “We need to talk about a mistake in your code on Monday” and I started to worry. “What is he going to say? How will I deal with this criticism? He’s going to tell me I’m wrong!!” Then I started to panic a little. Then I thought about what I had been doing all week. Then I chuckled at myself.

When I run my code that doesn’t work correctly, my compiler tells me I’m wrong. When my code works, but not the way I intended, the results tell me I’m wrong. This happens multiple times a day. I am told constantly that I’m wrong by my computer so why should it be any different when the criticism comes from a person? Being able to take criticisms at face value is a good skill to have in this career. We are wrong and we are wrong a lot. And that’s ok. It’s just part of the job.

Questions are just questions


One big thing about working in a team is that other people are required to read and understand the code that you write. At Infinicept, this is the primary reason behind pull requests. I had never worked on a team before so initially I got very defensive when another developer would ask me why I did something a certain way and I would assume that I did the thing wrong and that they were passive aggressively letting me know that I was dumb. This is a lot to assume from someone asking a simple question.

Engineers like solving problems and we like finding different ways to solve the same problems. The kind of engineers I work with (and like to work with) like to help each other do this. This should be assumed to be the reason for questions until proven otherwise.

Equal parts pride and humility are required for this career

Being new to professional software development, my humility was unbound. No one was more humble than I was (that’s my favorite humility joke)! For months, my impostor syndrome was a huge part of how I saw myself even though I was aware that impostor syndrome makes no sense especially when I had the job and I was helping to hire more developers and I was contributing code and it was working. Too much humility makes you miserable.

As I took on more tasks, I found that I had to have a certain amount of pride to start the new task. I had to tell myself “I can do this thing I’ve never done” or “I can learn this thing I didn’t know existed til just now” or “This new idea is worth trying even though I came up with it.” We need to be proud of our work and our ideas to write code! However we can all picture working with someone with too much pride. That one person who doesn’t accept feedback and listen because they know all the things? I don’t want to be that person.

Being a software developer requires being proud of your ideas and your work and being accepting and proud of others’ ideas and work!

It’s VERY important to take care of yourself!


In March I started to feel like I should be more competent. I had been a professional coder for 4 WHOLE MONTHS. Instead of feeling accomplished, I felt stressed that I should be able to do more. Our company was delivering our first real big-deal deliverable to an important client at the end of the month and my daughter was struggling with a strange issue with her elbow that was very painful and required surgery. All employees were working 10+ hour days and weekends. Oh, and I was finishing up my last Computer Science courses for my degree.

For the whole month I didn’t go to the gym once and survived almost solely on caffeine and alcohol. Then at the end of the month, after I had served in the Marine Corps and spent 12 years as a 9-1-1 dispatcher, I had my first real anxiety attack. I never want to do that again. My coworkers, managers and founders never want to have a month like that again. So we all resolved to take better care of ourselves and each other as people.

We do not do good work when we are too tired and/or too stressed. This is why it’s important to take care of our mind and body. Also it just makes the job and life more enjoyable!

Programming knowledge is not linear


Working for a brand new startup meant that I got the opportunity to help hire more developers which meant I got to talk with a few developers who had more experience and it makes sense that someone with 5 years of experience as a programmer would have 5 years more knowledge about programming. It turns out this is not true.

First of all, “experience” is a very vague term. Two years of being pigeonholed in doing small repetitive tasks is way different than spending two years building and designing new things. You can have two years of experience or you can have one year of experience twice and it’s hard to tell at a glance what kind of experience someone has.

Then there’s the ever changing world of languages and frameworks. Did you know all the things about JavaScript four years ago but haven’t used it since? Did you switch from a back-end role to a dev-ops role? What knowledge did you or can you retain from the work you did 3 jobs ago?

It is impossible to assume that another programmer knows more or less about a specific technology just by looking at their years of experience.

You’re going to encounter bad code


Learning to code involves starting from “Project -> New” and all the code you write is very small in scope, structured properly and efficiently and checked by someone who knows better. Then that project is quickly discarded for another project that highlights another concept.

Writing code as a professional developer involves working on the nth iteration of a code-base using libraries, tools and concepts that may or may not work well together. At first the code won’t make sense because you’re new to all this but sometimes code won’t make sense because it goes against best practices or just doesn’t work and no one really noticed yet.

It’s VERY hard to tell the difference between the two starting out but I found it very liberating to find out that some of the code I didn’t understand was code that didn’t make sense.

It’s also very important to consider why the bad code happened. There are tons of reasons other than “This person is teh stupidz!” for bad code. It’s important to have empathy for that prior developer because that prior developer is going to be you one day.

These are just a few of the things I’ve learned in my first year as a software developer. I look forward to all the things I get to learn in the next year!

Denver Startup Week 2018 Review

Want to write easy content for your blog? Take one subject and write 4 blog posts about that one subject. Want to squeeze one more blog out of that onion of an idea? Take that idea and those 4 blog posts and put them all into one post to make it easier for people to find all the posts related to that one idea.

In this case, that one idea is the 2018 Denver Startup Week which was my first startup week. It was fun and felt like a good use of my time. Want to know more about my 2018 Denver Startup Week experience? Check out the posts here:

A Guideline for Unit Testing After Development: Only Test Your Code

Not a real book

In a perfect world, specifications are clear and concise. Developers take those clear and concise specifications to write unit tests before writing the code that does the work. Then it’s red -> green -> refactor -> Bob’s your uncle you have good code!

In the real world, you could end up writing tests after the code has been written for whatever reason. After doing this poorly recently, I’ve come up with some of my own guidelines for unit testing:

  • If you’re doing too much setup, you’re testing the wrong thing: The first sign of too much setup is that you’re hooking your test code up to outside services. Do not test outside services in unit tests. Someone else already unit tested that service. You don’t have to do it.
  • Find the code that does the work, put it in its own method if needed and test that method: You’re testing code that likely was not written with testing in mind. Code that uses another library or service may be intertwined in the logic of the code you’re writing. Separate the unique logic that you (or the original developer) wrote into its own method then you only have to worry about testing that method.
  • If the method you’re testing must use an outside resource, abstract the outside resource into an interface: Let’s say the code your testing reads from a file or connects to an API or listens for an event. It’s impossible to test this code without that outside resource, but it’s also unwise to assume that the outside resource will always be available when the test is run. Abstract that outside resource into an interface. Then your implementation of that interface for your tests can point to a local resource that will always be there! Now your tests can run anywhere and your working code can still do its thing!

It all boils down to 2 main points. Make sure you are only testing your unique code and make sure the resources you need for testing will be always available no matter where your tests are running.

What are your tips for writing (or refactoring) code to make it easy and consistent to test?

Four Principles of Object-Oriented Programming with Examples in Java

I enjoy object-oriented programming. I understand the concepts, but I’ve found that when asked to define or show an example of the basic principles my brain blanks. This especially happens in pressure situations like interviews. So this post gets to act as my memory until the four principles of object-oriented programming (encapsulation, inheritance, polymorphism and abstraction).


Encapsulation is the idea that the attributes of an entity are enclosed in that entity. This gives context to attributes. This also allows the programmer to restrict access to those attributes so that those attributes are modified and/or used only in ways that the programmer intends to use them.


Inheritance is the idea that an entity can inherit attributes from another entity. It allows the programmer to create similar entities without needing to redefine similar attributes over and over.

This means every Dog, Cat and Bird (subclasses) will have a name and age attributes as well as an Identify method because they are Animals (superclass).


Polymorphism means “having many forms” which honestly doesn’t really help too much as a definition.  I like to call it a way to have the same method, only different. There are two ways to do this:

  • Overloading: The method name stays the same, but the parameters, the return type and the number of parameters can all change.
  • Overriding: This is when a subclass method has the same name, parameters and return type as a method in a superclass but has a different implementation.

    A few rules about method overriding in Java…

    • Subclass methods should have the same return type and arguments
    • The access level of the subclass method cannot be more restrictive than the superclass method.
    • A method declared final or static cannot be overridden.
    • If a method cannot be inherited, it cannot be overridden.


Abstraction is the process of hiding all but the relevant information about a thing to make things less complex and more efficient for the user. For example, we don’t need to know how a clock works in order to use it to tell time. Abstraction lets you focus on what the thing does instead of how it does it.

As much as I tried to keep thins post brief, I failed. If I got something wrong, or if something doesn’t make sense please reach out and let me know.

Here are a few of the resources I used:

Four Principles of Object-Oriented Programming with Examples in C#

I enjoy object-oriented programming. I understand the concepts, but I’ve found that when asked to define or show an example of the basic principles my brain blanks. This especially happens in pressure situations like interviews. So this post gets to act as my memory until the four principles of object-oriented programming (encapsulation, inheritance, polymorphism and abstraction).


Encapsulation is the idea that the attributes of an entity are enclosed in that entity. This gives context to attributes. This also allows the programmer to restrict access to those attributes so that those attributes are modified and/or used only in ways that the programmer intends to use them.


Inheritance is the idea that an entity can inherit attributes from another entity. It allows the programmer to create similar entities without needing to redefine similar attributes over and over.

This means every Dog, Cat and Bird (derived classes) will have a name and age variable as well as a Identify method because they are Animals (base class).


Polymorphism means “having many forms” which honestly doesn’t really help too much as a definition.  I like to call it a way to have the same method, only different. There are two ways to do this:

  • Overloading: The method name stays the same, but the parameters, the return type and the number of parameters can all change.
  • Overriding: This is when a derived class method has the same name, parameters and return type as a method in a base class but has a different implementation.

    Overriding can get a bit wonky depending on how you instantiate a object of a derived class. I suggest reading Knowing When to Use Override and New Keywords slowly.


Abstraction is the process of hiding all but the relevant information about a thing to make things less complex and more efficient for the user. For example, we don’t need to know how a clock works in order to use it to tell time. Abstraction lets you focus on what the thing does instead of how it does it.

As much as I tried to keep thins post brief, I failed. If I got something wrong, or if something doesn’t make sense please reach out and let me know.

Here are a few of the resources I used:

Design your own Entry-Level Developer – Which CS Electives Should I Choose?

Imagine that you knew someone who was going to graduate with their Computer Science Bachelor’s Degree in the spring of 2018 (*waves*). Now imagine you could help choose which Computer Science elective courses they chose (*waves and jumps*). What courses would you choose?

This fall I need to choose 2 Computer Science elective courses to complete my degree. I looked through the Regis University course catalog and found 18 electives that I could choose from. I was pretty excited at my choices. Since I only need 2 courses, I decided to narrow my choices down to 4 courses. I new there were likely going to be unavailable courses as well as changes to the Regis University course catalog. I chose:

Object-Oriented Programming using C++

Mobile and Enterprise Programming

Web and Database Programming

Enterprise Software Development

Then I emailed my advisor to see what was available. Reality and availability are cruel things. None of the courses I chose are available this fall. My options this fall are…

Computer Systems Security OR Database Management


UNIX Operating Systems OR Artificial Intelligence

Let’s take a look at how I feel about these courses to see if I can make up my mind…

Computer Systems Security

Everyone would like a security-minded entry-level developer, right? Having a background in the military and law enforcement I’m all for making sure the applications I create are secure. However that’s where my interest ends. I want to be a software developer, not an IT technician.

Database Management

I feel like I still remember much of what I learned about databases when I went to Westwood College. I like looking at the design of databases. This course would honestly be easier for me than the Computer Security course and I feel like I would get more out of it. OK, I convinced me. I’m signing up for this course.

UNIX Operating Systems

I have taught myself how to use UNIX at least 4 times in the past 15 years. I even used Ubuntu as my primary operating system for a while before my appetite for games and college courses convinced me to move back into the Windows universe so this would be a fairly easy course for me. This course is taught by the same instructor who taught one of my first CS courses at Regis so it would be nice to have my last CS course with her. However I think the best way to learn UNIX is the same way to learn any OS and that is by just using it consistently.

Artificial Intelligence

If you’ve paid attention at all to technology news in the past 5 years, artificial intelligence (AI) is one of the premier buzzwords being used. AI and machine learning are credited for systems like Alexa and Siri and chatbots and, of course, the imminent takeover of the world by robots. Do I want to be one of the people who is ultimately responsible for the rise of our robot overlords? Well when I put it like that, how can i say “no”? Seriously though, it sounds more challenging, and fun, than a UNIX course and the applications for AI are fun and constantly growing.

So after talking to myself, I’ve decided I’d like to take the Database Management and Artificial Intelligence courses. What do you think of my choices?

Go Code Colorado 2017 Kick-Off showcases the tech startup community

Wednesday, February 1st was the Kick-Off for the 2017 Go Code Colorado Challenge at Galvanize in Denver. I went because I might like the idea of participating again, but I mainly went because I like what the Go Code Colorado Challenge says about the Colorado technology community.

Before the kick-off event, Scott Yates hosted a panel of technology and entrepreneur advocates from around Colorado to talk about the Colorado technology community. The panel included Andrea Young, CEO of the Colorado Technology Association, Josh Hudnall, co-founder and co-director of LAUNCH West CO in Grand Junction, Jim Mackay, Cofounder of Scape in Durango, Jon Wilker, founder of Ignite Denver and 360Conferences in Denver, Aari Loftipour, CEO of Jalapeno Inventive in Fort Collins and Michelle Parvinrough, Executive Director of Peak Startup in Colorado Springs.

I will tell anyone repeatedly that if you are involved in Colorado tech startups you are part of a community more than you are part of an industry. It was great to hear this sentiment from the panel. Our supportive community is what makes people want to stay involved. The mountains and the craft beers and the “Colorado lifestyle” are great, but it’s the fact that those involved in the Colorado tech community enjoy working and working together that keeps us here. We’re still competitive, but we’re supportive.

The Go Code Colorado Challenge reflects this ideal. It’s definitely a competition. Each of the 3 finalist team gets $25,000 to keep their app idea going but, like the Colorado tech community, it’s not a cutthroat competition. It is a fun, challenging way to stretch your tech and entrepreneurial muscles and you get the chance to win $25,000 and all you have to do is show up.

About the 2017 Go Code Colorado Challenge

Sphero SPRK Lightning Lab Cheat Sheet


If you, or your students, are like me and want to know every possible tool that can be used to program your Sphero SPRK with the Lightning Lab app, then you want to check out the printable Lightning Lab Cheat Sheet PDF in the link below. If you have any thoughts, ideas or questions please let me know.

Lightning Lab Cheat Sheet – PDF

(Re)learning Linux with Lynda and VirtualBox

Last week I had my first phone interview for a job in software development. It was for a DevOps position that required comfort with git, continuous integration, CentOS and the yum package manager. I was 2 for 4. I can use git. I am familiar with continuous integration but my Linux knowledge was admittedly rusty. In 2003 I ordered my laptop with Ubuntu as the OS so I had used Linux before but it has been a long time. I eventually had to switch the OS to Windows so I could complete my college schoolwork.

This meant I could not be considered for the job because the job requires the candidate to be able to navigate CentOS easily. So what does a motivated, internet-enabled self-learner do? I go learn about CentOS!

Resource List

My main computer is my Windows 10 laptop so I needed a few things in order to re-learn Linux…

  • Oracle VM VirtualBox – “I hear you like computers, so I put a computer in your computer.” This allowed me to have a Linux computer to work in without needing a separate physical computer.
  • CentOS operating system – I was able to easily download an ISO of CentOS and install it on my virtual machine.
  • Git Bash – This allowed me to treat my CentOS VM as if it was another computer on a network and connect to it via SSH.
  • Up and Running with CentOS – Lynda.com – I found a great tutorial on Lynda.com, so I signed up for their free 10 day trial. This tutorial was easy to follow even with rusty Linux knowledge. It helped me get familiar with the basics of CentOS, Linux, SSH, yum and vi.
  • (Optional Resource) Amazon Web Services – Pretending that my VM was actually on a network made things even more unnecessarily complicated sometimes so I learned how to set up an AWS instance with CentOS to complete the CentOS tutorial.

After I completed the CentOS tutorial, I felt OK with my CentOS knowledge but not comfortable enough so I needed more practice. Since I still have time in my free 10 day Lynda.com trial I decided to check out the Become a Programmer learning path to get more familiar with CentOS, Linux in general and vi specifically. The learning path explores simple programming concepts and gave me an opportunity to use vi. I found this great vi cheat sheet (PDF) and got to work.

Unnecessarily Complicated JavaScripting

The Becoming a Programmer learning path only requires an HTML file and a JavaScript file but I’m not doing this to learn JavaScript or basic programming, I’m doing this to learn how to use Linux and vi so here’s my setup:


I have Lynda.com up in my browser on my laptop (left side of screen). I have a VM running CentOS after I used the yum package manager to install the GNOME desktop (lower right corner of my screen). Then to make it more complicated I am using GIt Bash to connect to my VM using SSH so I can use vi as my editor for the tutorial (upper right corner or screen). All this just to type some simple JavaScript. Crazy!

My plan is to use vi in my CentOS virtual machine as my code editor for a while to get comfortable with it, then in about a month I will check to see if that DevOps position, or a similar position, is available. Wish me luck!

If you have any issues or ideas with the resources I shared, let me know. I would love to talk about them. Sometimes being an online-learner can be lonely.

Sphero Android App Reviews

My dream job is to be a Software Engineer at Sphero, so after getting some advice on where to start I have decided to make my own Sphero app. First comes the fun part though. It’s time to play and see what this little round thing can do.  There are 56 Sphero apps in the Android App store. Let’s see what most of them can do.

If you see a Sphero app in the Google Play Store that is not listed here it’s one of the more in depth apps like SPRK Lightning Lab, orbBasic for Sphero or Tynker which will be covered in a later post.

Overall, the biggest thing missing in most Sphero apps is a Sleep Sphero option. Most Sphero apps created by publishers other than Sphero  feel like “Hey let’s try this out” kind of apps.



Apps I did not review and reasons why

  • Ollie for Sphero – I don’t have an Ollie….yet.
  • Sphero Horse – I don’t know anyone else with a Sphero
  • Astro Ball – App could not find the Sphero
  • Sphero (Device Web API Plug-in) – The app text is in Japanese
  • Spheromon – I don’t know anyone else with a Sphero
  • Sphero SmartWatch Control – I do not have a Sony SmartWatch
  • Dark Nebula HD – Episode Two – App could not find the Sphero
  • Sphero Remote for SmartWatch 2 – I do not have a SOny SmartWatch
  • FreeFlight 3 – I do not have a drone
  • Driving – I have no idea how this app is included in my search. It has nothing to do with Sphero
  • Snow Globe Sphero – App didn’t open.
  • MobBob – The app description only mentions Sphero because publisher also made a Sphero app.
  • Sphero Meter – App could not find the Sphero
  • Doodle Grub – Twisted Snake – It says it was updated to allow Sphero control, but I don’t see it.
  • Sphero Turf Research – I’m not paying $200 for a Sphero app even if I can get a refund.
  • Myo Sphero Control – I do not own a Myo motion control armband
  • GYRO – I don’t know why this is in my search results. It does not have Sphero support… but if it did it would be cool.
  • PopPet the Robot – Only mentions Sphero cuz of the publishers previous Sphero app.
  • Ball Travel Zero Gravity – There is a ball in the game, but no Sphero support.
  • H-O-R-S-E for Sphero – App could not find the Sphero
  • Sphormos – Not compatible with Sphero 2
  • ClaptrAPP – Has nothing to do with Sphero
  • BB8-RA – I don’t have a Google Cardboard
  • SpheroLabyrinth – App could not find the Sphero
  • Contact Lense Calculator – Included in my search because description includes the word “sphero-cylinder”.
  • Robot Run Madness – This game has a spheroid robot in it, no Sphero support.

Sphero (By Sphero)

The main Sphero app is solid. Brent Spiner (Data from ST: TNG) is the voice for the app. When you first run the app, you get a little cartoon explaining the world that Sphero is from to describe the games. The “Connect to Sphero” screen gives up on finding a Sphero quickly even when a Sphero is connected to the phone.

The main menu shows content behind the options with a “Learn more” button that takes users to an internet browser. You can’t scroll through the content though. There’s an info button and a little Sphero button in the corner which sets the ball off on a little demo. There is also a “Play” button to play the game, another Sphero button that sends the user to the app store to get more apps published by Sphero which is very cool. And a bar graph button that shows you stats about your Sphero.

I like the placement of the back buttons in the upper left of the screen.

There’s a ton of information on the main control screen but Sphero does a good job with tool tips to explain all the things. One thing about the tool tips though, if users could tap anywhere on the screen to remove the tool tips instead of having to tap “OK”, it would be better.

Let’s break down the main control screen into 2 sides, left and right. The left side has the large circular control pad. Place your finger on the direction icon and move that around to move the Sphero around. Then we have all the things around the control pad.

Starting at the left side of the circle is a painting palette. Tapping the palette allows the user to change the colors of the LEDs on the Sphero.

Moving clockwise around the control pad, we then come to the Level/XP display that shows users the Sphero’s level and experience needed to reach the next level.

Then there’s a phone icon with 2 arrows. This allows users to control the Sphero by tilting their phones. I’ve found I have much more control over the Sphero with this control.

To the right of that icon is a gear surrounding the Sphero. This sends users to the Settings menu. The settings menu allows users to see the Sphero’s MAC address and software and firmware versions. They can also turn sound on and off, see the navigation tutorial again, see the cartoon again and put the Sphero to sleep. Users can also change the colors of the buttons in the app between green and blue and switch the location of the control pad from left to right. There is also a “Redeem” button to allow users to redeem codes for… something.

Outside of the gear icon is the Core info button. In the story of Sphero, it needs to collect Cores to trade in for new tricks. Tapping this sends the user to the Core Exchange to spend Cores on new tricks.

Directly below that is the Mission panel which shows users how many available missions they can accomplish. Tapping the panel ends the user to the Select Mission screen to choose a mission to earn more cores and experience.

Below the Missions panel and just outside the circle is the Supply Drop button. Supply drops are special missions to collect cores.

Then at the bottom of the control pad is a panel with a turtle and hare to set the Sphero’s top speed. Users must tap the turtle to lower the speed and tap the hare to increase the top speed.

Then the last button around the control pad is the Aim button. Pressing and holding the button allows users to aim the Sphero to make it easier to control.

Away from the control pad are 2 buttons. The Boost button gives Sphero a jolt of speed. Then there’s the Trick Panel. The large button shows the current selected trick to perform when pressed and underneath is an arrow that allows users to rotate through available tricks. I would like an easier way to select tricks though.

The app is fun and cute, just what you’d expect from the Sphero. I really like the round theme of the controls. It makes it intuitive.

Back to top…

Sphero Multi Drive (by Sphero)

This app allows users to drive the Sphero. That’s it. The main control pad is in the middle of the screen with 2 boost buttons. There is a rectangle at the top that allows users to change the LED color on the Sphero. It allows users to select 2 colors, but I’m not sure why. The control pad works like the control pad in the main app. There are also 2 “boost” buttons to allow users to give Sphero a speed boost.

In the upper left of the screen is a menu button that lets users view settings, a guide and the aim tutorial again. There is also an Aim button which unfortunately looks like a power button. Aiming is done by placing 2 fingers in the screen and twisting which is a bit awkward. I like the aiming in the Sphero app better.

In the upper right of the screen is a button with a circle in it. It allows users to select the top speed with 3 different presets: Cautious, Comfy and Crazy. Good alliteration! There is also the Control Type button. This button allows users to select how to control the Sphero. The default setting is Joystick which is just like the control app in the Sphero App. There’s also Tilt where users can control the Sphero by tilting their phones and RC that has a throttle and a steering icon to treat the Sphero like a remote controlled car.

It’s a simple app to simply drive the Sphero. The color selector could use a label, the Aim button looks too much like a power button and the control type button crashed my app a few times. There are also times the user must use the physical back button on the phone to go back in menus. There should be back buttons on each screen. This app has a lot less character than the Sphero app but that works with its simple use.

Back to top…

Sphero Draw N’Drive (by Sphero)

I was excited to try this app because drawing a path for the Sphero to follow sounds like fun. The app was a little bit of a disappointment though. Where the Sphero app had a good tutorial and tool tips, this app has none of those things. There is also no sense of scale from the app to real life. I don’t have a ton of room in my home so I have to draw tiny lines in the app for it to work in my home. It will probably be a lot more fun in a larger space.

The control screen looks like grid paper with a color wheel surrounded by a Play button, an Aim button, a speed panel and an odd looking roundish button. The color wheel lets users select the color of the line they draw on the grid which corresponds to the color of the LEDs on the Sphero. Aim works just like in the Sphero app. The speed panel looks like the Sphero App speed panel but users must touch where they want their speed which is a little tough. The play button sets the Sphero on the path the user draws. The weird roundish button is a tab that allows the user to hide the panel to make it easier to draw.

Things that would make this app really cool:

  • A sense of scale and ability to zoom on the app.
  • Instructions. Any instructions. You shake the phone to erase your drawing. I learned that from the app store. That should be in the app.

I’ll have to try out this app in a bigger space before I decide not to use it.

Back to top…

Sphero Golf (by Sphero)

I was excited to try this app too. It could probably use a little more instruction but it’s golf so it’s fairly straightforward. There is a tutorial but all it says is to place a physical object on the ground to act as the hole (cups, corners of the room, frisbees, cats). Although the User Guide in the Menu is great for more instruction!

There are 3 clubs, the Driver which goes up to 12 feet, the Iron which goes up to 7 feet and the putter that goes up to 5 feet. This fits into that sense of scale that bothered me in the Draw N’Drive app.

There are 2 ways to “swing” your club. You can flick the Sphero on the screen to hit the ball or use a slider at the bottom right of the screen to switch to Swing Mode. Swing Mode allows the user to hold their phone upside down as if it was a golf club and swing. The instructions for swinging are great although it would be nice to be able to turn them off once you have the hang of it.

Users can keep score of their hole in the upper right corner of the screen and use the slider at the top of the screen to complete the hole and reset the score to zero for the next hole.

Overall this was one of the more intuitive apps. The only thing that wasn’t very obvious was the power meter on the right side of the flick mode which is great once you figure out how to use it. Some cool additions to this app could be course ideas to help users set up their own golf course and score keeping for multiple players and multiple holes.

Back to top…

Sphero Cam (by Sphero)

This app is basically the Sphero Multi Driver app on top of a camera app. Users can drive the Sphero while recording a video or taking a picture. There is also a settings icon to allow users to change the Sphero’s color, change speed and sound and the position of the joystick on the screen. When I tried it, it seemed the only way to view a video after recording was to exit the app and go to my gallery. Some great additions to this app would be the ability to do tricks from the Sphero app as well as an in-app gallery of videos and photos to share. It’s a good basic app to give users ideas.

Back to top…

Sphero ColorGrab (by Sphero)

This is the first non-rolling game I found for Sphero and it’s pretty fun. It’s a multiplayer game where players have to pick up the Sphero when it turns the correct color. Players score more points for picking it up quickly and score no points for picking it up during the wrong color.

The intro screen does a good job explaining the game but it took me a few times of playing it to realize that I was able to change the number of players, the point goal and the difficulty. The playing screen is pretty easy. It shows player scores and a countdown to the next round.

The game is themed around a weird bunny character who mumbles and really likes cookies. It’s like the Trix rabbit on cookie crack. The character rides the line between silly and annoying. it’s a fun, simple game.

Back to top…

Sphero Nyan Cat Space Party (by Sphero)

What the hell is a Nyan Cat? It’s a cute weird cat made by a comic artist and made popular by a Japanese pop culture song. So, you know, it’s something that could only come from the internet.

This app is the only game that doesn’t require a Sphero, but using the Sphero makes it awesomer. The game is a weird internet baby that comes from combining the old Asteroid game with Nyan Cat. Like the Color Grab game, it is not a rolling game. The Sphero is the player’s controller they use to control the Nyan Cat on the phone’s screen. Tilting and rotation the Sphero affects the Nyan Cat. It’s a lot like the old Centipede arcade games with the ball set in the arcade machine.

So Sphero Nyan Cat Space Party = Asteroid + Nyan Cat + Centipede + Sphero.

Back to top…

Sphero Alive (by Dynamic Upgrade)

This is the first Sphero app I tested that is not made by Sphero. It is also the first non-interactive Sphero app. Once it connects, the user presses “Start.” The Sphero moves in random directions and shows the directions on the screen. It stops once the user presses “Stop.” That’s all this app does. The user can also select “Remove Ads” to buy the app for $1.56 but I don’t know why anyone would want to. This app is lame.

Back to top…

Exile (by Sphero)

This is the Nyan Cat Space Party without the Nyan Cat. The controls are the same. The tutorials are the same. The game is the same. The only difference is the sprites and the sounds. It was a more enjoyable game than the Nyan Cat Space Party because Nyan Cat gets REALLY old after about 20 seconds.

Back to top…

Sphero Joystick (by zng)

This app overlays a Sphero joystick on top of whatever you’re using on you’re phone. You can change the color of the sphero, aim it and move the joystick on your screen. At first I wasn’t sure why you would want such a thing but as I played with it, I got some ideas. By using this app and the camera on your phone you can do the same thing as the Sphero Cam app. However this app allows you to use the Sphero with other apps. For example, I was able to post a Periscope video while controlling Sphero and even tried out the Facebook live streaming functionality. Cool stuff!

Back to top…

The Rolling Dead (by Sphero)

This is an alternate reality game in that the game is played while looking through the phone’s camera. The app detects where the Sphero is on the screen and zombies show up trying to attack the Sphero. The user then drives the Sphero around using a control pad in the lower right corner of the screen. It’s a cute game but it seems to be very resource intensive. The game often crashed on me using my Samsung S5. I’m curious to try it out on a newer phone to see if it works better there. It is fun to see zombies walking around my house in the game though.

Back to top…

Sphero Companion (by cevinius)

This feels like a first attempt to use voice commands to interact with the Sphero. The app has a control pad, an aim button, a help button and a listen button. The control pad and aim button work as expected. The help button gives the user some example phrases to use and those work well. I found I had to double tap the Listen button to get the app to listen to me. The app promises that more phrases work than the ones listen but trying to figure those out are frustrating. Also frustrating is when the user ignores the app, it says “I’m bored. Do you want to play a game?” but when I reply “Yes” it doesn’t seem to understand. This app feels almost like a “Hello World” app for voice commands. It shows promise, but that’s it.

Back to top…

Sphero Sleep (by LifeFree)

Sometimes when you close your Sphero app, the Sphero sits and blinks at you waiting to be connected again. The only way it make it sleep is to put it in the charging station, ignore it til it stops or open a Sphero app and find the sleep button which is usually hidden 3-deep in a settings menu. This app makes it quick and easy to put your Sphero in sleep mode. Just open the app and, after connecting and changing colors, the Sphero goes to sleep and the app closes. Easy, simple and useful.

Back to top…

Sphero Alarm (by pacosal)

The basic premise is to use your Sphero as an alarm clock. Sounds kinda neat but I don’t like the idea of needing to have the Sphero constantly connected to the phone via bluetooth for it to work. I set the alarm and when it was activated the Sphero slowly glowed white, brighter and brighter. After a while it changes colors in an attempt to get your attention. It stops being bright when the user presses the “Stop Alarm” pulsing button on the phone. This app could be ok if it made noise or moved the Sphero slightly to make it make noise. A snooze button would also be nice. This app makes me think of possibilities for Sphero to do things about accessibility. It makes me wonder if I would like this as an alarm clock if I were deaf.

Back to top…

CrazyCats (by LifeFree)

This would be lots of fun if my cat cared at all about the Sphero. I really like the set up of this app. All the functionality is on one screen which is nice although I didn’t realize I could scroll down until I looked at the screenshots in the app store. I’m a fan of the “Go if Sphero is touched” section of moves. I could see that being entertaining to watch with pets… and people. I also like that the Sphero Sleep button is at the top of the screen which easily allows me to put the Sphero to sleep before exiting the app. my only concern is the warning users get when first opening the app. It mentions that the moves are not good for the Sphero if done for more than 30 minutes. I wonder what that is about. I can’t contact the developer though because their site isn’t working. Maybe I’ll ask Sphero.

Back to top…

Disc Groove for Sphero (by Alex Swan)

This is a very cool and unique take on using the Sphero as a controller. In the app there is a disc with 3 gems on it and meteors that fly at the disc. The object is to rotate the disc using the Sphero to keep the gems from being hit by the meteors. It’s a really cool game play mechanic! I’d like to see more game around it though. It doesn’t have a menu or levels or anything else besides the game play which makes sense since Alex said it’s their first published game.

Back to top…

Sphero Music (by TheMDP LLC)

This is the first paid Sphero app I’ve tried so my expectations were higher. It’s a sound visualizer app that changes colors and flickers with different sounds. It listens to sounds using the phone’s microphone. I would like it a lot better if it just went off of sounds made from apps on the phone. I would also like it better if I could drive the Sphero while it visualized the music. There is also an option to have the Sphero “dance” to pre-programmed routines for 2 songs. It’s nothing special. The app promises more dancing songs but since the last update was in 2014, I’m not holding my breath.

Back to top…

Sphero Robot Controller (by John Li)

This is another paid app. It allows the user to control the Sphero from a very rudimentary control on the phone OR control it using a Pebble Watch or Android Watch. It just so happens that I have a Pebble Watch so I decided to give it a try. The watch gives the user a menu of commands: Forward, Backward (which is really “turn around”), Left, Right, Change colors, Connect, Disconnect and Sleep. It’s one of those apps that makes a user think “Neat. I can control this from my watch. What else can it do?” Not worth $1.99.

Back to top…

Sphero Lights (by Moobile Lab, Inc.)

I like this app. At first I didn’t think I would be impressed but it does exactly what it advertises and it does it well, except for the Disco Light. The Disco Light doesn’t work that well. I like the Color Light option that changes the color of the Sphero at a certain interval. I could see me setting the Sphero on my desk with the Color Light option going. The Night Light is just a light. The Strobe Light is more fun that the strobe function in the main Sphero app and the Morse Code function is a great novelty.

Back to top…

Drive & Draw (by Irtaza)

This app is the exact opposite of the Sphero Draw N’Drive. Instead of making a drawing to drive the Sphero, the user drives the Sphero to make a drawing. It’s a decent First Sphero App but it could use some more features like allowing the user to drive the sphero in an arc or change colors in the drawing would be really nice and make this app feel more complete.

Back to top…

Last Fish (by Pyrosphere)

This is probably the most recent Sphero-related app I have reviewed so far. it was last updated in January. It’s another Sphero-as-a-controller game. you use the Sphero to control the fish in the game. White orbs are good. Black orbs are bad. It’s a simple game concept with a cool theme and atmosphere.

Back to top…

BB-8 Lamp (by lamandu)

Granted this is an app for a BB-8, not a Sphero specifically but I’ll include it anyway since we have a BB-8. It allows you to make your BB-8 blink or show different colored lights. That’s it. It’s a well done app that doesn’t do much.

Back to top…

Sphero Says (by JonCo)

This is another non-rolling game. It plays like Simon. The Sphero blinks pattern of colors and the player repeats the pattern on the phone’s screen. It’s a neat simple idea. The app could be better done. It’s a little too simple of a UI. Looks like something I would make.

Back to top…

BioLighter (by VS Mobile Solutions)

It’s the Last Fish game, but different and it doesn’t connect to the Sphero and ads interrupt things and don’t do this.