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.

SoftwareGR Presents Victoria Gonda: Functional Android

Functional Android

For the most part, programming in Android has meant living in the imperative programming world. Recently, many aspects of functional programming have become standard with the adoption of Kotlin and RxJava. What does it mean to use functional paradigm properties in our Android code, and how can it help us? In this talk you’ll learn some of the fundamentals of functional programming, and what this might look like on Android.

Victoria Gonda.jpg

About Victoria

Victoria was drawn to programming because of its potential to help people in a meaningful way. She is currently an Android Engineer at Buffer. The conferences she has spoken at have been an enjoyable way to connect with the technical community and exchange information with others. In her spare time, Victoria enjoys dancing and curling up with a good book.

SoftwareGR Presents Michael Bopp: Mastering the Art of Learning in Technology

Mastering the Art of Learning in Technology

When was the last time you learned something new on the job? Making a career in technology requires constant learning. Every project offers opportunities to apply new techniques, frameworks, or hacks. Since we learn on a consistent basis, how do we learn well? This talk will explore learning techniques, guidance, and advice. We will also take a glimpse into "how" we consciously or unconsciously learn. While the talk will be centered around software development and the tech industry, concepts can be applied to just about any occupation or hobby, whether you’re new at this, or you’ve been doing this for thirty years.


Michael Bopp.jpg

About Mike

Mike has been a professional software developer since 2001 and has worked in many languages and development frameworks over the years, including Java and .NET. Mike is a founding member of Rapid Development Group. Mike leads DevOps and iOS development (Swift & ObjC) and RDG, and is expert in Javascript (React), PHP, and MySQL and other web and mobile technologies. Outside of work Mike enjoys raising his family, the outdoors, home improvement and carpentry.