Sean Tyndale
Front-End Developer

Design that works.
Code that delivers.

Sean Tyndale

Front-end and back-end developer specialising in React Native, TypeScript, and Framer. I build clean, purposeful digital experiences that perform.

Sean Tyndale
Framer
WordPress
Elementor Pro
FigmaFigma
HTML5HTML5
CSS3CSS3
M
Mailchimp
theboldbeginner.com
Framer · CMS · Mailchimp
The Bold Beginner
Figma-to-Framer build with dynamic CMS, podcast library, and marketing automation.
FramerCMSMailchimp
View case study
Coming soon
WordPress
Untitled project
Next build — currently in progress.
WordPress
Coming soon
Framer
Untitled project
Next build — currently in progress.
Framer
React NativeReact Native
TypeScriptTypeScript
HTML5HTML5
CSS3CSS3
ReduxRedux
FirebaseFirebase
GraphQL
GitGit / GitHub
NotificationSettings.tsx
const NotificationSettings = () => { const [enabled, setEnabled] = useState<boolean>(false); const handleToggle = async (val) => { setEnabled(val); await AsyncStorage.setItem( 'notifications', JSON.stringify(val) ); }; return <Switch value={enabled} onValueChange={handleToggle} />; };
Bali Padel App · 2024–2025
Notification Settings
Built notification preference screen with Expo SDK, AsyncStorage persistence, and cross-platform compatibility for Android and iOS.
React NativeAsyncStorageExpo
View on GitHub
ProfileSettings.tsx
interface UserProfile { name: string; notifications: boolean; rankingVisible: boolean; } const ProfileTab = () => { const [profile, setProfile] = useState<UserProfile>(); // Persisted via Firebase const save = async () => await updateUserDoc(profile); };
Bali Padel App · 2024–2025
Profile / Settings Tab
Created settings tab with interactive toggle switches and AsyncStorage persistence. Later integrated with Firebase to sync user preferences across sessions.
TypeScriptFirebaseAsyncStorage
View on GitHub
RankingList.tsx
const RankItem = React.memo( ({ player, rank }) => ( <View style={styles.row}> <Text>{rank}</Text> <Text>{player.name}</Text> </View> ) ); const keyExtractor = (item) => item.id.toString();
Bali Padel App · 2024–2025
Ranking FlatList
Refactored ranking list using React.memo and memoization to eliminate unnecessary re-renders and optimise scroll performance under animation.
React NativeReact.memoGraphQL
View on GitHub
JavaScriptJavaScript
TypeScriptTypeScript
Node.jsNode.js
PythonPython
SQLSQL
JestJest
npmnpm
distribution(submissions, checkBoxId) ● LIVE
userSatisfied
72%
userHappy
61%
single
55%
married
41%
haveEpilepsy
3%
percentageOfTrue:72.00 percentageOfFalse:28.00
Open Source · Just Train · 2023–2024
form.io Data Analytics
Built a TypeScript library for analyzing form.io submission data — iterating nested JSON to extract checkbox distributions and calculate true/false percentages. Published as an npm package with Jest test coverage.
TypeScriptNode.jsJestnpm
View demo
Scratch basketball game
Personal Project · 2023
Scratch Game
Interactive basketball game built in MIT Scratch — demonstrating core programming concepts: conditionals, loops, event handling, and sprite logic.
MIT ScratchGame LogicVisual Programming
Play game
GreenChain Carbon Emissions dashboard
Carbon Emissions · Ethereum
H.E.R. DAO Hackathon · 2023
Green Chain — 1st Place
Web app that lets Ethereum users link their public wallet to automatically calculate the carbon footprint of their blockchain transactions — with offset suggestions and greener alternatives. Built in under 48 hours.
JavaScriptHTMLCSSSolidityReactEthereum
1st place winner
View on GitHub

Let's build something worth seeing.

Available for freelance projects, front-end contracts, and full-time roles. Based wherever the work takes me.

[email protected] Download CV