Kotlin Script

Eugen Martynov
Eugen MartynovAndroid Engineer en Yolt by ING
15 Jun, DAUG
Kotlin Script
Even more Kotlin if you want (need)
What is about
Agenda
• Kotlin script (what, how)
• Short about CLI
• Demo
• Experience
• Q&A
Freelance Android Engineer
Available for hire
PROFILE
Skilled MOBILE ENGINEER with years of experience building robust, secure and slick client-server applications. My biggest challenge is improving mobile development to desktop/server-side quality and processes level.
EXPERTISE
Languages: Kotlin, Java, Swift, Objective-C
Platforms: Android, iOS
Tools/Libraries: Android Studio, IntelliJ IDEA, Xcode, AppCode, Git, Gradle, Maven, CocoaPods, Proguard, DexGuard, JUnit, Mockito, AssertJ, Espresso, GitHub, GitLab, Jenkins, Sonar, Jira, TestFlight, Crashlytics, Firebase, Lokalise, Jetpack Compose UI, Dagger2/Hilt, Koin, RxJava, Kotlin
Coroutines, JetPack, Retrofit, OkHttp, Glide, Coil, Moshi, Gson, Kotlin Serialization, Jackson
Methodologies: Scrum, Kanban, Open Source, SOLID, Automated testing, TDD, CI/CD, OOP, Security, XP
ANDROID ENGINEER, DOKTOR.SE, REMOTE — 2021-CURRENT
www.doktor.se www.doktor.de
My main focus is a project that was launched in Germany in 2022. I currently hold a mobile lead for the new feature we are working on with the iOS team. The most significant features - the patient documents, biometrics unlock, and various partners integration.
However, I spend 30% of my time on various improvements. Added automated build profiling, introduced feature toggles, and added result class and retrofit call factory to make the network stack look more functional. I worked on app minification. I updated the app targeting for Android 13. And
much more.
ANDROID ENGINEER, SQUIRE, REMOTE — 2021
www.getsquire.com
I joined Squire at the start of the barber app rewrite. I work on the barber profile section and spend 20% of my time on various improvements. Introduced zero warning policy, added build profiling, and decreased app apk size (30%) by removing unused dependencies.
Also introduced a process to communicate API issues and proposals for the changes.
ANDROID ENGINEER, TRIPACTIONS, AMSTERDAM, NL — 2020
www.tripactions.com
I joined TripActions as the android test and automation expert.
I worked as part of the support team and implemented chat features like emoji reactions, sending GIF and media URLs from keyboard apps, reworked model and JSON paring for the chat context buttons. As well I improved the build speed on CI by around 30%, added the ability to quickly
check new lint findings, and decreased the size of the apk binary for the 4MB (around 5%). Participated in multiple discussions around team collaboration, and currently a company expert in the localisation project.
ANDROID ENGINEER, YOLT BY ING, AMSTERDAM, NL — 2016-2020
www.yolt.com
I joined Yolt after two weeks as Android development started. We discussed architecture and a minimal set of dependencies with another Android engineer. Currently, I’m the chapter lead of the Yolt Android team. That includes looking forward to new Android changes and product vision,
monitoring and improving team process/standards, managing technical debt, grooming the Android brand within and outside the company, collaborating with partners and Yolt stakeholders, maintaining build tooling and resolving infrastructure questions, advocating conversations with PO and
other disciplines within the company. Thanks to the proactive Android team, I am still in massive development and slowly building features like GDPR, KYC (Know your customer), PSD2/Open Banking.
SENIOR ANDROID ENGINEER, CDP PHILIPS, EINDHOVEN, NL — 2015-2016
www.philips.nl/c-m-mo/ugrow-gezonde-ontwikkeling-van-babys
Joined just formed the uGrow android team. Together with another senior developer, we set up the project, chose initial dependencies and started features. Kept 90% coverage as a rule and had Calabash acceptance tests. Chased the iOS team with UI perfection and nice animations.
Participating in the department competence group and pushing continuous delivery into projects.
MOBILE ENGINEER, MINDDISTRICT, AMSTERDAM, NL — 2014-2015
www.minddistrict.com
I started the mobile division at Minddistrict, which grew later to a team of three people. Developed Android and iOS Minddistrict diary application. The critical factor is app security which is essential for the eHealth app. We were highly reliant on unit tests and automated acceptance testing.
LEAD MOBILE DEVELOPER, EBUDDY, AMSTERDAM, NL — 2013
www.xms.me, www.ebuddy.com
I was part of eBuddy XMS core team. Challenge and assist business and product teams with future solutions and estimations. Later moved back to complete development for personal reasons. Was involved in product application development, quality improvements, and consistency in
processes and philosophy. Contributed to raise company values and share them inside and outside the company.
MOBILE JAVA DEVELOPER, EBUDDY, AMSTERDAM, NL — 2010-2013
www.ebuddyxms.com, www.ebuddy.com
Worked under eBuddy Chat (former IM) Android and J2ME clients, eBuddy XMS Android, BlackBerry and J2ME for a couple of years. The main areas of focus were quality improvements and automated product testing.
Contributed to eBuddy XMS mobile Java SDK and was a scrum master for the Android team for a short time.
MOBILE TEAM LEAD, TEAMDEV, KHARKIV, UA — 2010
www.mylifeorganized.net
Worked with the team on several indoor and customer products for various platforms (Android, BlackBerry, iOS). Managed small team and continued development in 30/70 base.
EDUCATION
Kharkiv National University — Master of Applied Mathematics, 2003
Stanford University Online — Algorithms: Design and Analysis Part I, 2012
OTHER ACTIVITIES
I’m mad about dances, yoga, swimming and rugby.
Kotlin Script
What is Kotlin Script
• Execute Kotlin code without prior compilation or packaging
• Experimental -> Beta
How to Kotlin Script
• .kts, .main.kts
• kotlinc
• kscript
• kotlin
CLI
Command Line Interface
• Interaction over the text inputs (terminal)
• prompt command param1 … paramN
• Options (
fl
ags) and Arguments (parameters)
Kotlin Script and CLI
• KotlinX CLI
• Clikt
• Kotlin Shell
Demo
Experience
Take aways
• Preinstalled environment
• JVM (starting noticeably slow), jvm dependencies
• IDE support
• Debug/Tests
• Can not use compiler plugins (KT-47384)
• Exit code
• Kotlin slack
Q&A
Kotlin Script
Thank you!
1 de 15

Recomendados

Divy's cv por
Divy's cvDivy's cv
Divy's cvdivy dhiman
138 vistas12 diapositivas
SandeepKumarPadhi Android 2plusYears EXP Updated por
SandeepKumarPadhi Android 2plusYears EXP UpdatedSandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP Updatedsandeep kumar padhi
89 vistas8 diapositivas
SandeepKumarPadhi Android 2plusYears EXP Updated por
SandeepKumarPadhi Android 2plusYears EXP UpdatedSandeepKumarPadhi Android 2plusYears EXP Updated
SandeepKumarPadhi Android 2plusYears EXP Updatedsandeep kumar padhi
83 vistas7 diapositivas
Ehab Mohamed Ashraf - CV por
Ehab Mohamed Ashraf - CVEhab Mohamed Ashraf - CV
Ehab Mohamed Ashraf - CVE_BOB
286 vistas5 diapositivas
Iffran por
IffranIffran
Iffraniffransyed
26 vistas7 diapositivas
Somayajulu_CV por
Somayajulu_CVSomayajulu_CV
Somayajulu_CVSomayajulu Mula
200 vistas4 diapositivas

Más contenido relacionado

Similar a Kotlin Script

Muhammad Hamdy_MSSWE por
Muhammad Hamdy_MSSWEMuhammad Hamdy_MSSWE
Muhammad Hamdy_MSSWEMuhammad Hamdy
132 vistas3 diapositivas
Manojraj_1year_Experienced por
Manojraj_1year_ExperiencedManojraj_1year_Experienced
Manojraj_1year_ExperiencedManoj Raj
125 vistas3 diapositivas
Saravanan B_Testing por
Saravanan B_TestingSaravanan B_Testing
Saravanan B_TestingSaravanan B
113 vistas4 diapositivas
Narender_Resume por
Narender_ResumeNarender_Resume
Narender_ResumeNarender Kumar
213 vistas4 diapositivas
Aisha hanif por
Aisha hanifAisha hanif
Aisha hanifAishaHanif7
124 vistas3 diapositivas
Resume Suraj por
Resume SurajResume Suraj
Resume SurajSuraj Mukare
82 vistas3 diapositivas

Similar a Kotlin Script(20)

Manojraj_1year_Experienced por Manoj Raj
Manojraj_1year_ExperiencedManojraj_1year_Experienced
Manojraj_1year_Experienced
Manoj Raj125 vistas
Saravanan B_Testing por Saravanan B
Saravanan B_TestingSaravanan B_Testing
Saravanan B_Testing
Saravanan B113 vistas
ImranBaigCV por Imran Baig
ImranBaigCVImranBaigCV
ImranBaigCV
Imran Baig189 vistas
MCL Corporate Presentation - 0416 por Raj Ojha
MCL Corporate Presentation - 0416MCL Corporate Presentation - 0416
MCL Corporate Presentation - 0416
Raj Ojha296 vistas
MCL Corporate Presentation - 0416 por Raj Ojha
MCL Corporate Presentation - 0416MCL Corporate Presentation - 0416
MCL Corporate Presentation - 0416
Raj Ojha1.1K vistas
Mobile Application Development por neptunesol
Mobile Application DevelopmentMobile Application Development
Mobile Application Development
neptunesol12 vistas
Bipin Pradhan UX & UI Designer por Bipin Pradhan
Bipin Pradhan UX & UI DesignerBipin Pradhan UX & UI Designer
Bipin Pradhan UX & UI Designer
Bipin Pradhan3.5K vistas
Resume_diljeet_singh_UI_developer_2016 (1) por Diljeet Singh
Resume_diljeet_singh_UI_developer_2016 (1)Resume_diljeet_singh_UI_developer_2016 (1)
Resume_diljeet_singh_UI_developer_2016 (1)
Diljeet Singh116 vistas
Mobility Architect_Rajasekaran Sagadevan_10+ por Raja Sekaran
Mobility Architect_Rajasekaran Sagadevan_10+Mobility Architect_Rajasekaran Sagadevan_10+
Mobility Architect_Rajasekaran Sagadevan_10+
Raja Sekaran305 vistas
AmitSingh_updated resume por Amit Singh
AmitSingh_updated resumeAmitSingh_updated resume
AmitSingh_updated resume
Amit Singh333 vistas
Pradeep_iOS_Developer por Pradeep kn
Pradeep_iOS_DeveloperPradeep_iOS_Developer
Pradeep_iOS_Developer
Pradeep kn186 vistas

Más de Eugen Martynov

My path to freelance por
My path to freelanceMy path to freelance
My path to freelanceEugen Martynov
4 vistas14 diapositivas
Gradle Again por
Gradle AgainGradle Again
Gradle AgainEugen Martynov
74 vistas30 diapositivas
Android CD por
Android CDAndroid CD
Android CDEugen Martynov
199 vistas39 diapositivas
Lokalise por
LokaliseLokalise
LokaliseEugen Martynov
417 vistas24 diapositivas
DI with Dagger2 por
DI with Dagger2DI with Dagger2
DI with Dagger2Eugen Martynov
410 vistas18 diapositivas
Facebook Stetho por
Facebook StethoFacebook Stetho
Facebook StethoEugen Martynov
390 vistas21 diapositivas

Último

Control Systems Feedback.pdf por
Control Systems Feedback.pdfControl Systems Feedback.pdf
Control Systems Feedback.pdfLGGaming5
6 vistas39 diapositivas
Activated sludge process .pdf por
Activated sludge process .pdfActivated sludge process .pdf
Activated sludge process .pdf8832RafiyaAltaf
9 vistas32 diapositivas
K8S Roadmap.pdf por
K8S Roadmap.pdfK8S Roadmap.pdf
K8S Roadmap.pdfMaryamTavakkoli2
6 vistas1 diapositiva
NEW SUPPLIERS SUPPLIES (copie).pdf por
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdfgeorgesradjou
15 vistas30 diapositivas
Pull down shoulder press final report docx (1).pdf por
Pull down shoulder press final report docx (1).pdfPull down shoulder press final report docx (1).pdf
Pull down shoulder press final report docx (1).pdfComsat Universal Islamabad Wah Campus
13 vistas25 diapositivas
SNMPx por
SNMPxSNMPx
SNMPxAmatullahbutt
17 vistas12 diapositivas

Último(20)

Control Systems Feedback.pdf por LGGaming5
Control Systems Feedback.pdfControl Systems Feedback.pdf
Control Systems Feedback.pdf
LGGaming56 vistas
NEW SUPPLIERS SUPPLIES (copie).pdf por georgesradjou
NEW SUPPLIERS SUPPLIES (copie).pdfNEW SUPPLIERS SUPPLIES (copie).pdf
NEW SUPPLIERS SUPPLIES (copie).pdf
georgesradjou15 vistas
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,... por AakashShakya12
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
AakashShakya1272 vistas
Machine Element II Course outline.pdf por odatadese1
Machine Element II Course outline.pdfMachine Element II Course outline.pdf
Machine Element II Course outline.pdf
odatadese19 vistas
Introduction to CAD-CAM.pptx por suyogpatil49
Introduction to CAD-CAM.pptxIntroduction to CAD-CAM.pptx
Introduction to CAD-CAM.pptx
suyogpatil495 vistas
zincalume water storage tank design.pdf por 3D LABS
zincalume water storage tank design.pdfzincalume water storage tank design.pdf
zincalume water storage tank design.pdf
3D LABS5 vistas
GDSC Mikroskil Members Onboarding 2023.pdf por gdscmikroskil
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdf
gdscmikroskil51 vistas
Design of machine elements-UNIT 3.pptx por gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy32 vistas
Update 42 models(Diode/General ) in SPICE PARK(DEC2023) por Tsuyoshi Horigome
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Update 42 models(Diode/General ) in SPICE PARK(DEC2023)
Tsuyoshi Horigome28 vistas

Kotlin Script

  • 1. 15 Jun, DAUG Kotlin Script Even more Kotlin if you want (need)
  • 2. What is about Agenda • Kotlin script (what, how) • Short about CLI • Demo • Experience • Q&A
  • 3. Freelance Android Engineer Available for hire PROFILE Skilled MOBILE ENGINEER with years of experience building robust, secure and slick client-server applications. My biggest challenge is improving mobile development to desktop/server-side quality and processes level. EXPERTISE Languages: Kotlin, Java, Swift, Objective-C Platforms: Android, iOS Tools/Libraries: Android Studio, IntelliJ IDEA, Xcode, AppCode, Git, Gradle, Maven, CocoaPods, Proguard, DexGuard, JUnit, Mockito, AssertJ, Espresso, GitHub, GitLab, Jenkins, Sonar, Jira, TestFlight, Crashlytics, Firebase, Lokalise, Jetpack Compose UI, Dagger2/Hilt, Koin, RxJava, Kotlin Coroutines, JetPack, Retrofit, OkHttp, Glide, Coil, Moshi, Gson, Kotlin Serialization, Jackson Methodologies: Scrum, Kanban, Open Source, SOLID, Automated testing, TDD, CI/CD, OOP, Security, XP ANDROID ENGINEER, DOKTOR.SE, REMOTE — 2021-CURRENT www.doktor.se www.doktor.de My main focus is a project that was launched in Germany in 2022. I currently hold a mobile lead for the new feature we are working on with the iOS team. The most significant features - the patient documents, biometrics unlock, and various partners integration. However, I spend 30% of my time on various improvements. Added automated build profiling, introduced feature toggles, and added result class and retrofit call factory to make the network stack look more functional. I worked on app minification. I updated the app targeting for Android 13. And much more. ANDROID ENGINEER, SQUIRE, REMOTE — 2021 www.getsquire.com I joined Squire at the start of the barber app rewrite. I work on the barber profile section and spend 20% of my time on various improvements. Introduced zero warning policy, added build profiling, and decreased app apk size (30%) by removing unused dependencies. Also introduced a process to communicate API issues and proposals for the changes. ANDROID ENGINEER, TRIPACTIONS, AMSTERDAM, NL — 2020 www.tripactions.com I joined TripActions as the android test and automation expert. I worked as part of the support team and implemented chat features like emoji reactions, sending GIF and media URLs from keyboard apps, reworked model and JSON paring for the chat context buttons. As well I improved the build speed on CI by around 30%, added the ability to quickly check new lint findings, and decreased the size of the apk binary for the 4MB (around 5%). Participated in multiple discussions around team collaboration, and currently a company expert in the localisation project. ANDROID ENGINEER, YOLT BY ING, AMSTERDAM, NL — 2016-2020 www.yolt.com I joined Yolt after two weeks as Android development started. We discussed architecture and a minimal set of dependencies with another Android engineer. Currently, I’m the chapter lead of the Yolt Android team. That includes looking forward to new Android changes and product vision, monitoring and improving team process/standards, managing technical debt, grooming the Android brand within and outside the company, collaborating with partners and Yolt stakeholders, maintaining build tooling and resolving infrastructure questions, advocating conversations with PO and other disciplines within the company. Thanks to the proactive Android team, I am still in massive development and slowly building features like GDPR, KYC (Know your customer), PSD2/Open Banking. SENIOR ANDROID ENGINEER, CDP PHILIPS, EINDHOVEN, NL — 2015-2016 www.philips.nl/c-m-mo/ugrow-gezonde-ontwikkeling-van-babys Joined just formed the uGrow android team. Together with another senior developer, we set up the project, chose initial dependencies and started features. Kept 90% coverage as a rule and had Calabash acceptance tests. Chased the iOS team with UI perfection and nice animations. Participating in the department competence group and pushing continuous delivery into projects. MOBILE ENGINEER, MINDDISTRICT, AMSTERDAM, NL — 2014-2015 www.minddistrict.com I started the mobile division at Minddistrict, which grew later to a team of three people. Developed Android and iOS Minddistrict diary application. The critical factor is app security which is essential for the eHealth app. We were highly reliant on unit tests and automated acceptance testing. LEAD MOBILE DEVELOPER, EBUDDY, AMSTERDAM, NL — 2013 www.xms.me, www.ebuddy.com I was part of eBuddy XMS core team. Challenge and assist business and product teams with future solutions and estimations. Later moved back to complete development for personal reasons. Was involved in product application development, quality improvements, and consistency in processes and philosophy. Contributed to raise company values and share them inside and outside the company. MOBILE JAVA DEVELOPER, EBUDDY, AMSTERDAM, NL — 2010-2013 www.ebuddyxms.com, www.ebuddy.com Worked under eBuddy Chat (former IM) Android and J2ME clients, eBuddy XMS Android, BlackBerry and J2ME for a couple of years. The main areas of focus were quality improvements and automated product testing. Contributed to eBuddy XMS mobile Java SDK and was a scrum master for the Android team for a short time. MOBILE TEAM LEAD, TEAMDEV, KHARKIV, UA — 2010 www.mylifeorganized.net Worked with the team on several indoor and customer products for various platforms (Android, BlackBerry, iOS). Managed small team and continued development in 30/70 base. EDUCATION Kharkiv National University — Master of Applied Mathematics, 2003 Stanford University Online — Algorithms: Design and Analysis Part I, 2012 OTHER ACTIVITIES I’m mad about dances, yoga, swimming and rugby.
  • 5. What is Kotlin Script • Execute Kotlin code without prior compilation or packaging • Experimental -> Beta
  • 6. How to Kotlin Script • .kts, .main.kts • kotlinc • kscript • kotlin
  • 7. CLI
  • 8. Command Line Interface • Interaction over the text inputs (terminal) • prompt command param1 … paramN • Options ( fl ags) and Arguments (parameters)
  • 9. Kotlin Script and CLI • KotlinX CLI • Clikt • Kotlin Shell
  • 10. Demo
  • 12. Take aways • Preinstalled environment • JVM (starting noticeably slow), jvm dependencies • IDE support • Debug/Tests • Can not use compiler plugins (KT-47384) • Exit code • Kotlin slack
  • 13. Q&A