[web developer]

Daniel Russo

^

My coding experience started in high school solving challenges in C++, and grew stronger with courses in object oriented programming, followed by functional programming and logic at The University of Texas at Austin. I ultimately earned a BS in Advertising as a copywriter in UT’s Texas Creative program. Moved by a passion for serving others, I spent my early career at a non-profit supervising volunteer advocates for children in foster care, specifically focused on the unique challenges facing teenagers “aging out” of the system. Following the 2008 market crash I siezed an opportunity to become an analyst investigating mortgage fraud in the real estate industry where I exercised my problem solving skills and eventually pivoted to residential sales.

While diving deeper into modern strategies for marketing homes, I became frustrated with the commonly available cookie cutter tools for web design. I taught myself the core front-end technologies by dedicating late nights to a combination of coding, hair pulling, reading, more coding, and aha moments. In time I built a custom responsive website to show off my listings which scratched an itch that lingered since my first “Hello World” application at age 16. I fell in love with the notion of fusing logic with design to solve problems for users, plus I really enjoy reading and writing code. Thus, I committed to pursue web development as a career as well as a craft. Looking for a little more structure and teamwork, I completed the Coding Boot Camp at UT Austin MERN stack program which was an excellent hands-on addition to the fundamentals of thinking through code I had picked up in college. I’m focused on the unending project of adding to a valuable skill set in both front and back-end technologies. While my empathy for users and background in marketing places me closer to the front-end side of the blurry spectrum, I am equally interested in API design and integration along with data manipulation and organization. My hands are currently dirty diving deeper into algorithms, testing, and administering a VPS for building and hosting Node.js applications.

I am particularly interesting in joining a team where I can contribute my web development skills and background in real estate.

technical-skills: {

}

projects

Non-profit organizations need to track volunteer hours for grant applications and fundraising campaigns. It’s challenging for volunteers to remember to log into a website and report their contribution.

This full stack app allows non-profits to send SMS messages to their volunteer base requesting the hours they volunteered for the month. Volunteers reply with a number and the app adds it to their log in a MongoDB collection. Volunteers also have a dashboard on the website to share their progress via the Facebook API, opt-in or out of SMS messaging, or correct their reported hours. In addition, through WebSocket connections the app updates volunteer hour totals on the admin and user dashboards in real time. All app data is stored in MongoDB collections, including sessions. Passport.js strategies are implemented for authentication and session creation. SMS messages are sent via post requests to a Bandwidth API endpoint, and replies to the messages trigger a Bandwidth post request to a VolunText endpoint. The WS library is used for creation and management of WebSocket connections. Changes to volunteer hours in the database trigger an event which pushes updated data to the client via WebSocket. Volunteer hours are stored in a collection as annual logs with each document containing timestamped data for all 12 months, a running annual total for the volunteer, and the volunteer’s email address.

Tech:

  • Node.js with Express
  • Passport.js
  • MongoDB with Mongoose ODM
  • WebSocket API with WS WebSocket library
  • Facebook API
  • Bandwidth API
  • Sass
  • JavaScript
  • Bootstrap
  • Babel
  • Heroku
  • Git
new york times search app with react

This full stack, single page React app allows users to search for New York Times articles and save individual results. Front end JavaScript queries the New York Times API with client search criteria, and the json response is parsed into a new app state to render. The client can save individual results via a post request to an Express server on the back end which stores the json in MongoDB.

The client may also view all the saved articles via a get request to the Express server, which in turn queries MongoDB and updates app state with the results. App navigation between the Search, Results, and Saved panels is handled by the React Router BrowserRouter API which uses the HTML5 history API.

Finally, the client can delete articles via a delete request to the server which removes the data from MongoDB, and in turn updates app state to reflect the remaining saved results.

Tech:

  • React with React Router
  • Node with Express
  • MongoDB with Mongoose ODM
  • Axios
  • Sass
  • Flexbox
  • CSS Animations
  • Heroku
  • Git
rock paper scissors game

Multiplayer Rock Paper Scissors: This app was an exploration of the interaction between data persistence and asynchronous client-side logic. Two clients can “log in” to the app for a multiplayer game of Rock Paper Scissors, complete with a chat box. Additional clients can view the game in progress as spectators but will not have control. There is no true back-end to this app. Google Firebase’s NoSQL “Realtime Database” stores game state which is written and pushed to the clients via the Firebase API.

A client side JavaScript object stores a mirror of the game state, thus allowing batched write operations from the state object to the database. The clients receive a database snapshot with each write to the database, and a compare function uses the snapshot and jQuery to update the view. Because the API pushes updates to the client with each state change, batched writes were important to keep the logic organized.

Tech:

  • JavaScript with jQuery
  • Google Firebase NoSQL “Realtime Database”
  • HTML
  • CSS
  • Git