"Slockify" is abandonware
Published: 2023-07-13 20:12:57

If you are reading this you were probably redirected from my "Slockify" project. This was a project I made mid 2020 in order to showcase my "chops" as a software engineer. It actually had no bearing on my ability to get a job as I smashed the technical interview process for multiple start ups and it never came up in any of my conversations. 

Since 2020 I've been working on an enterprise application used by the likes of Visa, Citibank, Ernst and Young and other "Fortune 500" companies. We had an absolutely outstanding group of employees that made up our product team and we built a SaaS company that boasted less than a 2% client attrition rate YoY. I was lucky enough to be a part of an engineering team that valued science and customer experience over creating features for the sake of creating features. I worked for an executive team that listened to the advice of the product team in terms of project feasibility and delivery timelines. I had a rockstar UX designer who taught me a lot about how UIs should look at feel. It was an awesome gig, but, as they say, all good things must come to an end. The company felt the pressure that many tech companies in 2023 have experienced as of late and I had to depart on good terms - references available :) So now I'm back job hunting again - facing more uncertainty due to current market conditions.

For the last 3 years I've been working on a stack that included Ruby on Rails, Vue.JS, PostgreSQL, and a data indexing system running on ElasticSearch. My knowledge and understanding of Ruby and Rails has improved 100 times over in the past 3 years and therefore, the project that directed you here, is no longer reflective of my abilities as an engineer.

When I re-started the job search I started asking myself questions about what was next and how I wanted to represent myself to new potential employers. I started looking at my portfolio. 

### Slockify

Slockify was one of three projects I created coming out of App Academy. It was my first and it was a solo project with React/Rails/PostgreSQL. I built the API for it using a combination of Websockets and RESTful endpoints. Frankly, I built it wrong. As a junior developer I was not keen on the intricacies of correct architecture. I asked a lot of questions back then and did the best I could with the answers and feedback I got, but knowing what I know now, I would take a different approach.

For example, Slockify (being a Slack clone) is a messaging app. Each user has many conversations. I decided that the best way to represent that in routing was `/client/:user_id/:conversation_id`. In my current opinion this bad practice because exposing the `:user_id` is both unnecessary and poses a security risk. Since we only want to present the end user with conversations that they are apart of, we can handle all of that processing on the backend by using the current session information. 

This is one of many issues with the application. When I was originally working on it my primary goal was just to have something that worked. As a more mid-level or senior-level developer I'm more concerned with demonstrating quality and efficiency in my output.

Originally, I had it hosted on Heroku... back when Heroku had free dynos. After about 3 years of neglect the project was outdated and no longer running. I spent a week updating the dependencies and getting it running again - after which I was faced with the question of whether I should revamp it and include it on my resume or if I should abandon it and create a new project. 

I opted for the latter for two reasons; 1) I want to remember where I came from. I can go line by line and tell you how to improve the project now or what systems I would develop to make it better. I think its important to be able to look at old code in retrospect and go through this process because it shows exactly how much you've learned since then. 2) I want to create something a bit meatier on a different stack. I think it would be more representative of my current ability.

TL;DR

I'm no longer maintaining this project because I see more benefit from making a new one with better systems.