Why STG?

Who are we? Software Technology Group (STG) is a software-consulting firm located in Downtown Salt Lake City, Utah.  STG is a privately owned and operated company, which enables us to make decisions based on the needs of our employees and our clients, not those of shareholders. Founded 20 years ago, STG has maintained the goal to provide work/life balance along with training to help employees gain the skills they want to further their careers. Why are we different from other consulting companies? Our consultants are full-time employees with Salary and Benefits! We always put our employees first. We want to make sure your career is headed in the direction you are most passionate and excited about! The dreaded “BENCH” A common fear among developers with […]

Are you Left Brained or Right Brained?

I’ve heard a lot of personality-related labels: introverted, optimistic, strong but silent, drama queen, etc. But left-brain or right-brain? These labels may not be well-known. Defining Behavior Whether it is our left hemisphere that is more dominant or our right one, the distinction can impact our personality and the decisions we make. Each hemisphere of the brain is dominant for different behaviors. If you would split the brain right down the middle into two symmetrical or equal parts, you would have a right and left hemisphere. Although equal in size, these two sides are not the same, and do not carry out the same functions.  The left side of the brain is responsible for controlling the right side of the body. It also performs tasks that have to […]

Interview Tips and Tricks (for the newbie to the expert)

One of the ways that STG likes to partner with its clients is to sit in as an observer when we have a candidate interview.  We don’t interfere with anything said, but being in the room helps us observe and see both how the candidate does and what needs our client has that perhaps we had not thought to consider in our candidate search.  It really is a great opportunity. One of the results of sitting in so many interviews is that I get to see many different interview styles and situations.  I’ve seen some candidates just rock the interview and I’ve seen others blow it so badly that it’s almost physically painful to sit and watch them struggle. Although we never share specific interview […]

RootsTech Innovator Showdown

I recently had the opportunity to attend the RootsTech Genealogy conference held in Salt Lake City, Utah. One of the sessions I attended was the Innovator Showdown. It was the final six of numerous of entries to “show off” how technology can improve family history — the world’s largest org chart. Most people think of family history as old books in dusty libraries, cemeteries, huge stacks of papers, and the county clerk’s office. However, the finalists included medical history tracking, hardware-software combination using iPhone technology, data visualization, and digital record-keeping. Each finalist shared the technology they used for their platform and some common threads emerged. TapGenes uses software to map likelihood of certain genetic traits that could affect other family members such as cancers, chromosomal […]

Testimony of Ryan Parrish

As a consultant, often when diving into a large online retailer environment you can expect there to be many pieces of proprietary company knowledge to pick up. Between learning a new API, using Foreign CRM tools, and adapting to the conventions of their business operations and hierarchy expectations, it can be a lot to keep track of.  In doing so recently at Backcountry.com, I was able to help strengthen their business with immediate solutions and leverage my position as a consultant to speak the truth without any political or superior ties. This put me in a great position that harnessed a relationship based on trust and helped push toward the company’s progression in their development.  Specifically, I was tasked with maintaining a new web series they’ve […]

Coding HTML Emails

Part 1: The Code That Time Forgot Like me, you probably expect that html code is going to display virtually the same in every browser, with a few known exceptions. There are small foibles in rendering between the assorted web browsers, but with every update, those differences become fewer and fewer, and the CSS “hacks” for these issues are well-known and widely used. Until the first time you’re assigned to program an HTML email. Oh, it looks easy enough, and often it doesn’t even have to be responsive, so you quickly code the email, checking in all the browsers for inconsistencies, and then send it off the test email. And then it explodes in your face. What was beautiful HTML code in your web browser […]

Our Favorite UI/UX Designs of 2015: A Thoroughly Informal and Awesome List

Ah, end-of-year: The time when a young man/woman’s fancy turns to lists. I asked Software Technology Group’s illustrious IxD Practice members to share some of their favorite UX/UI discoveries from the past year. What followed was an entertaining and instructive mixed-bag of websites, apps, and more. Enjoy! InVision invisionapp.com The free prototyping tool that UX designers love just keeps getting better and better. InVision has now extended well beyond hot-linking comps to terrific animations and transitions, cross-platform support, project management, development hand-off tools and more. And dang are those features easy to use. I consider InVision to be one of the best web-based apps of all time. Typeform typeform.com Boring forms move aside. Here’s a form generator with a simple, robust interface that creates gorgeous, […]

2016 IxD Trends

Allow me to wax prophetic. A vibrant, waning year tends to open our imaginations to the unexplored horizons yet to come, and this is especially true of the IxD world.  If the past year has taught us anything, it is that we have absolutely no clue what to expect. But heck… that just makes conjecture more fun. So…come along as I attempt to follow our current, cryptic trajectories into an unknown and exciting future. Let the wild speculations commence! Sketch vs. Illustrator Wars Mark my words: Adobe Illustrator has a new Bohemian contender. In 2016, Sketch is ready to put down a beating on the World Heavyweight Vector-Graphics Champion. Why? First and foremost, it’s cheaper. A $99 flat fee vs. $49 per month for Creative Cloud […]

The 7 Habits of Highly Ineffective Software Engineers

In this article (which has no relation to Covey’s famous book, The 7 Habits of Highly Effective People, except maybe the number seven), we will take a different approach in our discussion of good habits by first pointing out the bad ones.  By going from ineffective to effective, we will essentially discover what really separates good engineers from the exceptional. #1: Don’t ever try to re-balance the time-scope-quality triangle. If you do, be sure to never articulate this tradeoff to the customer.  More importantly, be sure to ignore  Murphy’s three laws: Everything takes longer than you think, nothing is as easy as it looks, and if something can go wrong, it will. By doing this, you’ll ensure that a product will be delivered late, have […]

Why Everything I Need to Know about Software Engineering I Learned from the Mormon Tabernacle Choir

Imagine if your software company had an 18-month hiring process for all of its techs, and that your chances of actually getting hired were slim at best (really slim, as in maybe 5%). But no problem, let’s say you get the job!  Great–now for your first project.  You’ll be working with an all-volunteer team of about 460 developers on the next exciting app that’s going to influence the world for good and make people’s lives better. You have a week to complete the project, with two developer meetings lasting a total of about 5-10 hours.  Oh, and at the end of the week, we’ll expect a demo that will be broadcast on live TV, as well as thousands of other cable, TV, and internet outlets […]

Shout out for Automation

What is automation: In the most simplistic term, automation is some type of script that controls an application to do some type of action.  However, there are flaws to this ideology.  The background to automation probably started years ago w/ someone in QA or development when they were doing the same thing over and over again.  They eventually got tired of wasting time so they wrote a script to do the same action for them automatically so they can do something else.  This probably isn’t 100% true but that is how I got started writing automation back 17 years ago. Why automation: Automation can be simple or complex.  The need for automation increases as technology advances.  Things that used to take days, weeks, months to […]

Passing Knowledge with Code

As a programmer, sometime or another you will be needed to dig into a legacy system. Whether you’re making changes or maybe trying to rewrite it, you’ll need to understand what’s going on. One of the biggest problems with legacy systems is that there are few to no people who truly understand that system anymore. The original creators have more than likely moved on leaving you to interpret what variable ‘x’ is supposed to mean. As you can imagine it can be very time consuming dissecting a system that doesn’t follow modern coding conventions, but we need to understand that the code we write will also someday be a legacy system. Someone is going to inherit the system you are writing right now. So, the […]

Working for the Man vs. Being the Man: The Pros and Cons of Independent Contracting, Full-Time Employment, and Everything in Between

We’ve all heard the well-rehearsed arguments of being a full-time employee for a company versus independent contracting.  With technology careers, this debate becomes even more relevant given the large number of both contracting and full-time positions available.  There simply aren’t enough people to fill the demands of the industry, which for most software engineers, gives them the opportunity to choose.  In the end it comes down to personal preference and circumstance, as there is no silver-bullet formula for choosing; however, does it always have to be a choice of just one or the other?  Do hybrid business models exist out there that combine elements of both contracting and full-time employment?  In this article, we will attempt to re-define the context of the debate by examining […]

Simple NSURLConnection vs NSURLSession example – using Swift

This is a simple example of how to achieve the same simple GET call with (the “old”) NSURLConnection and the new NSURLSession. This project is now on Swift! (so 50% less code, and 200% more “Why??”s) This blog post is almost identical to the previous one I made on objective-c (link) but obviously written on swift. The logic and approach are the same. The final result This a simple app with 2 buttons, 1 label and 1 UIImageView. When you tap the “NSURLConnection” the app downloads a picture of a car using NSURLConnection. When you tap the “NSURLSession” the app downloads a picture of a car using NSURLSession. The label also updates to tell you which one you’re using. NSURLConnection Here’s the code to get […]

Scanning for Bluetooth Devices in Android

In this post I’m going to outline how you can prompt the user to enable/turn on bluetooth in your Android device, how to show already paired bluetooth devices, and how to scan for new bluetooth devices in range. For this tutorial, you’ll need a physical Android device (I haven’t found a way to make the emulator proxy the computer’s bluetooth signal), and I guess at least another bluetooth device in range for you to test things. The source code for this Android Studio project is linked at the bottom.  Note: This tutorial DOES NOT explain how to pair, connect and send data to/from another Bluetooth device. I might make another post for those specific subjects. Also, this tutorial is based on regular Bluetooth and not […]

The Self Taught Developer

I was never really taught front end development. When I first started at the University in the early 2000’s, front end development was never truly a focus for Computer Science majors.  Our focus was back end web development using languages such as Java and the up and coming C#. Of course we knew the basics of HTML, CSS, and JavaScript; however, web development per se seemed to fall within the area of ‘graphic design’. Today the front end landscape is completely different. Between then and now, I and many others like myself began to assume more of a front end development role. We were mostly self-taught, either at home, on our own or at work as we introduced through trial and error to newer technologies […]

Synergizing the Strategic Alignment of our Initiatives: Why Buzzwords are Bogus, Keyword Searches are Lame, and Talk is Cheap When it Comes to Resumes, Interviews, and Negotiating Your Salary

Author: Quinn Heiner Without seeing the subtitle to this article, you might try to decipher what “Synergizing the Strategic Alignment of our Initiatives“ really means, only to find that in reality, it means almost nothing.  It’s just a bunch of buzzwords thrown together.  The old adage that words mean something is only sometimes true.  When it comes to buzzwords, they usually have a very vague, shallow definition that doesn’t actually solve problems. We’ve heard all the talking points and buzzwords in interviews and seen all the keywords we’re looking for in a resume.  But too often we become disappointed when someone looks great on paper and talks a good talk in an interview, only to see them give a mediocre job performance at best when push […]

NSURLSession Tutorial

NSURLSession with Delegates I have already created 2 tutorials (one for obj-c and one for swift) showing how to use NSURLSession in a very simple case scenario to download an image as NSData, and display it on the screen. That was fine and dandy, but NSURLSession can do sooo much more than that. In this post I’ll how to use one of the delegates of NSURLSession to download a large image, while displaying how much data you have already downloaded. Since the image is larger now (5mb from some random website), the image gets automatically placed in a temporary file, which then gets converted to an image. Final result As usual, here’s the final result of what this will do: Gif created with “GifGrabber” from […]

5 Ways to Reduce Risk in Software Projects

Author: Brett Child Software developers, and IT in general, have a reputation for being over budget, being late, and not even meeting the needs of the customer. There are a million different reasons for that; such is the complex nature of software development. But, here are a few ways to reduce the risk that leads to a failed project. Increase Communication There can be a lot of people from many parts of an organization involved in a software project and it might really be impossible to get everyone together all the time. The risk is when ideas are communicated from the customer to one person who then has to translate those ideas to the people developing the software. Just like in the game telephone ideas […]

What the Heck is IxD, UX and UI?

There’s a Calvin and Hobbes comic strip that perfectly encapsulates the IxD profession. Six-year-old Calvin is sporting a rather spiffing astronaut helmet and superhero cape. His mom asks, “What’s up today?” Calvin responds, “Nothing so far.” “‘So far’?” “Well you never know, something COULD happen today. And if anything does, by golly, I’m going to be ready for it!” Calvin’s mom is somewhat taken aback, then responds, “I need a suit like that.” Today’s uber-dynamic companies need someone who’s ready for ANY design challenge. As IxD professionals, we seek to suit up every day to handle anything an employer can throw at us. As a result, we are both multi-faceted and in the throws of a full-blown identity crisis. This has made defining IxD, UX […]