Why do I succeed? Lessons learned from a master student – HÃ¥kon Åmdal – HÃ¥kon Åmdal



Why do I succeed? Lessons learned from a master student – HÃ¥kon Åmdal – HÃ¥kon Åmdal

0 0


hakon-amdal


On Github hawkaa / hakon-amdal

Why do I succeed? Lessons learned from a master student

Håkon Åmdal

Thanks for having me. All I heard was free lunch, so I just had to come. Eivind gave me this title, not sure if this is exactly what he expected, but ill give it a go.

Håkon Åmdal

-

Computer science, class of 2016

-

Complex computer systems

-

Nerd

-

Love programming!

I know some of you, but you probably don't know me, so lets introduce myself. * Gå igjennom slide *

Volunteering

Part of abakus Fagkom, comittee for academic courses . Responsible for Lightning Talks that some of you guys have heard of? Abacash, payment solution for the office and Labamba, our basement in Moholt Fun-fact om bilde: Få med google XCom - web responsible Commencement, or utmatrikulering. Conclusion: I have a hard time saying no. Obviously.

University of Minnesota

2014-2015

Went to MN on fulbright. Decided to go somewhere with english, USA was one of the options. Wanted to get away from my friends. Pretty though in the beginning, but in the end, extremely sad to leave. Friends from around the world. English, wrote lots of papers 7 of 8 classes.
Signed a job for Schibsted this december. Wanted to stay in Norway, looked for the most hardcore nerds in Oslo.

Where model-driven engineering meets database technology

Since I love talking about myself, let me quickly explain what my thesis is about. Combine techniques from database technology and model driven engineering My supervisor is Svein-Erik Bratsberg.

Norgesgruppen needs to analyze billions of transactions.

...and they have no clue what they are looking for.

Write for Genus, lysaker. A customer, norgesgrupen, has billions of transactions which they want to analyse for all kind of patterns. Traditional ad-hoc query issue, found in business intelligence.
Realize i have no clue about this. Supervisor in genus wants to add what i like to call "sub-otpmizations" based on gut feeling, but we need some theory. Honestly, dont think he is pretty satisfied me the fall. And he is quite stubborn. Use the entire fall semester to write him a 90 page long argument of why I am right and he is wrong. To my great surprise, he read it, he learnt from it. "Lets just replace the entire storage engine and data representation in GENUS" Remember that this is a mature product that has been on the market for a while with tons of technical debt.

From row-store to column-store

So we go on and change the built-in row-store in the platform with a column store. Which was very inefficient. A lot of pointers, and overhead since all values are stored in heap-allocated classes. We use all the tricks from state of the art atabase technology and apply compression. We also implement operations that exploit the column structure

Memory footprint reduced by 70%

 

55362ms -> 25ms (2200X)

Results so far: Memory footprint reduced by 70%! I remember telling bratsberg in january that I was hoping for 1000x times improvement for some operations. He was like "okay, sure", clearly not having faith in me. But what you know: Reduction from 55 seconds to 25 milliseconds. This was for finding all transactions less than a certain value.
When I first started, I though i had to go back to TDT4145 database systems and recap all B+ trees and stuff. bye bye complex computer systems
But in high performing databases, the discussion is more about cache performance, assemply, and CPU-near programming which i love. Work with storage formats, try to avid branches, fill the cpu pipeline, and try to avoid function invocations and all stuff that hurts performance.

Where model-driven engineering meets database technology

...and the platform optimize the storage without modeller intervention.

Take this if i have time

So why do I succeed?

Back to why I am here and lets talk about success. It's a bit hard being a norwegian with janteloven and everything, but i've been to usa and everything.

Network

Decent academic results

Dream job

So lets define success, and what success is to me. And this is individual Network. Friends for life, but also professional network Good grades, that it at least success to me. Got the job I wanted. All of these are intertwined, but I'm going to attack them one by one.

Decent academic results

Hard work

I gotta dissapoint you. Been lots of hard work to get where I am today.

Curiosity

One of the reasons why i am able to work this hard is my curiosity. Genuine interest for what I'm doing. Two types of people. The people that wants to discuss the exam at the exam after party, and then there is me.

Work smart

I'm lazy too. Don't always want to do more than I need to. I have some friends that work really hard, but not being able to step back and look at what they are really doing. Optimize processes, learn the tools properly. Do the right things correctly.

Exams are my cup of tea

Honestly, exams as a way of assessing my knowledge works very well. I work well under pressure.

Network

Network for me is about getting opportunities and creating opportunities for others.

Volunteering

Just going to bring this slide back. Undoubtedly, my volunteer work has given me a great network. I know a lot of people at computer science, not only in my class, but across all classes. Also in Informatics. I've also made lots of contacts in business. For instance, I met Genus though Abakus and pushed them to get up to us and show them how its like to be a non-consultant. People loved it. I gave them the opportunity to connect with students in trondheim. And it ended up for me getting the opportunity for an awesome master thesis.

Serendipity and the "Yes"-man

One of my favourite words: Serendipity. It was actually voted the hardest word to translate in 2004. It means somehing like "finding out things witout being in search of them". for instanc, something really small event than might change your life. Had several occations of serendipity: - Landed my first job as a system developer in 2008 by saying yes to help out with bicycle race timing services - Found about Schibsted technologies by dropping by a friend when I actually was really tired and wanted to go home. And here is where the "yes"-man comes in. These things happens because you say yes! Saying yes means you get to meet a lot of new people and getting challenged with things that might change your life

Dream job

Gonna bring back two previous slides to explain how I acheived my job at Schibsted

Network

Well, this probably doesnt come as a shock for you. But one important aspect of why I got the job, was that I told them i have a network, i know a lot of people.

Decent academic results

Gonna bring back this one too, I'm pretty sure it helped me get their attention.

Preparation

It took a lot of preparation. I had my friends give me tasks on a whiteboard. And interview questions in general.

Observations

The more you have to do, the more you do.

if you have a full schedule, you will learn how to use your time efficiently

Hard work applied over time makes things easier

Started working hard in first grade. It helps me now! Things takes less time to understand, because I know relevant background theory or other similar topics

Tips and tricks

Grasp every opportunity to learn something new

I needed a solver for some numeric methods in math, why not learn numpy. You want to get on top on algdat, why not learn the programming language D to have your own highscore list?

Use exercise solutions actively and correcltly

Who looks at solutions after the exercise is in? I've used Youkok a lot in order to learn the material. It really boosts the learning curve if you use solutions correctly.

Learn your tools

I know vim I download plugins for Latex for master thesis etc. Its the small things that helps you

Read relevant material prior to or after lectures

You guys have waited for this. Has nothing todo with being a "flink pike" or not, this is about working smart. Because preparing to lectures will save you time in the end

Feedback to IDI

Encourage studying abroad

In my opinion, everyone should study abroad. I might have missed this, but I havent seen IDI encourage this. I would like to see specific recommended schools in the different regions for students at IDI.

Representatives for social enviroment in class

Great work. Really needed! Excited to see the effects!

IDI and Abakus collaboration

Has been really good lately! At least in terms of you guys give us a lot of money. But there are much more to benefit from collaboration. - Abakus knows its students and what they want - Abakus knows the business community and can help put you in contact with them - etc.

Questions?

Why do I succeed? Lessons learned from a master student Håkon Åmdal Thanks for having me. All I heard was free lunch, so I just had to come. Eivind gave me this title, not sure if this is exactly what he expected, but ill give it a go.