Ruby/Rails Posts


Rails 6.x Auth with MagicLink using SecureRandom Token

Passwordless Authentication is very convenient for users and generally as secure as passwords (according to many articles as long as the email access-links are short-lived - as email is not very secure).

Rails 6.x+ Auth with MagicLinks using Rails Signed GlobalIDs

Several simple approaches to password-less rails authentication

Rails 7.0alpha2 Test-drive

I thought it would be fun to test the new alpha version of rails - but I always forget how to do this without upgrading an existing projects. Discover the Rails Pre-release versions gem list rails --remote --prerelease -e –remote - checks the rubygems site - not the locally installed versions –prerelease - find pre-release versions -e - use an exact match (many packages have rails in the name).

Elixir/Phoenix Posts


Phoenix 1.5 authentication with POW

Create a modern Phoenix SPA with tremendous flexibility

Phoenix LiveView - Simple Real-Time SPA

Create a dynamic SPA staying mostly in the Pheonix/Elixir mindset

Phoenix 1.5 PETAL Stack Setup - w/ asdf

Create a modern Phoenix SPA with tremendous flexibility

Crystal Language


Lucky Language Inflections - 0.28.0

Motivation It is helpful to be able to configure your cli-tasks to work the same as lucky. In lucky you can configure the application’s behavior / settings in the config folder.

Lucky Framework Upgrade

Exploring how to upgrade crystal projects (Lucky)

Lucky Framework with Crystal Language

A simple but reasonably comprehensive overview of Lucky features - with the context of a ‘mini-project’

Tech Notes Posts


Docker Intro using MailCatcher

Learn to set-up mail catcher for safe email testing with an introduction to Docker

Web Design Resources

Looking for images, drawings, photos and icons – here are a few helpful resources

Github Website with a Custom Domain & SSL

step 0: buy a domain name For these instructions use the (Namecheap)[] service to buy your Domain. step 1: point your domain name at: (optional) This takes quite a steps and disables https (more steps follow to renable ssl).



The Hero's Journey

Generally people remember stories and much of children’s play involves taking on a persona. Conveniently, many courses involve multiple units, thus allowing multiple rounds of “play” and “identity” for students. The stories they make need to be thoughtful and challenging enough that students successfully complete the “Hero’s Journey,” with a healthy sense of being uplifted by the challenges encountered on the way. This is quite doable with a thoughtful implementation of an Agile Kickoff process. One of my favorite books on this subject is in the resources below.

Feedback: It's Not what You Think

Helpful feedback has little to do with what the teacher thinks, for example the pre-supposition the teacher makes about the outcomes of student projects, and is much more about developing an openness to what actually works and what others like, without an absolute truth either stated or implied by the curriculum. Let the students decide what to do by emphasizing these two types of feedback: - Natural feedback - Collaborative feedback

Reflection: The Key to Adaptability

Frequent, even daily, mini-reflections lead to adaptable students and curriculums. Ideally, guide the students to where they are comfortable to self-reflect with you. This of course means guiding the kids to where they have the confidence and insight to self-reflect and self-correct instead of relying (or even fearing) external assessment and correction.


Demos and Feedback in the Classroom

Four steps for students to give and get safe and effective feedback.

Build Confidence: Exploration and Student Choice

Uplift focuses on the creation of an atmosphere in which students build on existing strengths and grow their self-confidence. Dangerous to an atmosphere of uplift are traditional assessment practices.



Webinar Agility by Tim Logan

As part of the ECIS Leadership Conference - April 2020, Guide and Lead Managing Partner, Tim Logan gives an overview of the importance of agility in building schools as life-affirming 21st century organisations.

Agile in Education: Bill Tihen and Paul Magnuson of Leysin American School

Principles to cultivate engaged, collaborative and self-regulated students. A video Interview by Scrum Alliance.


Bill Tihen

Bill Tihen

Developer, Data Enthusiast, Educator and Nature’s Friend


Garaio REM



On a quest to explore and uplift.

Developer, Educator and very curious.

I love exploring / hiking in the alps with my dog and I love learning new programming ideas.

Feel free to checkout my exploratory repository.


  • Alps
  • Animals
  • Meditation
  • Data & Science
  • Engaged Education
  • Computer Languages


  • Masters of Science in Electrical Engineering, 1990

    University of Vermont

  • Bachelors of Science in Electrical Engineering, 1988

    University of Vermont



Software Developer

Garaio REM

Aug 2018 – Present Bern, BE, Switzerland


  • Ruby on Rails Developer for Real-Estate Management

IT Director, Developer, Systems/Network Admin & Teacher

Leysin American School (LAS)

May 2007 – Jul 2018 Leysin, VD, Switzerland


  • Introduced Agile into classes
  • Introduced Engineering to Middle School Students
  • Introduced STEAM Projects: Robotics & Plant Biology, Boat Design, Phsysics & Marketing

IT Director:

  • Managed with five technical positions
  • Worked with Admin to establish an Educational and Technology research center
  • Worked with Admin to establish symetric network connections (to fix bottle neck problems)
  • Worked with Admin to create a robust networking to handle ever increasing traffic
  • Worked with Admin to create a robust distributed mini-server farm (for data that must stay in Switzerland)


  • Developed Web Applications (Rails) for parent coordination
  • Developed software to distribute data (Ruby and Python) to all school systems

Systems/Network Engineer:

  • DNS,
  • DHCP,
  • email,
  • routing,
  • firewall,
  • file services,
  • Authentication Services (LDAP),
  • Designed and Managed two OpenStack clusters,
  • System deployment and maintenance automation of Linux Servers using Ansible

Computer Resource Specialist II

University of California, Davis

Jun 2004 – Apr 2007 Davis, CA, USA


  • Managed the Campus Store central database inventory system
  • Wrote and maintained OpenBSD firewalls between Campus Store locations
  • Wrote and Managed the School of Vetrinary Workstation Security and Management Policy

IT Coordinator, Systems/Network Admin & CS Teacher

Sacramento Country Day School

Jun 2003 – May 2004 Sacramento, CA, USA


  • Advanced Placement Computer Science (AB)

IT Coordinator:

  • Coordinated with a support person and the school administration to achieve academic and management goals

System Administrator:

  • Managed school servers (mostly Windows) & network.

IT Director, Systems/Network Admin & CS Advisor

The American School in Switzerland (TASIS)

Jul 1999 – May 2003 Montagnola, TI, Switzerland


  • Advisor for IB Computer Science Student

IT Director:

  • Managed three support persons
  • Acquired funding for a wifi network
  • Worked with the school finance director and headmaster to provide campus wide Internet access

System Administrator:

  • DNS,
  • DHCP,
  • email,
  • routing,
  • firewall,
  • file services,
  • Authentication Services (LDAP)

Computer Teacher

John F. Kennedy School Berlin

Aug 1998 – Jun 1999 Berlin, Germany


  • Website Design
  • Computer Literacy

IT Director, Systems/Network Admin

The American School in Switzerland (TASIS)

Aug 1997 – Jul 1998 Montagnola, TI, Switzerland

IT Director:

  • Built school internal network
  • Connect the school to the Internet
  • Worked with Administration to allow electronic office work

System Administrator:

  • Managed school servers (email, admin) & network.

IT Coordinator, Systems/Network Admin and Teacher

The Dublin School

Aug 1993 – Jul 1997 Dublin, NH, USA


  • Geometry
  • Calculus (single variate)
  • Applied Senior Mathematics
  • Introduction to CS (Java)
  • Computer Literacy
  • Physics

IT Coordinator:

  • Managed school IT projects

Systems/Network Admin:

  • Connected the school to the Internet
  • Managed the school admin servers
  • Managed the school email server & routing