As an instructor for the Web Development Immersive here at Galvanize in San Francisco, I’m always on the look out for opportunities for my students to stand out in the hiring market. We already have some tremendous advantages here at Galvanize over other Web Development Immersives, namely, twice the time to prepare for the job market (we offer a 6 month program compared to a more traditional 3), and an amazing student to teacher ratio (we aim for 10 students per instructor, including seasoned industry vet instructors like Nestor Toro). But when Sean Donn, successful Tech Entrepreneur and Head of Engineering at Lenda, whose headquarters are on the same floor as the Web Development Immersive, 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. In our intimate classroom setting the instructional staff had been challenging them for months, and at each instance, the class had proven themselves game to not only straggle through the challenges we put in front of them, but to exceed our expectations and consistently go above and beyond what was asked of them. 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, already 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.
In his experience with building Databraid and executing the vision as a class, Sean Donn (Head of Engineering at Lenda, one of original member companies) said, “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.