Kevin Smith


Software Engineer | Scrum Certified | Front/Backend Developer

After working 15+ years as a technical illustrator, I started to consider other career paths. I felt that my current career didn’t offer much opportunity to create value for myself past the limitations of the AutoCad software. Throughout my career, I discovered and enjoyed developing lean process improvements. I enjoyed it so much, I took every opportunity I could to work on projects that offered that type of work. Utilizing my computer/technical skills and my work experience, I was able to develop process improvements that helped reduce the work required to complete a task as well as reduce the errors that occurred throughout the project. I didn’t pursue a different career path then because I had a good job at a good company. When the company decided to replace my group by outsourcing the work, I knew I had to make a decision. I was not prepared for this eventuality. It was then I decided I to pursue a new career as a web developer.

After considering a number of colleges to attend I selected Sanford Brown College. They offered a web developer program that was impressive. During that time, I worked on a number of web projects. I worked with content management systems, adobe products such as Photoshop & Flash. It was during this program that I develop a mobile application using PhoneGap Build that I made available on the Google Play Store. It was during this program that I discovered I enjoyed creating applications that provide value to the end user. This helped me to understand I would need to pursue a software engineering track.

It was then that I decided to complete a bachelor of applied science degree at Green River College. This program focused on software development and the development life cycle. It was here that I had many opportunities to work on full stack development projects. The program covered programing fundamentals such as data structures and algorithms, Agile / Extreme programing methods that we employed for all of our development projects throughout the program. The program also covered test driven development such as unit, integration, functional and acceptance. The two major applications we used were Unit tests and Selenium. I also developed an application that utilized multithreading, I called it Web Crawler. This was a challenging application, it took a keyword and seed URL that a user entered via the Java console. The application would count each occurance of the keyword on that page and start a new thread for each new URL found, that in turn repeats the process. The application required both a consumer/producer pattern as well as a consideration of data corruption issues that can occur across multiple threads.

TEST

Unit


PHP Unit/J Unit - verify logic and proper return values for applications. This is accomplished by testing methods, components and modules.

using PHP Unit/J Unit to create effective unit tests ensure that your application passed basic functionality parameters defined by project requirements. Unit testing is implemented to save time during the development process.

Integration


Mock Services - ensure modules or services used by your application function and continue to work. Such as the a test that ensures the database and microservices can communicate and run smoothly.

testing this functionality can be accomplished by creating mock services that return a predefined value defined by the project requirements.

Functional


Selenium - tests that focus on the business requirements of an application defined in the project requirements.

Selenium can be used for integration testing verifies that a query to the database will return a specific value from the database as defined by the product requirements.

Acceptance


Selenium - test application under significant load to discover choke points or portions of the application that could use reduction in processing requirements. tests are created with reliability, stability, and availability in mind.

Selenium can be used to facilitate acceptance testing, this may or may not meet the requirements for meeting standards set forth according to project requirements.