Hello There...
My name is Jeremy, and this is my Profile. If you are interested in who I am and what I do, then this
section is for you. (hehe, guess I am a poet)
I live in a small town just outside of Warrnambool in the south-west region of Victoria called Koroit.
It is a great place to be, but someday I would like to try living in Melbourne. The big city feel gets
me every time I visit, and the ability to get literally any food I like at any time I want is a huge bonus.
Random bowl of fresh cheesy Pasta at 3am, no worries! Midnight Steak run served with chips and veg, not a
problem in the big smoke.
What do I do for work? I work in a butcher shop. I am not a Butcher mind you, nor am I an apprentice.
To be completely honest, neither myself nor my employer has a proper job description for what I do. I
usually deliver meat and make small goods. My life revolves around fulfilling orders, making burgers,
and linking sausages for a living, among other things.
Outside of work I usually stay home. I do go out on occasion, however, I am "right at home" just staying
at home. I play PC games, usually of a competitive nature playing against others, but a great story focused
campaign is just as appealing. Rocket League has been my go-to lately. If you do not know what Rocket League
is, it is basically Soccer, but the ball is huge, and you are driving a rocket powered car into it. My
description really does not do it justice, it is much better to experience it for yourself if you have not
yet had the pleasure. Another great game I play is Rust. There are not enough words to describe the rage-inducing,
addictive, and purely satisfying gameplay of Rust, you really must play it to know what you are missing.
I try to visit my Dad, and my dogs every Sunday. It is the only day my work does not open, so I am always free
then. Although I did get called in once when a fridge broke down, I was hung over and not happy. My dad has
a couple of cats as well as horses and chickens, but I am most certainly a dog person. It is simple really,
dogs will always follow you and do things with you, cats are downright lazy, and chickens just lay eggs and
make noise. I like horses, but they do not like me, unfortunately I am allergic to their hair. Reggie, the
oldest dog is a 'Bitzer' breed. He has a 'Bitz' of everything in him. His heart and personality are very
much pure though and he truly is my best mate. Buddy is the other dog, he is a big Alsatian, and loves a
good cuddle. It is much easier to pat him too because of how tall he is, I do not have to reach down. Reggie
is the better foot baller; he can take a mark like no other. And Buddy will outlast even the strongest
pitching arm when it comes to playing fetch.
I am currently studying a few subjects through RMIT and I intend to eventually study the Batchelor of Information
Technology. It is obviously a little more challenging than the High School education I am used to, but it is so
much more rewarding. I am an absolute tech-head as far as I know. I build computers, I code, I argue that
Android is superior, and I am usually the one who is called upon when somebody I know has an IT issue. I love
trading Cryptocurrencies like Bitcoin and some other Alt Coins like Ethereum and especially Cardano. I am not
going to explain what a cryptocurrency is as there are so many other resources online that do a much better job
of it. The point is, it is a great way to make some extra cash and lose it if you are not careful.
If you made this far, I could only assume I did not bore you too much. There is a whole lot more info about me crammed
into this Profile, I encourage you to keep reading. Thank you for your time.
- Jeremy N Bouchier
Image of Jeremy Bouchier (me).
Pique your Interest...
During my intro, I briefly mentioned a few interests of mine. tl;dr I am very much interested in playing PC games, modding PC games, building computers and a whole plethora of other IT related things. That said, growing up I had nobody around me who knew much about 'techy subjects' and my small-town society did not have much to offer either. Yet here I am studying IT at a University level. So, what gives? What exactly is my interest in IT?
Fair warning, I am about to backtrack and ramble a little bit so feel free to scroll down, I will have a quick recap to save you some pain...
I got my first real computer back in high school at the start of year 7 - it was a cheap and slow laptop that I adored until it died a few years later. I had not really used a computer much before then and at the time the smartest phone I had ever owned was a $30 Nokia rip-off from Aldi. Booting that machine up for the first time was a brand-new experience for me, one that had lasting effects. I spent a lot of time learning everything that my laptop, and computers in general could do, and eventually I realised a lot of things are simply better when you do them electronically.
It was not long before I was given a copy of Halo: Custom Edition and my love of games began. I played Halo, I modded Halo... and then I grew tired of Halo. It was fun while it lasted but it was time to try something new. Then Minecraft was brought to my attention. What. A. Game. Thanks to Minecraft I developed an interest in the Java Programming Language and now almost 10 years later I still use Java for personal/hobby projects. Halo made me love games and Minecraft sparked my interest in coding.
A quick recap before I continue. I am a gamer and I love coding. Java is my strong suit, but I have tried c#, C++, JavaScript and if it counts, html/CSS. And this all started at the beginning of high school from an underpowered school issued laptop. Go figure.
Today I am a student at RMIT studying IT. My PC has become my entire personal life to the point where if I could get paid to use it, I would happily quit my job and do so. I believe RMIT can make that a genuine reality for me. I love the constant problem solving that comes along with coding, so who knows, maybe Software Engineering would be a great job prospect for me. Or it might not, either way I would be more than happy to try it to find out. I would not pass down an opportunity.
Hopeful Future...
When somebody asks me "what I want to be when I'm older", or something similar, its always easy for me to reply, "Software Engineer" or "Game Developer". They are valid answers, but barely. Saying Game Developer is so open ended, and there are a few areas of software I would actively avoid like the plague, so what is an ideal job in my opinion?
Let us look at one, shall we? And full disclosure, I am in no way qualified to meet any of these requirements, yet!
Senior Software Engineer, Graphics - Riot Games
www.riotgames.com
I like Games, I like software and I especially like spending countless hours trying to render a triangle using the Vulkan Graphics API, only to have it fail... (That last point about the triangle is a lie).
Let us be serious though, C/C++ and Graphics APIs are an area I have little to no experience in, even the Mathematical knowledge required for 3D Graphics is not entirely clear to me. I can only dream of one day writing my very own basic 3D game engine for games no one will ever want to play. But that’s okay, hardware accelerated graphics is a skill that can be applied outside of the games industry so I would not be locked down to a (not so) small pool of available jobs anyway.
Riot Games is a multi-studio and multi-national Games Developer Headquartered in West Los Angeles, California, United States. They have great benefits for their employees and my interests align well with theirs.
As a Senior Graphics Software Engineer, I would be responsible for handling the rendering of content from within a game engine - that is as simple as I can put it. I would be working with simulated 3D content and projecting it on what is essentially a 2D plane - all with visual perspective (far away objects appear smaller etc.). An understanding of trigonometry and in-depth knowledge of various graphics APIs (DirectX, Vulkan, OpenGL etc.) is a must. And then there is all the colours of the on-screen objects. Vertex Shaders must be written in different languages depending on the Graphics API being used and that comes back to knowing in-depth the Graphics API you are using.
Riot want somebody experienced in Graphics Programming for this role, at least 3 years as a requirement. And of course, C++ experience is needed. I do not have the experience, or the skills they want. But I have the determination to get there.
Snapshot of job advertisement at Riot Games.
Riot Games n.d., Senior Software Engineer, Graphics - VAOLRANT, Riot Games, viewed 17 March 2021,
<https://www.riotgames.com/en/work-with-us/job/2375046/senior-software-engineer-graphics-valorant-los-angeles-usa>.
Dont test Me...
I took a Myers-Briggs personality test, here are the results.
Snapshots of my Personality Results from 16Personalities
16peronalities.com n.d., Jeremy – Turbulent Adventurer (ISPF-T) 16Personalities, 16Personailites, viewed 17 March 2021, <https://www.16personalities.com/profiles/6a9be93cb9f72>.
I also took a 'Learning Style' test from how-to-study.com. According to the results I'm a Visual Learner.
Snapshot of my Learning Style Assessment Results from How-To-Study.com
How-to-study.com n.d., Learning Style Self-Assessment, how-to-study.com, viewed 17 March 2021, <https://www.how-to-study.com/learning-style-assessment/quiz-result.asp?sg=7C8DB35214873BEC064E-4001-4B91-9448-50DE325E61C9AAEB03B8-A938-4DBC-A0E2-C989D5531E95ECEDA516-87F0-4E5A-93A1-90EEC18FA6A91507CF02-76AD-4268-8480-29967930B0E8>.
And lastly I took a Creativity Test:
Snapshot of my Creativity Test Results from TestMyCreativity
testmycreativity.com n.d., Free Online Creativity Test - TestMyCreativity, TestMyCreativity, viewed 17 March 2021, <http://www.testmycreativity.com/>.
I have not written a lot about these tests because I honestly do not think too much of them. I do not believe the results mean anything useful. You cannot develop a critical opinion about someone based upon a generic online test.
Furthermore, I would never consider these tests to find "appropriate team members" as so many others do while gathering people for a project. If you really want to know somebody's personality you should interact with that person for yourself and form your own opinion.
The creativity test says that I am slightly below average when it comes to creative thinking. However, it would not be wise for me to limit my involvement in creative team tasks. The same logic applies for a high creativity score i.e. I should not jump in and take over a creative team task because "I'm better according to a test I found on the internet".
The point is, do not sell yourself short because a test says you are not good enough. But do not get a big head either if the test goes in your favour. I personally would much rather work with someone who is open minded and is prepared to consider the thoughts, ideas, and opinions of others even if their ideas make more sense.
Now there's a Thought...
I have an idea. A Password Manager that never has to know or remember your Passwords. It does not seem like much, and it is quite simple. But think about it, this would eliminate various security issues with traditional password managers. There would have to be some trade-offs, security comes at a cost of some convenience, but the target audience for such a product would start of at the enthusiast level. I have some of the details, and a working concept already developed, and I hope to only improve this idea over time. What has sparked this idea? Good question.
The main drawback of most Password Managers is while a user’s data is (hopefully) encrypted, it is still stored somewhere. My data gets moved around all the time, too i.e., databases and my logged in devices and browsers get synced and my data passes through the internet. Not to throw Google under a bus, but all my passwords in my Google Account are sitting in multiple, targetable areas and no amount of security is flawless, not even theirs. I have not even mentioned the trust issues that come with a third party (such as Google) having access to my credentials. I must trust them without question. I propose a new type of password manager. The idea is simple. You have a Master Password of your choosing. You have a 15 digit long Random Salt (the hashing kind) and you have a “service name” for the password you are trying to generate. For example, the service name might be “facebook.com” if you are generating your password for Facebook. You then generate a pseudorandom password using these details.
Current Password managers require you to login ironically with a password. My Password Manager does not require users to login anywhere, but everything does revolve around users knowing their Master Password. It must be remembered, it cannot be recovered and changing it will break all your passwords. This is because the Master Password is used to generate your managed passwords. The Service Name also must be remembered because it to is used to generate the desired password. The Salt is remembered locally by the Password Manager. You can change it, however, just like the Service Name and Master Password, it is also used to generate your passwords. Even a small change or error in any of these details will produce a wildly different result. However, you can use the exact same information repeatedly to predictably produce the same password whenever you need it. At the core of the generator is a SHA-256 hashing algorithm. If you are familiar with salting hashes, then you already know the principle behind this idea.
sha256(mPassword + sName + salt) = uniqueOutputByteArray
You then process that Byte Array into a 16-character long Password. The byte Array contains 32 bytes, or in this case, 32 Signed Integers. Every first and second Integer is added together to produce a Character Code.
int0 + int1 = code
code = code % characterArray.length
if (code < 0) code += characterArray.length
The character array is a 1-dimensional array containing all the available characters that a password can be made up of. ‘A-Za-z0-9’. In the end, you are left with a unique 16-character long password.
This system can be implemented in basically any programming language without any dependencies or libraries if so desired. But there are reasons you may not want to use such a product.
The big one is you must manually enter your master password and the name of the service you are wanting to generate a password for every time you want to login to said service. This product is designed to avoid storing credentials and as such, you do not get any of the advantages of having your credentials saved. At best, you could maybe auto fill website domains as the Service Name, but that is it. Furthermore, you must remember and manually provide your username for services every time you want to login anywhere.
Another drawback is portability. If you wanted to use the password manager on multiple devices, they all must share the same seed. If not, they will produce different passwords for the same credentials.
And lastly, if a generated password you use for a service (such as Facebook) is found out, you cannot really change your password without either changing the service name you are already used to using; or changing your Seed; or changing your Master Password. Changing either the Seed or your Master Password will break all your other passwords, so it is a last resort.
Everything else is a benefit, however. You do not have to trust third parties with your credentials. No information is ever stored (beyond your seed – optional) so none of your data can be leaked. You always have strong, unique passwords for all the services you use and all you must remember is 1 single password and a basic service name to identify which password to generate next. Your Master Password does not even have to be a good one.
As stated above, all of this can be developed with almost any programming language. I have made working concepts with both Java and JavaScript and I could very easily make another with C++ within a few minutes. It is all software based; no special hardware is required. You would need to know the basics of cryptography and know the desired programming language/platform, but no other special knowledge is required. This really is small and something simple that I hope can help people on a large scale. Full disclosure here, I believe the best way to protect your accounts is with 2 factor authentication (2FA) and this password manager should never be an alternative. But perhaps it can help people strengthen their passwords and provide extra security where 2FA is not available.
Thank you for reading my idea.