Careers
No open roles yet.
AeroLoom Studio is a one-person studio today. When the team grows, roles will be listed here first.
The kind of work the studio does
Android engineering
Kotlin, Jetpack Compose, Room and the platform APIs behind the apps.
Product and interface design
UI/UX, interface systems and prototyping in Figma.
Quality and releases
Testing, store listings and the care that goes into each update.
@Composablefun StudioCard(app: App, onOpen: () -> Unit) {var pressed by remember { mutableStateOf(false) }val scale by animateFloatAsState(if (pressed) 0.98f else 1f)Card(modifier = Modifier.fillMaxWidth().graphicsLayer { scaleX = scale; scaleY = scale }.clickable(onClick = onOpen),shape = MaterialTheme.shapes.extraLarge,) {Row(verticalAlignment = Alignment.CenterVertically) {AppIcon(app.icon, size = 56.dp)Spacer(Modifier.width(16.dp))Column {Text(app.name, style = MaterialTheme.typography.titleLarge)Text(app.tagline, color = MaterialTheme.colorScheme.onSurfaceVariant)}}}}// Small details, shipped carefully.class ReleaseViewModel(private val repo: AppRepository) : ViewModel() {val apps = repo.observeApps().map { list -> list.sortedBy { it.name } }.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())fun refresh() = viewModelScope.launch { repo.sync() }}
@Composablefun StudioCard(app: App, onOpen: () -> Unit) {var pressed by remember { mutableStateOf(false) }val scale by animateFloatAsState(if (pressed) 0.98f else 1f)Card(modifier = Modifier.fillMaxWidth().graphicsLayer { scaleX = scale; scaleY = scale }.clickable(onClick = onOpen),shape = MaterialTheme.shapes.extraLarge,) {Row(verticalAlignment = Alignment.CenterVertically) {AppIcon(app.icon, size = 56.dp)Spacer(Modifier.width(16.dp))Column {Text(app.name, style = MaterialTheme.typography.titleLarge)Text(app.tagline, color = MaterialTheme.colorScheme.onSurfaceVariant)}}}}// Small details, shipped carefully.class ReleaseViewModel(private val repo: AppRepository) : ViewModel() {val apps = repo.observeApps().map { list -> list.sortedBy { it.name } }.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())fun refresh() = viewModelScope.launch { repo.sync() }}
@Composablefun StudioCard(app: App, onOpen: () -> Unit) {var pressed by remember { mutableStateOf(false) }val scale by animateFloatAsState(if (pressed) 0.98f else 1f)Card(modifier = Modifier.fillMaxWidth().graphicsLayer { scaleX = scale; scaleY = scale }.clickable(onClick = onOpen),shape = MaterialTheme.shapes.extraLarge,) {Row(verticalAlignment = Alignment.CenterVertically) {AppIcon(app.icon, size = 56.dp)Spacer(Modifier.width(16.dp))Column {Text(app.name, style = MaterialTheme.typography.titleLarge)Text(app.tagline, color = MaterialTheme.colorScheme.onSurfaceVariant)}}}}// Small details, shipped carefully.class ReleaseViewModel(private val repo: AppRepository) : ViewModel() {val apps = repo.observeApps().map { list -> list.sortedBy { it.name } }.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())fun refresh() = viewModelScope.launch { repo.sync() }}
@Composablefun StudioCard(app: App, onOpen: () -> Unit) {var pressed by remember { mutableStateOf(false) }val scale by animateFloatAsState(if (pressed) 0.98f else 1f)Card(modifier = Modifier.fillMaxWidth().graphicsLayer { scaleX = scale; scaleY = scale }.clickable(onClick = onOpen),shape = MaterialTheme.shapes.extraLarge,) {Row(verticalAlignment = Alignment.CenterVertically) {AppIcon(app.icon, size = 56.dp)Spacer(Modifier.width(16.dp))Column {Text(app.name, style = MaterialTheme.typography.titleLarge)Text(app.tagline, color = MaterialTheme.colorScheme.onSurfaceVariant)}}}}// Small details, shipped carefully.class ReleaseViewModel(private val repo: AppRepository) : ViewModel() {val apps = repo.observeApps().map { list -> list.sortedBy { it.name } }.stateIn(viewModelScope, SharingStarted.Lazily, emptyList())fun refresh() = viewModelScope.launch { repo.sync() }}
Want to be considered later?
Send a short note and a link to your work with “Careers” in the subject. Please don't send documents with personal details you would not want stored.
Press Enter to send, or drag away and release.Email the studioTap, or pull and releaseMeet the team