About Me
I began my career as a system administrator and worked my way up to IT management. Eventually I started my own IT consulting business. My projects ranged from infrastructure management to virtual CIO services in a variety of industries including the banking, retail, government, and technology startup sectors.
A few years ago I was interim CIO for a client and one of my responsibilities was managing a software development team tasked with building a custom ERP system. That experience drove me to learn more about software development. I took a Python web development course on Udemy and fell in love with coding. I decided to go all in and begin a massive upskilling journey, pivot my career, and re-tool my consulting practice. My motivation for making these changes was threefold:
- Explosion of custom software development. As Marc Andresson said “software is eating the world”. Not only does software continue to dominate the technology landscape but the maturation and proliferation of open source software and cloud computing makes it more cost effective to develop customized solutions that perfectly fit the needs of organizations instead of buying and shoehorning expensive off-the-shelf products.
- Faster transformation of ideas into viable solutions. Ideas are easy, implementation is hard. Being able to develop software empowers me to turn ideas into working solutions at a much faster rate.
- Filling the skill and experience gap. The struggle is real. As technology continues to disrupt every industry the shortage of skilled developers and experienced professionals increases. By cultivating software development expertise I can work more effectively with dev teams and agencies.
I currently do Full Stack software development where I'm quite comfortable building pixel perfect UIs or robust workhouse APIs, but what really excites me is combining my systems administrator and business intelligence background to focus on back-end development, data engineering, and DevOps implementations.
Why Hire Me
Full service consulting
Receive help with all phases of your technology project: from strategy planning and architecture design to solutions development and implementation.
Improve technology ROI
Make the right technology decisions and investments with guidance based on timeless principles of human psychology, sound business practices, and technology fundamentals.
Foster effective collaboration
I've led, hired, coached, and worked alongside tech professionals. My working and leadership style cultivates a calm and productive working environment.
Contact me today to discuss your technology needs.
Projects
This portfolio showcases various projects and code samples to showcase my technical skills.
Purpose
Social Tours is a platform for social media influencers to manage and monetize events.
Social influencers have a hard time organizing and connecting in real life with their followers/fans. Also many influencers are delivering value to their followers but don't know how to monetize it and start earning money as a social figure. There are many influencers (yoga, foodie, etc) that travel around to document and create/share their content, this lets them do that and systematically organize their schedule, location and events around that.
I managed the project plan backlog and provided senior technical leadership to the front-end and back-end development teams.
Features
- Sign up and registration for an account (social event provider).
- Ability to create events, open or exclusive.
- Fans can subscribe to an account and/or an event.
- Users have a dedicated page to display their events.
- Users can broadcast messages to subscribers (account and/or specific events).
- Users can accept credit card payments for exclusive events.
Goals
- Enable social influencer content providers to manage their efforts to travel and connect with fans.
- Gain experience participating in the full software development lifecycle in a group environment.
- Gain experience mentoring junior developers.
Highlights
- Developed a user registration system by integrating the Auth0 API SDK.
- Implemented a shopping cart feature by integrating the Stripe API SDK.
- Implemented text message notifications using the Twilio API SDK.
- Integrated Trello with GitHub and Slack to facilitate group communication and activity coordination with a central source for task updates.
Lessons Learned
- Using process mapping techniques to visualize and design features among a group.
- Conducting code reviews prior to merging pull requests for quality assurance.
- Pair programming with fellow developers helped reinforce coding and problem solving skills.
Purpose
DevDesk Queue is a platform that allows developers to both submit questions/tickets about various web development topics and assign other developer's questions to themselves to be answered.
DevDesk Queue solves this problem by connecting developers together in one central platform where all questions/tickets can either be submitted or reviewed by the entire developer community. Every question is available to any developer who wishes to assign the ticket to themselves, while also providing the same developer the ability to submit their own tickets to be reviewed.
My role in this project was as a backend developer and project manager.
Features
- Users can log in and have the ability to see tickets that are open for help.
- Users can create a new help ticket with a title, description, category, and problem-solving attempts.
- Users can follow any developer’s ticket.
- Users can search for a specific ticket by a reference number.
- Users can mark the ticket as resolved, or re-assign the ticket back to the queue if I cannot resolve the ticket.
Goals
- Provide an organized way for developers to help each other.
- Build a repository of developer questions and answers for future reference.
- Showcase data modeling and backend development skills.
- Gain experience participating in the full software development lifecycle in a group environment.
Highlights
- Designed the application data model.
- Developed endpoints to manage ticket information.
- Designed reusable data models.
- Developed custom middleware to manage data validation.
Lessons Learned
- Designing a database schema for a ticketing system: how to think through organizing and linking information.
- Abstracting the data models that are reusable for multiple endpoints.
- Using test driven development to create more robust code.
Purpose
I applied to Shopify’s Backend Developer Internship and was tasked with either building an application from scratch or submitting a previous one to showcase my programming skills. I decided to split the difference and weave together previous smaller projects to create an app used to find and save images.
Features
- Search images using my custom search engine.
- Navigate through search results.
- Select and save an image to your library.
- View and delete images in your library.
Goals
- Rapidly build a media management app to highlight my full-stack web developer skills.
- Leverage the benefits of a microservice architecture by building a backend that uses APIs from previous projects.
- Build a project that showcases my Java programming knowledge and skills.
Highlights
- User authentication and role based access. (Java/Spring Boot)
- Custom image search microservice with Google Search Engine integration. (NodeJS/Koa)
- Microservice which allows users to save and delete searched images. (Java/Spring Boot)
- Developed custom middleware to manage data validation.
- Conditional UI rendering based on user authentication and role-level access. (React)
- Event emitter functionality in the UI to manage state across different components.
- Automated testing, build, and deployment pipelines for CI/CD.
Lessons Learned
- Rapidly develop and deploy a full-stack application using multiple programming languages and frameworks.
- Implementing a microservices architecture for the backend.
- Building a user authentication system using Java and the Spring Boot framework.
- Integrating the Google Search Engine api into a NodeJS project.
- Implementing the event emitter approach as an alternative for UI state management without using complicated prop-drilling or complex 3rd-party libraries.
Purpose
Non-profit organizations that deploy workers all over the world need a way to collect success stories from their various locations, rather than losing them through email, Facebook messages, etc.
My role was to create a landing page and a UI design for the app.
Goals
- Provide an accessible entry point for Bountiful coordinators to log into the app.
- Establish an online presence that attracts donors and volunteers.
- Create and implement a UI design system to give the app a consistent look and feel.
Highlights
- Used the LESS CSS preprocessor to simplify code management and create modular UI elements.
- Designed the UI style guide; reduced development time by 50%.
- Created a carousel component from scratch using vanilla javascript.
- Developed reusable UI components with React styled components for front-end application.
Lessons Learned
- Using color theory in creating a color palette for the UI design.
- How to create React components and use the styled components library in a day.
- How to build and extend a reusable UI design system.
Contact me to discuss your project needs.
Skills
I have experience in a wide variety of technologies throughout my career. My passion and focus is in developing infrastructure and applications that drive data analytics and process automation.
The listed technology stack are tools that I have used in some form or another in the past 12 to 18 months.
But my most valuable skill is my ability to quickly learn and adopt new concepts and technologies.
Programming Languages
Backend Technologies
Cloud Platforms
Contact me to discuss your technology challenges.
Social Tours
A platform for social media influencers to schedule and monetize events with their followers.