aadanen.dev
Resumes are weird. It’s hard to fit myself onto a sheet of printer paper. A resume needs to be concise enough so a recruiter will read it, but also contain all the key words to get past the resume filtering software. Even if you spend hours on a resume, key factors in finding a job are through accuracy by volume or a personal connection. I decided to make this website so that I could write as much as I want, dip my toes into full stack web development, and make something more personal and creative.
Before this project, I had pretty much zero experience with any of the technology I was going to use. My first step was the Mdn Web Docs HTML and CSS tutorial. Overall, HTML and CSS are pretty simple and intuitive, but they definitely have a steep learning curve in the beginning. After building this foundation, I made an AWS account and started making chaos. It was hard to grok the massive amount of information on AWS and plan ahead, so I just charged forward using stackoverflow and youtube as guardrails. Eventually, I was able to create an EC2 instance with Windows Server 2019 and run an IIS web server. I installed git on the server to clone my first HTML files, and worked with file compression so that I could host the Bullet Hell Game.
After a few months, I was able to write an HTML file and host it in the cloud so anyone with the IP address could view it. While this is cool, it's in a totally different league than a “real” web application. In order to target a specific internship opportunity, I started over with ASP.NET Core MVC and Bootstrap. For a while, I shutdown my EC2 instance and worked locally. I learned the Model View Controller design pattern, and the power ASP.NET .cshtml files. I took advantage of bootstrap to deal with the verbose CSS required to make a site responsive on all screen sizes, but I still mainly used raw CSS to style my page. I found that while bootstrap had some advantages, its oppressive default behavior and terse syntax made it more confusing. I think if I had more experience with CSS or worked in a team of people writing CSS, bootstrap might make more sense.
Next, I needed to gain experience with a SQL database. I chose Postgres because it’s free and I understand it to be reliable and a popular choice for a relational database system. One thing that is also cool about Postgres is that its a open source project. While I am nowhere near advanced enough to contribute, I think it would be really cool to do that sort of thing. After working with the remarkably simple Entity Framework to model my data, and using Razor syntax to express it for the user, I had a rough draft of my site.
With a more realistic web application prepared, I went back to the AWS console for a second run at setting up a web server. This time, I was able to draw on my previous experience and it went much smoother. My new server is set up much more accurately to my needs in a variety of ways. Instead of using git to clone my code, I set up Microsoft's Web Deploy service to deploy my code to production. I only installed the necessary dependencies instead of solving my problems by installing everything in the server manager console. This time, I also used AWS RDS to create a secure, cloud-based production database. I used SQL scripts to shape it in a reflection of my development database, and then copied over the necessary data.
The final step of my development process was reaching out to professionals I know for feedback. I worked with full-stack web developers, graphic designers, and surveyed my peers to improve the UI/UX of my website and simplify my back end design. After several rounds of continued improvement, the website is as you see it today.
Overall, this was a pretty wild project. I learned the basics of AWS, HTML and CSS, ASP.NET Core, the Model View Controller design pattern, IIS, relational databases, and computer networking. I also gained a broad (but shallow) understanding of System Administration, Full-Stack Web Development, UI/UX Design, DevOPS, and all the other types of work that come together to develop a modern web application. Through this project, I dipped my fingers in web development, as well as large scale software development. My favorite part was how easy it is to show what I’ve been working on to my friends and family. The most challenging part was learning all the different technologies.