Hi, my name is Dan Murphy.
Software Engineer/Problem Solver.

More About Dan

About Me

profile picture

I am a software engineer with a passion for problem solving. As long as I can remember, I have asked the question "Why?", and I feel that asking that question makes me a better engineer. It is not enough that I solve the problem (development or otherwise); rather, I aim to understand why the solution works and to learn from that experience with new information to further my own understanding and to help others.

I became a software engineer due to my desire to continuously challenge myself and my dedication to being a life-long learner. I am not certain which I love more about this profession: the logical thinking, problem-solving thought process that comes with development or the ability to create solutions to real-world problems that can both help people or bring them joy. Regardless of which it is, I do love this career, and I am happy and proud to be a self-taught engineer. I work hard, I am dedicated, and I certainly follow-through.

In addition to being a software engineer, I am also a veteran of the United States Navy, having served as an Avionics Technician. As an Avionics Tech, I had the pleasure of maintaining (that is, repairing and troubleshooting) some of the most advanced avionics suites in the world. I was routinely called upon to troubleshoot and repair some of the most difficult discrepancies. In doing so, I stretched my critical thinking and problem-solving skills, which I believe make me a better developer. Moreover, my experience in the Navy provided me with solid teamwork and leadership skills that make me a great addition to any team environment.

Lastly, as you can see, I have a pretty sweet beard, of which I am quite proud.

Resume

Skills

    Front-End
  • HTML/CSS
  • JavaScript/TypeScript
  • React
  • Bootstrap
  • Angular
    Back-End
  • Node
  • Express
  • C#/.NET/ASP.NET
  • RESTful APIs
  • SQL/PostgreSQL
  • MongoDB/NoSQL DBs
    Technologies/Tools
  • Postman
  • Git/GitHub
  • Electron
  • Netlify
  • JSON Web Token
  • Jasmine/Jest Testing Suites

Projects

Eclectic Forums

Eclectic Forums is a forum project that I developed to continue my development of full-stack, fully functional CRUD applications. It allows users to post, comment, and reply in a forum based on topics that are interesting to me.

This project was the first one that I developed using a back-end that did not use Node.js/Express. Rather, it uses C#/.NET stack for the backend - leveraging ASP.NET to build out the internal API that is used for the application. It uses PostgreSQL as its database, with Entity Framework as the database ORM. With this project, I also continued to learn more in the Angular Framework as well. I used Angular Guards for route protection for the first time as well as Interceptors as middleware to modify HTTP requests being sent to the server. Additionally, I learned more about Subjects and BehaviorSubjects to track and use client state through a service so that components could share that state for authorization.

See LiveGitHub Repo
Eclectic Forums

Fantasy Stock Trader

A full-stack, fully functional CRUD application, Fantasy Stock Trader allows the user to take on the ups and downs of trading their favorite stocks without any of the risk. User and stock information is stored in a SQL database. Node and Express handle the backend traffic of the internal API between the database and the Twelve Data API and then serve the information to the user through React. React Hooks allow the frontend client to be organized and purposeful, providing a great user experience.

This application allowed me to use the skills that I have gained through my journey as a self-taught engineer to create a fun application with real-world use. In order to create this application I had to learn SQL and how to authenticate users. I enjoyed learning SQL and the problem solving that goes into some queries. This application was also the most difficult to deploy, and I ran into some hurdles doing so. Here the perseverance and critical thinking skills that I have developed were instrumental in my ability to come through the other end.

See LiveGitHub Repo
Fantasy Stock Trader

Snake Game

This is my take on the classic snake game that came pre-installed on many cellphones in the late 1990's and early 2000's (looking at you Nokia!). I created this project to learn how to use the HTML canvas element and how to continuously draw over the canvas using the setInterval() function to mimic animation. The application is created with HTML, basic CSS, and JavaScript without any libraries or frameworks.

Creating this application, I ran into a few problems. First was getting the body pieces of the snake to follow the head. I solved this problem by moving only the head of the snake, and redrawing each segment taking the place of the segment that was in front of it. Debugging this application helped me to learn how the logic flows while the code runs.

See LiveGitHub Repo
Snake Game

Brewery Database App

The Brewery Database Application consumes data from the Open Brewery Database API and displays the data to the user. The user can search the database by city, state, or brewery name using a resolved fetch request with promises. The requested data is displayed to the user with React and the built-in Bootstrap card component. Using the Bootstrap card allowed me to really take advantage of React's ability to create re-usable components - each displayed card being the output of the JavaScript .map method.

I created this application to get more experience with React. At the point when I created this application, I had already made a few with React, but each of them used Class components. So, when I went to create this application, I decided to challenge myself and use Functional components to hold state, thus forcing me to learn how to use React Hooks. I really enjoyed creating this application, and I am glad that I forced myself to grow as an engineer and learn to use Hooks.

See LiveGitHub Repo
Brewery Database App

Star Wars API

This application creates a searchable table of Star Wars characters using the swapi.dev API. My goal in creating this application was to get more experience consuming data from an API and displaying it to the user. In creating the application I used JavaScript's async...await functionality to resolve the promises of each fetch request to the external API. The returned data is displayed to the user in a dynamic table created in React and styled with Bootstrap.

In creating this application, I ran into a problem where some of the returned JSON data at an endpoint contained other endpoints as values. This was a head-scratcher for me. Ultimately, I was able to handle this problem by creating another fetch request and resolving the promise created by it, as well as the original promise from the initial data fetch. In doing so, the Postman API tool was critical to help me keep track of the layered endpoints. This project certainly caused me to grow as an engineer and stretched my problem-solving skills.

See LiveGitHub Repo
Star Wars API

Contact

Would you like to work with me? Awesome!

Email Dan