SoftwareGR Presents Carlus Henry: Confessions of a Test Driven Developer-holic

Tuesday October 29th, 2019

6:00 - 8:00 PM

Atomic Object, 1034 Wealthy St. SE, Grand Rapids



Test Driven Development is an industry accepted best practice. It gives developers confidence in the software that they write by promising both requirement fulfilling products as well as simpler designs. Who could ever argue against it’s merits?

For years I have been an advocate of Test Driven Development - to the point where I have been called of being a Test Driven Developer-holic. Not only did I drink the Kool-Aid, I also served it to minors.

Despite it’s merits, there is a dark underbelly to Test Driven Development. Exhausted of ignoring this underbelly, I have committed a number of sins against the Test Driven Developer community.

During this talk, I will share my confession of where almost two decades of professional software development has lead me and my current position on this topic


About carlus

Carlus Henry has been working in the Software Industry for over 19 years. Through that experience, he has been a Software Developer, Technical Team Lead and Entrepreneur. He has given many talks in the Grand Rapids Area and beyond. Most recently he has been focusing on Continuous Integration / Deployment pipelines and .NET development. He is happily married to his wife for 19 years and has 6 beautiful children - 3 boys and 3 girls that keep him extremely busy.

RSVP on Meetup

RSVP on Meetup

SoftwareGR Presents Andy Lester: 12 Skills Every Rookie Programmer Should Have (But Often Don't)

Tuesday April 30th, 2019

7:00 - 9:00 PM

Atomic Object, 1034 Wealthy St. SE, Grand Rapids

12 Skills Every Rookie Programmer Should Have (But Often Don’t)

Students coming out of college, or the newly popular coding bootcamps, are eager to get working in the business world of programming. Unfortunately, many college programs and bootcamps are leaving students ill-prepared for life in the working world of computer professionals.

In this talk, I'll present a dozen areas of knowledge that every programmer should know, but may not have learned, or learned with enough depth. We'll cover technical skills like SQL and regular expressions, soft skills like working effectively with other coders, and everything in between.

If you're looking to make the leap into the world of programming, or to make your first big move to the next job, you'll learn where you should beef up your skills to make sure you can hit the ground running.

About Andy

Andy Lester.jpg

Andy Lester has been developing software professionally for over
30 years. He's released many open source projects on GitHub ( and
Perl's CPAN (, including
ack (, a grep-like search tool for programmers. Andy's experiences managing and hiring programmers are the basis of his job-hunting guide "Land The Tech Job You Love" (
He writes about software development and careers at and tweets at

SoftwareGR Presents Joshua Hulst: Problem Solving in Software Development

Tuesday, March 26, 2019
6:00 PM - 7:30 PM


Michigan Software Labs,

452 Ada Dr SE Suite 300, Ada, MI

Problem Solving in Software Development

Professional software development is an interesting craft. There are always new technologies to learn, different project delivery methods to keep up on, new hosting platforms available - so much seems to be changing all the time.

Through all of this change, one of the most rewarding (and important) parts of the craft is the opportunity we have to solve problems and create solutions. Sometimes these are technical problems and solutions, but often the technical solutions are the most rewarding when they are in support of higher level problems - figuring out how to improve a business process, making a user’s life a little better, etc.

In this discussion, we’ll talk together about methods and strategies I’ve found for thinking about problems, both technical and non-technical, and creating solutions to solve those problems. I’ll also share some lessons learned over the years about partnering with clients to solve their problems.


About Joshua Hulst

Joshua Hulst is the co-founder and managing partner of Michigan Software Labs, creator of transformational software solutions for middle market and Fortune 500 companies alike. He is a published security researcher, graduate of the GE Edison Engineering Development Program, and frequent industry panelist and speaker.

SoftwareGR Presents Jonathan "J." Tower: Seeing Your Career as an Adventure

Tuesday January 29th, 2019

6:00 - 8:00 PM

Atomic Object, 1034 Wealthy St. SE, Grand Rapids

Seeing Your Career As An Adventure

In my 20-year professional career, I have had many different adventures, as well as my share of misadventures. People, good luck, and well-timed opportunities have all played a role in the overall trajectory of my professional life, and much of it in ways I couldn't have dreamed when I was first starting out. 

These twists and turns have allowed me to work for startups, meet my idols, travel the world speaking at conferences, start my own company, and a few years ago, they even allowed me to travel around the entire country for a year, working and living with my family in an RV, ultimately going to all of the lower 48 states.

I want to tell you more about that trip, and everything it taught me about seeing my career--and life--as an adventure. I hope that hearing a little about my adventures will inspire you in your own, help you to see your career in a different light, and encourage you to join in on your own adventure already in progress.



About Jonathan

Jonathan "J." Tower is a Microsoft MVP, frequent speaker, and business owner with twenty years of software industry experience. He loves solving problems and all the creative aspects of software development, as well as sharing what he's learned with others and helping to build technology community. 

His current technology interests include software architecture, .NET Core, JavaScript frameworks, web APIs, and a few different mobile app technologies.

J. lives in Grand Rapids, Michigan with his wife and children, where he turned his passion for the tech community into the Beer City Code conference.

Software GR Presents Rachael McQuater: Seeking System Zen w/ Universal TypeScript

Tuesday, November 20, 2018

6pm - 8pm

Atomic Object, 1034 Wealthy St. SE, Grand Rapids

Seeking System Zen w/ Universal TypeScript

Every codebase is a living, breathing thing. How do we take care of one? What leverage can a language give us in our task? Let me take you on our statically-, structurally- typed journey to holistic system health and harmony using universal Typescript.

TypeScript’s powerful structural type system, when used universally across our application:
* Encodes domain constraints and invariants right into our types, where they’re checked by our editor instead of our test suite;
* Quickly reveals code health issues, and guides us through the resultant refactoring;
* Eliminates the cognitive load of switching between client and server languages;
* Just plain reduces our chances of hurting ourselves while realizing JavaScript’s powerful, but dangerously flexible, backend potential.

We built a codebase that self-tests, that speaks to us when it’s feeling tension or wants to be refactored, that guides us toward solutions that cut with the grain. Now, we have a holistically healthy, robust app that responds instantly to complex, changing problem spaces.

And it’s a hell of a lot of fun to work with.


About Rachael

Rachael McQuater is a Software Consultant and Developer at Atomic Object who is excited about building beautiful software that closely models real-world problem domains. She and her colleagues at Atomic are exploring new ways to build more robust, powerful, easy-to-write web applications with TypeScript.

Software GR Presents Joe Chrysler: React Native

Tuesday, October 23, 2018

6pm - 8pm

Atomic Object, 1034 Wealthy St. SE, Grand Rapids

React Native

3 Languages, 2 Platforms, 1 Framework, Go!

Live-reloading, UI snapshot testing, and excellent escape hatches make React Native the first cross-platform development framework that's worth recommending. Drop by and learn why cross-platform no longer means lowest common denominator.

In this interactive conversation, I'll show you how to build fast, fluid mobile interfaces with Yoga and Storybook, how to make your text editor enforce business logic with TypeScript and Redux, and how easy it is to drop down to native code with React Native bridges when you need to leverage the full power of each platform. This conversation will be part talk, part live demo, and part conversation, so come ready with a smartphone, a question, and a smile. It'll be fun. 🙂


About Joe

Joe is a developer with Atomic Object, currently focused on building cross-platform mobile apps with React Native and TypeScript, and cloud backends with AWS Lambda and Cognito. To get away from all that JavaScript, he spends a lot of time trying to improve the developer experience on his projects with Makefiles, Bash, and Markdown. Ask him how he uses Alexa to water his horses.

SoftwareGR Presents Drew Colthorp: TypeScript's Structural Type System

Tuesday, September 18, 2018


Atomic Object, 1034 Wealthy St. SE, Grand Rapids


TypeScript's Structural Type System

I was wrong. I thought TypeScript was something like a Java-ey type system layered atop JavaScript, bringing a dose of brittleness and losing the flexibility I appreciated about the warty-yet-ubiquitous multi-paradigm language.

But that's not it at all! TypeScript radically improves the JavaScript development experience by providing a flexible, light-weight type system for modern EcmaScript. It does so while maintaining a delicate balance: adding a way to enforce assumptions and invariants without removing the flexibility prized by dynamic language developers. This works because TypeScript's type system is _structural_ and not _nominal_ - that is, based on shapes of data instead of identities of types.

Come see what's cool and exciting about TypeScript's defining feature. We'll show what differentiates a structural type system from a nominal one; how key features of TypeScript provide a powerful language to express invariants about your system; and how TypeScript leverages its knowledge of what your code means to avoid most of the type system nuisances that put some developers off of statically typed languages.



About Drew

As Principal Consultant and Developer at Atomic Object, Drew is trying to find the most elegant balance between user needs, business goals, and technical constraints.

SoftwareGR Presents Hillel Wayne: "The Two Hardest Problems in CS"

Tuesday, June 5, 2018


Atomic Object, 1034 Wealthy St. SE, Grand Rapids


"The Two Hardest Problems in CS"

"The two hardest problems in CS are Cache Invalidation and Naming Things." This is, if anything, too _optimistic_: cache invalidation is just a special case of concurrency, and naming things is just a special case of explaining them. And these are actually the same problem: without a way of describing concurrency, we don't have a way of understanding it, much less rigorously analyzing it.

Fortunately, we have some powerful tools to manage this. With _formal specification_, we can describe our systems in a way that's more expressive than code and more precise and unambiguous than human language. Once we have a semantics for the hard problems in CS, we have a way of studying them, finding complex bugs in systems before we've written any lines of code. We'll cover how this is useful, focusing primarily on TLA+, which is both powerful and practical enough for use in all kinds of day-to-day work.


About Hillel

Hillel is a software engineer and consultant in formal methods. He's currently writing a book on formal specification in TLA+ and a series on the history of UML. In his free time, he juggles and makes candy. He did, in fact, bring enough for everyone.

SoftwareGR Presents Brittany Postnikoff: "Bridging the Gap Between Academia and Industry"

Tuesday, May 1, 2018

6pm - 8pm

Atomic Object, 1034 Wealthy St. SE, Grand Rapids

"Bridging the Gap Between Academia and Industry"

Getting information in and out of the academic sphere can be a daunting task. The current state of academic knowledge sharing is hidden behind paywalls, has severe lag, and can come at great personal cost. This presentation analyzes the state of academic information spread, specifically in information security, and provides ways to access that information safely and easily so you can learn, be inspired, and do some science.

Brittany Postnikoff.jpeg

About Brittany:

Brittany Postnikoff is a graduate student in the Cryptography, Security, and Privacy Lab at the University of Waterloo. She researches the interplay between robots and social engineering to predict and mitigate the negative impact of social robots on security and privacy.

Brittany holds a diploma in Business Administration from Red River College, an Honours Bachelor of Computer Science degree from the University of Manitoba, and will be completing her Master of Mathematics degree at the University of Waterloo this year.

SoftwareGR Presents Rae Krantz: "A Game of Theories: Why Languages Do What They Do"

Tuesday, March 27, 2018


Atomic Object, 1034 Wealthy St. SE, Grand Rapids

 "A Game of Theories: Why Languages Do What They Do"

How often do you search for “how to do [x] in [language]”? Maybe you’re a Python developer who thinks Go’s dedication to clean syntax feels familiar, or maybe you’re a Ruby dev who thinks Erlang’s pattern matching doesn’t leave enough freedom in your code to deal. Language differences and similarities both enamor and infuriate us, so let’s compare how they solve our common problems. What does a language’s built-in-functions tell us about why they were created and how they are best used?
Language list: Ruby, Python, Go, Erlang, Clojure, JavaScript (possibly Rust and/or Elm, but we only have so much time!)

note: there will be minor Game of Thrones references throughout, however specific spoilers are saved for the end so it will be easy to earmuff it for ~2 minutes at that time and then rejoin us for questions


About Rae

Rae's 9-to-5 hours focus on Angular, and her past experience has included Ruby, Chef, and enough Python to be dangerous. She also did a kata in Erlang once. In her local community, she has started a programming book club, monthly hack nights, and a bi-weekly TDD practice. One thing she's proud of is hiking 6.5 miles up a mountain to Grinnell Glacier (Glacier NP) while 6.5 months pregnant.
She has lived in Akron, OH since 2014 and dreams of one day having an apartment that allows dogs.