Hi, I’m Paul.

I like to push pixels.

It looks like you’re browsing with JavaScript disabled.

That’s fine—this website should function perfectly fine without, but if you encounter any bugs or issues, please let me know.

Hello, world!

Photo of myself, circa 2017

Hi, my name is Paul Esch-Laurent. I’m a graduate of Michigan Technological University with a Bachelor’s degree in Computer Engineering. I’m currently looking for new opportunities in software engineering.

I love playing around in pixelated environments creating digital goodies, developing and designing for the web, and working with modern, bleeding-edge technologies. In my spare time I like to take photographs, create software, and write about things. My non-hyperlinkable hobbies include fueling my love for mechanical keyboards, chasing the perfect cup of coffee, and searching for my N=1 bike. 🤘

Feel free to take a peek at my portfolio or shoot me a message if you'd like to get in touch.

Photo of myself

What I’m all about

I enjoy doing full-stack web development. A non-exhaustive list of examples:

My interests aren’t limited to the aforementioned, though. I’m always interested in how I can automate things—especially boring, repetitive things. Testing the things I architect and write proves a vital yet challenging and sometimes mundane task. Recently, “snapshot testing” has piqued my interest.

View My Résumé

I’ve selected a few projects. No guarantees they’re up to date, relevant, or interesting to you. For a more realistic snapshot of what I’m up to, check my blog or GitHub. You can always say hi, too.


rnjeesus is a random number generator (RNG) service built around a simple API.

Highlights & Challenges

Learn how to parse a URL with regular expressions in PHP to implement the API. Use the PHP random_int function to generate numbers. Work with NGINX location directives to handle API request routing server-side.


templater.js is a minimal string-based templating engine written in JavaScript that runs in the browser or in Node.js.

Highlights & Challenges

Experience working with more complex regular expressions and setting up unit testing with Mocha & Chai. Continuous integration was setup with GitHub and Travis CI. First-time publishing packages on npm and Bower.


gulp-update-humanstxt-date is a Gulp plugin that updates the "last updated" date in a humans.txt file. Yep, just like the name.

Highlights & Challenges

Learned Gulp plugin best-practices along with Node.js stream basics. Set up continuous integration with Travis CI and unit testing with Mocha & Chai. Published to npm with yarn. Exposure to Git tags for semver releases.


The site you are viewing. Initially created for my college web design class.

Highlights & Challenges

Setting up Gulp to handle local development as well as building all the assets for deploying the site. Spun up a VPS through DigitalOcean and installed NGINX and Let’s Encrypt. Uses SVG icons packed into a spritesheet. Flexbox is used for layout for certain components (like this element!).


NicCageIt is a hackathon-created web app where users upload an image and Nicolas Cage's face is super imposed on it. I think it's pretty cool.

Highlights & Challenges

Hands-on experience working with HTML5 <input> and <canvas> to upload and render. Utilized jQuery plugins for face recognition. Learned the hard way about JavaScript closures and their implications.

Say hi

Go ahead and shoot me a message—I don’t bite. I happily accept emails too—you just need to find my address. 😉

I’ll be in touch shortly. Thanks!