Parker Lougheed

大家好! I'm Parker Lougheed, and I am programmer turned educator. I had a great experience as a student due to fabulous teachers and amazing resources all the way up until university 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 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 enjoy developing tooling around programming languages. Programming drives many of the leading industries, 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 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 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

I have been working as an independent contractor for Google on the Dart Programming Language Website since April 2021. My responsibilities include triaging issues, reviewing pull requests, and helping contributors on its GitHub repository as well as fixing issues and writing technical content myself.

This work has not really been work to me, but instead a great opportunity to not only work with code, but also with educational materials. Developers from all around the world use Dart and need to learn about it, so it has been a great opportunity to learn the best practices for writing understandable technical documentation for a global audience.

At Epic, I worked as a software developer from June 2020 to April 2021. I was super lucky to work on an amazing, but small team which is developing a self-service data analytics tool for use by hospital administrators, researchers, analysts, and 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 enable many things, including evidence-based medicine.

As a part of the team, I worked 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 allowed me to grow was in is my understanding of databases and data handling in general, as a lot of our work was 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 worked on were rather varied, with some highlights for me being working towards improved accessibility, increasing flexibility around dates, as well as tracking table and column dependencies used by different pieces of the application. I enjoyed working with my coworkers on not only my development but also 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 also worked on improvements to our visualization library, in-product education, performance, and programmer productivity.

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 Four 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, I worked as a peer tutor for the Computer Sciences 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. I 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 the position required me to make educational videos as well for the introductory Java courses.

This job was not just a job for me that year, but rather a great passion. Even outside my hired hours I came to help whenever needed and when I had time, as I enjoyed working with all of my classmates, helping them build their own understanding and own passion for computer science. I hope to always continue in similar positions and help more students find a love for computer science. Computer science 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 can be key. 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 more. 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 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 a certificate in East Asian Studies.

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 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 frustrated 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 that 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, and 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 interest 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 time is spent browsing others' code and tutorials, practicing smaller concepts myself, and working towards a deeper understanding of programming languages, especially programming language runtimes. I think they are a fantasizing tool where a lot of research has been done and can still be done, to increase performance, 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 in this area is in Chinese, as I have made many Chinese friends over the past few years, and have enjoyed watching Chinese shows and movies and listening to Chinese music. I love it all and as a result I started to learn Chinese inside 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 Chinese, I am quite curious about a lot of Korean, Japanese, and Chinese culture, language, and history. I took 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 people, their languages, and how they all developed and how their histories intersect.

Skills

I've used Dart a fair share for learning and side projects. I've been following it with a plethora of interest since I was in high school, as I wanted to learn web development but didn't like JavaScript or TypeScript and Dart felt familiar to me, with a lot of great features. Since Flutter for developing 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 the implementation of its runtime.

Most recently, I have been working on contributing to the Dart team's developer relation tools. I've worked on technical debt and bug fixes for DartPad, an online Dart editor. I've also worked on various improves to Dartdoc, Dart's documentation generator, including a rewrite of its search functionality. To improve education around Dart, I've also been contributing to the Dart website, both in editorial and sample fixes but also by improving and updating the website's technical infrastructure.

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 developer'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, including many complex features including generics, lambdas, concurrency, reflection, and more. I've even dabbled in JVM bytecode manipulation and runtime modification for some projects I contributed to. I've learned how to design good, usable APIs in the language, by working on plugin libraries, and reading great guides like Effective Java.

Kotlin is a relatively 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 as proficient in it as with Java. 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.

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 an 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 knowledge base.

I'm no stranger to web development as I have worked in the space through side projects, courses, tutoring, and professionally. My experiences have ranged from hand coded JavaScript experiences, large component based websites, static documentation websites, and even 3D graphics. More recently, I have focused on the library and implementation side of things, working on and wrangling developer tools and libraries for web developers, including learning and developing alternatives to JavaScript such as Dart or WebAssembly.

I am no master with SQL, but I have had a fair share of experience with it, both in personal projects and professionally in the medical technology field. I feel comfortable enough to pick up most concepts thrown at me, but may need to spend extra time finding the most optimal way to accomplish everything.

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 problems I think could arise. I have experience with popular Java and Dart testing libraries as well as many more complex testing systems, including using golden tests during UI development.

I have been using Git since around 2016 for a plethora of projects, including some which 100s of developers work on. My experiences have required me to master multiple different types of Git workflows, while also being able to teach them to others. I feel comfortable adapting to different work and branching styles, including using extra utilities and tooling, such as those 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. I used this knowledge to build many computers for myself and my friends, aiming to gain a deeper understanding over time, through experience and independent research.

My deeper experience with hardware came in university when I took two introduction electrical and 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 rather superficial, but it helped me understand a lot more of how programs I write are actually ran on a physical level.

As I've mention, a lot of my interest lies in education, including 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 much 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 always appreciate the chance to take part in events, such as an EdTechTeam summit, where I can learn about more tools and how others in the field utilize them or would like to use them.

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 not long before 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 just 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 had friends I made join the club, I helped to teach during practices, and sometimes I would give small tips or lessons to my classmates from my previous experiences. I was not necessarily that skilled at quiz knowledge, 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 distribution, communicating with the advisers, and our chats. While the 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 and they've done a lot for the club. It was great to see all of them grow so much after just two years.

I also took on a staff role in the SpongePowered project, 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, when 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 a lot 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