whoami

Oliver Nichols Portrait

As a Cyber Security Enthusiast and Developer, I have 10+ years of experience. I love tinkering and dabbling with code, operating systems, and various applications & technologies. Stay tuned for more content on my blog!

Obtained Certifications

  • CompTIA PenTest+
  • CompTIA Security+
  • SAFe 5 Practitioner
  • AWS Certified Cloud Practitioner

What Sets Me Apart

Cyber Focused

I perform work with a hacker mindset. I have acted as a Security Champion, pioneering the first bug bounty program for one of my employers. I have obtained the PenTest+ and Security+ certifications. I am currently pursuing a hands-on penetration testing certification by HackTheBox (HTB) called Certified Penetration Testing Specialist (CPTS).

If you didn’t feel like watching the comparison video between OSCP and CPTS, here are come key differences that sets CPTS apart:

  • Cheaper ($490 vs. $2,600 for comparable plan)
  • More challenging (More machines to hack to pass the exam)
  • Longer test period (10 days to complete exam vs 24 hours)
  • Lots of course content
  • More skills taught regarding Active Directory

CPTS requires completing 100% of the HTB Academy “Penetration Tester” job-role path to be allowed to take the exam.

My HTB Academy Progress

70%

Completed Modules

  • Penetration Testing Process
  • Network Enumeration with Nmap
  • File Transfers
  • Using the Metasploit Framework
  • Cross-Site Scripting (XSS)
  • Password Attacks
  • Pivoting, Tunneling, and Port Forwarding
  • Footprinting
  • Information Gathering – Web Edition
  • Vulnerability Assessment
  • Using Web Proxies
  • Attacking Web Applications with Ffuf
  • Shells & Payloads
  • File Inclusion
  • Login Brute Forcing
  • Command Injections
  • Web Attacks

Clean Code

I believe that we should write clean code. Clean Code by Robert C. Martin provides many insights on writing simple, readable, clean code that keeps you and others enjoying coming back to your code.

Automated Tests

Automated tests are integral to creating quality solutions. Clean Code states that your code is not clean if it does not have unit tests. I like the following definition of legacy code:

To me, legacy code is simply code without tests.

Working Effectively With Legacy Code, Michael Feathers

As we create a product, we do not want to create legacy code. We want a quality product that enables us to make changes quickly and without remorse. We should not be afraid of changing code. Especially when we have a safety net to catch us (our testing).

Agile

The Scaled Agile Framework (SAFe) Practitioner certification taught me that being agile is much more than performing daily tag ups and working in sprints. It’s about delivering value (vertical slices of functionality) early and evolving the product with customer feedback. As a team, our focus is on completed work and meeting our planned commitment.

Teamwork

As we work to meet our commitments, we succeed and fail as a team. We should strive to work together at achieving our goals. I strongly believe in the power of pair programming. It offers the chance for developers to learn from each other, builds in quality, and reduces the time spent on roadblocks. Over time developers will begin to code similarly. The code base will begin to look as if it was coded by one person rather than multiple individuals.

Software Craftsman

Software Craftsmanship is taking software development to the next level. In the manifesto, it states the following:

As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:

  • Not only working software, but also well-crafted software
  • Not only responding to change, but also steadily adding value
  • Not only individuals and interactions, but also a community of professionals
  • Not only customer collaboration, but also productive partnerships

That is, in pursuit of the items on the left we have found the items on the right to be indispensable.

Debugging

Over the years I have learned to become a better debugger, going beyond resolving the symptoms and finding a solution to the root cause. This requires additional effort but yields a better understanding and truly fixes the issue.

Refactoring

Similar to the boyscout rule “Leave a campsite better than you found it”, I believe we can apply this to development as well. We naturally learn and figure out ways to do our work better. With a fix forward approach, we can improve the code that we are actively working in. This provides minimal impact to the project while managing technical debt.

Accomplishments

Ubuntu Mobile App Pioneer

I was one of the first 100 Ubuntu mobile app developers by publishing two mobile apps on the platform (a Bible and metronome app).