The 10th Week – Data Point #3

The Project

This project (looking at Big Data for SCA), was the most daunting project I have come across once it was fully explained to me. I didn’t know loads about encryption or big data, only bits and pieces. I didn’t know how to use the toolchain we decided on, I didn’t know a lot. Over the last 10 weeks I’ve learned more in a short amount of time, more than I thought I could; just in this last week I am finally feeling like I have a grasp on the project as a whole. For v0.0.2 we are starting to implement some basic parts of the library, so that we can spend more time optimizing our solution in the future. Overall, I am excited to learn more in actually developing this project till it is completed in the coming year.

Jobs

At the beginning of this term I was applying for jobs and I am happy to announce that following graduation I have been offered an Associate Software Engineering position at a company called Liberty IT here in the UK. It is nice to have some recognition and reward for all the work I put into this degree. To anyone on the job hunt best of luck!

Tech

In my learning for this project I am working with h5py, hdf5 files, and numpy. Numpy was a technology I had heard of but never actually got to using, so it has been nice to expand my knowledge base in that regard. Learning hdf5 has been a learning curve, but h5py makes it easier. The most challenging part will not be so much the technologies but optimizing in our library.

Life

Have you ever been so stuck on a problem that you spent all day in a debugger only to realize you typed ‘j’ instead of ‘i’? — Me too. My advice to anyone taking computer science classes, or developing in general, is to get up. When you’re stuck on a problem, get up and come back to it fresh eyes. I’ll go for a walk or get a coffee or snack, which ever it is it lets me come back to the problem and solve it in less time than staring at a debugger for hours.

The Project and Beyond – Data Point 2

The project I am working on for my capstone is statistically based with lots of computation; this makes the project very math heavy. Luckily in computer science the computer does a lot of the math for you, but you have to make sure that it is doing the math correctly in the first place. I have had to do a lot of learning very quickly in this capstone project.

Side Channel Analysis (SCA)

Chip hacking. It sounds very cool, but practically, it takes a lot of equipment, knowledge and loads of time. Side Channel Analysis is reading the electromagnetic output of a process chip using an oscilloscope at different x, y positions on the chip. This output produces lots and lots of data that takes a long time to work through. That is why we are developing a statistical library to speed up the process.

https://www.researchgate.net/figure/The-side-channel-attack-measurement-system-setup_fig2_266657245

The Project

Processing these large data sets requires lots of reading from files. So the first step is figuring out which file type we want to use to increase our read efficiency. The next step is figuring out how to collect basic statistics in an accumulative way in one pass over the data. Then using these statistics to then gain insight into the SCA. Then the steps after that will be about optimization.

The Course

So far I have really enjoyed the CS46X course. It has caused me to do lots of thinking and solve problems outside of the scope of simply an assignment brief. The course is a good hybrid into industry work that I am looking to start after graduation.

Jobs

In the UK there are graduate jobs – jobs specific to people leaving university and entering the work force. I have currently been turning in coding challenges for these jobs and am hoping to hear back for an interview soon. One of them has the possibility to start work in the cybersecurity scene which I would be excited for.

Technologies

In the process of this project there has been a lot of learning new technologies. I’ve learned about different binary file types and the pros and cons of each: hdf5, sqlite, and zarr. On top of that I have learned more about how the python language works and the global interpreter lock.

Flat White

Every morning I get up and make a flat white and I use it a reminder to take one day at a time because with projects this big and other classes on top of that while applying to jobs and doing code challenges for said jobs can be overwhelming. So to people who have a lot on remember to take one day at a time and do what you can. 🙂

https://unsplash.com/@nate_dumlao