
Noah Katzman
Verified Expert in Engineering
Software Developer
Noah has over five years of experience in programming APIs, distributed systems, and web apps. He is a software engineer by education, with a great foundation in computer science that helps him understand software systems. As a former Yahoo developer, he has strong ideas and expertise in automated testing, CI/CD, and agile practices. He loves to keep up with industry standards and participate in fast-paced, hard-working teams.
Portfolio
Experience
Availability
Preferred Environment
JavaScript, Git, Linux, MacOS
The most amazing...
...thing I've coded is a Chef library that automated health checks to detect, clean up, and fix Jenkins workers before problems happened.
Work Experience
Software Engineer
Syllable (via Toptal)
- Developed various distributed microservices to support the core user, authorization, and admin functionalities with Node, Lambda, DynamoDB, S3, Redis, and Serverless.
- Developed a distributable JavaScript bundle with React, Redux, and Webpack for adding a chat window to any website.
- Expanded an admin dashboard web application for managing various services and components.
- Defined engineering best practices by bringing in testing frameworks, consolidating common libraries, and setting up continuous delivery pipelines.
- Set up back-end service log aggregation and client-side monitoring.
Co-Founder
Advencha, Inc.
- Designed a JavaScript web application framework with JavaScript ES6, Joi, Express, and Firebase that expedites the process to set up and develop on contracted microservices.
- Created an acceptance testing framework with JavaScript ES6 and Cucumber to easily write and run HTTP requests and assert values on responses.
- Built a data pipeline to download, analyze, and store information from PDFs using Python, Pytesseract, Wand, and ImageMagick.
- Configured continuous deployment pipelines for all services within Kubernetes.
- Set up a reverse proxy with Nginx to download and cache external images over HTTPS to ensure that all connections made from websites are secure.
Software Systems Engineer, Intermediate
Yahoo
- Wrote provisioning and deployment microservices in Node.js to directly integrate the platforms as a service offering into the build system.
- Became a subject matter expert for a companywide initiative to continuously deploy all Node.js applications.
- Contributed to the Chef Cookbook to manage and configure 200+ machine Jenkins Cluster.
- Implemented a Chef library to automate the process of detecting and restoring unhealthy machines in the Jenkins cluster which eliminated the need for developer interaction.
- Helped the lead developer in rewriting and open sourcing the internal build system (http://screwdriver.cd).
- Extended the functionality of external services that were available during builds; learned Bash, Docker, and Go.
Software Engineering Intern
Yahoo
- Wrote Chef Cookbook recipes to configure and manage the enterprise level Chef server.
- Learned the Agile framework and methodology through participation in daily standup and logistical meetings.
- Was exposed to test driven development, pair programming, and developer experience best practices.
Naval Engineering Education Center (NEEC) Researcher
University of Michigan, Perceptual Robotics Laboratory
- Enhanced a graphical viewing display in C++ that enabled a real-time view of published data in the messaging system. The research project was to autonomously land a quadrotor drone on a moving Segway by using onboard video streams, accelerometer data, and April tags for target detection.
- Presented the project at NEEC conferences and was awarded second place for best student undergraduate project.
Data Management Automation and Tools Intern
Autodesk
- Programmed the C# framework for extracting statistics on data sets and selecting data set testing.
- Exposed the statistics framework in a unit testing API.
- Added a scheduling functionality in PHP to an internal website used for booking infrastructure.
Experience
Index.js
In this code, there is a schema defined with Joi. The module will flatten the schema and serve an HTTP-triggered Google function.
To run this code, run the following:
1. "npm install –save expressless joi."
2. "node index."
Then, if you have gcloud set up, you can deploy this serverless function.
Create a bucket called "test-functions."
Run the command: gcloud beta functions deploy foo –stage-bucket="test-functions" –trigger-http –local-path=.""
This will deploy a cloud function called foo. The output should be something like this:
httpsTrigger:
URL: https://-.cloudfunctions.net/foo
From the command line, run:
curl https://-.cloudfunctions.net/foo/v1/foo
You should see that the HTTP request has been served.
Skills
Libraries/APIs
Node.js, React, OpenGL, ImageMagick
Languages
JavaScript, CSS, HTML, SQL, C++, Ruby, Bash, C#, PHP, C, Go, Python
Frameworks
Express.js, Hapi.js, Redux
Tools
Chef, Git, Webpack, Let's Encrypt, Cucumber, NGINX, Jenkins, Sketch
Paradigms
Microservices, Unit Testing, Functional Testing, Test-driven Development (TDD), Continuous Delivery (CD), Agile Software Development
Platforms
Kubernetes, Docker, Firebase, Linux, MacOS, AWS Lambda, Amazon Web Services (AWS)
Storage
MySQL, Amazon DynamoDB, Amazon S3 (AWS S3), Redis, PostgreSQL
Other
Joi, Pytesseract, Computer Vision, Google, Serverless, RHEL, Google Material Design, HTTPS
Education
Bachelor of Science in Computer Science Engineering
University of Michigan - Ann Arbor, MI, USA