Ariel Elkaslasi·Application Developer at SHRAGA V LTD
Full-stack developer, frontend first. By day, I build what people ask for. By night, I ruin my sleep schedule for side projects.


Connect
Hit me up on LinkedIn.
DMs are open.Work, side projects, or a problem you can't hand to anyone else.
What I build with.
The interface is where I'm strongest and where most of the time goes. The three layers under it are what keep it standing. Scroll slowly and each one draws itself.
Worked example: the Now-playing card further down this page.
Loading
Fetching the last track
Live from the Spotify API
One component, three states
right now: loading
- loadingskeleton, exact size
- playingequalizer + live badge
- idlenothing playing
// NowPlaying.tsx
<div className="card p-5">
{loading && <Skeleton/>}
{isPlaying
? <Equalizer/>
: <Glyph/>}
<Image src={art} fill />
</div>
Loading is designed. A skeleton holds the album art's exact size, so nothing jumps when data lands.
UI is a function of state. The equalizer renders only while isPlaying is true, never toggled by hand.
Tailwind utilities only. The card is a handful of classes, no per-component stylesheet to drift.
Worked example: the same card, one request all the way out and back.
Browser
useSpotify()
polls every 30 s
Next.js route
/api/spotify
runs on the server
Spotify API
player · accounts
OAuth refresh token
Subscribers
hero pill · now card
→ one interval, shared
Server only
client id · secret
refresh token
type SpotifyState = {
isPlaying: boolean; title?: string }
imported by the route and the hook
One shared poller. Both widgets subscribe to the same 30-second fetch, so two cards never mean two requests.
Secrets stay on the server. The route refreshes the Spotify token; the browser only sees finished JSON.
One type on both sides. If Spotify changes shape, the build fails instead of a visitor seeing undefined.
Worked example: users and orders, the shape underneath most products.
def active_users(conn):
return conn.execute(
"SELECT u.email, count(o.id)"
" FROM users u JOIN orders o"
" ON o.user_id = u.id"
" WHERE u.active GROUP BY 1"
).fetchall()
Schema first. Foreign keys and constraints do the validation the app would otherwise fake, and never forget.
Python owns the query. The API returns rows; raw SQL never leaves the server.
Indexes are designed with the query. The plan is checked in DBeaver before the feature ships.
Worked example: how a commit to this site reaches production.
Web
Vercel · edge cached
arielelkaslasi.com
Desktop
Tauri · same React UI
.exe · .dmg · .AppImage
Git is the changelog. Small commits, readable messages, a history that explains the product.
Green before merge. Every push builds, typechecks and lints; a red check never reaches production.
One interface, two targets. Vite bundles it for the web, Tauri wraps it as a desktop app.
Years experience
Projects built
Technologies
Always seeking to improve and build something meaningful.
Selected projects.
Small personal projects I've built over the years. Not the impressive selection, just the ones I liked and had the most fun building.
Where I've worked.
Where I've been paid to learn fast. Right now that's SHRAGA V LTD, where I own web apps and internal tools across the whole stack. If you want the long version, LinkedIn has the receipts.
01
2026 to Present
Full-time · Center District, Israel · On-site
SHRAGA V LTD
Application Developer
Jun 2026 to Present · On-site
Responsible for our web apps and internal tools across the whole stack. Frontend is my strongest area: React and Tailwind, plus the UI/UX design work behind it. I also build the backend in Python, design and maintain the relational database schema, and write the queries behind it. Beyond the code, I work directly with customers to define what they need, and with the rest of the team on reviews, shared standards, and reusable components.
- React
- Tailwind
- UI/UX
- Python
- PostgreSQL
- SQL
- Front-End Development
- Application Development
02
2024 to 2026
Part-time · 2 yrs · Israel
Arcusis
Full Stack Developer
Aug 2025 to Jun 2026 · Hybrid
Full Stack Developer using Next.js to build modern web applications, handling frontend development and integrating backend functionality through third-party services and APIs.
Frontend Developer
Jul 2024 to Aug 2025 · Remote
Contributed part-time as a Full Stack Developer focusing on frontend, helping build and maintain websites and web apps that support social impact initiatives in the Israeli online community. Grateful for the opportunity to give back to a mission I believe in, while continuing to grow my skills in a real-world environment with a supportive, purpose-driven team.
- Next.js
- React
- TypeScript
- Appwrite
- Firebase
- Tailwind
- Third-party APIs
03
2023 to Present
Contract · Remote
Various Clients
Freelance Developer
2023 to Present · Remote
Created custom web solutions for clients through freelance and contract work. Focused on building modern, responsive applications with attention to user experience and performance.
- Web Development
- Client Management
From code fails to real stories.
This is the part of the site I care most about. It's the story of how I got here, with the mistakes left in, and I wrote it for the version of you that's just starting out. Give it eight minutes.
In the drafts
New post coming soon
More content is on the way about web development and the journey of building projects.
Stay tuned
What's happening right now.
Not a static résumé. This panel shows you what's actually on my screen today: the time where I am, what I'm learning, what I just pushed, and what I'm listening to while doing it.
--:--:--
Kfar Saba, Israel
··· · Asia/Jerusalem
- Role
- Application Developer @ SHRAGA V
- Status
- Employed full-time
- Focus
- Interfaces, full stack
- Learning
- PostgreSQL, DBeaver, schema design
Loading
Fetching the last track

