Who am I?
Michael Barakat is a designer and front end developer / ux developer / design engineer living and working in Seattle, WA.
Michael Barakat
UX Engineer II
Seattle, WA
I'm a UX Developer that digs deep to understand computers, frameworks (whichever one I'm using), programming languages and systems. I admire the simplicity and beauty of modern programming languages, emulators, and computer architecture. I'm dedicated to collaboration and enjoy project conversation with colleagues. I like meetings when they allow us to move forward and get things done. I do my best to contribute when I have something to offer, and likewise do my best to keep my mouth closed and ears open when I don't. I have a long track record of sensible and steady collaboration, personal progress, and a growth mindset.
Work Experience
company | role | Date | comments |
---|---|---|---|
Microsoft | UX Engineer II | April 2022 - Present | Building infrastructure and UI controls for Horizon's team to collaborate with Fluent UI, Fabric and PowerBi developers. |
Microsoft | UX Engineering Manager | September 2021 - April 2022 | Managing UX engineers to build control libraries for PowerBi and Microsoft Fabric |
Microsoft | Design Integrator | March 2020 - September 2021 | Helping design teams collaborate with engineers on Microsoft Purview |
Microsoft | UX Developer | January 2019 - March 2020 | Building prototypes with React, Typescript and MobX. Maintaining and building out React based web sites. |
Sage Bionetworks | Front End Developer | June 2018 - January 2019 | Working with a team of engineers and data scientists to build websites with Sage Bionetworks technologies and React. |
Freelance dev work | Front End Developer | Januar 2018 - June 2018 | Working with clients to build professional websites using varying tech stacks. |
Developer Skills
skill | ability level | comments |
---|---|---|
scripting | 5/5 | The bread and butter of JavaScript. |
crafting developer apis | 4/5 | The first consideration. Good documentation and careful use of language is paramount |
functional programming | 4/5 | Mostly used with Typescript. |
code structure and architecture | 4/5 | Building components for Fluent UI and developing compilers has allowed me to level up the code quality |
OOP | 3/5 | Many design patterns of OOP are clear to me, but they've never been a major part of my day to day work. |
algorithmic thinking | 3/5 | An area to commit more time to in the future |
project setup and architecture | 3/5 | Set up multiple mono repos for team projects. |
Language Skills
language | comfort / experience | used professionally | comments |
---|---|---|---|
Typescript | 5/5 | yes | Used day to day while at Microsoft |
JavaScript | 5/5 | yes | My first programming language |
Rust | 4/5 | no | Completed rust book. Built chip 8 interpreter. Working on building a compiler. |
Python | 3/5 | no | Built a syntax analyzer, parser and compiler. |
Java | 2/5 | no | Used only academically, but found the language to be very easy to use. |
C | 3/5 | no | Used academically. Sorting. Linked Lists. Hash Tables, CLI tools, ect. |
Lua | 3/5 | no | Built some games for fun |
Lisp - scheme | 1/5 | no | Used academically |
C# | 1/5 | no | Used it with Blazor |
C++ | 1/5 | no | Got about as far as hello world, then started using Rust. |
Technologies
technology | experience level | comments |
---|---|---|
Browser API | 5/5 | When it comes to the basics, I know it well. |
React | 5/5 | Love it, but hate it more than I love it. |
Angular | 3/5 | well designed |
Web Components | 4/5 | overpromises |
Microsoft FAST | 3/5 | Used in all of our web component libraries |
package management | 5/5 | pnpm, yarn, npm |
DevOps | 4/5 | experience setting up deployment, build and testing pipelines |
Typescript configurations | 5/5 | countless hours spent debugging complex project setups |
Jest testing | 3/5 | Used for React |
Jasmine testing | 4/5 | Used for Angular |
Playwrite integration testing | 3/5 | Flaky |
**All technologies listed are used in a professional capacity.
Noteworthy Courses and Books
name | school | concepts and subjects learned |
---|---|---|
Code Fellows | html, css, javascript, browser api, version control | |
Code Fellows | package management, SQL, MVC, deployment with cloud services, ExpressJS, OAuth, Testing | |
Harvard | Intro to Computer Science, Data Structures, Searching and Sorting Algorithms, Cryptography, C language, Python, SQL | |
University of Alberta | UML Diagramming, Java, Android Studio, Object Oriented Design Principles, Software architecture, Service Oriented Architecture | |
Hebrew University of Jerusalem | Boolean logic, Nand gate, Combinational logic, Sequential logic, von Neumann architecture, assembly language programming | |
Hebrew University of Jerusalem | Writing an assembler, virtual machine design and implementation, writing a compiler, operating system design | |
- | Ownership, Borrowing, Lifetimes, Smart Pointers, Pattern Matching, Packages, Crates, Modules, Testing, Closures, Traits, Concurrency, OOP With Rust, Functional programming with Rust | |
- | Tree Walk Interpreter, Scanning, Parsing Expressions |
Education
B.F.A. Rochester Institute of Technology, 2005
M.I.D. University of the Arts, 2011
But really, how and why did I get here?
When I'm not coding, you'll find me building something in my workshop. Maybe it's a woodworking project, or a pair of shoes, or it could be a photography project too. But why?
It's hard to say sometimes isn't it? Why do I code? Why am I here doing this? The short answer is: I love building things! My whole life for as long as I remember, I have been fascinated by how things work and more especially the act of creation itself: how to create things that are useful, beautiful and enjoyable.
In the late 90's when I was a teenager I started getting into photography. Then later in college I studied film and animation and later worked in the film industry doing some set decoration, set construction, prop handling and then later motion graphics, videography, and video editing. This lead to my initial interest in design.
By 2011 I had moved to Seattle, hoping to land a gig someplace in technology. The unfortunate reality of working as a designer in technology however is, that you don't really get to put your hands into the proverbial "engine of the car." In other words you don't get "hands on" time with the interworkings of the machine. As a designer, you get to design the look and feel and interactions, but don't actually get to build it. The closest you get is in understanding the behaviors of a user, and augmenting patterns in the system to create a predictable outcome. As a designer, I could never get around these details. It bothered me to not be the builder. So, in order to overcome this problem, I learned how to code. The rest is history.