Welcome to Daniel's website! Daniel is an up-and-coming full-stack software engineer with a proven track record in back-end development. Armed with a computer science degree and hands-on experience in the tech industry, he's now dedicated to creating user-friendly software solutions from start to finish. Take a tour of his website to learn more about his journey in software development. Don't hesitate to reach out with any questions or topics you'd like to explore. Enjoy your visit!
As a member of The Church of Jesus Christ of Latter-day Stains, Daniel Hails from Utah, where his early days were marked by a fondness for Lego, technology, and the great outdoors. Following high school, his deep-rooted patriotism and intense yearning to serve motivated him to enlist in the US Army, where he dedicated four years of service, including three combat deployments to Iraq.
Fuelled by his love for running and unyielding determination, Daniel achieved an impressive feat that most don't even consider attempting: running a marathon. Completing the Charlotte Marathon on two separate occasions and conquering the demanding 26.2-mile distance required consistency, self-awareness, discipline, research, time, and heart.
Even amidst a global pandemic, Daniel's unwavering determination propelled him to achieve a significant milestone: he earned a Bachelor of Science in Computer Science from Utah State University, graduating in the year of our Lord 2023. Following his academic success, Daniel embarked on his professional journey as a software engineer at a multinational IT consulting firm. There, he harnesses his profound affinity for technology and natural curiosity, contributing meaningfully as he gained real-world experience in software development.
Daniel coded a game akin to Tetris, incorporating features such as sound effects, music, customizable controls, particle effects, high score, and an attract mode. If no user input is detected, attract mode employs a simple algorithm to autonomously play the game, aiming to engage users by showcasing the exciting gameplay the way arcade games aim to attract players with the goal of earning coins.
Try TetrisReviving a vintage gem, this two-dimensional simulator is a modern take on a timeless classic. It boasts physics simulation, dynamically generated terrain, immersive sound effects, customizable controls, captivating particle effects used in the visualization of the propulsion and the explosions experienced upon crashing, and high scores stored in the user's browser. The scoring system revolves around the fuel remaining fuel following a triumphant landing.
Pilot the landerDaniel's inaugural web-based game, this program allows users to choose the size of the maze before embarking on the gaming adventure and then employs Prim's algorithm to generate a novel and randomized maze each time. A depth-first recursive algorithm is used to unravel the maze's mystery. As the user moves through the maze, the solution is recalculated, granting the opportunity for hints of the next move or a comprehensive view of the remaining path from the player's current location to the finish.
Find your wayThis collaborative endeavor embodied the essence of teamwork and software engineering. The team, adeptly guided by the principles of Scrum, embarked on a multifaceted journey encompassing requirement gathering, prototyping, and the creation of crucial artifacts such as use case charts, project plans, activity diagrams, and class diagrams. The project’s objective was to construct an auction website to facilitate fundraising for a local elementary school.
The tightly knit team of four collectively shouldered the role of scrum master in turn and stewarding the iterative development process, documented diligently by making use of burndown charts. They integrated daily scrums while harnessing the power of GitHub for streamlined pull requests and issue tracking. Unified by their experience with Django, a collaborative decision was made to leverage the familiar framework.
Daniel focused on enhancing the user interface (UI). Armed with HTML, vanilla CSS, and JavaScript, he meticulously transcribed the design gleaned from prototypes into a tangible and engaging UI. Moreover, he contributed his understanding of the controller layer by employing Python, lent his expertise to the creation of the data models and helped with automating the loading of the database with test data during development.
View the code repositoryDaniel embarked on a short research project of discovery involving labeled data sets of audio. The audio was classified into three categories: ambient sounds, cricket chirping, and bee buzzing. Employing the Python library, TFLearn, Daniel designed a convolutional neural network (CNN) architecture. He then created and maintained duplicate models using the pickle library. TensorFlow was employed for training, validation, and testing. A random forest (RF) model was constructed and trained using sklearn.
Next, Daniel meticulously trained a solitary CNN using the amalgamation of all three datasets. Meanwhile, he undertook training additional CNNs, each one exclusively trained on a single dataset. These three CNNs synergistically formed an ensemble. Using the trained models to create five ensembles, each ensemble utilized a different algorithm for the three CNNs to “vote” on the correct classification of audio clips. Experimenting with the diverse ensemble configurations was an integral phase of his exploration. To enhance the efficiency of the training process, the raw power and parallel processing power of Google Colab's graphics cards were harnessed.
A rigorous comparative analysis ensued, pitting the solitary CNN, five ensembles, and the single RF against each other. Accuracy in classifying audio clips was the pivotal criterion for evaluation. Intriguingly, the outcome showcased the solitary CNN as the frontrunner, substantially surpassing all ensembles and the RF. This revelation brought Daniel to the conclusion that sometimes, simpler is better. However, a balance between complexity and simplicity is necessary. After all, the simpler version of CNNs, artificial neural networks, were ruled out early on as they were not up to the task of classifying audio.
View the code repositoryTo empower commuters in Daniel’s hometown, he created a native Android application tailored for the Cache Valley Transit District (CVTD) bus system. Aiming to simplify the public transit experience in northern Utah, this mobile app presented an agreeable solution for tracking CVTD buses with precision and timely updates. The mobile app provided a comprehensive and real-time view of bus locations, ensuring users were never out of touch during their commutes.
The core of the app's functionality is the retrieval and parsing of XML data sourced from CVTD's API carrying each bus’s latest GPS information. Regular intervals of data synchronization ensured that users received up-to-the-moment positions of all actively running buses. Capitalizing on the robust capabilities of the Mapbox SDK, the app adeptly translated this data into a visual representation fit for consumption.
The map came alive with dynamically updated icons, each representing the real-time position of a CVTD bus. Augmenting this map-centric experience, the app leveraged Android OS to display the user’s GPS location, further enhancing their ability to commute with less stress. Embracing a sustainable monetization strategy, the bus tracker featured banner ads integrated via Google Mobile Ads, ensuring the option for long-term sustained app development and improvement.
View the code repository