Codesmith residents build web applications and Open Source Products that push technology forward.

Web applications

Codesmith's pedagogy is based on the importance of building projects. Creating coding projects from the ground up is a crucial part of the learning process that sets graduates up to be lifelong learners ready for the ever-changing tech industry. Codesmith’s Software Engineering Immersive programs achieve this through a series of smaller projects which then culminate in a larger Open Source Product that is the main focus of the curriculum during the second half of the immersive program. Even Codesmith’s Prep Programs, Javascript for Beginners and CS Prep, prioritize project building by including Javascript projects in their curriculum.

Projects You Will Build in Codesmith's Full-time and Part-time Software Engineering Programs

Solo Project

Solo Project

Solo projects are the first time you connect everything the program has covered thus far and build a coding project from the ground up with the concepts you’ve learned over the previous month and really dive into their complexities. You will usually focus on 1-2 technologies, integrate APIs, and dive deep into connecting different parts of an application.

Scratch/Iteration Project

Scratch/Iteration Project

Scratch and Iteration projects are a time when you experience development as a team. These coding projects focus on learning team development processes such as GitHub for teams, SCRUM and agile methodologies, as well as working with more complex technologies. These projects are more advanced, requiring more research and resulting in a finished product at production level.

Production Project

Open Source Product

The Open Source Product is the most important component of your education at Codesmith. The projects created and launched by Codesmith grads have received thousands of GitHub stars, been featured on the main stage at world renowned conferences, and are used daily in development. For many, this is the reason they choose to attend the Codesmith Immersive Program.

Reinforcement Project

Reinforcement Project

Your final coding project is designed to help you focus on the upcoming job search by encouraging you to build with contemporary technology or a highly used framework or library to prepare for technical screenings. This project is a chance for you to really dive deep on a technology you aim to work with in your first job after Codesmith, especially if it was not part of the stack you worked in for your Open Source Product.

What is an Open Source Product and Why is it Important

Project Overview

Overview

Open Source Products are an important part of your Codesmith experience because they build expertise in high value cutting edge technologies that are being used in the tech industry today. While working on your Product, you will sharpen your critical thinking, build your problem solving skills, and autonomy. This direct job training on hard technologies allows you to gain experience on what you will be doing in your future career and allows you to become an expert and refine your skills in a supportive environment, while giving you experience that will help you stand out in your job search.

Requirements

Requirements

Because Open Source Products are such an important part of the learning and job search process, Codesmith residents have one week with no instruction to ideate and fully focus on choosing the best topic for their group. Each group then presents their ideas to Lead Instructors in order to gain final approval on their topic and begin coding. The requirements of Open Source Products are that they must solve major challenges in the industry today and focus on tough engineering judgments and deep-diving on technology through developer-oriented projects in key web software engineering areas (UI frameworks, Node, DevOps) or client projects.

Project Timelines

Timelines

Open Source Products are done in the second portion of the program, known as the senior portion. This time in the program also includes the hiring program and advanced program lectures.

Development Frameworks and Libraries Built by Residents

Vno

vno

vno is a Command Line Interface that simplifies the use of Vue with a Deno runtime environment. As Paul Krill, editor at large of InfoWorld, says “with vno, a developer can employ the “elegance” of Vue while leveraging the “simplicity and security” of Deno”.

Check out vno

Quell

Quell

GraphQL is highly flexible, which makes it an amazing tool, but results in query responses being difficult to cache. That's where Quell comes in - with its minimally opinionated highly generalized front- and backend GraphQL caching libraries that can be used separately or together, make GraphQL’s flexibility more efficient.

Check out Quell

WebDSP

WebDSP

WebDSP is a client-side DSP library utilizing the power of WebAssemblyto help developers break into the WebAssembly space by developing the first WebAssembly library for client-side digital signal processing (DSP), a fundamental building block for the full scale media-editing apps to come.

Check out WebDSP

FlacheQL

FlacheQL

FlacheQL is a fast, lightweight, and flexible client-side cache for GraphQL that offers lightning fast retrievals for cached queries, typically on the magnitude of 150% faster than those offered by Apollo, as well as offering partial retrieval of query results on subsets of cached data based on fields and search parameters — a feature that no other GraphQL library offers.

Check out FlacheQL

Hear from Codesmith Grads

Miguel G.

Miguel G.

“Although I was certainly proud of the project I accomplished utilizing new tech stacks/technique, the Solo project truly reminded me of the importance of bouncing ideas off a team, divvying up tasks, and having another shoulder for emotional support.”

Taylor R.

Taylor R.

“The project phase really gives everyone a chance to focus on subjects they felt less confident in, or to specialize in things they enjoyed learning about.”

Karandeep

Karandeep A.

“Everything from the extremely supportive environment to the project based learning process is geared around helping individuals gain the confidence to attack tougher and tougher new issues.”

Veronica

Veronica S.

“I really enjoyed working on our solo projects. I feel like I learn best through doing projects (rather than listening to lectures,) so it was really exciting to work on something from start to end and reinforce all the concepts we learned earlier in the program.”

Development Tools and Integrations Built by Residents

Swell

Swell

Swell is a cross-platform desktop app that is meant to be used alongside a developer’s existing environment to test your API. The market leaders in this space (Postman and Insomnia) have outgrown their origins as lightweight testing suites, and are also missing several important modern technologies. Swell picks up on their shortcomings and gives engineers a one-stop shop to quickly and easily test their REST / GraphQL / gRPC endpoints, with additional support for Streams (including SSEs), Web Sockets and GraphQL Subscriptions.

Check out Swell

Reactide

Reactide

Reactide was created to facilitate the process of developing a React web application. React is a Javascript framework that is leveraged for its ability to construct highly scalable user interfaces. Though powerful, the set-up time involved is cumbersome for both upcoming and seasoned React engineers, but this Integrative Development Environment (IDE) allows veteran and upcoming React engineers to seamlessly develop React applications and forgo arduous set-up by automating the configuration process. Additionally, Reactide incorporates an in-app window browser with Hot Module Reloader capabilities to streamline the development process.

Check out Reactide

Recoilize

Recoilize

Recoilize is a Chrome devtool which provides a means to debug applications built with Recoil.js.Recoil.js is a new, experimental state management library developed by Facebook. Recoilize records an app’s state and its changes and allows users to debug with features such as time travel, a states history, and various graphs, to visualize render times and component / state relationships like the component graph, atom-selector network graph, and flame and ranked graphs. Since the technology is so new, it lacks a tool to debug and visualize the states, which are divided into two types in Recoil, atoms and selectors.

Check out Recoilize

Spearmint

Spearmint

Using Spearmint, developers can easily generate React/Redux/Hooks/Context/Endpoint tests by using our user-friendly GUI. It dynamically converts user inputs into executable Jest test code by using DOM query selectors provided by the Testing Library. From its inception, Spearmint has sought to provide a simpler way to write tests for React Applications. Our user-friendly GUI allows developers to dynamically generate test files that can be directly exported into a project directory without writing a single line of code!

Check out Spearmint

Additional Open Source Products

Reactime

Reactime was created to help developers optimize and debug their React applications. Reactime remedies the increasingly difficult pain point of managing state with a Chrome extension that makes the development environment more accessible and comfortable.

Read Article

ReacType

“The beauty of ReacType is that you can use it in parallel with create-react-app or other boilerplate code generators. Instead of exporting an entire application from ReacType, you can simply export your components into an existing project.”

Read Article

Aesop

Aesop was created by Codesmith Residents and absorbed into the Storybook ecosystem, where it has continued to be maintained by the Storybook folks.

Periqles

Periqles is a React component library for Relay and Apollo that makes it easy to collect user input. Periqles abstracts away the dirty work of form creation with override switches built in for the design-conscious developer so you can be free to focus on business logic.

Read Article

Atomos

"Atomos integrates seamlessly with React DevTools to provide real-time visualization and facilitate the planning and debugging of a React/Recoil application’s structure and state... Atomos saves developers time and energy by taking the guesswork out of the state management debugging process."

Read Article

Prototyping Tools Built by Residents

React Proto

React Proto

React Proto is a React prototyping tool to streamline the initial process of mocking up and developing client side applications. To support a modern SPA with multiple views controlled by React Router's control of the browser history API, we developed the ability to support BrowserRouter routes for multiple page views. State management was also limited so we implemented the ability to create props at stateful components and mock prop drilling as done in real-time development.

Check out React Proto

OverVue

OverVue

OverVue is a prototyping tool that allows developers to dynamically create and visualize a Vue application, implementing a real-time intuitive tree display of component hierarchy and a live-generated code preview. OverVue aims to contribute to Vue’s ecosystem, providing experienced Vue developers with a tool that facilitates prototyping and architecting their application seamlessly. Additionally, OverVue allows new developers to onboard a Vue application quickly and efficiently.

Check out OverVue

PreVue

PreVue

PreVue is an all in one prototyping tool for Vue developers from component architecture to code exporting. Not having a blueprint of your Vue application architecture leads to unnecessary code and refactoring as the application scales. PreVue provides a cross-platform desktop prototyping tool that allows the user to conceptualize their Vue component architecture and export a fully functional Vue application. The application gives developers and designers the tools necessary for creating clean, organized, and intentional code from the beginning of the process.

Check out PreVue

Lucid

Lucid

Lucid is a chrome extension for React-GraphQL app debugging. Lucid offers in-depth introspection into aspects of a React-GraphQL app and allows developers to trace the flow of user interactions from the frontend, as they transform from GraphQL queries or mutations, to Apollo Server responses from the backend, that populate stateful data, and trigger subsequent changes to information that is rendered by the app. Lucid displays this information, a real-time component tree diagram, and historical logs of data flow externally and internally.

Check out Lucid

By requiring these production projects* to solve problems faced by developers every day, students acquire an intimate knowledge of a corner of the industry, experience that can be spoken to in job interviews with authority.

Travis F

Travis F.

Software Engineering Immersive Graduate

                                       * As of August 2021, Production Projects are now called Open Source Products.

Learn More About Tools Built by Residents on our Blog

A Deep Dive Into the Immersive Program's Project Phase

A Deep Dive Into the Immersive Program's Project Phase

“The production project* is the meat of the project phase. This is where you develop with a group over the period of four weeks. Codesmith highly encourages creating or iterating on a developer tool for the production project*.”

Collaborative Learning at Codesmith

Collaborative Learning at Codesmith

“This intensely collaborative environment enabled our cohort to not only grow closer as a team and intimately learn with one another, but this structure also meant we could learn wealths of information in a small period of time.”

Codesmith Bridges the Gap

How Codesmith Bridges the Gap between a CS Degree and a Career in Software Engineering

“Everything from the extremely supportive environment to the project based learning process is geared around helping individuals gain the confidence to attack tougher and tougher new issues.”

*As of August 2021, Production Projects are now called Open Source Products.

Building at Codesmith

Reynolds, a graduate of Codesmith NY and now a Software Engineer at BlackWaspTech, worked with his team to create a middleware library for other engineers to use. This developer tool incorporated GraphQl, Apollo, and Redux, all of which the team learned during their time in the program.

Scalable Infrastructure and Analytics Built by Residents

Kafka Sprout

Kafka Sprout

Apache Kafka has a complicated architecture that has a steep learning curve as it involves multiple processes just to start up a Kafka cluster, including Zookeeper and Broker servers. As of now, there are limited free/open-source GUIs that provide visualization and a robust toolkit for interacting with Kafka clusters. Kafka Sprout addresses thus by providing a user-friendly and beginner-friendly GUI for interacting with Kafka clusters from kafka-server-start to kafka-server-stop.

Check out Kafka Sprout

Chronos

Chronos

If you’ve deployed a software application, monitoring is necessary for gaining insight into its usage and to prevent/diagnose failures. The growing trend towards microservice architecture and gRPC means there is a need for monitoring tools that support these technologies. Popular solutions either require haphazardly combining multiple open-source tools or paying for expensive monitoring software. Chronos bridges this gap, as an open-source tool for Node.js that can be used to instrument, collect, and visualize monitoring data.

Check out Chronos

Obsidian

Obsidian

Obsidian utilizes normalized caching strategies to store response data in both a client and server-side cache. Obsidian supports mutations and implements a write through caching policy to maintain that the cache and database are in sync. Obsidian is Deno’s first native GraphQL caching client and server module. It utilizes normalized caching strategies to store response data in both a client and server-side cache. Obsidian supports mutations and implements a write through caching policy to maintain that the cache and database are in sync.

Check out Obsidian

SeeQR

SeeQR

SQL sandbox, created for developers to test their Postgres databases and ensure their queries and schemas are optimized for the fastest performance possible. SeeQR also helps test database scalability by generating dummy data to simulate growth in a user base. SeeQR provides query runtime metrics, an isolated Docker instance to protect sensitive database information, visual comparisons to allow developers to easily keep track of each test, performance tuning, and determine additional metrics.

Check out SeeQR

Interested in learning more about projects at Codesmith? Schedule a call with an Advisor to learn more about our programs and plan your next steps!

Frequently Asked Questions

Do people continue working on projects post-graduation?

Graduates do not typically continue working on their projects post-graduation, but that is a personal choice for you to make because team members own the projects they create. Some graduates will continue to maintain their projects at a lower capacity, while others have gone on to create their own startups based on their Open Source Products.

Can the projects be anything coding-related or do they have to be Javascript specific?

Projects don’t have to be Javascript specific, but many are! Some groups have chosen to use other technologies, frameworks or languages - such as Docker, GraphQL, Vue, and Kafka.

Even though we teach Javascript, our pedagogy allows residents to pick up new programming languages quickly especially because many languages are similar which makes them easy to learn.

What do group dynamics look like when working on these projects?

Groups are typically made of 3-5 members. Each group is formed using preference forms which allow you to list any of their cohort mates they'd prefer to work with. Groups are also formed based on the interest of the individuals on the type of tool they want to build or technology that they want to work with. Daily Scrum, standups, and project management tools are also utilized to help prepare residents for their future careers.

Can I contribute to these Open Source Products without being part of the Immersive?

Yes, all of our Open Source Products are open source on Github. We encourage pull requests, which will be reviewed appropriately by the engineering team managing the Product.

How many projects do residents build in the program?

Residents will build five coding projects in the Immersive program, which will take up approximately ⅔ of the program time. Projects are integral to Codesmith’s pedagogy and are key to facilitating deeper learning of the curriculum and better equip residents for their future careers as Software Engineers.

What’s the support we get throughout the program for projects?

We help guide Residents on product topics and ask that residents submit a case on why they believe their product will be impactful. This helps ensure that products benefit the greater developer community, are a good opportunity for professional development, and are within scope. Mentors are also assigned to help support in the process from start to finish.

What is OSLabs?

Codesmith is committed to open source and proud to be a featured Open Source Labs partner.

Open Source Labs (OSLabs) is a selective community of dedicated engineers with the shared mission of driving creative technological advances through open source.

Open Source Products are great for those who want to improve their coding skills while at the same time contributing to projects in a meaningful way that is used by many others. Codesmith’s commitment to open source and pushing forward the engineering community means that we encourage Open Source Products done in partnership with organizations like OSLabs, which hosts Open Source Products that our students are able to iterate on. The OSLabs Github features Open Source Products that Codesmith Residents can iterate upon.

Are there any Open Source Products that worked with a company’s codebase?

Yes, we’ve worked with many partner organizations and companies. If you are interested in collaborating please email hello@codesmith.io. Some examples of previous Open Source Products that are out of Beta are:

  • YouDescribe, an online platform where users can describe youtube videos to aid those who need more than solely the video for context.

  • First Freight, a leading CRM provider for freight forwarding companies in the world, approached Codesmith Residents to build a custom email automation service. While there are a few services that already handle email automation - First Freight was looking for a solution that integrated deeply with their existing system. The team built an email automation tool for their marketing department that was simple to use and provided all the analytics necessary to make informed business decisions.