Skills
Software Engineering
Programming Languages
Java Experience
- Developed desktop applications using GUI libraries including Swing, Java3D and JavaFX
- Created automated testing with JUnit, Mockito and Sikuli
- Developed applications for Android mobile devices
Swift Experience
- Developed iOS applications using the SwiftUI framework
- Managed persistent data using SwiftData
- Created automated testing with the Swift Testing framework and XCTest
C++ Experience
- Developed desktop applications using the Qt GUI framework
- Created automated testing using Google Test
- Worked on communications for a CubeSat
Python Experience
- Developed web application back ends using the Django framework
- Created automated testing using pytest
- Rapidly developed application prototypes
Assembly Experience
- Worked with both ARM and x86 assembly
- Projects included a basic messaging server running on a Raspberry Pi
- Developed and tested on emulators prior to moving to hardware
C# Experience
- Developed windows desktop applications on the .NET framework
- Created unit tests using MSTest
- Developed GUI using the Windows Forms framework
PowerShell Experience
- Developed scripts in order to update or retrieve computer settings
- Called from within Java programs to retrieve information from VersionOne in order to create metrics reports
- Used in conjunction with Jenkins to automatically check Coverity status and update stakeholders through email
JavaScript Experience
- Used in conjuction with HTML and CSS in order to develop website frontends
- Worked with multiple frameworks including TypeScript and React
- Used in the creation of this website, such as the dark mode capabilities
Rust Experience
- Used with an ESP32-s3 and touch LCD display in order to develop embedded applications
- Worked with multiple libraries including LVGL for embedded graphics and Diesel for Sqlite
- Developed unit tests using the #[cfg(test)] attribute and documentation tests
Software Design
- Familiarity with software architecture patterns including Model-View-ViewModel and software design patterns such as Singleton and Composite
- Experienced with multiple software paradigms including Object-Oriented and Declarative programming
- Skilled in creating design documentation including clear and detailed UML Diagrams

Website Development
- Designed and created websites, including this portfolio website, using HTML, CSS and JavaScript
- Experience multiple options for increasing website responsiveness, including Bootstrap, JQuery and React
- Focus on creating an accessible and pleasant user experience


Cybersecurity
Network Security
- Designed networks following security principles, including Zero Trust Networking
- Experienced with a variety of network environments including cloud, on premise and hybrid environments
- Configured multiple products in order to secure the environments, including cloud service providers, firewalls, SIEMs and EDRs

Secure Software Design
- Familiarity with using software design patterns that will assist with ensuring security within the software architecture such as the Proxy pattern
- Experienced with multiple static code analysis tools including Coverity and Semgrep
- Experience building automated software security testing into the build pipeline, such as using Jenkins to run coverity daily and email stakeholders about security issues
Governance, Risk and Compliance
- Familiarity with laws and regulations that impact the need for security precautions such as the GDPR and PCI DSS
- Experienced with hardening systems following the CIS Benchmarks
- Utilizing the NIST Standards in order to follow requirements and best practices for many different scenarious including NIST SP 800-53 "Security and Privacy Controls for Information Systems and Organizations"
Continuous Learning and Practice
- Cybersecurity is a continually evolving landscape so I keep on top of current news and developments
- I continue to learn new topics and practice my skills in different environments, such as hardening systems and exploring different toolsets
-
This includes using TryHackMe, as well as experimenting with configurations and tools in a home lab
View TryHackMe Profile
Software Development Life Cycle
Agile Methodologies
- Experience working in a team on an agile project with two week sprints
- Automated the creation of metric reports showing how well the teams were meeting their sprint goals
- Participated in multiple parts of the agile process including sprint planning and retrospectives
DevSecOps
- Experience working as part of the Continuous Integration / Build team to fascilitate software merges and builds
- Automated static analysis with Coverity in order to fascilitate the integration of security into the development process
- Developed and maintained unit tests to ensure flaws were not unknowingly introduced during later development
Version Contol
- Familiarity with both SVN and Git systems for version control
- Experience restricting commits unless certain conditions are met, such as verifying the commit ties to a Jira issue
- Setup and configured version control using multiple tools including TortoiseSVN, GitHub and GitLab
Workflow
- Worked with multiple planning tools such as Jira and VersionOne
- Experience creating metrics reports by automatically pulling from the planning tools
- Created scripts in order to ensure multiple planning tools were kept in sync and changes were reflected across the system