Ruby & Rails

Recent

Rails 7.0 Branca and Caching

Organizing Code Gems and Engines have long been used to organize Ruby and Rails code into workable small units. Shopify has introduced a new system called ‘packages’ - they use the packwerk gem to help us.

Rails 7.0 Using Packages (Packwerk gem)

Organizing Code Gems and Engines have long been used to organize Ruby and Rails code into workable small units. Shopify has introduced a new system called ‘packages’ - they use the packwerk gem to help us.

Rails 7.0 - Decoupling with Events (or Commands / Service Objects)

It’s possible to loosen the Coupling between Rails, Models and Controllers from your Business Logic (Commands/Service Objects) by enabling an Event architecture. Ruby has several lightweight Event Buses (& full featured and Event Stores)

Elixir & Phoenix

Recent

Phoenix 1.6 Easy PETAL Stack with DaisyUI

Adding a Tailwind CSS Framework to Phoenix

Phoenix 1.6 Easy PETAL Stack Setup (w/ Custom Font)

Create a modern webapp with tremendous flexibility

Phoenix 1.6 PETAL Stack Setup by Hand

The underlying tooling for a PETAL Stack

Javascript

Recent

SvelteKit, TailwindCSS and DaisyUI Website

A straight forward way to build websites with lots of features

Exploring Tech

Recent

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’

Education

Recent

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.

Published

EDgility - Encouraging Agency and Collaboration

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 organizations.

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.

Contact

Bill Tihen

Bill Tihen

Developer, Data Enthusiast, Educator and Nature’s Friend

Garaio REM

Explorer

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.

Interests

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

Education

  • Masters of Science in Electrical Engineering, 1990

    University of Vermont

  • Bachelors of Science in Electrical Engineering, 1988

    University of Vermont

Experience

 
 
 
 
 

Software Developer

Garaio REM

Aug 2018 – Present Bern, BE, Switzerland

Technical

  • 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

Teaching:

  • 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)

Developer:

  • 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

Technical

  • 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

Teaching:

  • 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

Teaching:

  • 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

Teaching:

  • 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

Teaching:

  • 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