I am an expert full-stack web developer offering 10+ years of experience building and maintaining complex, mission-critical web applications. I am fanatical about creating quality, user-friendly, secure, and scalability applications. I am a skillful problem solver finding innovative solutions to problems using a variety of tools, algorithms and best practices. I am a team leader with well developed skills in prioritizing, organizing, decision making, time management, and communication. I am an agile software developer, accustomed to gathering and analysing business requirements, translating requirements into technical solutions, implementing design, testing and evaluating usage.
I have over 10 years of mastering PHP. I've worked with several different frameworks, including Laravel, Phalcon, and Smarty. I've also designed and built my own framework. Over the years I've learned to use best practices, and optimize for performance and security.
For more than 10 years I have used MySQL as my primary databases. I am experienced in performance tuning, query optimization, client/server connectivity, and database consistency. I have migrated several databases from MyISAM format to InnoDB storage engine to increase performance and betterment of integrity constraints. I have a strong understanding of MySQL’s underlying storage engines, such as InnoDB and MyISAM. I also familiarity with other SQL/NoSQL databases such as PostgreSQL, MongoDB, BoltDB, etc.
I have spent 10 plus years mastering git. I've implemented a git centralized workflow into a team where no workflow was being used. I've built several git hooks to facility workflow, automate testing, and log changes. I've learned to recover from situations others are not sure how to get out of.
I have been using Go professional for over 3 years now and has become my language of choice for all future projects. The most notable project I built was a Go Windows service that communicates between the browser and input from USB devices such as scales, scanners, and printers. This service would read continuous input from a USB connected devices, and relay state information back to the browser.
I am accustomed to working with the many of the most popular DevOps systems, including Docker. I have migrated several traditional, L.A.M.P stack systems to Docker.
For more than 10 years I've mastered several web architecture and development frameworks, including jQuery, React, Bootstrap, SASS, Sencha Touch, Ext Js and, Polymer. I know how to write efficient and robust HTML/JS applications that work on all major browsers.
TODO: designing systems from the ground up secure systems designing flexible api's
familiar with tools standards and security, best practices
Content management systems (CMS’s) are used by the vast majority of complex websites online. They make it possible to update content on a website without having to dive into the code every time to update the site’s entire structure (because they do that for you automatically, to put it in layman’s terms). The most popular CMS is WordPress. If you’re trying to decide on a CMS to learn, WP is a great place to start. Granted, picking a less-popular but still widely-used CMS (like Joomla or Drupal) can make you very valuable among a smaller target client base. Knowing how to develop themes and plugins for your CMS of choice is a very valuable skill whether you want to work for someone else or freelance. There are huge markets for premium themes and plugins, and pretty much any dev agency you apply to will require some CMS knowledge. Companies hire CMS developers to work internally on their websites, too.
scrum/agile git workflows
releasing updates with minimal down time (if any) You will own the Release Management life cycle which includes scheduling, coordinating and the management of releases across the enterprise for multiple applications across various portfolios. The releases can be inclusive of application updates, operating system patches, security improvements, hardware upgrades, Projects and Programs. Where necessary you’ll provides tools and services to help product management and project teams manage and deploy releases into production. You will be responsible for implementing and managing release processes for code through development, test, and production environments. The Release Manager Job function works collaboratively with all participants in software development projects and is supportive of developers and testers as they set up their build dev/test environments. This position also works with IT management to improve the software engineering processes and practices associated with continuously building, deploying, and updating software and environments.
It doesn’t matter what your job title is in tech, you’re probably going to be working with other people on a team. At Skillcrush, everyone is part of a team. Teams tackle projects together, as well as on their own. It’s vital to be able to work with others effectively and efficiently. But most jobs are like that, in one way or another. Even school is like that (group projects, anyone?), so you already have some experience working with others!
Customer support = problem solving. Web development = problem solving. Web design = problem solving. Marketing = problem solving. It doesn't matter what kind of tech job you’re looking for, you’re going to need problem solving skills. Virtually every area of tech focuses on coming up with solutions to problems. That might mean figuring out how to get more leads or customers in marketing. Or it could be how to make code work the way you want it to as a developer. But you solve problems every day! When you’re getting ready to apply for a tech job, think through a handful of times you’ve solved problems professionally (at work, while volunteering, or even in school) and be prepared to talk about them. You want the hiring manager to walk away from the interview feeling like you are ready to get out there and fix their biggest problems.
So much of tech revolves around being organized. From keeping your code neat and tidy to staying organized on a big project with multiple team members, you have to be able to keep everything in order. The same goes for planning. So much of what you’ll do in tech depends on being able to plan ahead and anticipate what you’ll need tomorrow or next week, and how other members of your team (or other teams entirely) need to work together to accomplish goals. When you’re interviewing, talk about any more complicated, multi-step, or long-term projects you’ve worked on to show off these planning and organizational skills.
A lot of jobs in tech revolve around data. The obvious ones are data analyst or marketing analyst, which both directly involve analyzing data. But developers also need to know how to analyze the data they’re dealing with, so that they know how best to work with it. And even in jobs like content marketing or customer support, you’ll be dealing with some data on a regular basis, even if it’s just things like how many visits your blog post got compared to the number of email leads it generated, or the overall satisfaction ratings of your customer support contacts. If you excelled in statistics in high school or college, you’ll probably have no problem with data analysis. But even if math wasn’t your strong suit, drawing basic conclusions from data is more common sense than anything else. Showing a future employer that you’ve used data to make decisions on your personal blog, at work in another industry, or even to do something like grow your Instagram account can go a long way.
Tech changes fast. What you learned six months ago might not apply next month. Or at least it might have changed significantly. If you work at a startup, especially, things change all the time. Your job description when you get hired might take a complete 180 three months down the road. You need to be comfortable changing and adapting as your company and the industry at large change. Showing in a job interview that you’ve been comfortable making major pivots in your role is a great strategy!
Are you a master of Google? Are you great at finding information almost instantly (I call it Google-Fu)? If you are, then you’re already one-up on a lot of other tech job seekers. Being able to find the information you need to do your job is a key aspect of working in tech. The tech industry is constantly changing and the only way to keep up with it is to research things as you need them. I’ve heard of companies who won’t even hire someone who fails to look up answers or solutions on Google!
A lot of jobs require you to manage projects, and tech is no different. If you’ve spent time as a manager, you probably have these skills already, and they’ll carry over well to the tech world. Project management skills really encompass a lot of other skills, including the ability to multi-task, leadership skills, effective communication skills, being detail-oriented, and negotiation skills. To make your skills stand out even more, familiarize yourself with the most popular project management software options in tech, like JIRA and Basecamp.
Mar 2016 to Present
Maintain and enhance custom e-commerce and inventory management software. Built tools to manage inventory, purchase shipping labels, update store content, and chart statistics
2009 to 2011
Lead a team of developers in planning, designing, building, and maintaining a suite of eLearning tools.
I took several classes and developed a strong math background. My emphasis was on CAD programming and optimization.
The most notable courses I took were data structures, database design.