April 25, 2018, 6PM: Staying Green: Tests That Stand the Test of Time – Seth Petry-Johnson
We’ve come a long way since the early days of unit testing. Software teams today work on projects with thousands of automated unit, integration, and browser tests.
Writing tests that actually provide value over time is difficult. Each type of test serves a different purpose and has different (and sometimes opposite) trade-offs. Poorly written tests not only fail to provide their promised value, they require extra time and energy to maintain as things change.
This session distills a decade of lessons learned into 7 key rules for writing awesome tests. You’ll learn strategies for creating test data for both unit and integration tests, novel techniques for improving UI tests, how to avoid brittle tests, and why a comprehensive test strategy will deliver value long after a test is written.
Pointy-haired boss by day, coder by night
Seth spent 21 years as a professional developer/architect before finally turning in his daily commit rights for a Microsoft Project product key. He now spends his days as a pointy-haired boss leading a small product development team in the search for simple solutions to complex problems. He is passionate about clean architecture, testable systems, and bringing order to chaos. Seth lives in Columbus, OH and is an active participant in the Midwest developer community. He’ll write TPS reports when he has to, but still enjoys writing, reviewing, and talking about code.
May 23, 2018, 6PM: Introduction to Functional Programming with F# – Chris Lomont
Functional programming languages often claim to be quicker for development, less error prone, and more easily maintained, so why don’t we all use them? The biggest reason is probably unfamiliarity, so this talk will use a popular functional programming language, F#, to illustrate the benefits of functional programming by comparing to a widely used OO/procedural language, C# (which is slowly itself absorbing functional pieces and concepts). At the end of the talk, you should be curious enough and have enough of the initial mental hurdles overcome that you can start playing with F#, possibly even replacing some of your current toolkit with it.
Bio: Dr. Chris Lomont (PhD math, triple BS in math, physics, computer science) has been writing software since 4th grade, doing it professionally for over 25 years. He has worked on a large range of projects, including video games for SEGA, quantum computing for AFRL, hardware and software security for clients including DHS, DoD, and Secret Service, image compression for NASA, CAD software, financial software, explosives modeling for DoD, reverse engineering for many clients, and much more. His off-work time is spent tinkering in his workshop making all sorts of items, ranging from chemical to electrical to software to experimental to artistic.
Currently he is interested in machine learning, scientific visualization, software and hardware security, financial and economic modeling, and software development practices. He is comfortable in many technologies, but prefers C#/F#/WPF/.NET for quick development, C/C++ and assembly for high performance, Mathematica for math/science/exploration, and Python for machine learning. He is comfortable in a range of hardware environments, including embedded work, desktop PC development, and high-performance computing.
Dr. Lomont is a Senior Principal Engineer at Logikos, Fort Wayne, using many of these skillsets to drive next generation software projects, from machine learning for IoT and cloud based analytics, to secure computing product needs, to advanced visualization, applying best-of-breed development practices to make software development more predictable, reliable, and cost-effective.
June 27, 2018, 6PM: Secure Applications, by Design – Craig Stuntz
There is a lot of good security advice in the world, but checklists like the OWASP Top 10 do not tell you how to design security into your application. Where should a developer even begin? You’ll leave this session with a process for building security in depth into your application architecture, using a human-centered user experience design, threat modeling, partitioning, defense in depth, and static analysis in continuous integration. Not yet another checklist, you’ll learn how to make security the foundation on which the rest of your application is built.
Bio: Craig Stuntz is a software engineer and a lifelong student of computer science, with specific interests in programming languages, type theory, compilers, and math. He is the Technical Director for Improving in Columbus, Ohio, and cofounded the Columbus branch of Papers We Love, a reading group for people interested in academic computer science research. In the past year he has presented talks at CodeMash, Dog Food Conference, Stir Trek, and many user groups. When not at work or playing with his kids, he is usually studying math or playing Irish traditional music on the tin whistle and wooden flute.