Overview
Over 30 years of experience working with diverse teams of researchers, teachers, and students developing deeply interactive software and hardware for all kinds of learners. Extensive full-stack experience developing interactive collaborative web applications as well as high-performance web-based computational simulations and visualizations. Helped found the Concord Consortium, an educational non-profit focused on math and science education. As Director of Technology led the development of re-usable open source architectures/frameworks for education and managed and hired a team of programmers. Enthusiastic public speaker deeply committed to helping teams of people make, teach, and share what matters to them.
Extensive experience with web-based application/visualization technologies (Elm, JavaScript, HTML, CSS, SVG, Canvas) and related open source frameworks (D3.js, jQuery, JQueryUI, CoffeeScript, Cherrio, Pixi.js, Underscore, Modernizr, MathJax, ...) as well as back-end server programming in Ruby, Ruby on Rails, Java, and Node.js as well as Amazon cloud-based server setup and administration.
What I can do for you.
Help your team design, create, test, monitor, extend, and maintain critical web infrastructure and applications.
Create visualizations and computational models to support inquiry and effective communication within your company and with your collaborators and customers.
Collaboratively imagine and create new products to support your core business needs and help build towards your vision for the future.
Hire, mentor, and manage programmers and technical consultants.
Review contracts and create and manage licensing strategies.
What it will be like working with me.
You'll look forward to talking with me because I'm genuinely interested in you and what you want to acomplish.
I'm curious about what's been difficult recently and excited to hear about what you just got working.
When you are having a technical or process problem you'll feel no hesitation to check in with me.
You'll appreciate the practical and reliable implementations I create that solve problems.
You will be impressed and inspired by how fast I learn new technology in order to get the critical features you need working.
Consultancy: Imagination & Logic
Imagination & Logic is my consulting business for doing web, desktop, mobile application, Raspberry Pi and Arduino development.
More details at: Imagination & Logic , stepheneb.github.io/imaginationandlogic.html
Client work includes:
- Interactive data visualizations using D3.js.
- Interactive computational modeling and visualization.
- Web applications including real-time collaboration between participants.
- Java Swing application development, computational modeling, UI, and graphics programming.
- Application development in C# using Xamrin.Forms running on Windows, MacOS, iOS, and Android platforms.
- Arduino and Raspberry Pi software and hardware development.
- Converting a large denormalized CVS dump of membership information into well-structured SQL.
- Buiulding a web application for a collection of museum artifacts in the style of a NYT visual article.
Professional Experience
Ruby on Rails developer working on commercial applications for Thoughbot clients. Application integration with external services such as Stripe and MixPanel.
Worked on a front-end application written in Elm, a purely functional reactive language that compiles directly to JavaScript.
Founding member of the Concord Consortium in 1995 with Bob Tinker, internationally recognized as a pioneer in developing and adapting technology for constructivist education, create the Concord Consortium, a 501(c)(3) non-profit educational research and development organization focusing on math and science education.
Directed technology development for the Concord Consortium. Responsibilities included hiring, budgeting, technology acquisition and development, developing licensing strategies, reviewing contracts, assisting with proposal development, and management of software and hardware development.
In November 2011 the Google Foundation awarded Concord Consortium a grant to develop an HTML5 version of Molecular Workbench, an award-winning Java-based physics simulation. Extended the initial scope and created a more general framework for authoring and deploying interactives integrating simulations running in multiple modeling engines, data collection from sensors and probes, real-time graphing, and data tables. Results statements: organizations and interactives.
Lab Interactives are sharable, embeddable, and authorable components defined in JSON that wrap a model with additional inquiry-oriented user interface components such as buttons, checkboxes, sliders, graphs etc.
The Enhancing Engineering Education with Computational Thinking, (DRL- 0918449); 2009-2013; focuses on studying how computational thinking, primarily through numerical simulation and computer-aided design tools, can enhance engineering education in high schools (see http://energy.concord.org for more information). Project developed Energy2D: a computational simulation modeling conduction, convection, and radiation and Energy3D: an application for designing buildings using a WYSIWYG 3D user interface.
The GENIQUEST (GENomics Inquiry through QuUantitative Trait Loci Exploration with SAIL Technology): Bringing STEM Data to High School Classrooms (DRL-0733264); 2007-2010; centered on the dragons and related organisms that previously served as genetic models in previous Concord Consortium projects. Students were further supported in seeking out gene items through the bioinformatics technique of Quantitative Trait Loci (QTL) analysis. Results demonstrated the curriculum and software increased student understanding of concepts such as genetic recombination and inbred strains.
The Global Laboratory Project. Directed the technical and telecommunication efforts of the project. Responsible for setting technical directions, hiring, budgets, management, and project reports. The project supported 150 middle schools and high schools in 22 countries collaborating on investigations into local and global environmental change, sharing text, data, graphs, instrumentation for measuring and monitoring the environment.
Adapted instrumentation for measuring various environmental characteristics including total-column-ozone, ground-level ozone, soil moisture, air flow, relative humidity, temperature, and visible light. Developed stand-alone data-logging systems probeware interfaces, and may types of specific probes.
Software Technical Skills
- Extensive work with Ruby, JRuby, Ruby Gems, and Rails. Developed several large Rails applications (see: github.com/concord-consortium/rigse).
- Author of Jnlp Ruby Gem: rubygems.org/gems/jnlp; contributed commits to over 30 external Ruby Gems.
- Regular use of RVM, Bundler, HAML, Capistrano, Rake, Compass, Sass, Devise, and behavior-driven development and testing with Capaybara, Cucumber, RSpec.
- JavaScript: extensive experience in high-performance scientific computation, visualization, and the D3.js framework. See: lab.concord.org/ and the code: github.com/concord-consortium/lab: a large JavaScript codebase and using RequireJS for module and dependency management.
- Used Node.js, CoffeeScript, jQuery, JQueryUI, Cherrio, Pixi.js, Underscore, Modernizr MathJax, and a number of other JavaScript tools and frameworks.
- Elm is a purely functional reactive language inspired by Haskell that compiles directly to JavaScript used for building very reliable web application front-ends.
- Implemented Gabriele Cirulli's 2048 game in Elm: stepheneb.github.io/elm-2048/ The code for the Elm implementation: github.com/stepheneb/elm-2048.
- Extended a simple autosuggest dropdown component to support keyboard interactions with the search results. Implemented a zipper-list with focus to support this.
- Extended Elm JSON encoding and decoding for interaction with JavaScript and servers.
- Extended Elm Parser to extract data from text files.
- Integrated images managed and named with Webpack and Parcel into Elm application.
- Extensive experience using HTML5 and CSS. Created dynamic visualizations using HTML5 Canvas and SVG.
- The Lab framework was designed to run on all HTML5-compatible browsers and as such created a framework for performance testing the simulations that separately measured the performance of JavaScript computation, JavaScript graphics, and browser rendering.
- Developed an integration of Mocha and PhantomJS to enable basic functional testing of the Lab framework on a developers computer as well as further tests that ran in multiple virtual OS/browser setups on the saucelabs.com service.
- 3-D visualization for learning about seasons: stepheneb.github.io/seasons/index.html. Used scenejs.organ open-source WebGL-based 3D visualization engine.
- Benchmarking speed of different WebGL-enabled JavaScript matrix libraries stepheneb.github.io/webgl-matrix-benchmarks/matrix_benchmark.html
- Video integrated with digital map: stepheneb.github.io/simple-orange-map.
- Scripted FFmpeg to transcode original video into multiple formats, sizes and bitrates for web delivery.
- Subtitling videos using WebVTT (Web Video Text Tracks Format). Example, Spanish subtitles for detroit interviews: stepheneb.github.io/detroit-interviews
- Moderate experience with PHP and Python.
- Moderate experience with Java and C#. Less experience with C++.
- Recently implemented networking application in C# and Xamarin.Forms running on multiple desktop and mobile platforms to control a 3D visualization using Unity.
- Experience re-writing high-performance Java programs in JavaScript. Example: github.com/concord-consortium/energy2d-js a port of the 2-D Java computational fluid dynamics thermal simulation program Energy2D.
- Built multiple branches of the open-source Java codebase including the MLVM branch that explores extending Java to improve implementation and performance of dynanic languages.
- Debugged a USB driver written in C++.
- Debugged and extended a large Pascal program for a video-based interactive art installation.
- Moderate experience with a number of IDEs.
- Experienced git and github user, additional experience with Subversion, Mercurial, and CVS.
- Setup and administered Moodle servers.
- Setup prototype edX server.
- Experience using both Moodle and Blackboard as a course instructor.
- Setup, configuring, administering, and customizing Apache, NGINX, Node, and Java Tomcat-based web servers including performance testing with HTTPerf.
- Setup stand-alone and cloud-based Linux servers.
- Experience with security, database setup, design, and administration.
- Created scripts using Chef and Fog to automate the generation of complete functional cloud-based Amazon servers.
- Setup, architected and administered SQLite, MySQL, PostgreSQL and Redis databases.
Hardware technical skills
- Digital, analog, and sensor electronic design, prototyping, debugging and manufacturing.
- Raspberry Pi, Arduino and Microchip microcontroller development.
Contributions to open source projects
Over 200 commits to more than 50 open source projects. Projects include: JRuby (Java implementation of Ruby), Rails framework and 30 more Ruby gems, 12 JavaScript projects and a number of miscellaneous projects.
For more detail: Open Source Contributions (stepheneb.github.io/open-source-contributions.html)
Education
Thesis Project: Monitoring and Analysis of an Experimental Passive Solar Envelope House.
Implemented a microcomputer-based monitoring system for measuring the performance of an experimental passive solar 'envelope' house built in Leverett MA. Extended a small single board computer (KIM-1) with an analog interface for measuring multiple temperature sensors and solar insolation using a pyranometer installed on the peak of the roof. The single-board computer saved sensor data every 15 minutes on magnetic tape. programs on the Apple II in BASIC and machine language to do solar performance analyses of the house and display and print graphs.
Teaching experience
Students were in a masters program focused on using computers in education.
Publications
Bannasch, S. (2010)., Innovator interview: Stephen Bannasch (concord.org/publications/newsletter/2010-fall/innovator-interview) . @Concord, 14(2). The Concord Consortium.
Staudt C., & Bannasch S. Using sensors and models to answer discovery questions (concord.org/sites/default/files/newsletters/2006/fall/at-concord-fall-2006.pdf) . (2006). @Concord, 10 (2). The Concord Consortium.
Tinker R., Bannasch S. Future technology in unexpected places (concord.org/sites/default/files/newsletters/2005/spring/at-concord-spring-2005.pdf) . (2005). @Concord, 9(1). The Concord Consortium.
Bannasch, S. (2002) Probing the unseen world: Advanced probe captures subtle changes in temperature (concord.org/sites/default/files/newsletters/2002/fall/at-concord-fall-2002.pdf) . @Concord, 6(2). The Concord Consortium.
Bannasch, S., & Tinker, R. (2002). Probeware takes a seat in the classroom:Educational impact of probes improves with time and innovation (concord.org/sites/default/files/newsletters/2002/winter/at-concord-winter-2002.pdf) .@Concord, 6(1). The Concord Consortium.
Bannasch, S. (2001). Wireless Computers and Probeware Support a New Science Curriculum: Using iPAQ Pocket PCs to study science fundamentals (concord.org/wp-content/uploads/2016/12/newsletters/2001/spring/at-concord-spring-2001.pdf) . @Concord, 5(1). The Concord Consortium.
Bannasch S. (2001). Educational Innovations in Portable Technology (link.springer.com/chapter/10.1007/978-94-010-0638-5_7) . In Tinker R., & Krajcik, J. (eds.), Portable Technologies: Science Learning in Context (121-141). Kluwer Academic/Plenum Publishers
Bannasch, S. (2000). Beam me up, Scottie! Handheld computers extend the range of wireless communication in schools (concord.org/sites/default/files/newsletters/2000/fall/at-concord-fall-2000.pdf) . @Concord, 4(3). The Concord Consortium.
Bannasch, S. (1999). The electronic curator: Using a handheld computer at the Exploratorium (concord.org/sites/default/files/newsletters/1999/fall/at-concord-fall-1999.pdf) . @Concord, 3(3). The Concord Consortium.
Bannasch, S. (1998). Making smarter probes (concord.org/sites/default/files/newsletters/1998/spring/at-concord-spring-1998.pdf) . @Concord, 2(2). The Concord Consortium.
Bannasch S., & Berenfeld B. (1996). Global Lab: From Classroom Labs to Real-World Research Labs (link.springer.com/book/10.1007/978-3-642-61189-6) . In Tinker B., Microcomputer-based Labs Educational Research and Standards (247-258). Springer-Verlag New York, Inc.