Web development is my main area of focus. Starting back in 2015, I’ve worked with many different clients for many different use cases, from semi-static websites to dynamic industry-leading web apps. Leaning on these experiences, I’m very confident I can tackle any web development task thrown at me, and I have yet to find myself with a task I’m unable to complete. Below are my most-used libraries & frameworks.
Angular / AngularJS
My go-to framework for webapps. I really enjoy working with Angular; the flexibility, number of well-maintained 3rd party packages available, in-depth docs, and my familitierty all make it an enjoyable framework to work with. I also have experience upgrading an AngularJS site to Angular. I was using AngularJS before Angular existed, so I’m familiar with both frameworks and know what conversions are needed.
jQuery
A library I use less and less each year. Originally, attempting to make a website without jQuery was a world of hurt, but now with how far JavaScript has evolved and the self-sustaining nature of frameworks, the need for it has significantly decreased. Now, I use it mostly for smaller semi-dynamic websites and for prototyping.
Leaflet/Google Maps
I enjoy working with maps quite a lot, which is probably obvious by the existence of my Geospatial Manipulation service. When a mapping library is being researched, I always pull for Leaflet when possible. It’s open source and has many official and unofficial 3rd party plugins, allowing it to be extended much further than Google Maps.
Bootstrap
I’ve been working with Bootstrap since 2016, I’m very familiar with both its CSS classes and JavaScript methods. Since bootstrap works best when its HTML layout is used, I prefer to use it sparingly when possible. From my experience, there ends up being a lot of useless containers set up just to make Bootstrap happy.
WordPress
I’ve been using WordPress since 2015, mostly the .org version, but occasionally the .com version as well. The following is a list of some of the more complex tasks I have done in WordPress, aside from the usual layout setups and choosing a theme; added forums, created a custom theme as a child of an official WordPress theme, reduced spam comments and posts to 0, converted 800+ users from ExpressionEngine to WordPress, and added ReCaptha 3 to the login process.
I feel extremely comfortable working with geospatial data. I’ve worked on a large spectrum of geospatial projects, from simple maps with data points, to complex route optimization and tracking applications, and I’ve enjoyed them all. My prefered mapping environment is using Leaflet as the actual map framework and using MapBox for map features such as specialized tiles and reverse geocoding. Most companies have concerns about the cost of mapping, which can add up rather quickly. One company asked me to look into the pricing and see if I could find a way to lower it, as they felt the current fee was unacceptable. After looking into it and making some changes on both the front and back end, I managed to save the company roughly $1,400/month.
If I’m not getting enough of a geospatial fix from work, I volunteer my skills. Below is a list of some of the volunteer work I’ve done:
- Albania
-
- Map buildings for local first responders to 6.5 magnitude earthquake
- Ukraine
-
- Map routes for residents and emergency responders to use after a munitions factory caught fire
- Rwanda
-
- Map buildings for a rural access development project
- Philippines
-
- Map buildings and routes for emergency responders and residents to use in preparation for typhoon Ompong
- Canada
-
- Map ponds and field paths for rural emergency responders in Saskatchewan
I enjoy prototyping so much. I take it as a challenge to make a website look fully-functional when in fact, it isn’t at all. Most of the time when I create a prototype, it isn’t so much used in-house, but to go and show off to various stakeholders. Due to this, I’m often told to make it look “as realistic as possible, they shouldn’t know it’s fake”. No pressure. In these cases, my go-to solution is to create a quick website using jQuery, and create real-looking fake data in a JSON file. On first load, the fake data is moved to the browsers local storage, and any modifications are saved there as well, safe if a page reload occurs. It looks quite convincing, and gives everyone a realistic look into what the product could be like.
I also have my fair share of experience creating mockups and wireframes (I use Balsamiq Mockups for this). Having created so many, I have the process down to muscle memory. I get a vision of the page in my head, and a few dozen keyboard shortcuts later, it’s on the screen. When the mockup or prototype is complete, I go back through and add page links to all reasonable places help in navigating.
The applications I develop are mostly utilitarian in nature, used in-house by the company to serve specific purposes.
For example, at one job, we were having issues with a server going down and not being notified. I created a monitoring server using C# that had a few nifty features such as total customization. You could add server IP addresses for it to check, as well as API calls, and assign a severity level to each in the case of an error. You could also add contacts and assign what types of errors they would be notified of (server, database, ui, etc) as well as the severity level they would receive the notifications, and even select with method of notification they would receive. I added three notification methods, email, sms, and an automated dynamic phone call. The phone call was reserved for max-level severity to ensure it reached everyone it needed to, regardless of Do Not Disturb settings. The call would state the error, how many times the error occurred, and the time the error first occurred.
When a slick-looking client-facing application is needed, I use Electron. Electron uses JavaScript, HTML, and CSS to create applications, which as you can imagine is music to my ears. Election applications are also cross-platform, just to add one more reason why I enjoy using it.
For mobile applications, I generally like to stick with PhoneGap/Cordova, where the app is built using web technologies then compiled into a regular app. If you’ve read any of my other services, this won’t be much of a surprise. I’ve built/worked on a range of mobile applications, from simple onboarding applications to complex apps using GPS and NFC features. I also create mobile apps for pure personal convenience. I made an app to update the stats on the home page, just to make life a little easier.
There are many strange bugs that occur when creating an app using web technologies; facing a white screen with no errors is not uncommon. Having experienced many of these fun issues, I know what to look for and how to properly debug them to figure out the problem. At Jobbee, we used Angular on top of Cordova. The amount of issues we ran into getting it all set up was almost comical, every move we made resulted in another bug. After quite a lot of debugging, I did manage to get it running smoothly. One of the main issues was a missing dot in the base url in the index file, which was generated by Cordova. It’s annoying issues like that I now know to look for.
Enterprise-grade server hardware with a reliable and predictable monthly pricing structure. You won’t be caught off-guard when you see the bill
As an official APN Consulting Partner, I am able to offer the same features as Amazon Web Services, and you are able to use the same hardware used by Netflix, Airbnb, and Expedia.
Check out the pricing calculator below to see what your potential costs would be:
I’ll handle your domain and everything relating to it.
If needed, I can assist you in either the setup or transfer of your domain.
NOTE: The cost of this service DOES NOT include the cost of the domain itself!For domains, I use Namecheap, I’ve found their prices are consistently fair and their service is transparent. Other domain registrars force you to jump through a series of hoops if you want to transfer away from them; Namecheap does not. This translates to you as well, if you ever want to take control of your domain, I will transfer it to you for no fee.
- Single Site
- Perfect for hosting a single WordPress website
- Multi Site
- Useful if you want to run more than one WordPress site concurrently
- Cost structure is $30 base + $10 per additional website
- Single Site Recommendation (minimum):
- 1GB RAM / 1 Core / 40GB SSD
- Multi Site Recommendation (minimum):
- 2GB RAM / 1 Core / 60GB SSD
Does not include traffic resulting from attacks.
SSL
SSL (or digital certificates) are a very important part of internet security. They encrypt the connection between your website and its visitors. Aside from providing security, they also improve your websites SEO ranking, display a icon in the address bar, and activate HTTPS.
- None
- The connection between your website and your users will not be encrypted
- Website only
- The connection between your website and your users will be encrypted
- End-to-end
- The connection between your server, website, and users will all be encrypted
HTTP/3 is the latest HTTP specification, and you can become an early adopter with no configuration needed.
If your website has SSL, but some of your content is loaded over a normal HTTP connection, an icon like this will appear in the address bar. To prevent this, all content (if possible) must be loaded over HTTPS.
If you don't want the hassle of checking every linked content on your website, selecting this will automatically rewrite it for you.
Security
Catch threats before they happen. Different actions occur depending on the identified threat; known attackers are blocked, suspected attackers receive a ReCaptcha to double-check if they’re human.
This acts as very good hands-off top-level security. While it will not catch every threat, it will take care of the bulk of them.
Automatic challenge requests given to users who match patterns of known bots.
In the event of an attack on your website, let me know and I’ll set into Attack mode ASAP. An attack could take many different forms the most common being a DOS/DDOS attack. No matter what type of attack, the goal is to cause some damage to your website, even simply overloading it with requests.
Attack mode presents all visitors with a challenge request before entering and raises general secuirty to a ridiculous level. This allows real users to still get to and use your site, while preventing the attackers from ever arriving.
This service is charged monthly regardless of use.
If you do not have the service but find yourself in need of it, it costs $100 per use.Automation
Google Analytics is used to gather information on users that use your website. Usually, some code would need to be added to each individual page manually in order for you to see your users' habits.
If Automatic Google Analytics is set up, you won't need to add any analytics code to any page. I'll create an analytics dashboard where you can view all the data.
Brotli is a generic-purpose lossless compression algorithm with the best currently available compression ratio. Using Brotli will increase the speed of your API calls, and since it's automatic, you won't have to touch any code or configuration.
Minifying files removes all unnecessary white space and comments from a file, reducing load time. Selecting this option makes this process automatic.
This will automatically locally save data users have entered into a form but have not yet submitted, even after a page reload. Useful for large or detailed forms.