![A picture of Josh McFarlin](https://cdn.sanity.io/images/ai1hbij4/production/327c50f55e0482b18d1975d8df3073c155747649-1086x724.jpg?w=3840&q=75&fit=clip&auto=format)
About Me
Hi, I'm Josh! I am a software engineer currently working on full-stack software projects at Microsoft. I also enjoy working on projects solving real-world problems in my spare time.
Education
Georgia Institute of Technology
2017 - 2022 in Atlanta, GA
Bachelor of Science in Computer Science with concentrations in Information Internetworks and People.
Work Experience
Software Engineer @ Microsoft
August 2022 - October 2023
- Independently began the development of new software tooling for security researchers by creating React web apps that interact with Azure Serverless hosted Python and TypeScript APIs.
- Developed high-performance and scalable APIs using serverless functions while supporting developers by requiring OpenAPI documentation for all services.
- Participated in product demos and feedback sessions that led to the establishment of new partnerships with other teams to share and ingest new through teams respective APIs.
- Identified areas lacking tooling when working on assigned features to independently develop two internal tools for visualizing and creating advanced data models used by security researchers.
- Leveraged a combination of SQL and TinkerPop Graph databases to optimally store and query complex data sets while designing automated pipelines for ingesting and validating data.
Co-Op Full-Stack Engineer @ Zeal
August - December 2020
- Created new pages on customer and admin dashboards using React, allowing for better analysis of outgoing and historical payments and interaction with third-party services.
- Expanded multi-tenant authentication system to support additional tiers of user access through the creation of Node API endpoints and the creation of new pages in a React web app.
- Developed and implemented a method for white-label applications using AWS Cloudfront, AWS Lambda, and DNS records.
- Independently developed a new React Native library for handling client onboarding through REST APIs.
Software Engineer Intern @ BetterCloud
January - May 2019
- Developed customer-facing workflows in JavaScript connecting dashboards with automated tasks for multiple SaaS app integrations.
- Built a dashboard for retrieving the operating status of different APIs using React and Java Spring, saving developers across many teams valuable time by removing four steps needed to access data.
- Improved functionality and design of BetterCloud’s customer and internal development dashboards using React and Redux connected to a Spring back-end through REST APIs.
Involvement
Engineering Manager @ Bits of Good
January 2020 - January 2021 in Atlanta, GA
- Served as an engineering manager for Bits of Good, an organization pairing students with local nonprofits to code custom software for different needs.
- Led the development of a mobile-first web app for an organization creating a social media network connecting young women with mentors.
- Worked with a product manager to develop a feature roadmap and coordinated work among developers by assigning tasks and providing help as needed.
- Helped Bits of Good transition to server-side rendered React projects using Next.js by developing detailed templates and documentation for implementing the technologies.
Senior Developer @ Bits of Good
September - December 2019 in Atlanta, GA
- Developed a web application to streamline the process of nonprofits requesting help from Bits of Good.
- Served as lead back-end engineer, leveraging Next.js for serving API routes and server-side rendering, interacting with a MongoDB database for permanent storage.
Team Lead @ SquatBuddy
August - December 2019 in Atlanta, GA
- Formed a startup as part of Create-X Capstone focusing on providing detailed analytics of workouts.
- Developed a physical device for tracking the performance and quality of a workout while preventing possible injuries.
- Led development of software and embedded technology using machine learning and computer vision for analysis.
- Formulated implementation plans through repeated rounds of market research, physical prototypes, and continuous code optimizations.
Skills
Front-End Development
Languages
![TypeScript](https://cdn.sanity.io/images/ai1hbij4/production/3ed9865a890ea59e7452dd3b18dd3825e679b9a6-2048x2048.png?w=64&q=75&fit=clip&auto=format)
TypeScript
![JavaScript](https://cdn.sanity.io/images/ai1hbij4/production/12941a97b618ed6cc3570335ea289a72848de723-1052x1052.png?w=64&q=75&fit=clip&auto=format)
JavaScript
![HTML5](https://cdn.sanity.io/images/ai1hbij4/production/5f6a5932845e31227bce4a42b470751d463784f6-256x256.png?w=64&q=75&fit=clip&auto=format)
HTML
![CSS3](https://cdn.sanity.io/images/ai1hbij4/production/364953ba4c0161fcb32db3460889850b4daa6a6d-500x559.png?w=64&q=75&fit=clip&auto=format)
CSS
Frameworks
![React.js](https://cdn.sanity.io/images/ai1hbij4/production/12c2fc4ef7a83b05f3a3e93d2668c805d82ac2b4-1024x724.png?rect=213,91,598,537&w=64&q=75&fit=clip&auto=format)
React.js
![Next.js](https://cdn.sanity.io/images/ai1hbij4/production/e19a69a395c4b04a072fdb664339aeaf1b332108-1626x1347.png?w=64&q=75&fit=clip&auto=format)
Next.js
![Redux](https://cdn.sanity.io/images/ai1hbij4/production/f7e02fa094f54757487100cc5de2e009f16743f4-3440x3109.png?w=64&q=75&fit=clip&auto=format)
Redux
Content Delivery
![Sanity](https://cdn.sanity.io/images/ai1hbij4/production/6ed24a12e20d2560228d57a576ee4b2c6c7acda8-512x512.png?rect=96,44,322,418&w=64&q=75&fit=clip&auto=format)
Sanity
![Fastly](https://cdn.sanity.io/images/ai1hbij4/production/727d3917360ac45556eb4bb91e17c1d5d2ddc84f-1317x512.png?w=64&q=75&fit=clip&auto=format)
Fastly
![Cloudinary](https://cdn.sanity.io/images/ai1hbij4/production/0e1322ab5494600a097a0abeeab30d6dd8d3d46d-500x500.png?rect=25,102,450,296&w=64&q=75&fit=clip&auto=format)
Cloudinary
Back-End Development
Languages
![TypeScript](https://cdn.sanity.io/images/ai1hbij4/production/3ed9865a890ea59e7452dd3b18dd3825e679b9a6-2048x2048.png?w=64&q=75&fit=clip&auto=format)
TypeScript
![JavaScript](https://cdn.sanity.io/images/ai1hbij4/production/12941a97b618ed6cc3570335ea289a72848de723-1052x1052.png?w=64&q=75&fit=clip&auto=format)
JavaScript
![Python](https://cdn.sanity.io/images/ai1hbij4/production/af80f22d7a60a490159e6de5707ce9f1a6873b96-1024x1024.png?w=64&q=75&fit=clip&auto=format)
Python
![Java](https://cdn.sanity.io/images/ai1hbij4/production/14081a253458f6afa02d3af69a1dfce9687cff79-379x512.png?w=64&q=75&fit=clip&auto=format)
Java
![C](https://cdn.sanity.io/images/ai1hbij4/production/091fa84a66620e4a8ca30cecf41786f52f573d15-267x300.png?w=64&q=75&fit=clip&auto=format)
C
Frameworks
![Node.js](https://cdn.sanity.io/images/ai1hbij4/production/be3acc8af19ca4b463ed011a795e49cc77f5b2c8-435x473.png?w=64&q=75&fit=clip&auto=format)
Node.js
![Express](https://cdn.sanity.io/images/ai1hbij4/production/fa0bfdd11fb97d5ec426cebc4770db4bc1852adb-140x141.png?w=64&q=75&fit=clip&auto=format)
Express
![FastAPI](https://cdn.sanity.io/images/ai1hbij4/production/2a6710b681d3c65f71a68293f0e22eb2c77c7b7c-250x250.png?w=64&q=75&fit=clip&auto=format)
FastAPI
![Django](https://cdn.sanity.io/images/ai1hbij4/production/f3a5f794bfaa73ff06933eb788283117c2617634-1000x1000.jpg?rect=128,384,738,262&w=64&q=75&fit=clip&auto=format)
Django
![Flask](https://cdn.sanity.io/images/ai1hbij4/production/29626775c007da9b2d129508940ee8666fc306c6-840x1146.jpg?rect=14,34,815,1068&w=64&q=75&fit=clip&auto=format)
Flask
Spring
Cloud Services
![Azure](https://cdn.sanity.io/images/ai1hbij4/production/afb1cb8ce54ec4c0e38f36a34c42a0626e475e05-600x566.png?w=64&q=75&fit=clip&auto=format)
Azure
![AWS](https://cdn.sanity.io/images/ai1hbij4/production/701629a36b306aa16b7bc4ea482c2ced74c24b0c-1280x766.png?w=64&q=75&fit=clip&auto=format)
AWS
![Google Cloud](https://cdn.sanity.io/images/ai1hbij4/production/c0cc37272fb0cbd7cff368ea7294001032dc5287-2400x2128.png?w=64&q=75&fit=clip&auto=format)
Google Cloud
![Firebase](https://cdn.sanity.io/images/ai1hbij4/production/1921568e58d9d58a3769522bd122ba737baff46a-2400x3291.png?w=64&q=75&fit=clip&auto=format)
Firebase
![Netlify](https://cdn.sanity.io/images/ai1hbij4/production/fb6789b02e108ba04173277b947d70fbd6535388-500x500.png?w=64&q=75&fit=clip&auto=format)
Netlify
![Zeit Now](https://cdn.sanity.io/images/ai1hbij4/production/df8d47e8c9cc6e3d1a31aaa274e88267dfc25f19-114x100.png?w=64&q=75&fit=clip&auto=format)
Vercel
![Cloudflare](https://cdn.sanity.io/images/ai1hbij4/production/feae211bf6d65d064a33c7a87d46ee0b7c616dbd-1368x1368.png?rect=0,312,1368,632&w=64&q=75&fit=clip&auto=format)
Cloudflare
Databases
![MongoDB](https://cdn.sanity.io/images/ai1hbij4/production/db5196212e4fed4842fc82291068c5c7fd951324-820x740.png?rect=218,11,326,709&w=64&q=75&fit=clip&auto=format)
MongoDB
![SQLite](https://cdn.sanity.io/images/ai1hbij4/production/83b25306648ff05155ae28b8b906ceecc3743c89-1024x1024.png?w=64&q=75&fit=clip&auto=format)
SQLite
![MySQL](https://cdn.sanity.io/images/ai1hbij4/production/b601a1b673bd1f6d563f420c50c05632ea042cd7-520x512.png?w=64&q=75&fit=clip&auto=format)
MySQL
![TinkerPop](https://cdn.sanity.io/images/ai1hbij4/production/87cf0121071be145e7974931eda2106e6c22ef00-280x280.png?w=64&q=75&fit=clip&auto=format)
TinkerPop
![Gremlin](https://cdn.sanity.io/images/ai1hbij4/production/fbf720ed61892a00da71a1913e3d5cdd77ad5a10-199x211.png?w=64&q=75&fit=clip&auto=format)
Gremlin