I'm Daniel Kaspo, a software engineer with 14 years of professional experience. I build websites, dashboards, and customer experiences, and mentor the developers alongside me. Here’s the work behind my time at Detroit Labs, Barracuda Networks, and Kensington Church, and my own hardware company, keyboard.gg.
Selected client work through Detroit Labs, with the size of each team and my part in it.
Bedrock Detroit01
The only web developer on the client’s team.
A client team of about 15.
Detroit Labs placed me inside Bedrock’s marketing team, alongside its photo, video, and content people. For a long stretch I was the only person there from Detroit Labs. I connected content managed in Contentful to the React components that make up the public website, and became the person Bedrock came to with technical questions.
React
Contentful CMS
Embedded with the client
Platform evaluation
How I compared the CMS options
I compared React + Contentful, Webflow, Wix, and Squarespace against the requirements of a page from Bedrock’s website, including generating components from CMS content.
I recommended Webflow. At the time, I found its platform support and developer experience strongest, and its newer AI tools helped me build the components our design needed.
Driveway02
Financing flows, animation & email.
A pod of 4 to 6, within a multi-team effort.
My pod built the financing section of Driveway’s vehicle-purchase flow, while other pods built other pages. I worked on the financing flow, implemented an animator’s designs with Lottie, built MJML email templates, and wrote a guide to testing email in Litmus that a teammate planned to use for a quality-engineering knowledge-sharing session.
Lottie implementation
MJML email templates
Litmus
“I think Daniel impressed that designer and our product ownership by creating selectable elements that dazzled and delighted but weren't too showy.”
M. · Project teammate
Quicken Loans · Rocket Professional03
Getting Rocket Professional launched.
A Detroit Labs team called Liftoff, 2019 to 2020.
Rocket Professional was a web app for Quicken Loans, now Rocket Mortgage, with client and loan workflows, status views, and mortgage rate sheets. The web app was the first part of the project to launch, so we ran into the hard problems first. Before launch, the client needed to test the production site while visitors still saw a Coming Soon page. Our first method failed, so I came up with a cookie-based way to let their testers in. I also researched and tested a high-priority problem with the logout endpoint, so the team could answer the client’s questions and estimate each option quickly.
Workflow interfaces
Dashboard development
Launch testing
“Your research informed the solutions that other teams with the client pursued, and helped demonstrate the kind of strong partner that they can have in a DL team.”
T.F. · Project teammate
Lineage · MetricsOne04
Facility operations at a glance.
A team of 10 to 14.
My first Detroit Labs project: a dashboard where a cold-storage company could explore facility performance, product locations, and how long products had been stored. I built its interface as part of a larger team.
Dashboard interfaces
Operational data
More places I contributed
Scheduling prototype
Delta
Prototyped a scheduling calendar for a prospective-client engagement. I wrote it from scratch, without a third-party calendar, so it could be customized later.
Website redesign
Shinola
Worked on the frontend of Shinola’s website redesign, and demoed the work to the client’s non-developer team.
Designed, built, and sell the Edgeguard, an adapter that turns a keyboard into a Nintendo Switch controller: the circuit board in KiCad, the USB firmware in C, and the React and WebUSB tools that configure it. It has been on sale in beta since early 2023. I started it alongside Detroit Labs, and it has been my main focus since December 2025.
Built websites, dashboards, and customer flows on client teams of 4 to 15 people. On one long engagement I was the client team’s only web developer, and the person they came to with technical questions. Mentored four to six newer developers, onboarded new teammates, ran technical interviews, estimated work for prospective clients, and helped manage Jenkins and CI/CD jobs.
Sep 2014 — Oct 2017
Barracuda Networks
Software Engineer
Worked on Copy.com and CudaDrive file sharing, then the Barracuda Cloud Control dashboard. Used Backbone.js on CudaDrive and React with ES6 on Cloud Control.
Apr 2012 — Sep 2014
Kensington Community Church
Web Developer
I was the church’s main web developer. I moved its fixed-width PHP site to a responsive design on the Arena church CMS, working with the graphics team on the look, and built C#/.NET modules and the Foundation frontend. Then a leader mentioned an idea in a meeting: gift cards where whoever receives one picks which cause the money goes to. Nobody assigned it to me. I built a working kiosk app for loading the cards, bought a USB card reader and learned how to program for it, and we had kiosks on the main floor in time for the Christmas giving season.
My title at Detroit Labs was Software Engineer. This is the work I was trusted with beyond writing code, in my colleagues’ words where I have them.
Trusted alone with a client
Detroit Labs could put me on a project by myself and rely on me to work with the client, schedule the meetings, gather the requirements, and deliver on time. At Bedrock I was the only web developer on the client’s team, and for a long stretch the only person there from Detroit Labs.
Client trust
“The trust that Daniel has built with the client helped DL win additional business and he's become a go to person that the client relies on for his technical expertise regarding the project. This is a great accomplishment being that he was a solo DL person on the project for quite a while.”
My manager at Detroit Labs, in a performance review
Mentoring, onboarding and interviewing
Detroit Labs trusted me to pair with newer developers and help them grow. I let my partner drive, and asked the questions that helped them reach the answer themselves. Over the years I mentored four to six developers this way, interns among them, and onboarded new teammates. On some projects it was me and one junior developer, and I led. I also ran technical interviews.
Pairing & mentorship
“Even though we were dealing with a very difficult project, Daniel showed great patience and willingness to help and explain things to me, and demonstrated great skill in mentoring as well as solid collaborative skills when we had our pairing sessions.”
S.Fellow developerRaising the people around him
“Given the time and resources, there isn't a single problem Daniel could not solve. Daniel always pushes himself and those near him to the next level.”
B.B.Project teammate
Settling a decision with a working prototype
When a team is weighing approaches, I build a working version quickly, so the decision can be made by using it. A scheduling calendar for a prospective Delta engagement was one of those. I wrote it from scratch, without a third-party calendar, so it could be shaped to whatever came next.
From idea to prototype
“He prototyped the calendar component on the DPS project so quickly and successfully, we did not have to spend time decisioning on other options.”
H.K.Project collaboratorBuilt to be changed
“Daniel's initiative in developing a codebase from scratch instead of relying on third-party tools has provided valuable flexibility for future calendar customization.”
K.M.Project teammate
Raising the bar on code review
I review thoroughly, and I present my own work the way I want to receive it: a short video, screenshots, and exact steps to test.
Reviews that improve testing
“Once, you gave me feedback on my PRs, mentioning that the testing steps were often missing a level of detail that they needed. This led me to be more attentive to writing testing steps and actually going through them myself before sending them off to QE. This feedback was immensely helpful!”
E.A developer whose pull requests I reviewedShowing the work
“I just discovered one of your explainer video clips in the dev review comments of a PR I’m QAing. They are so good! You’re going to have to show me how you record those because I’m going to steal that idea!”
J.D.Project teammate
Estimates and options a client can act on
Detroit Labs often asked me to estimate task lists for prospective clients. In an estimation session on the Driveway work, I laid out three ways we could change the scope and the timeline. At Bedrock I compared four content platforms against a real page from their site, and made the recommendation.
Client mindset
“I was seriously so impressed by how you basically did my job for me by saying “here’s 3 ways we can impact our scope and timeline.” That was such a great example of client mindset.”
A.B.Project teammate
How I work.
01
Show the work.
Short videos, screenshots, and explicit testing steps are part of how I share a pull request. I want teammates to see what changed, what I checked, and where to look.
02
Help others grow.
At Detroit Labs, I was trusted to mentor newer developers through pair programming. I let my pairing partner drive and asked clarifying questions to help them work toward an answer. Colleagues consistently praised my patience, explanations, and approach to teaching.
03
Make the choices clear.
Whether it’s a client demo or a technical discussion, I try to make the options and tradeoffs understandable to the people making the decision.
04
Test it, and make it work for everyone.
I write automated tests: Jest for logic, on some suites close to 100% coverage, and Storybook so QA can check each component on its own. I’ve helped companies reach AA and AAA accessibility conformance. That work is contrast ratios, full keyboard access, and semantic HTML, like a real button where a div was standing in for one. And I use Chrome’s performance tools to find what slows a page down: large files, resources that should have been prefetched, and blocking code.
05
Work with AI, and stay the engineer.
I use Claude Code every day. It has let me build things I’d wanted to make for a long time, and fix Edgeguard firmware bugs I had been stuck on. I stay responsible for the result. On the firmware I still read every diff, and every change has to get through a stack of keyboards and USB hubs before I trust it. When a model started covering one of those bugs with retries, I stopped it and had it find the root cause.
Jest, Storybook, accessibility to WCAG AA and AAA, performance profiling with Chrome DevTools, code review
Design & delivery
Lottie integration, MJML, Litmus, Git, Jenkins CI/CD, video walkthroughs, pairing and mentoring
Hardware & systems
C firmware, USB HID, KiCad, WebUSB, WebAssembly; hands-on Linux server administration, Docker and self-hosted services
AI tools
Claude Code every day; OpenAI Codex; Higgsfield for video
People I’ve built with.
More excerpts from feedback shared with me by the people alongside me.
Creative collaboration
“I appreciated the energy and optimism Daniel brings to the project, and his willingness to explore and experiment to bring more complex design ideas to fruition.”
K.K.Project collaboratorHelping across the project
“I think Daniel brings a great presence to the team and always helps bring team morale up. He's also willing to help out on all aspects of the project, frontend, backend, email templates, testing which is extremely helpful on a small team.”
B.K.Project teammateA welcoming teammate
“Working with Daniel is always a pleasure. He is very outgoing, friendly, has a great attitude, and inviting for someone who was new to Labs and the team.”
J.B.Designer & project teammate
What should we build next?
A role on your team or an idea of your own. I’d love to hear what you have in mind.