Seeking an entry-level software engineering job. ——— Functional Programming | Object-Oriented Design | SQL Databases | Interactive Visualizations and Games | Programming Language Theory | Type Systems | Technical Writing
United States
I am seeking an entry-level software developer position, preferably non-remote, almost anywhere in the United States. I have B.S. and M.S. degrees in Computer Science from Rochester Institute of Technology, as well as a year of internship experience doing software development.
I have learned about and used many technologies in a variety of contexts, and can thus adapt to different tech stacks and platforms. That said, I am most comfortable doing backend application development, spanning both the business domain layer and the database layer. I prefer to develop in Java, C#, or similar (i.e. statically-typed and garbage-collected) languages. My database experience is in SQL, and I have used several implementations throughout my work. Additionally, I'd be interested in creating self-contained software tools for internal use by both developers and non-developers. I also enjoy working with existing codebases to fix bugs from the bug database, as well as refactor code.
I am familiar with various styles of computer programming, as well as the trade-offs they have in comparison to each other. I took a course on functional programming early in my degree, and kept learning more about Haskell and static types for a few years after, before switching my focus to programming language theory and reading research papers on type systems and related topics. Meanwhile, I also obtained experience creating visually-rich, interactive visualizations and games through my double-major in Game Design and Development, using APIs at varying levels of abstraction, such as shape-drawing libraries and scene graph frameworks. Furthermore, I took two Software Engineering electives, one about object-oriented design patterns and one about the Alloy and SPIN formal methods tools, a background I look forward to extending to enterprise architectures, concurrent and distributed applications, and other forms of software.
I also like explaining computer programming concepts to others, both through one-on-one conversations and through written explanations. This ranges from teaching well-known content to presenting ideas that I think of myself. I love synthesizing new connections based on my existing knowledge, letting me create educational analogies, as well as come up with mind-opening ways to formulate certain notions in programming. Given all this, I am also open to positions such as technical writer or instructor, as well as positions involving studying and documenting computing systems, such as large codebases. Samples of my technical writing can be found in the "Projects" section below.
Software Engineering Co-Op
SRC Solutions Inc
Jan 2017 - Jun 2017 6 months
Center Valley, Pennsylvania, United States
(Worked remotely in Rochester, NY)
- Created an internal tool to save and migrate data between separate databases, as a solo intern project.
- Involved creating an XML-based configuration language to specify relationships among database columns.
Software Engineering Intern
McGraw‐Hill Financial — S&P Capital IQ
Jun 2014 - Aug 2014 3 months
New York, New York, United States
- Created an internal tool to aggregate and display application usage data, with one other intern.
- Wrote code to access and aggregate the relevant data using Ermine, a Haskell‐like in‐house language.
Software Development Intern
B-Line Medical
Sep 2013 - Jan 2014 5 months
Washington, District of Columbia, United States
- Contributed to SimCapture, which records medical simulations and manages course data.
- Helped implement XLSX batch user upload, database deletion support tool, and student iCalendar export.
- Technologies used include: SQL, ASP.NET, Adobe Flex, ActionScript 3.0, and LINQ.
Workshop Assistant – Creative Coding with Java
Kids on Campus
Jul 2013 - Aug 2013 2 months
Rochester, New York, United States
- Helped 25 students over two sessions learn how to program simple textual and visual games.
- Assisted in teaching and giving one‐on‐one help on Java and Processing to middle schoolers.
Bachelor of Science/Master of Science dual degree Computer Science (BS/MS), Game Design and Development (BS only) 3.8/4.0
2011 - 2018
Activities and Societies: RIT Honors Program; Computer Science Community; Tora-Con
Minor in Mathematics
- Biologically-Inspired Intelligent Systems [CSCI 633]
- Combinatorics [MATH 646]
- Compiler Construction [CSCI 742]
- Computer Animation: Algorithms and Techniques [CSCI 712]
- Concepts of Environment Science [ENVS 101]
- Data Structures and Algorithms for Games and Simulations II [IGME 309]
- Educational Games [Special Topics]
- Engineering of Software Subsystems [4010-362]
- Explorations in Cell and Molecular Biology and Evolution [BIOG 101]
- Foundations of Computer Graphics [CSCI 610]
- Interaction, Immersion, and the Media Interface [IGME 236]
- Language and Linguistics [ANTH 104]
- Mathematical Models of Software [SWEN 220]
- Professional Communications [CSCI 471]
- Programming Language Concepts [CSCI 344]
- Programming Language Theory [CSCI 740]
- Programming Skills: Aspect-Oriented Programming [CSCI 641]
- Programming Skills: Functional Programming with Haskell [4003-561]
- Programming for Digital Media [4080-434]
- Software Foundations/Mechanized Metatheory for Programming Languages [Special Topics]
Dec 2023 - Mar 2024
(Coq; solo)
- Experimented with writing proofs in Coq about how specific programs in a small functional programming language behave.
- Tried two different implementations, one closer to an interpreter and one closer to an operational semantics.
- Represented continuations in a way that acts like a zipper, but looks like a call stack to give it a clearer structure.
Mar 2019 - Feb 2024
(solo)
-
The Visitor Pattern in JavaScript: https://codereview.stackexchange.com/a/249999
-
On moving variables to outer scopes: https://softwareengineering.stackexchange.com/a/388486
-
The real difference between "where" and "sharing" in SML: SMLFamily/Successor-ML#7 (comment)
-
A new way to think about SML's opaque ascription: SMLFamily/Successor-ML#27 (comment)
-
The difference between bound and free type variables: https://gist.github.com/YawarRaza7349/78cd8c3c33d6924fcf8af4a631bb531a
Aug 2018 - Jul 2023
(solo)
- Worked out the details of a markup language serving as an alternative to XML, taking influence from languages like JSON and AsciiDoc.
- Invented an educational programming language for learning how memory works in C++ while being more familiar to Java/C# coders.
- Contemplated and experimented with several other general language designs and features, particularly object-oriented ones.
- Experimented using example code to test language constructs for simplicity and expressiveness in both syntax and semantics.
Jan 2018 - May 2018
(Coq; solo)
- Worked on translating the type soundness proof from a research paper into Coq so it can be machine-checked.
- Experimented with different encodings (lists, functions, etc.) to see which one was easiest to use in the proofs.
Project Report: https://cs.rit.edu/~mtf/student-resources/20175_raza_mscourse.pdf
Oct 2017 - Dec 2017
(JavaScript/three.js; solo)
- An inverse kinematics program animating limbs’ internal joints to resemble the given motion-capture data.
- Iteratively improved animation via trial-and-error, switching from FABRIK to CCD and adding constraints.
Videos of the program in action!: https://www.youtube.com/playlist?list=PLY2FhVIfIl7UgElsgOhD8sE-R5X3yhsng
Sep 2016 - Dec 2016
(TypeScript; solo)
- Used the Visual Studio Code Extension API and the Language Server Protocol to add one IDE feature for SML code.
- Read from the "Def-Use" file generated by the MLton compiler to connect uses of identifiers with their definitions.
Jul 2015 - Aug 2015
(Elm; solo)
- A procedurally-animated display of multicolored fireworks made up of operators found in Elm code.
- Created a monadic interface for Elm's random generation and used Elm's Model-Update-View pattern.
Mar 2014 - May 2015
(various languages; mostly solo)
- Small visualizations and games I created, some for class, some for fun, all available on GitHub. Click the link below for more info.
- Technologies used include Unity2D, Processing, Processing.js, CoffeeScript, underscore.js, HTML, the DOM API, d3.js, AJAX, Web Workers, and Haskell.
You can even try a few of them yourself!: https://yawarraza7349.github.io/
Feb 2015 - May 2015
(C#/WPF/PostgreSQL; team of 3)
- A fan-made, persistent application for managing Pokémon and coordinating Pokémon trades with others.
- Designed the database using ER diagrams, created scripts to populate the database, and wrote GUI code.
Jan 2014 - Apr 2015
(Processing; solo)
- A drawing application I created to use for my 2D Animation course instead of Photoshop.
- Features onion-skinning to facilitate creating frame-by-frame animations, and also includes a color palette and a fill tool.
Sep 2014 - Dec 2014
(C#/Unity; team of 4)
- A number manipulation game with a food theme where the player plays as a chef.
- Created the game state system using design patterns and evaluated UI/UX approaches for simplicity.
Apr 2013 - May 2013
(C#/XNA; team of 5)
- A race against the clock game with various power-ups and effects.
- Implemented numerous power-up effects and explored using a custom rectangle type with XNA's API.
Mar 2013 - Apr 2013
(Java/Swing; team of 4)
- A tabbed HTML editor with file and edit options and a dynamic, collapsible tree view of HTML elements.
- Coded parsing of HTML, tag insertion, and part of the HTML tree, and learned about UML diagrams.
Mar 2013 - Apr 2013
(C#/XNA; team of 5)
- A bullet hell game where the player charges at cannons to destroy them.
- Contributed in group programming sessions and practiced using vector math in basic game physics.
Sep 2012 - Nov 2012
(Java/Swing; team of 6)
- An application that simulates taking, cooking, and delivering food orders, and changing manager settings.
- Developed much of the CLI and GUI for the cashier, and learned about the software engineering process.
Mar 2012 - May 2012
(C#/XNA; team of 5)
- A block-swapping game, as well as a GUI to create custom puzzles.
- Helped code gameplay mechanics and learned how to integrate multiple features in an application.
HackerRank
Apr 2020
https://www.hackerrank.com/results/hacktheinterview3/ysr7349
RIT School of Mathematical Sciences
Apr 2018
RIT Department of Computer Science
Apr 2016
$1000 Scholarship
RIT School of Mathematical Sciences
Mar 2014
Native or bilingual proficiency