So I've been out on the job market for a while since 2023. During this time a lot of things have happened in my personal life which had me stop being a developer for about a year, at least until July 2024.
Prior to becoming a software engineer, one of the projects that has always been on the back of my mind was creating a LIMS system of some sort. This came from my experience as a laboratory technician.
On my second week for working in a cosmetics company, I remember walking in to work and starting to test some samples. All of a sudden, one of the scientists for the innovation team comes running to me and my colleague in a panic and extremely angry at us. Her first thing was to yell at us about not testing her samples as it was overdue by about a week. She brought her manager and our manager to rip us a new one.
So the questions popped up that I asked:
- Did you drop off the samples in the appropriate chambers?
- Did you submit the paperwork that goes along with this so we can take it down + see the estimated dates for testing?
- Did you upload the sheet onto the shared drive for us to use?
- Did you place the paperwork into the folder to be tested?
The answer to the first question was yes. However, the answer to the questions for the last 3 questions was a big fat no.
Even though the answers to the last 3 questions was a no, the blame was still placed on us the stability team that was responsible for testing the samples. So in the end, myself and my colleague was reprimanded.
This is one of the few stories that stood out to me during my time as a laboratory technician which made me ask the question of:
"How can i make this process more efficient and more accountable for all parties and not just the lab techs?"
I've actually gone through several iterations of this project but I've only officially came up with a specific name for it. (Thanks ChatGPT).
This is a project I call "Clear Bench". Clear Bench is "a modern sample submission app for busy tracking teams who are tired of using excel spreadsheets". At all the labs I've worked at in the past, they really loved using excel as their database and a way to track their samples testing results. While that's great and all, I'm a firm believer in technology being able to make things more efficient and less of a pain for everyone involved. While using excel spreadsheets is a cheap way of doing things, it often leads to mistakes such as miscommunication and missing data.
Clear Bench aims to:
- replace ad-hoc systems with a structured, digital sample submission
- ensure all users have visibility into sample status
- reduce finger pointing by making workflows transparent.
So let's talk Tech stack and why I went with what I went with:
🧠 Frontend: React (Vite, TypeScript, Zustand)
So I have professional experience both working with React and Angular. I like Angular because it is very much a batteries included framework with everything I would need from Reactive Forms, RxJS, etc. However, I went with React instead.
I went with React because it is the framework I am most comfortable with. It gives me the flexibility to scale the UI overtime. Since React is a library, there is a lot of flexibility when it comes to the packages I can throw in my project. I can choose the best tools for what I need, instead of being locked in to Angular's opinionated structure.
Vite, I discovered vite pretty early on and I loved how fast it was when it was scaffolding my projects vs CRA (create-react-app)
Typescript, I used to joke that Typescript was Javascript with extra steps, and I did not really like the type safety. However, the more I worked with it the more I realized how useful it was with helping me catch bugs early on.
Zustand, while I have experience using Redux in my previous roles. I did not like the amount of boiler code that came along with it. For all intents and purposes since this is a "small" project for now, I wanted to go with something more "lightweight".
🔧 Backend: FastAPI (Python)
I chose FastAPI (Python) for what I will be using to develop my backend for this project. For most of my professional career as a software engineer, I was often in front end engineering roles with a tiny bit of experience working full stack from coding bootcamp. However, I decided to challenge myself by refreshing my memory of Python. In fact, the very first iteration of Clear Bench was actually written in Flask during the height of the COVID-19 pandemic!
Python is used in scientific computing so maybe in the future I can add in some of its other libraries such as NumPy and Pandas. However, I chose FastAPI specifically because of:
- It is extremely developer friendly and there is type hinting and validation with Pydantic. Going back to Typescript, this really appealed to me.
- Automatic API docs. This probably is a result of my scientific background, but I love when there is documentation, and as a developer having documentation when it comes to how to use an API is like a gold mine.
Top comments (0)