Graduation & First Month as a Software Engineer

June 26, 2021, 20:00

Hi, It's been a while :S

So, I graduated with a first class degree in computer science, wowoowow great!

My dissertation went well! I successfully (kinda) made a real-time face mask detection system that can run inference on the edge! using a Raspberry Pi and an NCS2. I made a video demonstration which pretty much goes over everything in a pretty concise format, you can watch it below:

Overall I had a great time at university and it's something I will always look back on, I feel like I and everyone else had a very unique & unconventional time here, not just with COVID, but also the constant back to back years of lecturers going on strike :/, overall it was nice though, met a ton of cool dudes :)


Okay now to the actual cool(ish) stuff, I got my first dev job!!! The company is called IOTechsys, they specialise in creating state of the art software platform technologies for the internet of things hence the name IOTechsys. They mainly focus on industrial IoT systems. Essentially they (now we) create edge systems to control, manage and monitor IoT devices, ranging from lights and sensors to industrial PLC's and stepper motors. The list of devices and types of devices are pretty vast.

So where do I fit in? I'm a part of the device services team, we deal with the implementation and maintenance of the different protocols of all the IoT devices. Essentially I work on the part of the system that communicates with the devices themselves, as each type of device has it's own way of communicating (via its protocol) my job is to work out how the protocol works and how I can implement/improve it within our system so we can control and manage the devices all within the same edge platform - edgeXpert.

So It's been over a month now since I've been working here, and ... I've learned ALOT. I'll start with the first mistake I made,,,,,,,,,,,


Both my expectations and the companies. I initially thought I'd come in and start coding within my first week. I. WAS. WRONG.
To my surprise, my first week at work mainly consisted of learning about the company and familiarizing myself with everyone. I sat through meetings about the company, learned about the tools they used and how they used them and also generally just learning about how to use the products they produce at a client level. Also learning how THEY use Jira and being told off when using it wrong (whoops).

After that, I was given my first tasks - reviewing user documentation of device services that I will be eventually working on. After suggesting some improvements I then was given a task to create a video demonstration of one of the device services, this was again given to me so I could familiarise myself with how edgeXpert works while also providing something useful for the marketing team. You can watch the video I produced HERE.

I say all this because, I initially had the expectation that I'd be coding within the first week, heck even within the first 2/3 weeks, but I was wrong, instead, I was just expected to L E A R N. Learn the process, learn the product, learn how everything operates, and just understand how everything works! whether that was through 1 on 1 meeting, looking at the codebase, or reading up confluence pages, my first 2ish weeks was just about LEARNING. having these initial expectations really did stress me out a TON, but thankfully my manager would constanly remind me that everything is ok and would calm me down ALOT.

Making Mistakes

One thing I hate is being told off, especially when It's for something stupid that I should've already have known. This is also something that would cause me a lot of stress as I always hated the idea of being a burden on people around me or my team. HOWEVER, one thing I quickly learned is that it's ok to NOT be perfect, especially during the learning period, also being told of is NOT a bad thing, the sooner you make a mistake and get told off for doing so, the sooner you won't make it again, and I think that's really important to remember.

Asking For Help

Another thing I really did not do much is ask for help. Throughout uni, I'd just learn to struggle through problems, and usually, It was easy to find a solution. Work is different, especially when the work we are doing is specific to us - aka google can't help lol - so all the knowledge about how to solve a specific problem can either be found by wasting 5hrs of your day or just by simply asking one of the other devs. I was slow at this; initially struggling through stupid problems on my own, slowly I am learning that It is ok to ask for help, even for small things, and MOST OF THE TIME other people enjoy helping out - gives them a break on whatever they are working on.

Comparing yourself to others around you

This one is simple, DON'T DO IT. I was the only recent grad who came in with zero prior work experience trying to compare myself to engineers who have been at the company for over a year that have had engineering jobs in the past. This led me to feel insane amounts of guilt that I wasn't doing enough work compared to them. My manager quickly set me straight and told me to S T O P.

Being Honest

The last thing is just being honest, be honest when you don't understand something, be honest if you are unfamiliar with how things work. Also just being open with how you are currently feeling, thankfully I have a really calm and approachable manager who I can go to at any time, he's understanding about the fact that this is my first job and can easily relate to what im going through which has really helped me out a ton reinsuring me and genreally giving me a huge boost of confidence :)

Closing Thoughts

So to wrap it all up. This is literally my dream job, I work in an amazing city, with really smart amazing people and I'm a software engineer. Things did catch me off guard but I've been slowly working through them, learning and understanding that what I'm going through is what all devs have gone through, so its okay. I'm looking forward to see what's next and can't wait to learn even more than what I already have :)

So uh yeah, this was a long one, if you acc read all this your kinda mad but uh ty?, anyway until next time byuebyebyebyebeyby

Final Year Part 1 Over

December 26, 2020, 00:10

Hi, semester 1 is over wawwww

So exams went pretty good overall, especially since they were open book + 24hrs. Some questions were difficultishh especially in Bio inspired computing. But we manage (:

So the big dissertation. I've finished the first half of the writeup which mainly consists of the background knowledge and how the overall project will be implemented during the duration of semester 2. I'm a little nervous as I'm still unsure my project is actually possible but again having the entirety of semester 2 will help a ton. Also worried about the quality of my report when it comes to the grammar side of things, hopefully it makes a decent amount of sense.

In terms of subjects, only 2 this semester. Advanced Network Security and Big Data Management. Both pretty important subjects, Security will most likely be fun Big Data probably not as much. but again both pretty important.

Oh yeh lockdown has started again. guess its another year of being trapped in my room doing uni work for 12hrs a day. cant wait....

Btw I need to switch from AWS to github pages. will do soon.

Anyway byebyebeybeybeybeybeybeybeybey

Thesis Topic Finalised!!!

October 04, 2020, 11:31

Well, kinda.....

Ok, so it's Sunday morning and it's the end of week3 of the first semester, this means uni is really starting to kick off rn, coursework coming left right and center and of course the final year thesis is still a thing that we all have to do during the mayhem.
Good news is, I've pretty much finalised my topic and it's COVID-19 related which is nice.

Essentially I'm going to create a Mask Detection Model that can run in real time and "on the edge" e.g. bringing computation and data storage all to one local machine, (instead of using cloud computing for example). In my case my mask detection model will run on a Intel Neural Compute Stick 2 connected to either a Raspberry Pi 3 or 4 with a camera module attached. My first goal of the thesis is creating the model and having it run in real time. Then in the case that the accuracy is bad or the network size is too large, or the overall performance of the model is too slow for the compute stick I will try and use various techniques of quantization and pruning to see which one is best suited for the application of mask detection.

Overall im really happy about the project proposal, I't does seem a little ambitious, however, as it's a topic that I actually find interesting im more excited to begin than anything else, I just need to get through the 'boring' part which is this whole literacy review, which I should be doing now instead i'm writing this (:

byebye you stalkers

The Final Year

September 16, 2020, 14:39

So, this is the start of the end. It's my 3rd day and I already feel like I've got lots to do!!

I'll start with my course choices and my reasoning behind them. For 1st semester I have chosen:
- Computer Network Security
- Bio Inspired Computing
- Data Mining and Machine Learning
And for 2nd sem I picked:
- Advanced Computer Network Security
- Big Data Management

Cyber security was something I was always interested in when going into university, so much so that I was strongly considering studying ethical hacking at Abertay University. I decided however it would probably be best I picked something more broad and less focused, keeping opportunities open and I'm glad I went that route. However It's always something I've been into, hence even in first year were for one of our courses everyone had to make an android App using MIT's App-inventor, I remember the majority of people created little games I felt like the 'odd one out' creating a pretty lame password manager. Um, but anyway yeh thats why I picked both security and adv security.

AI was something I initially wasn't too interested in until I reached 3rd Year were we did an intro to AI course. After learning about how important it is and will be, I was hooked and wanted to learn so much more than what the course originally taught. It was both fun and very challenging and it reminded me of why I wanted to study computer science in the first place.

With these course choices in mind, I have the option to get a degree with a specialism in AI or Cyber Security, or just leave uni with a standard CS degree. This all depends on my final year dissertation...

About the final year dissertation I'm trying to do something related to the covid-19 pandemic. Nothing confirmed or detailed yet, just throwing some ideas here and there. However I feel like it would be good, fun and interesting to do something that's relevant to current scenarios.


First Automated Blog Entry

July 06, 2020, 00:20

Well semi automated at best.

Ok, I know its been a couple of days again, don't mind me, just taking lil breaks here nd there no biggie.
Anyway stuff ive done over the last few days are again mainly website related, first I added more pics to my setup page, I still need to finish it, might just bash it out tomorrow, its not really even that important I just like me some of that technology stuff ygm? idk just thought it made this Website feel a little more personal, but it's just kinda turned into a place where I flex all my stuff. oh well it iz what it iz.

Anyway going back to the point, also added a site tracker to see how much traffic I've been getting on this website. you Get to see some cool statistics such as what devices people are using and what country everyone is from. It's pretty cool wont lie.

And finally the blog page automation. It's pretty simple really, a python script that appends some JS and CSS and also rewrites the blog.html to insert some HTML boilerplate in the middle of the file. (on line 90 to be specific). Nothing special but I will carry on working on it so eventually I wont have to touch my blog.html file and everything Will either be done on a separate markdown file or via a python user interface that I'll eventually create. Planning on making the python script an exe because permissions are a fkn pain in windows compared to linux. you can check out the python script here. It also auto gens the time stamps and so on so forth, you might have noticed the change in the order of my date stamps.... anyway. That's that.

So yeah, as shops start to open, im going to be spending less time indoors which means less time coding. That is during the day anyway. I still need to get back on flutter development, I've decided what my first project is going to be and it's something that my father asked me to create, so will be pretty cool to actually have a piece of software that someone actually needs to use day to day.

But yeh until the next time that is me off. Night

oh btw did you notice the cool lil scroll bar?

Website stuff

30th June 2020 19:35

Ok its been a while, took a bit of a break, again. can't blame me its the holidays and the weather has been niceeee, can't be wasting good days like that in scotland.

Okay! so I kinda sorted out my blog page, its a bit messy but kinda works, so immma keep it like this until I find something better. It does require me to manually add divs with unique numbering, but either ill automate it orrrr ill just find a new way to do it all. Preferably the blogs would all just be written in MD. Ill figure it out eventually, for now what I have is pretty cool. Also fixed up the cards on the setup page and just created a general template/layout of how everything is gonna be set. currently working on the mobile nav bar, it's kind meh rn.

Im gonna hop back on Flutter & dart development soooon, I was really enjoying the process of learning it. Ive had many project ideas during my initial time I spent learning which is a really good sign. Im just finding a balancing of enjoying my time off and learning. Afterall this is technically my last ever summer holidays I will ever have.

Also quick shout out to the homie Alakbar who featured me on his page, he has a pretty dope website and was super nice of him to add me in like that. It's also kinda my motivation to make my website more complete and at a half finished state atleast.

So yeh, not too productive overall, been out taking pictures and going on lil drives. Idk corona got me a bit messed up

This is the ends.

Flutter Day 1

25th June 2020 09:54

First of all if you are reading this and your name starts with a Y and ends with a N, go away

Ok, Good Morning, I created my first Flutter app and coded in dart for the first time!! I've learned a lot but also slightly overwhelmed by how different it is to code in dart, especially since I've only really done front end coding in HTML/CSS.

So following the tutorial from the Fluter docs I created an app that randomly generates startup company names by taking a random pair of popular words in the English language and displaying them in an infinite list view, This was done using an open source package called english_words. (btw just looking through all the open source packages available on pub.dev is getting me hyped). I extended the app to allow the user to save a word pair in the case they liked it. Link to app on github

So, some things I noted with Flutter, as i've said before it is pretty different from anything else I have used to code with especially it's structure:
Everything is based around what they call 'widgets'. so the text on an app is a widget the padding surrounding the text is a widget, the title bar of the app is a widget and the whole app itself is a widget.
So far from what I can tell there are two different types of widgets; Stateless Widgets - which are immutable so typically used for fixed variables such as titles or colors, and Stateful widgets - which typically expect some sort of change to occur within the application. When creating a Stateful widget however, two classes must be created; first a StatefulWidget class that creates an instance of a State class which is the second class you create. So actually the StatefulWidget class itself is immutable but the State class itself stays alive during the lifetime of that widget! Yea ik kinda confusing but its ok, we move thanks to VScode's flutter extension I can quickly generate boiler plate code to do all this for me :)

Something cool about flutter is how easy it is to test and develop full on native applications that are automatically cross platform, for starters simply plugging in my phone via usb to my computer allows me to test my app on my actual device! pretty cool. Also it's ability to test on cross platform is crazy to me, I can run it natively an IOS emulator, run it on my physical android phone, but also run it as a web app on my browser?? (beta).

Anyway yeh thats what I did yesterday, today im going to carry on with Flutter development and create more apps! Later on I might include code examples and talk through them rather than just being a giant wall of text, I still need to organize this page, lmfao ill do it one day. Anyway its a really nice day outside so im gonna go out and enjoy the sun

bye bye losers.

Starting with flutter

23rd June 2020 23:46

Ok, so i didn't do much yesterday woops, well I did stuff just nothing cs related, but today/tomorrow will be the start of my flutter stuff, I've fully setup flutter on my desktop, and now im going to setup on my laptop before I sleep, and tomorrow morning i will create my first flutter app, probably just a note taking app or some sort of planner. either way i will learn!

Also considering redesigning this website to something a little less serious, or I might just move this blog somewhere else, especially because it's more for me rather than other people. oh well just gonna see what happens. maybe work on this website in-between working on flutter stuff, sounds like a good plan.

Also decided to dual boot linux on my laptop rather than committing to one thing like i usually do. Reason for this is I like to edit my photos on my laptop sometimes and I use products from adobe so Windows is kinda necessary for me. But I've decided to choose ubuntu, ive tinkered with other distorts before, even dabbling into Arch and i3 fully customizing everything taking inspiration form r/unixporn (if you are unfamiliar it is sfw dw). But i feel like now i need something stable and popular as I need to focus on my projects rather than the tools im using. Just pick something that works and stick with it, no more tinkering no more fixing :)

Final thing, I need to add that banner thingy on this page kinda like the setup page, keep the theme consistent. Also need to figure out a better way to organize each blog entry hmmmmmmmm


First Blog Entry

21st June 2020 01:54

Ok, so this website is currently a mess right now, however, I really need to start getting my sh- together, I have just quit working at Amazon as a 'fulfillment associate' (Sounds cooler than it actually is). Now it's time to get back into coding, finally. So uh ill make a list, and hopefully update any progress? idk how this whole blog thing works but meh here we go:

  • Learn flutter
  • create a few apps maybe?
  • Mobile friendly this website pls
  • Do more stuff in Go
  • Brush up on OOP concepts
  • Brush up on data structures and algs
  • Consider migration to go-macaron or hugo
  • Fix up this website
  • Oh yeh fix up this website
  • Switch to linux again lol

Also need to start thinking about what im going to do for my final year project, that will be though. Anyway doubt anyone will read this just needed to throw my thoughts out there somewhere, heads been all over the place recently. List will most likely be more refined as the days go on...

ps yaseen stop being annoying