KAMON HARRELL :// WEB DEVELOPER

Whey Cartel

WheyCartel is a SPA( single page application) premium whey protein subscription service, which was built with React, Bootstrap, Python, BrainTree, Node, Firebase, and more. I worked with WheyCartel as a Front End Development intern for about 3 months, shortly after graduating from Enspiral Dev Academy. I couldn't say better things about my experience working with Nelson and Rab, the founders of the site. They gave me an opportunity to jump into the team right away, and continue to learn and grow in a professional environment.
Despite me being an intern, Nelson, our head of development, put me in charge of quite a bit right away. This was a great chance for me to stretch my skills, knowing that help was right around the corner if need be. A few of the things I accomplished for the WheyCartel are listed in the bullet points below.

  • Technical accomplishment's
    • I was put in charge of creating a complete user dashboard from Photoshop documents, where users could view their current subscription and billing information, and make changes to their account.
    • We used modern web technologies to build our application, so we needed to do browser testing to get a better picture of what our users could look forward to. I tested the site across all modern browsers(Chrome, Firefox) and a litany of different devices, screen sizes, and mobile browsers. It even works on IE9
    • We used Git as source control when I was in school, and we also used it for the development of the WheyCartel platform. This made it easy for me to submit my features and code for peer review, which lead to almost eliminated creating new bugs in the production environment.
    • As part of following the agile process, we were constantly updating, and using a prioritised backlog. This was great for the team, since our lead dev and myself could create new tickets when we came across bugs or other tasks, and the whole team could see what was being worked on, and what was already finished.
    • When it came to data storage, particularly in the case of the user dashboard, we needed easily accessible and fast storage. Firebase fit all of our needs with its easy to use API, and connection to the rest of the google suite.
    • Feel free to visit the site by clicking on the link above.
  • Challenges and take away
    • This was my first professional role, and that scared the hell out of me. I was lucky that Nelson and Rab were great mentors, and willing to help me learn and grow, which has boosted my confidence and prepared me for my next role.
    • Since this is a start-up, the dev team was just myself and one of the founders. While this presented certain challenge's (wearing many hats) it also made communication and code reviews very easy.
    • I did most of our device and browser testing, and getting the CSS and forms to look nice and behave the same across differnt platform's was a challenge in and of it's self.
    • Communicating with our backend was a bit of a challenge because Nelson (our lead dev) had written it in Python and Brain Tree, which i had no experience with at the time. Working with a new technology helped boost my skill set, and problem solving skills.
    • I used Firebase for the first time during my stay with Whey Cartel, and had to spend time outsite of work to help me understand what I needed to do while at the office.

#Adulting

#Adulting Is a single page application where users are encouraged to earn points for uploading instructional videos that teach young people basic life skills. This project was the culminating effort of my time at Enspiral Dev Academy, and was worked on by my entire graduating class. We had a pitch day to decide on which ideas we all liked the most, and this was my idea. Since it was my idea, I helped guide our team through what my vision was for the project, and the design, architecture, styling. Our team of 8 people spent 7 days on this project, including all of the planning and execution. Most of those days were 12 hours plus of planning, coding, stand-ups, prioritising, testing, and practising for the live graduation demo we had to do in front of friends, family, and potential employers.

  • Technical accomplishment's
    • As I mentioned above, I pitched the idea to my team, and was responsible for convincing them this was the best idea to spend our time on.
    • Having a natural tenancy to lead, I was elected by my classmates to be our scrum master/product owner for the duration of the build out. This helped my gain experience not only in communicating effectively with my team in a high stress environment, but also making sure that any conflict within the team was appropriately resolved.
    • I wasn't just a team leader on this project, I also helped code the landing page, authentication, user profiles, database management, UI/UX, and much more using technologies like React, Redux, Node, Express, JSON web tokens, and postgreSQL.
    • Since I was elected to be the scrum master, I was also in charge of our backlog and running our stand-ups. Being able to assign tasks to people with Trello was a huge factor in our ability to communicate effectively, and to conduct code reviews.
    • Feel free to visit the site by clicking on the link above.
  • Challenges, and what I learned
    • During this project we were extremly crunched for time, and I experienced my first "death march". We had to make decisions on what features to keep, what to slash, and who was technically capable of being assigned to which feature.
    • Inbetween doing code reviews, assigning people to appropriate tasks, and coding, I was pretty stressed out during most of the project. Learning how to keep a level head as a team lead is extremely important becuase if the leadership devolves into pettiness, the rest of the team will fail.
    • We had a disparity in technical ability on the team, and it was up to me to keep people on tasks that they were capable of completing, so that we could continue to make progress. I was also the voice for these people, as their lack of technical skills made them feel unheard when it came to decisions made as a group.
    • Manging stand-ups is hard when your team is stressed out and tires. Keeping them short, and consice was something I tried different strategies to accomplish, including assigning a talking stick and using a timer to make sure we were being effective.

Enspiral Dev Academy

Enspiral Dev Academy is an immersive and intensive software development training bootcamp. They train passionate people in practical programming skills. The focus is on producing talented individuals with both technical and practical skills that can hit the ground running as software developers in a commercial environment. What I went thourgh has been a very intensive and challenging bootcamp. I completed between 800 and 1,000 hours coding on multiple projects in a team environment during my time at Dev Academy.

  • Technical Skills
    • Deep understanding of programming fundamentals
      • Functions and high order functions
      • Data types(objects, arrays, etc.)
      • Data structures and algorithms
      • Functional programming and Object Orientation
      • Control flow with conditionals and iterators
      • Asynchronous programming (file system, database, and network)
    • Testing and TDD
    • Github and Git
      • Pull requests
      • Code Reviews
    • Debugging techniques in the browser and on the server
    • Command line interface
    • Editors - Sublime and Atom
    • Building a web server from scratch with Node.js and Express.js
    • HTTP protocol
    • Designing RESTful routes for resources
    • Server side rendering using templating engines (Handlesbars.js)
    • Creation and migration on relational databases
    • Creating and testing web API's
    • Consuming third party web API's
    • Client side Javascript frameworks (e.g React and Redux)
    • Cookies, sessions, and authentication
    • Social login and OAuth
  • Practical Skills
    • Giving and recieving feedback
    • Practising deep listening
    • Awareness and appreciation of diversity
    • Experience with playing different roles in teams (Developer, Product Owner, Scrum Master,customer)
    • Managing conflict in teams, conflict prevention and resolution
    • Agile techniques
      • Standups
      • Kanban boards
      • Task estimation
      • Sprints and sprint planning
      • Backlog prioritisation
      • Retrospectives
    • Presentation techniques
      • Elevator pitches
      • Presenting technical topics to technical and non technical audiences