About

I'm a software developer. Check out my github.

Took a break from software development for a bit in order to experience more of life. Now im back and ready to crush it! My hobbies are playing the Magic: The Gathering card game, video games, and strength training. Admittedly I have let the strength training fall off a bit. I kindof enjoy watching the Atlanta Falcons, but it's been tough ever since the dreaded 2016 Super Bowl.


I consider myself a team player first. I think It is very difficult to overestimate the value of strong communication. If given the opportunity, I know I can prove myself.

Projects

Planeboard Real-time multiplayer Magic: The Gathering web app using Go, React, and WebSockets. Built the backend to manage rooms, players, and game state with concurrency-safe Go logic, and implemented a responsive React frontend for gameplay interactions like deck viewing, dice rolling, and card scrying.




AI Practice Site where user can drop in an excel file to train a machine learning model and calculate predictions. Developed without a machine learning library to help myself learn.




Bonk A musical idle game inspired from pendulum polyrhythms. Available on Steam. Intended to be played in the background with sound that allows for focusing / concentration. Created in Unity with c#




Chess AI Reinforcement Machine learning model that taught itself the rules of chess. Not intended to be any good at chess, just a project to see how difficult it is for machine learning to train a model to follow the rules of chess. Created with TensorFlow. Machine learning coded in Python. Front-end with html/css/js. Leveraged Google Colab to train the model. I think in order to train it 'better' would require more resources, maybe something like Google Cloud Run. Also published an interface with Docker but I took that down as its not really useful.




Space Attack - Stop the Alien Invasion! iOS game developed with SpiteKit. Worked with a friend for all the artwork. Features included: accelerometer controls, GameCenter achievements, High-Score board, multiple weapons(guided missle, machine gun, laser, chain-lightning), upgradable weapons, music, sound effects, power-ups(shield, damage-boost). Now unavailable since I let my apple developer license lapse.




Type - Text editor

macOS Text Editor focused on markdown. Designed to support multiple languages, but will focus on markdown by allowing a web preview. Multi- threaded support on syntax highlighting and code grouping to allow uninterrupted keystroke input when working with large documents. Supports code folding and drag-and-drop of code groups.




BWC - Barbell Weight Calculator iOS app where user inputs desired weight to lift, and then displays which plates to put on the bar. motivation for creating this was specifically for microplates support (plates less than 2.5 pounds).




World of Warcraft Addons
Made several addons for World of Wacraft. As you can see, my naming is very clever

  • TNEPIPVP - Changes targeting keybind to target players in player-vs-player instances
  • MLAOET - Supplemental addon to MouseLook. Automatically distables MouseLook when player begins targeting with an AOE ground-targeted ability
  • ASNIA - Turns on 'Always Show Nameplates' when player enters an Arena instance
  • BGWinRate classic - tracks battleground wins and losses




Company of Heroes Maps
I liked this game. So I wasted a bunch of time building custom maps for me and my friends to play.

Experience

iOS/tvOS Application Developer | Foothills Consulting Group
August 2015 – June 2018
In-depth video stream debugging. Investigation of segments using middle-man proxy (Charles Proxy). Worked closely with back-end team while developing next-gen application. Significant role in Mobile DVR support team, resolving P1 issues. Allowing customers to control their set-top-box both in-home and out-of-home. Leadership role while integrating Download-And-Go feature. Integral to Cloud DVR implementation. Enabling customers to have a set-top-box experience without hardware.


iOS Application Developer | Unbounded Solutions
June 2013 – August 2015
Took part in full Software Development Lifecycle of multiple applications from concept to production. Increased the scalability of the project by implementing Google Places API into the app. Incorporated a label printer with the iOS point-of-sale application; completed without the use of a ‘middleman’ AirPrint server. Refactored management executions of orders to be handled in the background without locking up the main thread and UI using GCD.


Since 2020, I worked as an HVAC Technician. I guess I needed a break from software development. DirecTV offered me a full-time position as 'Senior Application Developer II'. After that offer I decided to move back home to spend more time with my parents. I spent some time working on personal projects. I felt like I needed more world experience and working with my hands sounded like something I would enjoy. It didn't take long for me to realize this was not going to be my future. However, I told the small company that hired me that I planned on being there for at least several years and I didn't want to break that commitment.

Contact

email: charles.ward.johnston@gmail.com

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form