-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from jgettings/skills
Skills section
- Loading branch information
Showing
27 changed files
with
1,188 additions
and
104 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* eslint-disable react/destructuring-assignment */ | ||
/* eslint-disable no-console */ | ||
import { Component, ErrorInfo, ReactNode } from 'react'; | ||
|
||
interface Props { | ||
showErrorMessage?: boolean; | ||
children?: ReactNode; | ||
} | ||
|
||
interface State { | ||
hasError: boolean; | ||
} | ||
|
||
class ErrorBoundary extends Component<Props, State> { | ||
constructor(props: Props) { | ||
super(props); | ||
this.state = { hasError: false }; | ||
} | ||
|
||
public static getDerivedStateFromError(): State { | ||
// Update state so the next render will show the fallback UI. | ||
return { hasError: true }; | ||
} | ||
|
||
public componentDidCatch(error: Error, errorInfo: ErrorInfo) { | ||
console.error('Uncaught error:', error, errorInfo); | ||
} | ||
|
||
public render() { | ||
if (this.state.hasError && this.props.showErrorMessage) { | ||
return <h1>Sorry.. there was an error</h1>; | ||
} | ||
if (this.state.hasError) { | ||
return null; | ||
} | ||
|
||
return this.props.children; | ||
} | ||
} | ||
|
||
export default ErrorBoundary; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import { twMerge } from 'tailwind-merge'; | ||
|
||
type LoadingSkeletonProps = { | ||
className?: string; | ||
}; | ||
|
||
/** | ||
* https://flowbite.com/docs/components/skeleton/ | ||
*/ | ||
const LoadingSkeleton: React.FC<LoadingSkeletonProps> = ({ className }) => ( | ||
<div role="status" className={twMerge('max-w-sm animate-pulse', className)}> | ||
<div className="mb-2.5 h-2 max-w-[360px] rounded-full bg-gray-200 dark:bg-gray-700" /> | ||
<div className="mb-2.5 h-2 rounded-full bg-gray-200 dark:bg-gray-700" /> | ||
<div className="mb-2.5 h-2 max-w-[330px] rounded-full bg-gray-200 dark:bg-gray-700" /> | ||
<div className="mb-2.5 h-2 max-w-[300px] rounded-full bg-gray-200 dark:bg-gray-700" /> | ||
<div className="h-2 max-w-[360px] rounded-full bg-gray-200 dark:bg-gray-700" /> | ||
<span className="sr-only">Loading</span> | ||
</div> | ||
); | ||
|
||
export default LoadingSkeleton; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
While I've been focused on the frontend at my last couple of roles, I still have had a hand in designing the API contracts needed to get various features working. In this capacity I've worked with both RESTful and GraphQL APIs and I've also helped make minor adjustments to them as needed in Python and Kotlin. | ||
|
||
In full stack roles I've worked extensively with REST APIs and APIs that return a custom set of data tailored to the frontend without following a standard like REST. Most of this has been in C# and Java. I've also worked with many webapps that were pure MVC or a mix of MVC with some javascript on the frontend for interactivity. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
I tend to wind up being the person on the team who is always pushing for more meaningful tests. I don't just want code coverage metrics though, I want tests that will ensure that specific issues do not reoccur and tests that make development easier. A lot of times this means adding end-to-end tests or figuring out how to write a test around a clunky piece of legacy code that no one wants to touch. I've also found a lot of value in writing scripts to create test data in the dev database on a few different occasions, which has helped me in developing a feature but also helps the team maintain that feature and others as the test data is expanded to more use cases. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
In my time at _Campus Labs_, we were constantly trying to move things to more scalable infrastructure. We leveraged some cloud services in Microsoft Azure for things like scheduled mailings that needed to go to many people, processing data asynchronously, etc. Pretty much anything that could be done asynchronously outside of the main webapp got moved to Azure Functions (similar to AWS Lambda) and some of these used Azure Tables or Blob Storage for persistence. Many of these services also used Azure Storage Queues or Azure Service Bus. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
The majority of my deployed devops experience has been in my time at _Campus Labs_ working with Azure. I was very hands on with spinning up new webapps (APIs and/or frontends), scaling existing apps, and monitoring everything. There I also owned a lot of the build and deploy pipelines in Azure DevOps for our team. | ||
|
||
I'm also always a big proponent of investing a little bit of extra time making dev processes and scripts easier and more straightforward. This usually comes in the form of iterative improvements to local testing and how we run apps locally. I also really like tools like Storybook to help run and test components in isolation while also documenting them for future devs. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
As the relative Java expert in my time at _Studio_, I did a small amount of maintenance on the Central Park Android App in 2015. Learning the basics of mobile development was very interesting but I haven't had a chance to apply those skills elsewhere professionally. In my own time I have tinkered a little bit with React Native but nothing worth showcasing. | ||
|
||
Since most of my work has been in webapps I have created many responsive components, apps, and pages. Usually this has involved a component library or css framework but I've also created plenty of responsive UIs from scratch with media queries. | ||
|
||
#### Public Projects | ||
|
||
- [Central Park Android App](https://play.google.com/store/apps/details?id=com.centralpark.mobile&hl=en_US) |
Oops, something went wrong.