Building a Better Book Group

A little while back, there was a discussion around SEP about how to best keep track of the books we read for our own professional development. Notably, how to share…

The SEP Way

Conversations Matter Listening to the rollout of SEP Way last week reminded me of something. Conversations are important. It was good to see that SEP Way is an internal service…

6 Steps to Better Innovation

Chris Shinkle, Director of Innovation at Software Engineering Professionals (SEP), presents “6 Steps to Better Innovation”

RavenDB and MongoDB: Not easily interchangeable (at least not always)

On a recent internal project, we experimented with various NoSQL database back-ends. The project had used MongoDB since its inception. However, due to some memory issues, we wanted to evaluate…

My year as an apprentice software engineer

This post originally appeared on Ryan’s personal blog The unlikely programmer Music theory was my ‘thing’ from the time I was 10, so naturally that’s what I studied in college….

SEP Partners with Gleaners to Provide Food for Hungry Hoosiers

One in eight Hoosiers struggles with hunger. Gleaners Food Bank was founded in 1980 with the simple mission to fight this crisis. Annually, more than 260,000 Indiana residents receive assistance…

Collaboration versus Competition part 2

In my previous post I discussed the problem of expecting a candidate with a competitive mindset to work in a collaborative environment. This time I would like to focus on…

Builds should fail sometimes

Reposted from my personal blog Inception: Mike is dumb “Well, you don’t want your builds to succeed all the time…” I remember hearing that for the first time a year or two…

Collaboration versus Competition

Working with others is never easy. It takes hard work and the proper mindset to accomplish. This is a lesson taught to small children with varying degrees of success. I…

Tech Lead Training

One of the goals that I have set for myself over the past several years was to start to train engineers in a semiformal manner. This goal would accomplish a…

[Review] Agile Estimating and Planning

Agile Estimating and Planning, a book written by Mike Cohn (who writes an excellent blog you should all follow), is the de facto “classic” book for learning about Agile Planning….

Running Lean Startup Experiments Internally

When building a business or software, it is easy to make assumptions about what the market will want or how users will interact with your product. Recently, the concept of…

A Few Words About the SEP Fishtank

I’ve had several people tell me they liked the new fishtank design (thank you!), and it was suggested that I do a write-up about the tank.  I’m always happy to talk…

Getting even more value from your daily standup…

Many teams around here are familiar with the “famous 3” standup questions… What did you do yesterday? What will you do today? What impediments do you have? This is a…

Striving to Be Replaceable

In the book, The Passionate Programmer, there’s a section about making sure you’re replaceable. Several of us here at SEP read that book during a book club. When my group first started this…

A brief take on security in Ubuntu

In Ubuntu, the first wall of security comes in the form of a special user account called root. Root has the ability to perform any operation on the system. To…

Why every software company needs Linux NOW.

In this post I will provide evidence that keeping pace with the modern software industry requires the adoption of Linux. In the following post, I will provide specifics on why…

Recursive Breadth-first Traversal

One of my coworkers [1] brought to my attention an interesting problem. What’s the best way to run a breadth-first traversal on a tree data structure using recursion?  He already…

Oracle Wallets and You … No, Not You, Behind You. Yeah, You.

Oracle databases are a complex system of interconnected parts. The toolset is comprehensive and robust. And so is the documentation. Possibly too robust, even. I have spent the last couple…

ESOPs – Why They Work

                        October is employee ownership month and we’re celebrating our ownership throughout the month here at SEP. When we…

SEP Celebrates Employee Ownership Month

This October, SEP along with the ESOP Association and the employee ownership community, will be celebrating Employee Ownership Month, which is a tribute to the incredible spirit of employee ownership….

Join us at Midwest UX 2014

“Are you feeling crazy?” That’s the moment I remember when working with Lydia Whitehead after we got our Master degrees in the School of Informatics and Computing at IUPUI. We…

Monadic Complexity Resolutions

Matt Sheehe wrote a great blog post [1] where he brought up a fantastic idea.  Instead of making code more complex than it has to be, send a message to…

Getting started with the MEAN Technology stack

Decision Time There are several frameworks with different philosophies that can be used for developing web applications using the MEAN (MongoDB, Express, AngularJS, and Node.js) Technology Stack. See this Stackoverflow…

Software Producer: What’s in a name?

SEP had an interesting time establishing the title of Software Producer. We wanted it to mean something, like “Software Engineering Professionals” is not just our name; it’s who we are. Not…

Meet the Software Producer

It isn’t every day that a new title is introduced around here. And I get to have the fun of helping define it, because I’m one of the few on the…

I Want to be the One in Control

It’s all about time. SEP, like most organizations, lives and dies by time sheets. Our time sheets are two weeks long. Each entry has a start time, a project code,…

Testing the application: object interactions and AJAX calls

The final step in the series of posts about adding tests for the Backbone application is to add tests for functions that interact with other objects as well as dealing with…

Testing the application: workflows

In addition to the model and view tests, tests for the workflow of the Backbone application need to be added. As before, see the full repository for more context around…

Testing the application: models and views

As part of the series of posts, the next three posts are dedicated towards writing tests for the Backbone application created in the previous post. All of the tests (in…

Building a Backbone application with a workflow

Now that the API exists, it is time to create the Backbone application. The full code for the application is available. More so than in the previous steps in the…

What is Node.js, and other lightweight musings on new web technologies

JavaScript web technologies have sprouted like weeds over the last few years. While I was busy working on desktop and mobile applications, it seemed like a massive JavaScript wave engulfed…

Hosting the Node API in nginx with a reverse proxy

The Backbone application (coming in the next post in the series) will interact with the REST API using AJAX calls. Adding a reverse proxy allows those calls to work without…

Testing the API with Jasmine

The API created in the previous step did not have any tests. It is now time to start to rectify that. As before, in addition to the example code below,…

Building an API with Node, Express, and Mongoose

The first step in creating the example application is to create an API for the application to interact with. Node, Express, and Mongoose are used to create a REST API….

Monadic Parsing

I’ve spent a nontrivial part of my time at SEP working on projects that needed to do low level communication with some sort of remote device.  Thankfully, the trend for…

Building an application with Backbone workflows

A non-typical Backbone example When you start looking into Backbone, you may notice that many of the readily available example sites are setup in the same pattern: display a list…

Merging Contact Groups into Lync 2013 Clients across the Enterprise

While getting ready to deploy Lync 2013 at our company, I came across two problems: A. There is not an easy way to browse a company directory with Lync 2013…

Ollert – Reveal the Data Behind Your Trello Boards

Introducing Ollert, a tool to show you what your Trello boards can’t tell you on their own. Trello does a great job of telling you about the here and now of your Trello…

A Template for Lunches

If you want to show anything on your page, you’re going to have to write a template. A template is the html to display on each page view. And if…

Human Complexity: It’s Not Just for Psych Majors Anymore!

There are complex systems, and then there are Complex Systems. And nothing makes a system more complex than dealing with people. People make things complicated. Let’s look at an example. I’ve…

Using GitLab’s web hooks with Crucible

We have made available a new tool, Crucible Hook, to allow GitLab to notify Crucible about new commits. Rather than having external services (Crucible, Jenkins, etc.) constantly poll your Git server checking…

Alamofire and SwiftyJSON

Since my first post about ZipGet(still a working title—feel free to send me suggestions), other, better Swift programmers have published some nifty libraries, namely Alamofire and SwiftyJSON. Alamofire comes from the makers…

A Picture is Worth 1000 Lies

Last week, I wrote about Routing in EmberJS. And I kinda lied a bit. I laid out the Pokédex route like this … That’s probably the wrong choice, but I…

Book Review: Scrum Mastery: From Good to Great Servant Leadership

Having recently begun acting as Scrum Master for an 8 developer off-site team with with several hundred active project members, I thought it a wise idea to more formally read…

Why you should probably be using Single() rather than First()

One thing I run into a lot when reviewing C# code that uses LINQ is that we developers tend to gravitate towards using First() rather than Single(), even though that’s…

Have a MSDN subscription? Then start using your free monthly Azure credits!

SEP’s got a handful of unassigned MSDN subscriptions. We recently started a project that uses Visual Studio Online, so those of us on the team were assigned subscriptions so that…

What is a startup?

I want to ask a question, give my opinion, and complain about something. “What is a startup?” I’ve run into two schools of thought on what a startup is. 1)…

If you build it, they will find zip codes

I’ve written an app in Swift. Put simply, the app helps you find zip codes. Enter a city or landmark, pan and zoom your way across the globe, or center…

Getting from Here to There

Where do we go from here? We begin with the Url. The history of the web is based around the URL and our ability to transition from one url to…

Do you Git? FEEDBACK PLEASE.

TL;DR I made this thing and I want to know if I should keep making it. If you do Git, go here: http://l2git.com/ — and then go answer some questions. Why Every…

PMICIC Summer Agile Workshop with Chris Shinkle

PMICIC has asked SEP’s Director of Innovation, Chris Shinkle, to host their summer workshop again this year. This all day “Agile 101 and Common Agile Challenges” workshop is now open…

Add a fully-featured irb console in just 3 lines of ruby

When I write code in Ruby, I spend a decent amount of time in irb poking API’s, doing spikes, and testing out some logic. The first couple times it’s a…

Extracting Form Models in Android

This post originally appeared on Matt’s personal blog In my continuing quest to get code out of Android Activities, I’ve implemented the traditional “Form Model” pattern in a recent project…

Rise of the Tetrad

Ember has about six concepts that once you understand a bit will help you unlock the documentation and figure out how to develop your site. I have written before about…

Flex + Mobile = Mission Abort!

Me and the wife where sitting on the couch the other day; both of us fixed on our respective electronic device.  I was on my laptop launching some Kerbalnauts into space…

Jasmine – a Whole New World of Javascript Testing

Jasmine: a headless Javascript testing library written entirely in Javascript. With similarities to rspec, I’ve quickly grown attached to this framework and have been looking for opportunities to discuss it….

The Ember Path

There was a recent blog post by Rob Conery about learning EmberJs by just flinging yourself at it. That was something that kind of resonated with me. I’ve been trying…

Checking into Swift

In the interest of learning Swift, I undertook one of the exercises catalogued on codekata.com—“Data Munging,” involving some simple file parsing. The first thing I learned? Regular expressions in Swift,…

A C# developer learns Swift Part 5: Segues

Part 1, Part 2, Part 3, Part 4 You’ll probably want to have more than one screen in your application.  In the framework there a a couple of ways of accomplishing this,…

Eric Sage is an SEPeer!

We’re super excited to welcome Eric Sage back to SEP! Eric spent last summer with us as an intern, and has decided to join us full time. He’ll be working…

Ditch the IDE, become a blade master with Vim.

I am a huge fan of text editors. While I have taken a few GUI editors for a spin, I always come back to Terminal Vim. In this post, I’m…

A C# developer learns Swift Part 4: UI Basics

Part 1, Part 2, Part 3 UI programing in IOS can be simple, yet is a little rough at the same time.  I’ve been working in WPF for the past…

Matt Loria is an SEPeer!

We’re excited to welcome Matt Loria to SEP as an Engineering Intern! Matt will be helping us to launch a new product we’ve been working on. A couple interesting things…

Emma Caraher is an SEPeer!

We’re excited to welcome Emma Caraher to SEP as an Engineering Intern! Emma will be bringing her diverse experience to one of our Agriculture Technology based project teams. Some neat things…

Language Test

For those who like games and programming: ‘Hello, world’: Programming languages quiz

A C# developer learns Swift Part 3: API Callbacks

Part 1, Part 2 Previously, I mentioned that a major hurdle to learning Swift was the state of the API. Primarily that it is still Objective C based.  Often your code…

Test Driven Blogging – using O.R.I.D. to keep my writing focused…

Recently I read a book called “The Art of Focused Conversations“.  This book gave me a lot of great advice on how to have better conversations, especially with people that…

A C# developer learns Swift Part 2: Optionals

This is going to be a quick post on one of the things that Swift does a little differently from other modern languages you may be familiar with. In C#…

MVP: Escape the Valley of Death

“MVP: Escape the Valley of Death” is presented by Chris Shinkle, Director of Innovation at Software Engineering Professionals (SEP).

VLAT Interviews

SEP is in the process of developing a new product called VLAT (Valuable Line Assessment Tool). VLAT is designed to provide reports and metrics about the quality of a unit…

Lessons Learned During the Conception of Ollert

During SEP’s previous startup weekend, I pitched an idea for a Trello Analysis Tool called Ollert. In less than three days, a team of 6 built a minimal viable product (MVP) and put it live on…

A C# developer learns Swift Part 1: Core Data

Series Intro I’ve always been a PC guy until a few years ago when I bought an IPad 2 for my wife.  Since then, most of my personal electronic devices…

What happens to all those startup weekend projects?

  We do startup weekend twice a year.  The outcome of which is 2-5 things.  These things are actually a couple things.  They are all software (at least to date,…

A Swift Introduction

Very few people who have delved into Apple’s programming domain develop an opinion that one could describe as neutral on the topic of Objective-C. Objective-C draws the ire of many,…

C#’s New(ish) Asynchronous Features

On my current project, I was tasked with seeing if I could add some limited auto-complete functionality to the application.  The application centers around a designer view where the user…

A quick note on EmberJs and ReactiveJS

I tweeted yesterday that I was having trouble with EmberJS and ReactiveJS integration. I’m hip-deep in an emberjs app and I can’t get my canvas to pump events through rxjs……

There is more to it than code

There are activities — other than programming on client work — that are key parts of working in the software industry. If you work for a software company and you…

Better Testing in Go With Gocheck

As a quick reminder, golang is a really fun programming language to use. It even includes testing out of the box! Unfortunately, this out-of-the-box testing framework isn’t all that great….

Takeaways From AgileIndy 2014

The AgileIndy Conference 2014 has come and gone. I wasn’t sure what to expect, since it was my first conference, but I came out of it feeling rather positive. A…

Where is your Horizon?

Here at SEP, we sometimes use a diagram to discuss the various career paths open to our Developers. And by Developers I don’t refer solely to those who write code,…

Joe Coy is an SEPeer!

He’s back! Again! Our favorite IT/Ops intern is back with us again this summer, this time with a year of Computer Science under his belt. Some things you might want…

Michael Pak is an SEPeer!

We’re excited to welcome Michael Pak to SEP as an Engineering Intern! Michael will be helping one of our agriculture technology based project teams with his mad coding skills. Some…

Changing the Game with Xamarin

Businesses use several factors to assess the success of a project life cycle – cost, time to market, adoption rates, and more. But when a technology reduces development time from…

How do I know if my idea is blog-worthy?

We at SEP know blogging is a Good Thing, both personally and for the company (recruiting, business development, etc.). Knowing what to blog about has proven to be challenging. (Really, we did a…

Disruptive Innovation in 19 Not-So-Easy Steps

I ran across Chunka Mui (well, his writing, anyway) when looking into autonomous cars recently; he has a 7 part article on how disruptive autonomous cars like the Google car will be,…

SEP Ranks as the 6th Best Place to Work in Indiana for Medium-Sized Businesses

May 1, 2014 (INDIANAPOLIS) — Companies setting the standard with their workplace practices were honored May 1st before a crowd of more than 1,200 at the Indiana Convention Center in…

Introducing the SEP Ping Pong Switch

What’s that mysterious switch in the Commons? Remember this? Briefly, SEPeers were extremely frustrated by the inability to know, sitting at their desks, whether the ping pong table was actively being…

How to use the Outlook Room Finder to schedule meeting

As anyone who has tried to find an available conference room here at SEP knows, it can sometimes be a real pain to find one that’s available at the time…

How deep is your Kanban implementation?

Recently a co-worker and I had a brief discussion about whether we were using Kanban, or simply using a “task board” for visualizing our work. Kanban is so much more…

Lambda Calculus

So I wrote a lengthy blog post about functional programming [1] and in it I have a segment where I praise lambda calculus as the best thing ever [2], link…

Can you measure “quality”? (spoiler – yes you can!)

There are 3 main questions that I need to be able to answer in order to monitor a project. How many “thingies” can we get done each iteration? a.k.a. Velocity…

Importance of User Research

Unfortunately, the word research has gotten a bad rep over the years. Someone hears research and suddenly they think high dollars and waste of resources. Most people think of it…

Functional Programming

What is FP? Unfortunately, Functional Programming (FP) isn’t really a single thing. It’s a bunch of different programming constructs that get put together for traditional, convenience, implementational, or mathematical reasons….

South by SouthWest 2014 Accelerator Winners

I always like to see the future at SXSW Interactive, particularly new wearable tech or new startups. My 2014 faves: Entertainment and Content Category: Waygo Providence, RI Waygo is a…

Sources: Forbes

I see that Forbes magazine is on the verge of sale. This may be good or bad; we’ll see what the new owners do. Why do I care about the…

How to set up a legacy (Windows XP) virtual machine on Windows 8

Microsoft has withdrawn support for the Windows XP operating system, but if you are like me, we still have systems running under this operating system that need to be monitored…

Be a Summer Software Engineering or Business Intern at SEP!

Smart. Fit. Get things done. Each describes characteristics SEP explores with potential candidates when hiring, even with interns. “When looking for interns, we look for the same qualities we do…

SEP Selected as 2014 Best Places to Work in Indiana Finalist

For the fifth year in a row, SEP has been named by the Indiana Chamber of Commerce as one of the Best Places to Work in Indiana. The honorees list…

How to Spread Contagious Excellence

Contagious Excellence is a short, concise statement that describes SEP at its core. But what does Contagious Excellence mean? Working with SEP and associating with us will make you better….