Parker Lougheed

大家好。I'm Parker Lougheed and I am someone who has a passion for learning and education, primarily around computer science, but branching into all fields and possibilities. I had a great experience as a student due to fabulous teachers and amazing resources all the way up until college where I studied Computer Science and East Asian Studies. I hope I can make my own impact in the education of students of all backgrounds, whether it is in directly teaching them or researching and creating tools to further improve their experiences. Education is not something that has to be boring or tedious, it can be fun and eye opening, and I hope to help enable enabling this for computer science through the research and development of novel programming languages, environments, and gamification methods. Putting these distinct tools together with a glue that isn't just computer science, such as forms of art like design and music, I hope I can provide insightful, enriching experiences for everyone.

Beyond traditional education, I simply enjoy developing tooling around programming languages. Programming drives many of the leading industries, if not them all, and it is paramount to our society's future development. It can be hard to approach and frustrating at times though. Through language design changes, static program analysis, and compiler enhancements, this experience can be improved, not only for students but also for professionals and tinkering kiddos, creating to their little heart's content.

While these topics take up a lot of my energy and interests, you'll also find me investigating environmental impact and what I can do to make a difference for myself and those around me. I also do my best to take a broader view at the requirements of those all around. I've been privileged in my life to meet people from all walks of life and many corners of the world. While I found that we as humans are more alike than we are different, we do have different experiences, necessities, and perspectives. I will never stop in my goal of bridging connections between people and making the experiences I've had access to, such as a computer science education, available to everyone. Currently I'm still honing my Chinese skills, opening up a beautiful world of millions of amazing people who have a lot to offer.

As a gift to you, I leave you with the the song, "I am alive" by JJ Lin featuring Jason Mraz. A beautiful piece by two magnificent artists that helps you realize that you "have all the strength" you need, and the most important thing is that you keep dreaming and keep trying.

Employment

At Epic, I've been working as a software since June of 2020. I've been lucky to work on an amazing, but small team which is developing a self-service data analytics tool for use by hospital administrators, researchers, and even providers themselves. More recently, it is being used as the tool to power interaction with Cosmos, a large database of de-identified data composed of records from many of Epic's customers, helping enabling of many things, evidence-based medicine.

As a part of the team, I work with multiple programming languages and databases daily, creating UIs which are used to qualify, quantify, and organize data. One area which working on this team has allowed me to grow in is my understanding of databases and data handling in general, as a lot of our work is around generating complex, performant SQL queries to retrieve the appropriate data based off the configuration the user built with our UI. This can be hard to get right but it is important for it to be performant for customers with large amounts of data and for it to be correct so no user is accidentally misled by our visualizations or otherwise hindered from completing their goals.

The fixes and enhancements I have worked on are building up, with some highlights for me being working towards improved accessibility and increasing flexibility around dates and date ranges. I have also enjoyed working with my coworkers on not only my work but on reviewing their designs and changes. Reviewing other's work really does a great job in helping you see into other parts of your application and can be an amazing learning experience, especially if there is some back and forth around if something is being done in the most appropriate way. As a side project, I've also been working on improvements to our visualization library, improving accessibility, performance, and programmer usability.

At the University of Wisconsin-Madison, in the Spring of 2020, I worked as the peer mentor for CS354, a class which acts as an introduction to computer systems. A lot is first introduced and taught to the students in this class, particularly the C programming language, x86 assembly, memory management, and debugging. The content gets rather deep and technical as an important step towards more advanced classes such as operating systems and compilers.

My primary responsibilities were creating the programming assignments, the corresponding grading scripts and related videos, then providing assistance through Piazza, Email, Skype, and in person. I enjoyed this beyond belief as I was able to explore the students knowledge and help them solidify it through interesting projects such as a connect 4 validator. My overall experience was fantastic and I hope to continue in similar positions in the future, helping create enriching experiences for students and making sure they walk away from courses with enough knowledge to succeed in their future courses, goals, and careers.

At the University of Wisconsin-Madison, in the fall of 2019 worked as a peer tutor for the Computer Science department in the Computer Science Learning Center(CSLC). I started tutoring there for a class in the beginning of 2019 and continued until the end of 2019. I primarily tutored our school's three introductory Java courses, focusing on Object Orientated Programming, data structures, and basic algorithm analysis and implementation. Outside of that I have also tutored basic data science, computer engineering, computer organization courses, as well as more advanced classes like introduction to artificial intelligence and operating systems. Sometimes my job required me to make educational videos as well for the introductory Java courses.

This job was not just a job for me the year, but rather a great passion. Even outside of my hired hours I came to help whenever needed and when I had time, as I enjoyed working with all of my fellow classmates, helping them build their own understanding and own passion for computer science. I hope to continue in similar positions and help more students find a love for computer science. It can be stressful in the beginning, especially when there is not too much help, but I know from experience that having someone there to guide you is fantastic. I made many friends there and I hope they all will pass on what they have learned and their passion to others as well.

At iD Tech Camps, I worked as the lead instructor at the UW-Madison location. Like other instructors, I taught a new group of students, aged 7-17 each week in varying topics, including Cybersecurity and Encryption, Machine Learning, Minecraft Modding, Coding and Engineering, and more. I got to work with the students throughout the week teaching them various concepts from coding constructs like for loops, to mathematical concepts like binary arithmetic and ciphers, other advanced concepts such as activation functions in neural networks, and plenty more. Beyond teaching and helping the students build their final projects each week, as an instructor I also lead activities such as board games, video game tournaments, scavenger hunts, and others. Each week and each group of students was completely different from the last, it truly put my skills as an educator to the test and enabled me to grow in many unexpected ways.

Beyond my duties as an instructor, I also took over many roles of the assistant director throughout the summer. This included educational roles, such as helping coordinate activities and general planning, as well as offering feedback and suggestions to other instructors. There was also administrative duties such as communicating with parents, handling checkin and checkout of students, being properly trained in multiple types of first aid, completing inventory each week, and more.

Overall, I had the time of life and loved every student I had the chance to meet and work with throughout the summer. I hope I taught them a lot, but more importantly I hope I helped them have fun, as I know they taught me a lot and provided me with an amazing time. I wish I could continue teaching them all as their computer science teacher in school. Each and every one of them is impossibly smart and continued to amaze me, I am just glad I had a chance to help all of them on their paths of reaching their maximum potential.

Education

My most important educational experience was at UW - Madison where I been studied from the fall of 2017 to the spring of 2020 when I graduated with a Bachelors of Science in Computer Science. Pursuing my interest in Chinese language, literature, and culture, I also completed an East Asian Studies Certificate.

While I took a lot of classes there from biology classes to digital studies to Chinese and of course computer science, some really stood out. I especially enjoyed my Chinese classes and the computer science courses relating to education. My first adventure here was "Introducing Computer Science to K-12 Students" (CS 402) where we had a small group with whom we developed course plans each week and travelled to a local elementary school to teach them Scratch. For some of the kids, it was super challenging, while for others, it was a breeze. Tackling this was definitely difficult but we did our best and in the end what was amazing was how much fun they all had and what they created, no matter their skill level. It was hard to leave them the last time we came to teach.

I continued my exploration with "Computer Science Education" (CS 502) which quickly became my favorite class of all time. We got do some precursory research in computing education methods and apply it every week when we had a slot to tutor our fellow classmates in introduction and mid-level computer science courses. For me, instead of a weekly ordeal, it became daily, as I just couldn't stop as I found I had an immense love for educating and connecting with students. A lot of them were frustrating in the beginning of the semester, but by the end they were confident, some even coming back to me the next semester with example projects they created and more. There's nothing more rewarding than that.

I spent my last two years of high school here. I ended up changing schools so I would have more opportunities in the form of AP and IB classes, so I could challenge myself and further my preparation for university. It was different from my original high school in a lot of ways, but I quickly adjusted and I found myself at home in this school's knowledge bowl, where I took up a leadership role, especially during my senior year. I also enjoyed a club called Backpack Tutoring, where we would go to an elementary school, and work with academically at risk students. It was quite fun to work with them and see them progress throughout the year, despite some of the challenges faced.

The main reason I went to this school was the classes and a more challenging environment though. This new school only had 6 classes a day and I was in an odd position as I had completed different classes than other's, but for the most part I was able to find good classes to take. My two favorite were AP Computer Science and IB HL Computer Science as these allowed to me practice and expand my computer science and problem solving skills in a more formal environment where there is more pressure to stay on task. Both of these classes had fantastic teachers and I felt like they really helped me grow.

Outside of computer science, I took plenty of other classes, such as AP Literature and Composition, which really brought me out of comfort zone in analyzing texts verbally and through writing. I also took classes like AP European History, AP Calculus AB, AP Calculus BC, AP Biology, AP Statistics, AP Psychology, IB Literature and Performance, and other courses such as continuing Spanish and experimenting with video production. Overall, switching to this new school, brought me increased opportunity and provided me a more challenging environment which I appreciated greatly.

I grew up in this school district and continued until the end of my 10th grade years. I had a lot of great experiences with both my friends and my teachers there. Some of my most memorable experiences were in Knowledge Bowl, an academic trivia competition club, and YES! club where we worked to make our school, our community, and our world a more environmentally place by doing data collection, research, trips to related areas, and planning and implementing our improvements. I also had great times in all of my classes, for example AP Chemistry, where we got to explore our investigative side deeply for the first time and AP Human Geography, where we got to expand our view of the world, its populations, and what it all means.

Beyond that, I enjoyed my other classes and clubs such as Key Club, a volunteer organization, Math League, where we would compute in mathematics competitions, Science Club, which YES! club was a subset of, and Spanish where I got to practice my Spanish skills a little extra outside of class.

Interests

I truly loved school, especially K-12. I love the connections you make with your classmates, with your teachers, with other school staff. The environment is so unique and it is such an important part of everyone's life. I loved it so much that one of my goals is one day being a high school computer science teacher myself, where I can build those connections, help students realize they matter, and that they can do anything they put their minds' to. While I loved it all, I do think there is a lot we can improve in the education world though, especially in computer science as it is still a relatively new field. So when I have the time I like to read about different methods of teaching computer science, why it is important, and more such as what Mark Guzdial's book covers: Learner-Centered Design of Computing Education: Research on Computing for Everyone

This one is kind of obvious as all I have been talking about is my interesting in computer science and computer science education, but I love programming. Everything about it is great, from the problem solving and API designing, to having something finally show up. I first got interested because of modifying games, but now my interests have expanded to creating tools to make software developer's jobs easier as well as the process of teaching and learning for teachers and students an even more fluid process.

Now when I have the time outside of classes, a lot of my times is spent browsing others' code and tutorials, practicing smaller concepts myself, and working towards a deeper understanding of programming languages, especially virtual machines. I think they are just a quite interesting tool where a lot of research has been done and can still be done, to make performance better, improve safety, and along with new programming languages can introduce a lot of useful features for developers.

While it is not that convenient to snowboard in university, if I have the chance I will always go when I can. I skied for a long time then switched to snowboarding sometime in elementary school as my brother always did it and it seemed fun. It was always a fun time for me, and a good time to relax after school and let my thoughts flow.

I love movies and television. I have watched a lot in my time and some of my favorites I have watched multiple times. My favorite genres are science fiction, fantasy, and romance, not necessarily all together at once. I am always happy to go to a movie with anyone that asks, and whenever I have time I'll go to movies on my own, sometimes more than one in a day. No matter the type, the language, the country of origin, I know going into it I will enjoy it.

My focus here is in Chinese, as I have made many Chinese friends over the past few years, and have begun watching Chinese shows and movies and listening to Chinese music. I love it all and as a result I started to learn Chinese in class and out, and I have begun to make some progress. Although my pronunciation still leaves a lot to be desired, I don't plan to give up anytime soon.

Beyond specifically to Chinese, I am quite curious about a lot of Korean, Japanese, and Chinese culture, language, and history. I have been taking courses such as Introduction to East Asian Civilizations, where we learned about a new topic each day, such as chopsticks one day to kimchi or Chinese rock the next. I also spend free time researching these topics, especially about the history of the peoples, their languages, and how they all developed and how their histories intersect.

Skills

Java is the language I've been programming in since the beginning. It has been with me through thick and thin and I've learned to love it despite some people's constant quarrels with the language. I made my first projects in the languages, I created my biggest projects in the language, contributed to other projects the most in the language, and used it the most in my classes.

I feel like over this time, I've mastered the language and its standard library, from most of its features including generics, lambdas, concurrency, reflection, and more. I've even dabbled in JVM bytecode manipulation and runtime modification for some of the projects I contribute to. I've learned how to design good, usable APIs in the language, by working on Sponge, and reading great guides like Effective Java.

Kotlin is a more recent pickup of mine as the JVM ecosystem has been migrating in hordes to use its lovely new introductions while still remaining within the JVM ecosystem. I've gotten comfortable with it over time and feel almost as proficient in it as with Java, outside of its more particular features which I have not had as much of a chance to use. I've started writing all of my Gradle build scripts in Kotlin rather than Groovy and my recent projects have been in Kotlin instead of Java. While I still love Java, I can now understand the benefits Kotlin brings to the table and am comfortable teaching people the language from scratch, or in transition from another JVM language.

I've used Dart a fair share for learning and side projects. I've been following it with a lot of interest as I wanted to enter web development but didn't like JavaScript or TypeScript and Dart felt familiar to me, with a lot of great features. Since Flutter for cross platform apps was announced, my interest has only increased. Since then I've experimented a lot in the language and worked to build an understanding of its compiler and static analysis infrastructure as well as its virtual machine.

While I don't have too much hands on experience with Go, I do feel relatively comfortable with it, and am fairly comfortable with its ecosystem. While I don't often use it to program, I tend to analyze Go projects' code and keep up with most updates.

My C experiences actually didn't start until university, where I have since picked it up in an introduction to systems programming class. I was able to learn the core of C and more in-depth concepts like how to properly manage memory, even implementing my own malloc and free implementations. I have then expanded my knowledge in my operating systems course and then by becoming the peer mentor for the course which introduces C and its related concepts. While I haven't coded much C++, I have a little, and I'd feel comfortable picking it up if needed, especially with my C base.

I'm still relatively new to web development, but I'm no stranger to JavaScript as I have had to use it for small personal projects in the past as well as in my computer graphics class where we used JavaScript along with different browser APIs such as WebGL to create all of our assignments. I most recently expanded my skills in a Software Development class where we made a social media website for teachers to use, utilizing Angular and TypeScript. It was been a fabulous experience and my understanding of web technologies really had a chance to flourish. A lot of my interest revolves around improvements/replacements for JavaScript, such as Dart and Web Assembly, so I also have researched a lot about the language and its various implementations/runtimes.

I am no master with SQL, but I have had enough experience with it, to be able to setup a rather complex database, set and get values from it, use querying to find the data I'm looking for, and even adapt the tables as needed while still maintaining compatibility. If I was uncomfortable with certain concepts, I feel comfortable enough that I feel I could pick up a lot by reading documentation.

Testing can be a pain, but I am a fairly cautious programmer, so I tend to always be thinking of things that could go wrong and if I am in a position to I write tests or tools that will enable me to test the problem I think could arise. I have experience with JUnit 4 and 5 as well as many manual testing setups. Most of my experience has come from working on SpongePowered projects and converting 100s of tests from JUnit 4 to 5, but I have also utilized these testing methods in some of my computer science courses in university.

I have been using Git since around 2016 for a plethora of projects, including some which around 100 people work on. My experiences have required me to master the basics of cloning, pulling, fetching, adding, committing, pushing, and merging. They have also required me to continuously use more complicated functionality such as branching, which is quite important to work on many features at once with a lot of different people. I've also heavily used rebasing, resetting, and cherry-picking to support long term support branches and helping to make sure branches stay updated with clean commit histories. I also feel comfortable using some of the extra Git utilities and functionality provided by Google's depot_tools.

My first superficial experience with computer hardware started in middle school when I started researching how computer parts work and come together to bring a computer to a functional state. Once I eventually had the money to do so, I was able to apply this knowledge to properly understanding what I was buying when I designed my first computer and then built my second one.

My deeper experience with hardware came in university when I took two introduction electrical/computer engineering courses. They still took a pretty high level view, with the first focusing on binary, hexadecimal, finite state machines, assembly, and similar concepts. The second course then went more in depth where we built on that knowledge to understand how circuits and gates build logic and how features like serial execution and memory work at the circuitry level. We applied this knowledge to design circuits that we downloaded onto FPGAs to test our programs. This was still not that deep, but it has helped me understanding a lot more of how my programs can be implemented on actual circuits.

As I've talked about, a lot of my interest lies in education, this includes education technology. At first we didn't even have tools like Google Docs when I started school, now we have tools like Schoology, Canvas, PowerSchool, TopHat, and many more. I think these all do an okay job at the moment, but can continue to do an even better job over time making the job of teacher's easier and improving the education students are experiencing. I have experience with many education technology tools from having used them, but also having researched them and their code if public, analyzing how we can improve these tools for our teachers and students. I have also been to an EdTechTeam summit where I learned about a a lot of other teals and got to network with people in the field, educators and companies.

I have been developing my leadership skills ever since I was little, but the first time I put them to good use was when I would play multiplayer games when I was a teenager. I quickly started forming my own groups, guilds, factions, clans, etc. I got to experience leading multiple players through completing goals, coordinating attacks and defenses, distributing work, etc. It was a fun experience where I made a lot of friends and learned the importance of sharing feedback back and forth with those you're leading and to share responsibility with them. We faced many tough challenges, but together as a team we were always able to overcome them, not because of a single person's leadership. Rather because we all had something to contribute and I was just able to help create something cohesive out of that.

Another leadership experience for me was in Knowledge Bowl at Minnetonka High School. While the club had teachers as advisers, there was a lack of student leaders and drive from the students to help the club reach its potential. I missed the feel of Knowledge Bowl at my old school so I tried to step up to help accomplish this. I got friends I made to join the club and I helped to learn during practices and sometimes I would give small tips or lessons to my classmates from my past experiences. I was not necessarily that skilled at Knowledge Bowl, but I'd like to think I helped from the drive and structure I helped provide. Senior year I took even more initiative as it wasn't my first year there anymore, and I handled initial recruiting, document creation and hanging up, communicating with the advisers, our chats. While Knowledge Bowl season is not too long, we had a fun time both years, and my two friends who took up co-president roles when I left did a fantastic job with the club. I got a chance to watch one of their meets this year and they've done a lot for the club and it was great to see all of them grow so much after two years.

I also took on a staff role in the SpongePowered project, which is a development organization, which creates APIs, server software, and tools for Minecraft server owners and players to create plugins which can optionally bridge the gap between mods and plugins. I became a core developer when I started to contribute more to the project over time. Along with this I became a staff, where I helped be an example and plan our monthly events and moderate our forums as well as other communication platforms. Now I don't have as much time as I used to, but I still try to provide input when I have the time and capability. Here I learned to work with others on large projects and be an example in a community.

I've been learning Chinese informally since the fall of 2017, where I started watching Chinese movies and television shows as well as listening to Chinese music. Then in the spring of 2018 I began learning in class, and I have loved every moment of it. At first it was slow moving, but I have been reaching a point where I am able to understand more from other's conversations, have basic conversations about quite a few topics, and understand more from the shows I watch without subtitles. I really do enjoy it and the other things I've learned along the way about China and Chinese culture, so I plan to stick with it for as long as I can.

GitHub

YouTube

Resume

LinkedIn