November 29, 2017
It started when Sean Donn, a successful Tech Entrepreneur and Head of Engineering at Lenda, whose headquarters are on the same floor as the Web Development Immersive program at Galvanize, reached out to propose a joint effort with our current web development cohort, it felt too good to be true.
Prior to Sean’s offer of collaboration, the then current Web Development cohort (g52) was proving, per usual, to be fantastically bright and industrious. This class was writing ES6 code as their native tongue, writing sophisticated promise chains to interact with multiple 3rd party APIs, writing tests for every part of their application code, and using the most industry relevant tooling including ReactJS in conjunction with Redux, JWTs, Postgres, and so much more.
On the first day of the immersive I had pitched the class on the idea that rather than thinking about this program as a school, they should consider that I, as a tech lead, needed built a modern, professional grade, web application, and that they were the only engineers I had to build it for me. Approaching the period of time for the course allocated for the capstone projects, it occurred to me they were prepared to do just this, and I began considering an ambitious overhaul to the structure of the project: to build something in collaboration as an entire class, acting as a unified small company.
Pitching the idea to the students, and even warning them it would be more advanced than anything I had ever seen in the web development immersive space, they were eager to take on the challenge. I grew excited at the possibility, imagining the conversations the students would have as graduates with potential employers, the resonance during interviews as they talked not only about the application they built, but the environment they built it within, and the challenges they faced that can only occur in a system that is larger than 3 or 4 engineers. We all, however, had a lingering question: what are we going to build?
This is when Sean approached about collaboration, and the timing couldn’t have been better. Here was someone with exceptional product vision, and an unbelievable interest in fostering the growth of the next generation of software engineers. Additionally, he had need of a product.
Sean was dissatisfied in some way or another with every dashboard application he had ever used, and wanted a dashboard he could use on his office’s big screen monitor that did just what he could wish for. Additionally, Sean had a vision to build not just a single instance of a dashboard, but an open source dashboard engine, which could be extended to include features indefinitely, supporting not only the wishes of his team, but those of anyone willing to make contributions. Sean was willing to serve as product owner, holding the team accountable for what we delivered, to make himself as his team available for office hours for all of the students, and was open to the project scope being shaped to suit the technical challenges most needed by the class. This combination of strong vision and flexibility was a perfect fit for us, and speaks to Sean’s incredible maturity and ability to lead. Sean even had a great name for the project: Databraid.
Databraid was to be a micro-service-architected, customizable dashboard application primarily for use on a large office display. The plan was to be able to build out standalone full stack dashboard widgets, and then, to incorporate them all into an encompassing dashboard application. The shape of this project was ideal from an instructional point of view: as a class we could begin work in a more traditional arrangement, with teams of 3 and 4 building standalone full stack applications. Should too many surprises arise, the class would have produced applications that could stand up against what any graduate of an immersive would have built.
Assuming all went well, however, once work began wrapping up on individual widgets, team members could begin getting reassigned in several different ways: building out the encompassing dashboard application; migrating widgets (their own, and others’) into the dashboard application; adding additional features to widgets that other teams built out; refactoring widgets that other teams built out; writing additional tests for the dashboard and the widgets; working on the deployment infrastructure for the suite of micro-services; working on a continuous integration / continuous delivery pipeline for the suite of micro-services; building out additional widgets.
Over the course of the project (we dedicated about a month full time to it), the entire class had the opportunity to work in partnership with almost every, if not every other member of their cohort, and more importantly, to work to refactor and add features to code that someone else wrote, across the entire stack, among a diversity of products leveraging a tremendous amount of different technologies.
One student, Johan Brattemark, praised his experience in the Databraid class.
“Working together on a project as an entire class and being moved around to work on other people’s code was something that I really think reflects what professional developers do. When mentioning that in job interviews I got nods of approval every time.”
The experience was amazing to behold. The students worked collaboratively to integrate code across a dozen different GitHub repositories, working inside an infrastructure that utilized Docker containers and continuous delivery to several different AWS services. All pull requests were code reviewed by instructional staff, and students were held accountable to writing professional grade, and well tested, code. Having seen over 1000 individuals come through the web development immersive space, I can say without hesitation that the environment in the classroom was more work like than anything I’ve seen, and that the kinds of challenges they rose to overcome, both technical and organizational, were levels above anything I’ve seen.
What they ended up building was incredible. In its current iteration, the Databraid dashboard provides widgets for Slack channel monitoring, with channel sentiment analysis; real-time, location specific office departure times to catch the most efficient transit option home; data visualizations for GitHub organization repo, org, and milestone data; and the presentation of Google Sheet data in need of office-wide visibility.
“I was thrilled by the opportunity to work closely with Galvanize students on my vision for databraid and came away impressed by the caliber of work they ultimately accomplished, by far the most advanced I’ve seen coming out of any program.”
The application was built with a wide assortment of technical tools, a partial list of which includes React, Redux, GraphQL, ExpressJS, PostgresSQL, Jest, D3, Webpack, and Passport. The application utilizes half a dozen third party APIs, and seamlessly integrates 3 different OAuth flows. The team utilized a devops workflow, working within Docker containers, utilizing Codeship for continuous integration, as well as continuous delivery to many AWS services including ECS, ELB, S3, RDS, and CloudFront. This was all done in a highly automated development environment, with incredibly fluent and dynamic team arrangements, across a dozen GitHub micro-service repos within the databraid-dashboard Github Organization.
I couldn’t be more proud of the Galvanize Web Development Immersive g52 cohort, for their efforts, and for their intrepid attitude, and wish to extend a most respectful thanks to Sean Donn for his vision, flexibility, talent, and warmth. I look forward to what the future holds.
Read more about the latest software developments on TechCo
Find affordable online software development courses at the TechCo Shop
This article is courtesy of the Galvanize blog. Interested in entrepreneurship, web development, or data science? Interested in entrepreneurship, web development, or data science? Check out the Galvanize Newsletter, bringing you the best content from The Learning Community for Technology.
Did you like this article?
Get more delivered to your inbox just like it!